هڪ ڊولپر IDE کوليندو آهي، سادي انگريزي ۾ بيان ڪندو آهي ته اهي ڇا چاهين ٿا، ۽ هڪ AI ايجنٽ کي ڪافي حاصل ڪرڻ ۾ لڳندڙ وقت ۾ فيچر لکندي ڏسي ٿو. اهو ڪمپائل ڪري ٿو. اهو دستي ڪلڪ-ٿرو پاس ڪري ٿو. اهو موڪلي ٿو. ڪنهن به نه پڇيو ته ڇا اهو محفوظ آهي، ڇاڪاڻ ته ڪنهن به ڪجهه به گهڻو نه پڇيو. پرامپٽ کي تبديل ڪيو ويو pull request، ۽ "اهو ڪم ڪري ٿو" "مون ان جو جائزو ورتو" جي جاءِ تي رکيو. اهو وائيب ڪوڊنگ آهي، ۽ اهو هاڻي ڪا معمولي عادت ناهي. اهو ڪيئن پيداوار ڪوڊ جو وڌندڙ حصو پيشه ور ٽيمن پاران لکيو ويندو آهي، نه صرف شوقين جيڪي هفتيوار ايپ سان تجربو ڪري رهيا آهن. ۽ اهو ئي سبب آهي ته وائيب ڪوڊنگ سيڪيورٽي هر انجنيئرنگ ۽ سيڪيورٽي ليڊر جي گفتگو بڻجي وئي آهي، ڇا انهن اڃا تائين ان جو نالو رکيو آهي يا نه.
"وائب ڪوڊنگ" جو اصل مطلب ڇا آهي؟
وائب ڪوڊنگ سافٽ ويئر ڊولپمينٽ آهي جتي هڪ شخص قدرتي ٻولي ۾ گهربل نتيجو بيان ڪري ٿو ۽ هڪ AI ماڊل، يا هڪ ايجنٽ جيڪو ان تي ٺهيل آهي، ڪم ڪندڙ ڪوڊ ٺاهي ٿو. ماڻهو نتيجي جي ذريعي هلائي ٿو ("ٺاهيو هڪ login "flow،" "هڪ CSV ايڪسپورٽ شامل ڪريو") لکڻ يا لائن بائي لائن عملدرآمد جو جائزو وٺڻ جي بدران. اصطلاح پڪڙيو ويو ڇاڪاڻ ته اهو ڪجهه حقيقي کي پڪڙي ٿو: ڊولپر انهي وائب تي وڃي رهيو آهي ته آئوٽ پُٽ صحيح آهي، نه ته ڪوڊ جي پڙهڻ تي.
اها تبديلي سڄي ڪهاڻي آهي. ڪوڊ جو جائزو هڪ چيڪ پوائنٽ هوندو هو جنهن ۾ سافٽ ويئر ڪيئن لکيو ويو. وائب ڪوڊنگ ڊيزائن جي لحاظ کان ان جي چوڌاري رستن کي هلائي ٿو. رفتار وڌي ٿي. "هي اصل ۾ ڇا ڪندو آهي" پڇڻ جي عادت گهٽجي ويندي آهي.
ڇو "اهو ڪم ڪري ٿو" غلط بار آهي
"اهو ڪم ڪري ٿو" جو مطلب آهي ته ڪوڊ اهو ڪيو جيڪو پڇيو ويو هو، ان منظرنامي ۾ جيڪو جانچيو ويو هو. اهو ڪجهه به نٿو چوي ته ڪوڊ ڇا ڪندو آهي انهن منظرنامي ۾ جنهن بابت ڪنهن به نه پڇيو: هڪ خراب ان پٽ، هڪ تصديق ٿيل صارف هڪ اينڊ پوائنٽ جي جاچ ڪري رهيو آهي جيڪو انهن تي تمام گهڻو ڀروسو ڪيو، هڪ انحصار جيڪو ڪڏهن به چيڪ نه ڪيو ويو، هڪ هارڊ ڪوڊ ٿيل راز سادو نظر ۾ ويٺو آهي. هي اهو هنڌ آهي جتي وائب ڪوڊنگ سيڪيورٽي ڪنهن کي به مسئلو محسوس ڪرڻ کان اڳ ئي ٽٽي پوي ٿي.
AI ڪوڊنگ ماڊلز کي تربيت ڏني ويندي آهي ته اهي فنڪشنل آئوٽ پُٽ پيدا ڪن جيڪي پرامپٽ جي ارادي سان ملن ٿا. سيڪيورٽي مقصدي فنڪشن نه آهي. "هي درخواست کي پورو ڪري ٿو" لاءِ بهتر ڪرڻ وارو ماڊل خوشيءَ سان پيرا ميٽرز جي بدران اسٽرنگ ڪنڪيٽينيشن سان ٺهيل هڪ سوال پيدا ڪندو، هڪ اينڊ پوائنٽ جنهن ۾ رسائي ڪنٽرول نه هجي ڇاڪاڻ ته پرامپٽ ڪڏهن به ذڪر نه ڪيو آهي ته ڪنهن کي رسائي نه هجڻ گهرجي، يا هڪ API ڪال جيڪا هڪ جواب تي ڀروسو ڪري ٿي جنهن کي ان کي تصديق ڪرڻ گهرجي. اهو مرتب ڪري ٿو. اهو ڪم ڪري ٿو. اهو ساڳيو ڪمزور طبقو پڻ متعارف ڪرائيندو آهي جنهن مان AppSec ٽيمون هڪ ڏهاڪو ڊولپرز کي تربيت ڏيڻ ۾ گذاريون آهن، هڪ رفتار سان پيدا ڪيل ڪو به دستي جائزو عمل ميچ ڪرڻ لاءِ نه ٺاهيو ويو هو.
AI-جنريٽرڊ ڪوڊ تي اندروني تحقيق حقيقي انگن اکرن کي وجدان جي پويان رکي ٿي: ايجنٽ ڪوڊنگ ٽولز جي پيداوار جو هڪ بامعني حصو پهرين پاس تي هڪ استحصالي سيڪيورٽي نقص تي مشتمل آهي، ڪنهن به جائزي کان اڳ. اهو هڪ ماڊل ۾ نقص ناهي. اهو "اهو هلندو آهي"، نه ته "اهو برقرار رهي ٿو" لاءِ اصلاح جي متوقع پيداوار آهي، ۽ اهو صحيح خلا آهي جيڪو وائب ڪوڊنگ سيڪيورٽي کي بند ڪرڻو پوندو آهي.
خطري جي سطح ڪوڊ کان وڌيڪ وسيع آهي.
وائب ڪوڊنگ سيڪيورٽي اڪثر ڪري هڪ طور تي فريم ڪئي وئي آهي ڪوڊ جي معيار جو مسئلو، پر نمائش سڄي ڪم جي وهڪري ذريعي هلندو آهي ايجنٽ صرف ان جي ڪم کي نه ڇهي ٿو، لکيو آهي:
| مٿيان وائب ڪوڊنگ سيڪيورٽي خطرا | ان جي ڇا معني آهي | امڪاني اثر |
|---|---|---|
| غير محفوظ ڪوڊ جا نمونا ۽ منطقي خاميون | ماڊل ڪمزور نمونن کي ٻيهر پيدا ڪري ٿو جن مان هن سکيو آهي: ان پٽ جي تصديق غائب، ڪمزور ڪرپٽو، غير محفوظ ڊي سيريلائيزيشن | OWASP جون مٿيان 10 ڪمزوريون پيداوار تائين پهچن ٿيون جن جو ڪو به پتو نه پيو آهي. |
| ظاهر ڪيل راز ۽ حساس ڊيٽا | ٺاهيل ڪوڊ API ڪيز، ٽوڪن، يا سندون هارڊ ڪوڊ ڪري ٿو جيئن اهي پلیس هولڊر نحو هجن | سند جي چوري، پاسي واري حرڪت، ڊيٽا جي ڀڃڪڙيون |
| ڪمزور يا وهمي انحصار | ايجنٽ سڃاتل CVEs سان هڪ پيڪيج چونڊيندو آهي، يا هڪ اهڙو نالو ڏيندو آهي جيڪو اڃا تائين موجود ناهي ۽ حملو ڪندڙ پهريان ان کي رجسٽر ڪندا آهن. | خراب يا بي ترتيب پيڪيجز ذريعي سپلائي چين سمجهوتو |
| ڪمزور تصديق ۽ رسائي ڪنٽرول | تصديق ۽ اجازت منطق غير محفوظ ڊفالٽ سان موڪليا ويا آهن ڇاڪاڻ ته پرامپٽ ڪڏهن به اهو واضح نه ڪيو ته ڪنهن کي رسائي نه هجڻ گهرجي. | اڪائونٽ تي قبضو، غير مجاز ڊيٽا تائين رسائي |
| ايجنٽ جي گهڻي اجازت ۽ محدود نگراني | ڪوڊنگ ايجنٽ وسيع ريپو، انسٽال، يا ايگزيڪيوشن رسائي ۽ ٿوري انساني چيڪ پوائنٽ سان هلن ٿا. | غير ارادي تبديليون، ڊيٽا جي نمائش، اڻ ٽريڪ ٿيل خطرو |
| ڪنفگ ۽ رولز فائلن ذريعي هدايتون اغوا ڪرڻ | مهارت فائلون، قاعدا فائلون، ۽ MCP ترتيبون دستاويزن وانگر جائزو ورتيون وينديون آهن پر خاموشي سان هڪ ايجنٽ جي ڪم کي ريڊائريڪٽ ڪري سگهن ٿيون. | ايجنٽ جيڪي ڪوڊ جي تبديلي کان سواءِ حملو ڪندڙ جي ڪنٽرول ڪيل هدايتن تي عمل ڪن ٿا ڪڏهن به هڪ فرق ۾ ظاهر ٿيندا آهن |
| ڍلو يا وراثتي ترتيبون | ڊيبگ موڊ، اجازت ڏيندڙ CORS، وربوس غلطي جا پيغام، ڊفالٽ ڪنهن به شعوري طور تي نه چونڊيا | معلومات جي ظاهر ڪرڻ، حملي جي مٿاڇري کي وڌايو ويو |
| شيڊو اي آءِ جو استعمال | ڊولپرز ڪنهن به منظور ٿيل يا ايجاد ٿيل فهرست کان ٻاهر ڪوڊنگ اسسٽنٽ، ايم سي پي سرور، يا ايجنٽ ٽولز کي اختيار ڪندا آهن. | ڪوڊ بيس کي ڇا ڇهي رهيو آهي ان جي ڪا به نمائش ناهي، ان کي ڪنٽرول ڪرڻ جو ڪو طريقو ناهي. |
| ڇڏيل يا رٻڙ-اسٽيمپ جو جائزو | مٿين سڀني ڳالهين جي پويان بنيادي سبب: "اهو ڪم ڪري ٿو" کي سائن آف طور قبول ڪيو ويندو آهي، تنهن ڪري چيڪ پوائنٽ جيڪو انهن مسئلن کي پڪڙڻ لاءِ استعمال ڪيو ويندو هو ڪڏهن به فائر نه ٿيندو آهي. | هر خطرو مٿانهون آهي خاموشي سان جيستائين پيداوار ۾ ڪا شيءِ ٽٽي پوي |
روايتي ايپ سيڪ ٽولنگ هتي ڇو پوئتي آهي
گهڻي ڀاڱي ايپليڪيشن سيڪيورٽي ٽولنگ هڪ تال جي چوڌاري ٺهيل هئي: ڪوڊ لکيو ويندو آهي، پوءِ ان کي اسڪين ڪيو ويندو آهي، CI ۾ يا PR تي. اهو تال فرض ڪري ٿو ته هڪ مستحڪم، انساني-تصنيف ٿيل آرٽيڪل موجود آهي جيڪو اسڪينر کي اشارو ڪري، ۽ تبديلي جو مقدار ڪجهه آهي جيڪو pipeline عمدي طور تي جائزو وٺي سگھي ٿو.
وائب ڪوڊنگ ٽائيمنگ کي ٽوڙي ٿي، ۽ اهو ٽائيمنگ گيپ وائب ڪوڊنگ سيڪيورٽي مسئلي جو مرڪز آهي. ڪوڊ IDE اندر سيڪنڊن ۾ تبديل ٿي ويندو آهي، اڪثر ڪري ان کان اڳ جو اهو ڪڏهن به هڪ حد تائين پهچي. pull request. هڪ اسڪينر جيڪو صرف CI ۾ هلندو آهي، حقيقت کان پوءِ مسئلو پڪڙيندو آهي، هڪ ڀيرو غير محفوظ نمونو اڳ ۾ ئي ضم ٿي ويندو آهي، اڳ ۾ ئي ايندڙ خاصيت جو حصو آهي جنهن تي ڪو ٻيو ٺاهي رهيو آهي. ۽ هڪ اسڪينر جيڪو AI-جنريٽ ٿيل ڪوڊ کي ڪنهن ٻئي ڪوڊ وانگر ئي علاج ڪري ٿو، خطري جي حصن کي وڃائي ٿو جيڪي مخصوص آهن ته اهو ڪيئن لکيو ويو: اهو پيڪيج جيڪو ايجنٽ چونڊيو بغير ان کي جواز ڏيڻ جي، هدايت واري فائل جيڪا ايجنٽ کي ٻڌايو ته انسان کي ڪڏهن به فرق ڏسڻ کان اڳ ڇا ڪجي.
ڇا اصل ۾ خال کي ختم ڪري ٿو
هن کان اڳتي وڌي رهيون تنظيمون وائب ڪوڊنگ کي سست نه ڪري رهيون آهن. اهي ڪم جي وهڪري ۾ حقيقي وائب ڪوڊنگ سيڪيورٽي ٺاهي رهيا آهن: چيڪ پوائنٽ کي واپس منتقل ڪرڻ جتي ڪوڊ اصل ۾ لکيل آهي، ۽ AI پاران ٺاهيل ڪوڊ کي غير قابل اعتماد ان پٽ طور علاج ڪرڻ جيستائين ٻي صورت ۾ ثابت نه ٿئي:
- صرف CI ۾ نه، IDE اندر اسڪين ڪريو. جڏهن ايجنٽ اڃا تائين فنڪشن ٺاهي رهيو آهي ته هڪ غير محفوظ نموني کي پڪڙڻ هڪ مختلف مسئلو آهي ان کي پڪڙڻ کان پوءِ ٽي وڌيڪ خاصيتون ان تي منحصر آهن.
- ايجنٽ پاران متعارف ڪرايل هر انحصار جي تصديق ڪريو، ساڳيءَ طرح توهان هڪ ڊولپر جي دستي طور تي ٽائيپ ڪيل هڪ کي انسٽال ڪرڻ کان اڳ تصديق ڪندا.
- ڪنفگريشن فائلن کي ڪوڊ طور سمجهو جيڪي ايجنٽ پڙهي ٿو، دستاويز جي طور تي نه. قاعدن جون فائلون، مهارت جون فائلون، ۽ MCP سرور ترتيبون هدايتون کڻي سگهن ٿيون جيڪي ايجنٽ جي ڪم کي تبديل ڪن ٿيون، ۽ اهي ساڳئي جاچ جا مستحق آهن جيئن ايجنٽ پيدا ڪري ٿو ڪوڊ.
- صرف جهنڊي کي نه، پر درستگي لاءِ هڪ انسان کي خبر ۾ رکو. هڪ ڊولپر جيڪو ڏسي سگهي ٿو ته ڪا شيءِ ڇو استحصال لائق آهي، نه رڳو اهو ته ان هڪ قاعدي کي شروع ڪيو، اصل ۾ ايندڙ ڀيري مختلف طريقي سان تڪڙ ڪرڻ ۽ جائزو وٺڻ سکي ٿو.
- فرض ڪريو "اهو ڪم ڪري ٿو" ڪڏهن به سيڪيورٽي بار نه هو، ۽ اصل بار کي ياداشت ۾ ڇڏڻ بدران ورڪ فلو ۾ ظاهر ڪريو.
جتي زائيگيني مناسب آهي
هي بلڪل سيون آهي. زائيگيني جي ديو اي آءِ بند ڪرڻ لاءِ ٺاهيو ويو هو. DevAI IDE اندر هڪ مسلسل سيڪيورٽي پرت جي طور تي ڪم ڪري ٿو، انساني لکيل ۽ AI پاران ٺاهيل ڪوڊ کي تيار ڪندي ڏسي ٿو، نه ته ان جي لينڊ ٿيڻ کان پوءِ pull request. اهو ڪنهن ترت جو انتظار نٿو ڪري: اهو استحصالي نمونن کي نشانو بڻائي ٿو، حقيقي حملي جي رستي کي سادي ٻولي ۾ بيان ڪري ٿو، ۽ هڪ اهڙو حل پيش ڪري ٿو جيڪو ڊولپر پنهنجي وهڪري کي ڇڏڻ کان سواءِ جائزو وٺي ۽ لاڳو ڪري سگهي ٿو. سپلائي چين جي پاسي، MEW (مالويئر جي شروعاتي وارننگ) دستخط موجود ٿيڻ کان اڳ ئي خراب پيڪيجز کي پڪڙي ٿو، جيڪو هتي سڌو سنئون اهم آهي، ڇاڪاڻ ته هڪ ايجنٽ توهان جي طرفان انحصار کي چونڊيندو آهي اهو ئي وقت آهي جڏهن هڪ بي ترتيب يا سمجهوتو ٿيل پيڪيج اندر اچي ٿو.
ٻنهي جي هيٺان، CoreAI ڪوڊ بيس، انحصار، ۽ ۾ جيڪو ملي ٿو ان سان لاڳاپيل آهي pipeline هڪ ترجيحي خطري جي نظر ۾، ۽ اهو نظريو محدود ناهي زائيگيني جو پنهنجا اسڪين. اهو ساڳيو لاڳو ٿئي ٿو اي آءِ ٽرائيجوضاحت، ۽ رعايت ٻين اسڪينرن جي ڳولا لاءِ جيڪي اڳ ۾ ئي موجود آهن، تنهن ڪري وائب ڪوڊنگ کي محفوظ ڪرڻ جو مطلب اهو ناهي ته هڪ اسٽيڪ کي ڦاڙيو وڃي جيڪو اڳ ۾ ئي ڪم ڪري ٿو. ان جو مطلب آهي ته ان تي هڪ پرت لڳائڻ جيڪا آخرڪار رفتار سان هلي ٿي جيڪا ڪوڊ هاڻي لکيو پيو وڃي.
لوڊ
ڇا وائب ڪوڊنگ فطري طور تي غير محفوظ آهي؟
نه. وائب ڪوڊنگ هڪ ترقي جو طريقو آهي، ڪمزوري نه. خطرو جائزو وٺڻ واري مرحلي کي ڇڏڻ سان اچي ٿو جيڪو غير محفوظ نمونن کي پڪڙڻ لاءِ استعمال ڪيو ويندو هو، نه ته پهرين جاءِ تي ڪوڊ لکڻ لاءِ AI استعمال ڪرڻ سان. اهو ئي سبب آهي ته وائب ڪوڊنگ سيڪيورٽي هڪ ورڪ فلو نظم و ضبط آهي، عمل کان بچڻ جو سبب ناهي.
موجود ٿي سگهي ٿو SAST or SCA ڇا اوزار وائب ڪوڊنگ سيڪيورٽي خطرن کي پڪڙين ٿا؟
اهي ان مان ڪجهه پڪڙيندا آهن، پر عام طور تي ڪوڊ جي ضم ٿيڻ کان پوءِ، ڇاڪاڻ ته گهڻا IDE اندر نه پر CI ۾ هلندا آهن جتي ڪوڊ ٺاهيل هوندو آهي. اهي عام طور تي AI ايجنٽ جي پنهنجي رويي جو جائزو نه وٺندا آهن، جهڙوڪ پيڪيجز جيڪي اهو چونڊيندو آهي يا ترتيب فائلون جيڪي اهو پڙهي ٿو.
وائب ڪوڊنگ سيڪيورٽي لاءِ سڀ کان وڌيڪ ليوريج فڪس ڇا آهي؟
سيڪيورٽي چيڪن کي IDE ۾ منتقل ڪريو، جنريشن جي نقطي تي، صرف بعد ۾ ڀروسو ڪرڻ جي بدران pipeline اسڪين. ڪنهن مسئلي کي پڪڙڻ ان کان اڳ جو اهو ان جي مٿان ٺهيل ايندڙ ٽن خاصيتن جو حصو بڻجي، ان کي بعد ۾ پڪڙڻ کان مختلف مسئلو آهي.
ڇا وائب ڪوڊنگ کي محفوظ ڪرڻ جو مطلب ڊولپرز کي سست ڪرڻ آهي؟
جيڪڏهن چيڪ ان لائن ٿئي ٿو، IDE ۾، وضاحت ۽ تيار حل سان. مقصد اهو آهي ته اسپيڊ وائب ڪوڊنگ پيشڪش کي برقرار رکيو وڃي جڏهن ته دستي جائزو مهيا ڪرڻ لاءِ استعمال ٿيندڙ فيصلي کي بحال ڪيو وڃي.





