脅威を積極的に探索する「スレットハンティング」、そして専門家が蓄積する脅威についての知見である「スレットインテリジェンス」の共有は、サイバーセキュリティ業界での一般的な慣行であり、多くの専門家のみならず、実際の対策のためにも役立っています。スレットインテリジェンスの中でも、マルウェア検体間の類似性調査は、あるマルウェアに関連する亜種の把握に使用されます。特に標的型攻撃の調査においては、使用されるマルウェアの類似性から複数の攻撃事例の関連性や、その攻撃の背後にいる攻撃者や攻撃目的などを導き出すための重要な情報となりえます。トレンドマイクロではマルウェアの類似性を特定する調査方法の1つとして「Graph Hash」の活用を進めています。今回、その有用性を実証するために、日本でも攻撃が確認された標的型攻撃キャンペーン「Orca」の調査にGraph Hashを適用しました。
※本記事で解説する「Graph Hash」を利用した調査の手法は、2019年8月29日にシンガポールで開催された「Hack in the Box GSEC Conference 2019」における講演「What Species of Fish Is This? Malware Classification with Graph Hash」で解説されたものです。
図1:Graph Hashで使用するコールグラフの簡易例
■マルウェアの類似性を示すスレットインテリジェンス:Graph Hash
スレットインテリジェンスの具体的な共有例として、マルウェア検体のMD5やSHA256などのハッシュ値による侵入の痕跡(Indicators of compromise、IoC)の交換などが挙げられます。このため、セキュリティ業界では「ssdeep」、「sdhash」、「imphash」、また弊社の「Trend Micro Locality Sensitive Hashing(TLSH)」など様々なハッシュ化技術、方法論、ツールが提案されています。ハッシュを使用したアプローチ方法は、バイナリを観点とした調査です。これらの技術や方法論は、リサーチャがバイナリファイル間の類似性を見つけて特定するのに役立ちます。
一方、実行可能ファイルの特性を比較するためにグラフ(図表)を活用する別のアプローチ方法もあります。 たとえば、セキュリティ会社zynamicsが提供する比較ツール「BinDiff」は、実行可能ファイルの全体像を表示し、二つの実行可能ファイルが持つ類似点または相違点を見つけ出します。しかし この手法では同時に2つのファイルしか処理できません。
トレンドマイクロが「Graph Hash」と名付けた調査手法は、図表を用いて実行可能ファイルのハッシュ値を計算することによって、上記二つのアプローチ方法の利点を取り入れており、一貫してより効率的にマルウェアを分類するのに役立ちます。Graph Hashによって実際的なマルウェア分類へのアプローチ方法を提供することが可能になり、MD5やセキュアハッシュアルゴリズム(SHA)ファミリなどの単純なチェックサムを超えた実用的な脅威インテリジェンスの共有に役立つと考えています。
■Graph Hashとは?:コールグラフによる実行可能ファイルの表示
Graph Hashでは、関数間の呼び出し関係を示すコールグラフを使用して実行可能ファイルを表示します。 基本的に実行可能ファイルのプロセスの流れを示すコールグラフは、実行可能ファイルの関数ごとにノードグラフを作成し、ある関数を別の関数と相互参照するコールの存在に基づいて関数のノードを繋げることで生成されます。 以下の図2は、コールグラフの例を示しています。
図2:解析ツール「Interactive Disassembler Pro(IDA Pro)」を利用して描かれたコールグラフの例
上の図1に示されているように、同じプロセスの流れを持つ実行可能ファイルは同じコールグラフを共有します。 これを利用し、コールグラフから実行可能ファイルを分類できます。このようなコールグラフを作成した後、コールグラフを「コールグラフパターン」(CGP)という形式に変換します。 CGPは、対応するコールグラフを通じて表示されるバイナリベースのデータ形式です。この形式変換は、バイナリのアプリケーションを高度なレベルの読み取り可能なテキストに変換するIDA Proというツールを利用して行われます。CGPを使用することで、以下の実行が可能となる利点があります。
- データの誤りを確認するチェックサムを取得
- 元のハッシュ値に近い値をとるfuzzy hashing
- 検索分析または類似性分析
■サイバー諜報活動「Orca」の調査にGraph Hashを適用
トレンドマイクロでは、Graph Hashの有用性を実証するために、2011年から2017年まで追跡調査をしたサイバー諜報活動「Orca」にこのGraph Hashを適用しました。
「Orca」とは防衛関連の機密情報を狙い日本、韓国、インド、ロシアなどを主な標的としたサイバー諜報活動とその背後にいる攻撃者に対するトレンドマイクロの呼称です。標的型攻撃は氷山の一角にすぎない場合が多く、全体像を把握するためには深い調査が必要となります。2011年、日本のある重工業企業が、標的型攻撃の標的とされていたことを明らかにしました。以降の6年間、トレンドマイクロはこの攻撃についての調査と追跡を継続し、2017年に「Operation Orca – a cyber espionage diving in the ocean for at least six years」としてこのサイバー諜報活動の詳細について発表しています。
トレンドマイクロでは6年にわたる調査から、Orcaが攻撃の対象となった企業に対して使用したとされる322個の実行可能ファイルの検体を収集し解析を行いました。また、マルウェアが利用した通信プロトコルや遠隔操作サーバ(C&Cサーバ)などの条件に基づいて、すべての検体を10のマルウェアファミリに分類しました。 この調査結果を元に、Orcaの攻撃に関連する検体に対しGraph Hashを使用して、グループ化/類似率を計算しました。 以下の表1はその結果をまとめたものです。単純にssdeep方式のハッシュに基づいて分類した場合よりも、Graph Hash手法を使用した分類の方が15ポイント以上も上回る結果となりました。
検体のグループ化/類似率 | |
Graph Hash(MD5使用)による分類 | 81% (260/322) |
Graph Hash(ssdeep使用)による分類 | 85% (274/322) |
ファイルのssdeepハッシュによる分類 | 66% (211/322) |
エンジニアの解析に基づく分類 | 100% (322/322) |
もちろん、Graph Hashを活用した調査にも限界があります。 この調査手法は、「IDA Pro」に大きく依存しています。また、マルウェアのパッカー機能を認識するCGPの能力は限られており、グループ化の正確性が落ちる場合もあります。しかし、大事なことは調査方法の長所と短所を把握し、適切に使用することです。弊社は、このGraph Hashを微調整してその機能をELFファイルとMach-Oファイル、およびリバースエンジニアリング用のフレームワークまたはツールに拡張することによって活用しています。
参考記事:
- 「Malware Classification with ‘Graph Hash,’ Applied to the Orca Cyberespionage Campaign」
By Chia Ching Fang and Shih-Hao Weng (Threat Researchers)
翻訳: 下舘 紗耶加(Core Technology Marketing, Trend Micro™ Research)