機器學習能透過類似「指紋辨識」的方式解析程式碼是誰寫的

這方法可以用來辨識駭客和意圖瓢竊資料的人,但也有可能對隱私造成威脅。

機器學習能透過類似「指紋辨識」的方式解析程式碼是誰寫的

雖然每位程式設計師都擁有自己獨特的風格,但光透過觀察程式碼來推敲誰是作者,往往不太可行。而現在,我們有了更先進的方法。研究人員日前利用機器學習技術,開發出一套可以透過解析原始代碼和經過編譯的二進制代碼,來找出原作者的系統。該系統的開發者向 Wired 解釋,只要先提供作者撰寫的程式碼給該系統作為學習範例,即便只是部分片段,它就能解析該程式碼所擁有的特徵,並用來辨識其它的程式碼是否出自同一人之手。

為了進一步驗證該系統對於二進制程式碼辨識的正確性,研究人員利用 Google Code Jam 的參賽作品進行測試。試驗中,在給予系統來自 100 名程式設計師,每位 8 個程式範例作學習後,系統正確辨識出作者的機率高達 96%。即便將樣本數提升至 600 名程式設計師,該系統依然能維持 83% 的準確率。

這項技術尤其適用於辨識惡意軟體的開發者,並能防止犯人企圖栽贓他人,對於調查人員無疑是一項福音。此外,該技術也能辨別出程式碼中「純粹巧合」或「複製」的部分,所以也能有效應用於抄襲的相關案件之中。

往後,程式設計師若不希望透露身份,或許只得選擇屏蔽其原始碼。但對於以匿名的形式貢獻原始碼的社群來說,這項技術的出現無疑是一個挑戰。畢竟理論上,現在只要將程式碼公開,便會暴露在被揭露身份的風險之中。也讓人省思未來「追求安全」和「隱私」兩者之間的平衡,該如何拿捏。

來源: Def Con

經由: Wired, Engadget