YouTubeビデオ
「プログラマーの匿名性の解除:コンパイル済みコードとソースコードの実行可能バイナリからの大規模な著者属性」と題されたこの研究は、火曜日に開催された第32回カオスコミュニケーション会議においてアイリン・カリスカン=イスラム氏によって発表された。
これに伴って、米国プリンストン大学の研究者らによって執筆された「When Coding Style Survives Compilation: De-anonymizing Programmers from Executable Binaries」と題するarxiv [PDF] も出版された。この研究者らの一人は、陸軍研究所に所属していることでも知られている。
研究者たちは、投稿のスタイルをマッピングするセキュリティ強化のユースケースとプライバシー侵害のユースケースの間に「技術的な違いはない」と指摘し、悪意のあるプログラマーの特定に取り組み始めました。言い換えれば、文章のスタイルは書き手の個性を露呈させるということです。
研究者がコンパイルし分析した C/C++ ソースコードの特徴的な特徴の多くは、そのコードがコンパイルされるときに削除され、コンパイラの最適化手順によってプログラムの構造上の品質がさらに変更され、作成者がさらに不明瞭になる可能性があります。
しかし、実行可能バイナリの著作権を「機械学習の観点から、実行可能バイナリをソースコードに逆コンパイルすることによって得られる特徴を含む新しい特徴セットを使用して」調査した結果、研究者らは「ソースコードに存在する多くの構文特徴は実際にはコンパイル後も残り、逆コンパイルされた実行可能バイナリから復元できる」ことを示すことができた。
研究者たちは、「最先端のリバースエンジニアリング手法」(上のグラフに表示)を使用して、「実行可能バイナリごとにさまざまな特徴を抽出」し、特徴ベクトルを使用するプログラマーのスタイルの癖を表現しました。
実際には、これは、Netwide 逆アセンブラー、次に Radare2 逆アセンブラーにクエリを実行し、その後、「最先端」の Hex-Ray 逆コンパイラーとオープンソースの Snowman 逆コンパイラーの両方を使用して、比較のためにバイナリから 426 個のスタイル計測上重要な特徴ベクトルを抽出することを意味しました。
次に、プログラマー1人あたり8つの実行可能バイナリを用いてランダムフォレスト分類器を学習させ、コーディングスタイルの正確な作者モデルを生成しました。これにより、「これまで見たことのない実行可能バイナリのベクトル表現」に基づいて作者を分類することが可能になりました。
研究者らは、「最適化されていない実行可能バイナリから 100 人のプログラマーの匿名性を 78 パーセントの精度で解除できるが、最適化された実行可能バイナリから匿名性を 64 パーセントの精度で解除できる」と指摘している。
「また、実行可能バイナリからシンボル情報を取り除くと、精度が66%に低下することも示しました。これは驚くほど小さな低下です。これは、コーディングスタイルが複雑な変換にも耐えることを示唆しています。」
研究者らは今後の研究で、バイナリから文体特性を完全に削除して匿名化できるかどうか、また、ポリモーフィズムと暗号化を組み合わせた高度な難読化手法を駆使してマルウェアの作者を特定するなど、現実世界の作者特定事例を調べる予定である。®