به گزارش زوم تک، ابزارهای کدنویسی مبتنی بر هوش مصنوعی دیگر فناوری های آزمایشی و حاشیه ای در فرایند توسعه نرم افزار نیستند. این ابزارها اکنون در بسیاری از سازمان های بزرگ برای نوشتن، بررسی و انتشار کدهای مورد استفاده در محیط های واقعی به کار گرفته می شوند. افزایش سرعت و بهره وری ناشی از این ابزارها قابل انکار نیست، اما همزمان یک فرض خطرناک در حال شکل گیری است: اینکه اگر کد به درستی کار کند، پس امن است.
این فرض در حال از بین رفتن است. بررسی عملکرد ابزارهای کدنویسی هوش مصنوعی روی صدها وظیفه واقعی متن باز و ده ها نوع آسیب پذیری نشان داده است که بیشتر کدهای تولیدشده توسط AI توانسته اند آزمایش های عملکردی را با موفقیت پشت سر بگذارند، اما تنها بخش کوچکی از آن ها واقعا امن بوده اند. سهم کدهایی که هم از نظر عملکردی درست و هم از نظر امنیتی قابل قبول بوده اند، حتی کمتر بوده است.
عملکرد هوش مصنوعی سریع تر از امنیت آن پیشرفت می کند
یکی از مهم ترین نکات این بررسی، تفاوت سرعت پیشرفت در دو حوزه عملکرد و امنیت است. عملکرد مدل های پیشرفته هوش مصنوعی با سرعت زیادی در حال بهتر شدن است، اما وضعیت امنیت کدهای تولیدشده با همان سرعت پیشرفت نکرده است.
این اتفاق یادآور تجربه صنعت نرم افزار در دوره های گذشته است. در سال های ابتدایی توسعه وب و سپس در دوران مهاجرت گسترده به رایانش ابری، سازمان ها ابتدا سرعت توسعه را در اولویت قرار دادند و تصور کردند می توان کنترل های امنیتی را بعدا به سیستم اضافه کرد. نتیجه این رویکرد، سال ها چرخه حملات، نفوذ و اختلالات عملیاتی بود تا زیرساخت های امنیتی بتوانند خود را با سرعت تغییرات هماهنگ کنند.
تفاوت امروز در سرعت بسیار بالاتر است. هوش مصنوعی این مشکل را در مقیاس ماشینی تشدید می کند.
هوش مصنوعی الگوهای ناامن کدهای متن باز را هم یاد می گیرد
بخش قابل توجهی از آموزش مدل های هوش مصنوعی بر اساس کدهای عمومی موجود در مخازن متن باز انجام شده است. بخشی از این کدها حاصل مهندسی نرم افزار باکیفیت هستند، اما در کنار آن ها، الگوهای ناامن، وابستگی های قدیمی و معماری های آسیب پذیر نیز وجود دارند.
مدل های هوش مصنوعی این مجموعه را بدون تفکیک کامل میان کد امن و ناامن دریافت می کنند و می توانند همان الگوها را در مقیاس بسیار بزرگ بازتولید کنند.
در گذشته، یک الگوی ناامن ممکن بود در نتیجه اشتباه یک توسعه دهنده وارد یک پروژه شود. اکنون یک عامل هوش مصنوعی می تواند همان الگو را به صورت خودکار در تعداد زیادی پروژه و مخزن تولید کند.
مشکل فقط یک ابزار نیست؛ ساختار توسعه نرم افزار در حال تغییر است
مشکل دیگر تنها به این موضوع محدود نمی شود که هوش مصنوعی گاهی کد ناامن تولید می کند. شیوه استفاده از این ابزارها نیز نقاط توقف طبیعی در فرایند توسعه را کاهش داده است.
وابستگی ها می توانند به صورت خودکار دریافت شوند، Packageها به شکل پویا به روز شوند و عامل های هوش مصنوعی قادر باشند کد تولید کنند، کتابخانه نصب کنند و فرایندهای بعدی را با حداقل بررسی انسانی اجرا کنند.
در چنین شرایطی، یک الگوی ناامن می تواند از مرحله درخواست کاربر تا محیط Production حرکت کند، پیش از آنکه تیم امنیت حتی از وجود آن مطلع شود.
زنجیره تامین نرم افزار به خودی خود به سطح حمله تبدیل شده است
افزایش استفاده از نرم افزارهای متن باز و رشد تعداد وابستگی های پروژه ها باعث شده تعداد نمونه های آسیب پذیری در محیط های نرم افزاری مدرن افزایش پیدا کند. نقش نرم افزارهای شخص ثالث نیز در گزارش های مربوط به نفوذهای امنیتی به شکل قابل توجهی افزایش یافته است.
در نتیجه، زنجیره تامین نرم افزار دیگر یک نگرانی امنیتی فرعی نیست و عملا به یکی از بخش های اصلی سطح حمله سازمان ها تبدیل شده است.
در همین حال، سرعت حملات نیز افزایش پیدا کرده است. مهاجمان از هوش مصنوعی برای کاهش زمان لازم برای تبدیل یک آسیب پذیری به یک ابزار قابل استفاده در حمله بهره می گیرند. سازمان ها اکنون با محیطی مواجه هستند که در آن آسیب پذیری ها سریع تر ایجاد، سریع تر کشف و سریع تر مورد سوءاستفاده قرار می گیرند.
سه تغییر مهم که نمی توان به تعویق انداخت
۱. کنترل های امنیتی باید وارد جریان کاری توسعه دهنده شوند
اگر بررسی امنیتی تنها در مرحله Pull Request آغاز شود، سازمان احتمالا بیش از حد دیر وارد عمل شده است. تا آن زمان ممکن است وابستگی وارد پروژه شده باشد، الگوی ناامن در بخش های مختلف کد گسترش پیدا کرده باشد و هزینه اصلاح آن افزایش یافته باشد.
به همین دلیل، امنیت باید از مراحل ابتدایی توسعه وارد جریان کاری توسعه دهنده شود و همزمان با تولید کد بررسی شود، نه اینکه پس از تکمیل بخش اصلی پروژه به آن اضافه شود.
۲. اولویت بندی آسیب پذیری ها نباید فقط بر اساس شدت باشد
در محیط هایی که حجم تولید کد به کمک AI بسیار بالا است، تمرکز صرف بر امتیاز شدت آسیب پذیری می تواند حجم زیادی از هشدارهای کم ارزش ایجاد کند.
سوال مهم تر این است که آیا آسیب پذیری در برنامه قابل دسترسی است و آیا می توان از آن در محیط واقعی سوءاستفاده کرد یا خیر.
برای مثال، یک آسیب پذیری با شدت متوسط که مستقیما در مسیر اجرای کد Production قرار دارد، ممکن است خطر بیشتری نسبت به یک آسیب پذیری بحرانی داشته باشد که در بخشی از کد غیرقابل دسترسی قرار گرفته است.
۳. معیار ارزیابی تیم های امنیتی باید تغییر کند
برنامه های امنیت نرم افزار در گذشته تا حد زیادی بر گزارش آسیب پذیری ها، مدیریت فهرست مشکلات و پیگیری زمان اصلاح آن ها تمرکز داشتند. اما این مدل در محیطی که نرم افزار به صورت مداوم توسط عامل های هوش مصنوعی و با سرعت ماشینی تولید می شود، دیگر مقیاس پذیر نیست.
تیم های موفق در سال های آینده لزوما تیم هایی نیستند که بزرگ ترین فهرست آسیب پذیری ها را تولید می کنند. مزیت اصلی متعلق به تیم هایی خواهد بود که بتوانند اصلاحات را به صورت خودکار اجرا کنند، تغییرات را به شکل مداوم اعتبارسنجی کنند و ریسک قابل سوءاستفاده را در لحظه کاهش دهند.
آینده توسعه نرم افزار به کنترل کد تولیدشده وابسته است
تولید نرم افزار با هوش مصنوعی متوقف نخواهد شد و سازمان ها نیز نباید تلاش کنند این تغییر را متوقف کنند. افزایش بهره وری حاصل از این فناوری بسیار قابل توجه است و فشار رقابتی برای استفاده از آن نیز افزایش خواهد یافت.
اما ادامه مسیر فعلی بدون تغییر رویکرد امنیتی پایدار نخواهد بود. اگر امنیت همچنان بر اساس فرضیات مربوط به دوره ای از توسعه نرم افزار طراحی شود که سرعت تولید کد بسیار پایین تر بود، سازمان ها نمی توانند با حجم و سرعت جدید ریسک ها مقابله کنند.
در نهایت، آینده امنیت نرم افزار فقط به این بستگی ندارد که چه کسی بیشترین حجم کد را تولید می کند. مسئله اصلی این است که چه سازمانی همچنان می تواند سیستم هایی را که با کمک هوش مصنوعی تولید می کند، به درستی درک، بررسی و کنترل کند.





نظرات در مورد : وقتی هوش مصنوعی کد را می نویسد، چه اتفاقی برای ریسک نرم افزارهای متن باز می افتد؟