雖然每位程式設計師都擁有自己獨特的風格,但光透過觀察程式碼來推敲誰是作者,往往不太可行。而現在,我們有了更先進的方法。研究人員日前利用機器學習技術,開發出一套可以透過解析原始代碼和經過編譯的二進制代碼,來找出原作者的系統。該系統的開發者向

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

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

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

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

相關文章