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