LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

ラックピープル | 

世界最大級の国際セキュリティカンファレンス「Black Hat USA 2024」に参加し、Arsenalに登壇しました

マルウェアが持つアンチデバッグ機能を自動で抽出するIDAとGhidraのプラグインを発表

サイバー救急センターの武田です。

脅威分析チームでは、最新のサイバー攻撃の調査だけでなく、解析の効率化にも取り組んでいます。実際に開発したツールを公開することで、少しでも解析の手助けになれば幸いです。

2024年8月3日から8月8日に米ラスベガスで開催されたセキュリティカンファレンス、「Black Hat USA 2024」のArsenalにて、「AntiDebugSeeker: Automatically Detect Anti-Debug to Simplify Debugging (IDA/Ghidra)」というタイトルで発表してきました。※1

※1 Black Hat USA 2024 | Arsenal Schedule

この記事では、その一部の内容とカンファレンスの様子について紹介します。

セキュリティカンファレンス「Black Hat USA」とは

Black Hat USAは、世界で最も大規模で、権威のある情報セキュリティイベントのひとつです。世界中のさまざまな企業や政府関係者、サイバーセキュリティの専門家などが集まり、最新の研究や技術について発表が行われます。

会場は例年、マンダレイ・ベイ・コンベンション・センターにて開催され、前半4日間がトレーニングで、残りの後半2日間がカンファレンスとなっています。当日は、広い会場を生かして、3つのイベントに分かれます。

1つは、Briefingsという講演を行うイベント、2つ目は、Business Hallで行われる企業が出展する展示ブース、3つ目は、Arsenalという展示ブース形式で、先進的なセキュリティツールを発表するイベントで構成されています。BriefingsとArsenalに関しては、それぞれCall For papers、Call For Toolsを提出し、厳格な審査を突破したもののみが採択されます。

発表内容

昨年、マルウェアに含まれるアンチデバッグ機能を自動的に識別するツール「AntiDebugSeeker」というツールを公開しました。2023年10月のLAC WATCHでも、IDA上で起動するプラグインの紹介をしています。

今回本ツールをIDA上だけでなく、オープンソースのバイナリ解析ソフトウェアGhidraでも使用ができるように、新たに開発をしたプラグイン※2について発表しました。

※2 GitHub - LAC-Japan/Ghidra_AntiDebugSeeker: Automatically identify and extract potential anti-debugging techniques used by malware.

「Black Hat USA」メインエントランス 「Black Hat USA」メインエントランス
Keynoteスピーチの様子
会場のメインエントランスとKeynoteスピーチの様子

実行に必要なファイル

Ghidra上で実行するには2つのパターンがあります。Ghidraスクリプトを実行する方法と、Ghidraのプラグインとして実行する方法です。

Ghidraスクリプトを実行する場合は、スクリプトマネージャーにて、GitHubからダウンロードしたスクリプト用のAntiDebugSeeker.javaを作成し、起動できます。

Ghidraのプラグインとして実行する場合は、ghidra_11.0.1_AntiDebugSeeker.zipを事前にGhidra上で組み込んで動作させる必要があります。2、3の定義ファイルについては、スクリプトまたは、プラグインで動作させる場合の両方で必要になります。プラグインのほうが、スクリプト版を実行するより多少手間がかかりますが、GUIを用意していることもあり、こちらのほうをおすすめします。

  1. AntiDebugSeeker.java(Ghidraスクリプト)
    ghidra_11.0.1_AntiDebugSeeker.zip(Ghidraプラグイン)
  2. anti_debug_Ghidra.config(for Ghidra:アンチデバッグ機能を検知するためのルールが含まれているファイル)
  3. anti_debug_techniques_descriptions_Ghidra.json(for Ghidra:検知されたルールの説明が含まれているファイル)

プラグインの起動方法

Ghidraのコードブラウザーを起動後、画面上部のWindowから「AntiDebugSeekerPlugin」をクリックすると、GUI画面が立ち上がります。画面の3つ並んでいる一番左のボタンをクリックすると、プラグインが起動します。

AntiDebugSeekerの起動方法
AntiDebugSeekerの起動方法

Start Analyzeボタンをクリックすると、ルールを定義しているanti_debug_Ghidra.configとルールの説明を定義しているanti_debug_techniques_descriptions_Ghidra.jsonを読み込むためのファイル選択画面が表示されます。

定義ファイルの読み込み
定義ファイルの読み込み

2つの定義ファイルを読み込むと、自動で解析が始まります。画面右のプログレスバーが100%になると、「Analysis Complete」というメッセージが表示されます。

実行画面(例)
実行画面(例)

解析結果の確認方法

解析結果の確認方法は、2種類あります。

1つ目は、実行した際の画面で確認する方法です。解析終了後の画面をスクロールすることで、検知結果を確認できます。この画面では、検知したものと検知していないものの情報が混ざっているため、検知したものに焦点を当てたい場合は、赤枠で囲った真ん中のボタン「Display only the detection results」をクリックすることで、ノイズを消し、検知した結果のみを見ることも可能です。

Display only the detection resultsボタンのクリック時の結果(例)
Display only the detection resultsボタンのクリック時の結果(例)

また、解析結果を関数ごとにまとめて、どの関数を調査すればよいかなどを確認する方法として、赤枠一番右のボタン「Detected Function List」をクリックすることで、関数でグルーピングした結果を表示してくれます。

Detected Function Listボタンのクリック時の結果(例)
Detected Function Listボタンのクリック時の結果(例)

2つ目は、Ghidraのブックマーク機能から解析結果を確認する方法です。APIベースで検知したものは、"Potential of Anti Debug API"、複数のキーワード検索で検知したものは、"Anti Debug Technique"という2つのカテゴリーに分けて、ブックマークに登録するようになっています。このブックマークから検知した結果をクリックすることで、該当のアドレスに遷移でき、検知結果を確認できます。

GhidraのBookmarks一部抜粋(例)
GhidraのBookmarks一部抜粋(例)

カテゴリー"Potential of Anti Debug API"で検知したアドレスについては、緑色の背景色になっています。画像では、GetTickCountというWindows APIをTime Checkとして、anti_debug_Ghidra.configファイルで定義しているため、プレコメントとしてその内容が付与されます。

Potential of Anti Debug APIカテゴリーの結果(例)
Potential of Anti Debug APIカテゴリーの結果(例)

また、カテゴリー"Anti Debug Technique"は、オレンジ色の背景色になります。プレコメントについては、前段と同様です。追加の機能となるのは、anti_debug_techniques_descriptions_Ghidra.jsonにて、定義したルールの説明を、ポストコメントとして表示します。

この説明を確認することで、なぜその該当のアドレスを検知したのか、検知した内容が誤検知ではないかの判断やどう回避すべきかの参考になります。

また、画像の赤枠のように、3つのキーワードを設定したものを検知した場合は、最初のキーワードは、カテゴリー名に、"Anti Debug Technique"と記載され、Descriptionにルール名、2つ目のキーワードは、Second KeywordとIt was detected atという文字が設定されています。3つ目のキーワードも同様で、それぞれがどこで検知しているかをLocationからアドレスを確認できます。これは、キーワードが2つ設定されている場合も同じです。

Anti Debug Techniqueカテゴリーの結果(例)
Anti Debug Techniqueカテゴリーの結果(例)

主な機能についての紹介は、以上になります。紹介したプラグインを使用すれば、Ghidraでマルウェア解析した場合もアンチデバッグ機能を自動で見つけることができます。本ツールが、マルウェア解析を始めて間もない方や、アンチデバッグに壁を感じている方など、解析の役に立てば幸いです。

こちらの記事では、細かいルールファイルの説明や設定方法、注意点などは、すでに公開されているIDAのプラグインと同じであるため、割愛しています。Ghidra版のAntiDebugSeekerについてもっと詳しい内容を知りたい方は、GitHubに掲載していますので、併せてご確認いただければと思います。

カンファレンスの様子

日本からアメリカのラスベガスに渡航するには、一度、アメリカ国内での乗り継ぎが必要です。私たちは、羽田空港からサンフランシスコ空港を経由して、ラスベガスのネバタ、ハリーリード国際空港に向かいました。トランジットを含めると、約18時間の予定でした。しかし、サンフランシスコで飛行機の遅延に遭遇し、約24時間と丸一日かかりました。空港から会場までは、タクシーで10分ほどと近い距離にあります。

8月のラスベガスは、最低気温24度、最高気温41度で、とても暑いイメージでしたが、実際は、東京よりもかなり湿度が低いこともあり、カラっとした暑さでした。日差しは、ひしひしと肌に感じるように強かったことを覚えています。こちらの写真を撮ったのは、夜の19時過ぎでしたが、まだ夕方のように明るく、20時を過ぎてから暗くなっていきます。

ラスベガスの風景
ラスベガスの風景

Black Hat USA 2024の報告※3によると、117の国から21,700人以上の参加者を迎え、20,000人以上が対面で、1,700人以上がオンデマンドでアクセスして参加しています。この参加人数の巨大さが、こちらのカンファレンスが世界最大級と言われるのを物語っています。

※3 Black Hat | August 14, 2024 - Black Hat USA 2024 Closes on Record-Breaking Event in Las Vegas

ブリーフィング会場
Business Hallのブースエリア
ブリーフィング会場とBusiness Hallのブースエリア

今年のBlack Hat USAでは、アメリカの大統領選が近いことが関係しているのか、Keynoteで、セキュアな選挙を実現するために、データベースをどうやって守るか、ディスインフォメーション等を討論し、取り上げていました。ブリーフィングでは、AIをテーマにしたものやサイバー保険、脆弱性、フォレンジック、標的型攻撃に関するものなどジャンルの幅は広く、さまざまな講演が行われていました。

私が開発した「AntiDebugSeeker」に関する発表は、Business HallのArsenalの会場で、1時間15分の枠をもらい、実施しました。3回ほどデモを実施し、聞いてくれている方が、どこに興味があるのかを考えながら、臨機応変に説明することが難しかったですが、ツールのコンセプトや細かいルールの指定方法や検索範囲、改良点などの質問を受け、日本の方や海外の方からツールに関して生の声をたくさんもらえ、とても参考になりました。

発表の様子
発表の様子

おわりに

Black Hatへの参加は初めてでしたが、どの講演も興味深い内容で、とても良い刺激を受けました。また、講演やArsenalだけでなく、ブースでも、さまざまな企業の方との情報交換ができ、次につながるコミュニケーションがとれました。

Black Hat全体を通して、さまざまな分野のセッションやツールの発表が行われているため、必ず自分が興味を持っているものが見つかると思います。私自身とても実のある2日間を過ごすことができました。

余談ですが、他のカンファレンスと違い、会場がとても広く、また、講演が行われる部屋数もかなり多いです。そのため、講演ごとの移動の距離も多くなり、屋内をたくさん歩きました。

また、会場周辺のホテルから会場までは、地下道でつながっているため、タクシーやバスに乗る必要もなく、徒歩がメインの移動手段となります。8月8日の歩数を確認すると、25,000歩(約17km)以上、歩いていました。テレワークなどでなかなか運動をしていないと疲れてしまう可能性があるので、少し事前に運動をしておくとよいかもしれません。

8月8日の歩数
8月8日の歩数

カンファレンス中は、屋内のコンビニや飲食できるレストランの施設が充実しているため、十分生活できます。そのため、ラスベガス到着時を除いて、カンファレンスの最終日に、久しぶりに屋外に出て、外の空気を吸いました。(笑)

最後に、次のBlack Hatは、ロンドンで今年の12月に開催されます。もし、Black Hatに興味を持ちましたら、ぜひ参加してみてください。

会場近くの噴水で有名なベラージオホテル
会場近くの噴水で有名なベラージオホテル

この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

  • マルウェアからアンチデバッグ機能を自動識別するツール「AntiDebugSeeker」を公開

  • セキュリティカンファレンス「Botconf 2024」に登壇しました〜New Modular Malware RatelS: Shades of PlugX

  • 『サイバー攻撃者との「交渉」の舞台裏と、これからのインシデントレスポンス』が公開