درست مانند یک نقاش یا نویسنده، برنامهنویسان تمایل دارند که سَبک خاص خود را در کار کردن داشته باشند که این موضوع در کدهایی که میزنند به وضوح قابلمشاهده است به طوری که ایشان هنگام توسعهٔ نرمافزار و کدنویسی، یک اصطلاحاً Signature (امضاء) از خود بر جای میگذارند. حال با پیشرفتهای صورت گرفته در حوزهٔ ML، این امکان فراهم شده تا بتوان با استفاده از یادگیری ماشینی دست به شناسایی سورسکدهای مختلف زد حتی اگر کد مد نظر توسط یک دولوپر ناشناس نوشته شده باشد!
ML چگونه میتواند به درک سورسکد بپردازد؟
سیستم ماشین لرنینگی که محققان توسعه دادهاند میتواند از طریق تجزیه و تحلیل الگوهای موجود در سورسکدهای خام و یا حتی کدهای باینری کامپایلشده، برنامهنویس مربوطه را شناسایی کند بدین صورت که الگوریتمی برای شناسایی الگوهای موجود در کدهای نوشتهشده توسط یک دولوپر بهخصوص آموزش داده میشود و از آن برای تشخیص ویژگیهای مشابه در نمونه کدهای مختلف استفاده خواهد شد. بهترین قسمت این قضیه این است که این سیستم حتی نیازی به یک قطعه کد طولانی ندارد و با یک تکۀ کوچک از کدهای یک دولوپر نیز میتواند کار خود را انجام دهد. Rachel Greenstadt و Aylin Caliskan، محققانی که در این زمینه کار کردهاند، در یک سخنرانی در Defcon بیان کردهاند که:
نتایج حاصل از این سیستم که مبتنی بر هوش مصنوعی هست تقریباً دقیقه هرچند که ادعایی بر اشتباهناپذیر بودنش وجود نداره.
محققان در طی یک آزمایش بر روی نمونههای کد از 600 برنامهنویس و از هر کدام 8 نمونه سورسکد، به نتیجۀ دقت تشخیص 83٪ رسیدهاند که به نظر درصد قابلقبولی میآید.
مزایا و معایب تشخیص امضای دولوپرها از روی سورسکد
این تکنولوژی مزایا و معایب خاص خود را دارا است به طوری که از یک طرف میتواند برای تحقیقات قانونی مفید واقع شود، بهخصوص در شناسایی دولوپرهای بدافزارهای مختلف و همچنین مجرمین سایبری (حتی میتواند در مسائلی حقوقی که بر سر #کپیرایت نیز اتفاق میافتد به کار رود چرا که یک سیستم مبتنی بر یادگیری ماشینی، میتواند فرق بین شباهت یا تقلید و کپی کردن را متوجه شود.) اما جنبۀ منفی این موضوع این است که میتواند مشکلاتی را برای برنامهنویسانی که میخواهند کدهایشان ناشناس باقی بماند، به وجود آورد به طوری که در برخی موارد دولوپرها نیاز به این دارند تا بنا به دلایلی، از جمله مسائل قانونی، ناشناس باقی بمانند و لو رفتن هویت ایشان لزوماً مسئله خوبی برایشان نیست. بنابراین، هرگونه پیادهسازی این تکنولوژی باید بتواند یک توازن دقیق بین نیاز به امنیت و حفظ #حریم خصوصی ایجاد کند.
طراحی اپلیکیشن | طراحی نرم افزار اندروید | طراحی اپلیکیشن ios | طراحی وب سایت | تولید اپلیکیشن اندروید