مایکروسافت توانسته است با توسعهی سیستمی برپایهی مخازن دادههای AzureDevOps و GitHub باگها را بهکمک هوش مصنوعی شناسایی و براساس اولویت طبقهبندی کند.
مایکروسافت مدعی شده است سیستمی توسعه داده تا با کمک آن باگها را شناسایی کند. بهگفتهی این شرکت، سیستم تشخیص باگ میتواند ۹۹ درصد باگهای امنیتی و غیرامنیتی را از یکدیگر متمایز کند و با دقت ۹۷ درصد باگهای مهم و حیاتی را از بین آنها تشخیص دهد. بنابر گزارش منتشرشده، مایکروسافت برنامه دارد در ماه آتی، روش عملکرد این سیستم را روی گیتهاب قرار دهد. علاوهبراین، مدلهایی برای مثال و دیگر منابع استفادهشده در سیستم مذکور نیز دردسترس علاقهمندان قرار خواهد گرفت.
طبق اطلاعات جدید، این سیستم روی مجموعه دادههای ۱۳ میلیون پروژه و باگهایی از ۴۷ هزار توسعهدهنده توسعه داده شده که در سرور AzureDevOps مایکروسافت (ویژوال استودیو آنلاین) و مخازن گیتهاب ذخیره شده است تا متخصصان انسانی را همراهی و پشتیبانی کند. شرکت Carologix تخمین میزند توسعهدهندگان در هر هزار خط کدنویسی، ۷۰ باگ درست میکنند و برطرفکردن هر باگ ۳۰ برابر کدنویسی هر خط زمان خواهد برد. بنابراین، تنها در ایالات متحده سالانه ۱۱۳ میلیارد دلار برای شناسایی و تعمیر عیوب محصولات هزینه میشود.
مایکروسافت معتقد است در طول ایجاد ساختار مدلی که اکنون رونمایی شده، متخصصان امنیت فرایند پرورش دادههای اولیه را تأیید کردند. همچنین، نمونهگیری آماری بهگونهای انجام شد که برای کارشناسان مقدار مناسبی از دادهها برای بررسی جمعآوری شود. سپس، دادهها در بازنماییهایی با نام بردار ویژگی رمزگذاری شدند و محققان مایکروسافت با قدرت تمام طراحی سیستم را با استفاده از روش فرایند دومرحلهای آغاز کردند. در ابتدا، مدل مایکروسافت طریقهی طبقهبندی باگهای امنیتی و غیرامنیتی و سپس یاد گرفت چگونه برچسبهای شدت مثل بحرانی یا مهم یا کماثر را به باگهای امنیتی نسبت دهد.
مدل ارائهشدهی مایکروسافت از دو تکنیک برای پیشبینی باگها بهره میبرد. اولین تکنیک الگوریتم فراوانی وزنی TF-IDF است که رویکرد بازیابی اطلاعات بهشمار میرود. این رویکرد به کلمات براساس میزان تکرار در سند ارزشی اختصاص میدهد و بررسی میکند آن کلمه چقدر با عناوین موجود در مجموعه مرتبط بوده است. مایکروسافت میگوید عناوین باگها معمولا خیلی کوتاه هستند و غالبا شامل ۱۰ کلمه میشوند. تکنیک دوم ازطریق مدل رگرسیون لجستیک پیش میرود. درواقع در این تکنیک، با استفاده از تابع لجستیک، احتمال وجود کلاس معین یا رویداد را مدلسازی خواهد کرد.
علاوهبراین، مایکروسافت میگوید مدل ساختهشده از درون در حال گسترش است. بدین معنا که بهطورمداوم با دادههای تأییدشدهی متخصصان امنیتی آموزش داده میشود. همچنین، متخصصان تعداد باگهای تولیدشده در مدت زمان توسعهی نرمافزار را کنترل میکنند.
مدیر ارشد برنامهی امنیتی مایکروسافت، اسکات کریستینسن، گفته است:
توسعهدهندگان نرمافزار همواره فهرست بلندبالای ویژگیها و باگهایی را در نظر دارند که باید درست شوند. کارشناسان امنیتی نیز تلاش میکنند با استفاده از ابزار خودکار اولویتبندی باگهای امنیتی به آنها کمک کنند؛ اما اغلب اوقات، مهندسان زمان زیادی روی باگهای نادرست هدر میدهند یا ممکن است متوجه برخی آسیبپذیریهای بحرانی و حیاتی طبقهبندینشده نشوند.
دانشمند داده و علوم کاربردی مایکروسافت، مایانا پریرا، اضافه کرده است:
با کنارهم قراردادن مدلهای یادگیری ماشینی و کارشناسان امنیتی، خواهیم توانست تشخیص و طبقهبندی باگهای امنیتی را بهطرز چشمگیری بهبود ببخشیم.
مایکروسافت، تنها غول فناوری نیست که با استفاده از هوش مصنوعی باگهای امنیتی را شناسایی میکند؛ زیرا سرویس CodeGuruشرکت آمازون که تاحدی براساس مرور کد و اپلیکیشنها در این شرکت توسعه یافته است، توانایی تشخیص مشکلاتی نظیر نشت منابع و اتلاف چرخههای پردازشی را دارد. افزونبراین، فیسبوک ابزاری با عنوان SapFix طراحی کرده است که قبل از ارسال اطلاعات باگها برای مهندسان، بهصورت خودکار آنها را ترمیم و سپس باگها و راهحلشان را بهمنظور تأیید نهایی برای مهندسان ارسال میکند. ابزار دیگری نیز با نام Zoncolan دراختیار فیسبوک قرار دارد که اعمال و رفتار پایگاههای کد را بررسی میکند و بهدنبال مشکلات احتمالی در شاخههای انفرادی یا فعلوانفعالات مسیرهای مختلف برنامه میگردد.
پاسخ ها