コード スタイロメトリー(プログラム著作者帰属またはソース コード著作者分析とも呼ばれる) は、コンピュータ コードにスタイロメトリーを適用して、匿名のバイナリ コードまたはソース コードの著作者を帰属させることです。多くの場合、プログラミング コードの特徴的なパターンと特性を分解して調査し、著作者が判明しているコンピュータ コードと比較します。[1]ソフトウェア フォレンジックとは異なり、コード スタイロメトリーは、盗作検出、著作権調査、著作者検証など、知的財産権侵害以外の目的で著作者を帰属させます。 [2]
歴史
1989年、研究者のポール・オマーン氏とカーティス・クック氏は、書体の特徴に基づいた「マーカー」を使用して、6人の著者によって書かれた18の異なるPascalプログラムの著者を特定しました。[3]
1998年、研究者のスティーブン・マクドネル、アンドリュー・グレイ、フィリップ・サリスは、C++で書かれたコンピュータプログラムのソースコードの著者を特定する辞書ベースの著者属性システムであるIDENTIFIED(法医学的識別、検査、および識別のための非言語依存トークン情報の統合辞書ベース抽出)を開発しました。研究者は、ソースコードの書き方の柔軟性の度合いを使用して著者を特定できることに注目しました。[4]
- ソースコード内のアルゴリズムが与えられた問題を解決する方法
- ソースコードのレイアウト方法 (間隔、インデント、境界特性、標準見出しなど)
- アルゴリズムがソースコードに実装される方法
IDENTIFIEDシステムは、まず関連するすべてのファイルをマージして単一のソースコードファイルを生成し、次に各メトリックの発生回数をカウントするメトリック分析を行うことで著者を分類しました。さらに、このシステムは新しい辞書ファイルとメタ辞書を作成する機能があるため、言語に依存しませんでした。[4]
1999年、スティーブン・マクドネル率いる研究チームは、7人の著者がC++で書いた351のプログラムに対して、3つの異なるプログラム著者識別技術のパフォーマンスをテストしました。研究者は、バックプロパゲーションアルゴリズム、多重判別分析(MDA)、事例ベース推論(CBR)でトレーニングされたフィードフォワードニューラルネットワーク(FFNN)の使用の有効性を比較しました。実験の終了時には、ニューラルネットワークとMDAの両方の精度率は81.1%でしたが、CBRは88.0%の精度パフォーマンスに達しました。[5]
2005 年、エーゲ大学の情報通信システムセキュリティ研究所の研究者らは、バイトレベルのnグラムを使用してプログラムの作成者を分類する、言語に依存しないプログラム作成者属性の手法を導入しました。この手法では、ファイルをスキャンし、ソースコードで見つかったさまざまなnグラムとその出現回数の表を作成しました。さらに、このシステムは、各作成者からのトレーニング例の数が限られている場合でも動作できます。ただし、各作成者のソースコードプログラムの数が多いほど、作成者属性の信頼性が高まります。この手法をテストした実験では、nグラムを使用した分類の精度は最大 100% に達しましたが、プロファイルサイズが 500 を超え、 nグラムのサイズが 3 以下の場合は精度が大幅に低下しました。[3]
2011年、ウィスコンシン大学の研究者らは、ソースコードではなくプログラムのバイナリコードに基づいてプログラマーを特定するプログラム著者属性システムを開発しました。研究者らは機械学習とトレーニングコードを利用して、コードのどの特徴がプログラミングスタイルを説明するのに役立つかを判断しました。10人の異なる著者が書いた一連のプログラムでこのアプローチをテストした実験では、システムは81%の精度を達成しました。約200人の異なる著者が書いた一連のプログラムを使用してテストしたところ、システムは51%の精度を達成しました。[6]
2015年、プリンストン大学、ドレクセル大学、メリーランド大学、ゲッティンゲン大学のポスドク研究員チームと米国陸軍研究所の研究者が、1,600人のプログラマーが書いたプログラムのサンプルプールから94%の精度でプログラムの作者を特定できるプログラム作者属性システムを開発した。この方法論は4つのステップから構成されていた。[7]
- 逆アセンブル- プログラムを逆アセンブルして、その特性に関する情報を取得します。
- 逆コンパイル- プログラムは、抽象構文木を取得するために逆コンパイルを通じてC のような疑似コードのバリアントに変換されます。
- 次元削減- 著者識別に最も関連性が高く有用な特徴が選択されます。
- 分類- ランダム フォレスト分類器は、プログラムの作成者を特定します。
このアプローチでは、空白、タブとスペースの使用、変数名など、コードのさまざまな特性を分析し、サンプルコードをコードの作成に関連する構造上の決定を表示するツリーのような図に変換する構文木分析と呼ばれる評価方法を使用しました。これらの図の設計では、コードに組み込まれたコマンドの順序と関数の深さが優先されました。[8]
2014年のソニー・ピクチャーズへのハッキング攻撃
米国の諜報機関は、ソフトウェア、技術、ネットワークソースを評価した結果、2014年にソニー・ピクチャーズに対して行われたサイバー攻撃は北朝鮮が後援していたと断定した。サイバーセキュリティの専門家が、攻撃に使用されたコードと、 2013年に北朝鮮が韓国の銀行や放送会社に対して行った攻撃で使用されたShamoonと呼ばれる悪意のあるソフトウェアとの類似点に気づいたことが、この攻撃の犯人特定につながった。[9]
参考文献
- ^ Claburn, Thomas (2018年3月16日). 「FYI: AIツールはバイナリ実行ファイルから匿名コーダーの正体を暴くことができる」The Register . 2018年8月2日閲覧。
- ^ コードスタイルメトリによるプログラマーの匿名化解除。2015年8月12日。ISBN 9781939133113. 2018年8月2日閲覧。
{{cite book}}:|website=無視されました (ヘルプ) - ^ ab Frantzeskou、ジョージア州; Stamatatos、Efstathios; Gritzalis、Stefanos (2005 年 10 月)。「サイバー犯罪捜査プロセスのサポート: バイトレベルの情報に基づくソースコード作成者の効果的な判別」。電子ビジネスおよび通信ネットワーク。コンピュータおよび情報科学における通信。第 3 巻。pp. 283–290。doi : 10.1007/978-3-540-75993-5_14。ISBN 978-3-540-75992-8– ResearchGate経由。
- ^ ab Gray, Andrew; MacDonnell, Stephen; Sallis, Philip (1998 年 1 月)。「IDENTIFIED (法医学的識別、検査、および判別のための非言語依存トークン情報の統合辞書ベース抽出): ソフトウェア フォレンジック用のソース コード メトリック抽出用辞書ベース システム」。議事録。1998 国際会議ソフトウェア エンジニアリング: 教育と実践 (カタログ番号 98EX220) 。pp . 252–259。doi :10.1109 / SEEP.1998.707658。hdl : 10292/ 3472。ISBN 978-0-8186-8828-7. S2CID 53463447 – ResearchGate経由。
- ^ MacDonell, Stephen; Gray, Andrew; MacLennan , Grant ; Sallis, Philip (1999 年 2 月)。「事例ベース推論、フィードフォワード ニューラル ネットワーク、多重判別分析を使用してプログラム作成者を識別するソフトウェア フォレンジック」。Neural Information Processing。1。ISSN 1177-455X – ResearchGate 経由。
- ^ Rosenblum, Nathan; Zhu, Xiaojin; Miller, Barton (2011 年 9 月)。「このコードを書いたのは誰か? プログラム バイナリの作成者の特定」。第 16 回ヨーロッパ コンピュータ セキュリティ研究会議の議事録。Esorics'11 : 172–189。ISBN 978-3-642-23821-5– ACM Digital Library経由。
- ^ Brayboy, Joyce (2016年1月15日). 「身元調査研究が成熟するにつれ、悪意のあるコーダーは匿名性を失う」.米陸軍. 2018年8月2日閲覧。
- ^ Greenstadt, Rachel (2015年2月27日). 「サイバー指紋の探知: コーディングスタイルで匿名プログラマーを特定」. Forensic Magazine . 2018年8月2日閲覧。
- ^ Brunnstrom, David; Finkle, Jim (2014年12月18日). 「米国、ソニーのハッキング攻撃に『比例した』対応を検討」ロイター. 2018年8月2日閲覧。
