机器学习可以发现程序员的不同风格与习惯,以帮助识别匿名代码管理员的“指纹”。
因此,研究人员开发了一种机器学习算法,以识别单个程序员使用的编码结构,基于他们的工作样本,并在编译后的二进制文件或原始源代码中发现程序员的特征。
研究人员将在DefCon黑客大会上展示他们的研究成果,并指出这种技术可以用来帮助调查恶意软件的开发者。
许多黑客喜欢用假名来分享代码、二进制文件和漏洞,但这些分享的代码或文件匿名隐藏的到底有多深呢?在这次演讲中,研究人员将从机器学习的角度来讨论关于程序员去匿名化的工作。
研究人员将展示抽象语法树如何包含风格特征,以及如何使用这些特征从代码和二进制代码中识别程序员。在使用混淆的二进制文件和在程序员GitHub存储库中发现的真实代码以及泄漏的空代码来执行程序员去匿名化。
基于600名程序员的样本量,机器学习智能可以在83%的时间内做出准确的识别。因此,虽然这不是迄今为止最精确的机器学习算法,但它仍然可以帮助进行网络取证,或者简单地的了解谁可能对开放源代码存储库做出贡献。
这项技术还可能被起诉以发现代码中的剽窃行为,更令人担忧的是,政府可能会使用这项技术来识别那些开发代码和工具的人,从而绕过国家审查。
使用这样一种聪明的算法,最终可能会使注重隐私的程序员无法为开放源代码做出分享贡献,因此,如果研究人员的工作付诸实施,那么似乎需要在隐私和安全之间找到某种平衡。
领取专属 10元无门槛券
私享最新 技术干货