抄録/ポイント:
抄録/ポイント
文献の概要を数百字程度の日本語でまとめたものです。
部分表示の続きは、JDreamⅢ(有料)でご覧頂けます。
J-GLOBALでは書誌(タイトル、著者名等)登載から半年以上経過後に表示されますが、医療系文献の場合はMyJ-GLOBALでのログインが必要です。
バイナリコードの類似性比較方法は,主にソフトウェアのバグを見つけ,ソフトウェアの盗用を検出し,マルウェア分析中の作業負荷を軽減するために使用されます。本論文では,制御フローグラフ(CFG)と各関数に含まれる分解された命令シーケンスの組合せを用いて各関数のバイナリコード類似性を比較し,特定の関数との類似性が高い関数を検出する方法を提案した。類似性比較を行う際の課題の一つは,コンパイル時の最適化とアーキテクチャが異なると,バイナリコードも異なることである。コードを比較するための主な単位は,命令,基本ブロック,および関数である。関数の課題は,基本ブロックが組み合わされたグラフ構造を持っているため,類似性を導き出すのが比較的難しいことである。しかし,IDAのような解析ツールは,機能単位で分解された命令シーケンスを示す。関数ベースで類似性を検出することには,アナリストによる理解の簡素化を促進するという利点がある。前述の課題を解決するため,自然言語処理の分野で機械学習法を用いた。この分野には,2017年現在,さまざまな言語処理タスクの各記録を更新するトランスフォーマーモデルがあり,2021年現在,トランスフォーマーは言語処理タスクの各記録を更新するBERTの基盤となっている。また,グラフ構造から各ノードの特徴を捉えるために機械学習技術を用いたノード2vecと呼ばれる方法がある。本論文では,トランスフォーマーとノード2vecの組合せであるSIBYLを提案した。SIBYLでは,類似のアイテムが近づき,異種アイテムが移動されるように,学習中に三重項損失と呼ばれる方法を用いる。SIBYLを評価するために,実世界で広く使われているオープンソースソフトウェアを用いた新しいデータセットを作成し,そのデータセットを用いて訓練と評価実験を行った。評価実験では,Rank1とMRRのような評価指数を用いて,さまざまなアーキテクチャにわたるバイナリコードの類似性を評価した。実験結果は,SIBYLが既存の研究より優れていることを示した。これは,機械学習がグラフ構造の特徴と関数ごとの命令の順序をキャプチャできるという事実によると考える。これらの実験の結果を詳細に示し,続いて議論と結論を得た。(翻訳著者抄録)