1/12 Olympic Destroyerの内部構造を紐解く mbsd.jp/blog/20180215.html 2018.02.15 コンサルティングサービス事業本部 サイバーレジリエンス事業部 サイバーインテリジェンスグループ 吉川 孝志、菅原 圭 2月8日から韓国で開催されている平昌オリンピックが日々世間を賑わせているさなか、平昌 オリンピックを狙ったサイバー攻撃に関する情報が水面下で流れています。 2月9日頃から平昌オリンピック組織委員会の内部でシステムトラブルが発生していた問題 で、2月11日になり平昌オリンピック組織委員会から一連の障害はサイバー攻撃によるもの と明らかにされました。 また、CiscoのTalosはこの攻撃に用いられたとみられるマルウェア「Olympic Destroyer」 (オリンピック・デストロイヤー)に関する情報を公開しました(※1)。(なお、Talosは 公開時点で当該情報を中程度の信頼度としています) (※1:Olympic Destroyer Takes Aim At Winter Olympics:http://blog.talosintelligence.com/2018/02/olympic- destroyer.html) 我々は「Olympic Destroyer」とされている検体の一つを入手し、独自に解析を進めた結 果、調査時点で新たにいくらかの興味深い解析結果が見えてきたため、以下にマルウェアの 全体像と共にまとめて共有します。 「Olympic Destroyer」の構成図 Olympic Destroyerの本体は実行形式(EXE)ファイルであり、自身の内部(リソースセク ション)に5つの難読化されたファイルを保有しています。これらのファイルはそれぞれ目 的をもったEXEファイルであり、必要に応じて復号・使用されます。 https://www.mbsd.jp/blog/20180215.html http://blog.talosintelligence.com/2018/02/olympic-destroyer.html 2/12 図1 Olympic Destroyerの構成図 リソースファイルの一部には、昨年度話題となった「NotPetya」と同様に、正規プログラム である「PsExec」を横展開時に利用するために難読化して保有しています。 3/12 図2 リソースセクションに埋め込まれているPsExec 「Olympic Destroyer」の挙動 Olympic Destroyerは、実行されると、%temp%フォルダに以下のEXEファイルを作成しま す。 %temp%\<ランダムな文字列>.exe ・・・(1)パスワードダンプツール①(ログイン 情報用) %temp%\<ランダムな文字列>.exe ・・・(2)パスワードダンプツール②(ブラウザ 情報等用) %temp%\<ランダムな文字列>.exe ・・・(3)PsExec(正規プログラム/リモート 実行ツール) %temp%\<ランダムな文字列>.exe ・・・(4)ワーム活動・証拠隠滅・障害活動 まず(1)と(2)のEXEファイルを実行することで、OSのログイン情報および、ブラウ ザの保存情報などの各種ログイン情報・パスワード情報を取得します。 4/12 次に、(3)と(4)のEXEファイルを利用してネットワークを介したワーム活動と破壊活 動を行います。具体的には、GetIPNetTableによりARPテーブル情報を取得し、WMI (”SELECT ds_cn FROM ds_computer”クエリ)を利用して得られた端末一覧情報を取得、 それらの宛先に対し、自身が上記でドロップしたPsExecを利用することでリモート先への 自身のコピー及びリモート実行を行う事で横展開(ワーム活動)を行います。その際上記で 摂取したログイン情報を横展開のアクセス試行に利用します。 (4)のEXEファイルは横展開の動作を終えると、以下の証拠隠滅および破壊活動に関わる 動作を行います。 ボリュームシャドーコピー(システムの復元)の削除 システムバックアップの削除(wbadminによる) OSのスタートアップ修復の無効化 イベントログ(SYSTEMおよびSECURITY)の削除 全てのサービスの無効化 ファイル共有されているファイルの一部を0で上書き破壊 これらの破壊動作を行った後、強制的に端末をシャットダウンします。 図3 破壊活動に関連した処理を行うコード領域 5/12 図4 全てのサービスを停止させる挙動 以下は、ファイル共有されているファイルを上書きする処理ですが、先頭から一部だけ上書 きすることでファイルヘッダを破壊しつつ書き込みサイズを抑え効率的にファイルを破損さ せていきます。ファイルを破壊する際、ファイルの内容を事前に読み込む処理がないため、 復元を予定した暗号化等の処理ではなく単純な破壊目的であることがわかります。 図5 ファイルを一部のサイズだけ0で上書きする処理 一方Olympic Destroyer本体は、上記(4)のEXEファイルの動作と並行して自身の隠蔽 (消滅)を行います。具体的には、正規プログラムである「notepad.exe」を隠し状態で起 動しWriteProcessMemoryによりコードインジェクションを実施、CreateRemoteThreadで 「notepad.exe」内に書き込まれたコードを実行します。そのコードにより、Olympic Destroyerの本体が削除されます。(なおその際、Olympic Destroyerの本体は意味のないデ ータで内容を上書きされた上で削除されます。これには、フォレンジックを困難にさせる目 的があると推測されます。)その後、notepad.exeは終了します。 6/12 図6 notepad.exeにインジェクションされたコードが本体を削除する部分 Olympic Destroyerの主な挙動は以上であり比較的シンプルなものとなっています。 摂取した情報をC&Cサーバ等へ流出させる動作やバックドアに類似するような挙動などは持 ち合わせていません。また、明確な破壊活動と容易に判断できるようなMBRの破壊や大量 ファイルの暗号化等の挙動なども持ちません。これらのことから、あくまで感染したコンピ ューターに「システム障害」が発生したと思わせ被害者側を混乱させる目的等があったと推 測することができます。 なお一連の感染が行われた後、コンピューターは起動させると以下のようにOSの起動画面 とブルースクリーンが繰り返し表示され正常に使用することが困難となることを確認してい ます。 図7 Olympic Destroyerに感染しシャットダウンした後のPCの起動様子(Windows7 x86 7/12 環境) 解析で見えた注目すべきポイント1(管理者権限で実行される前提の作 りと侵入経路) Olympic Destroyerは、LSASSからの認証情報窃取やvssadmin等を利用した破壊活動の挙動 がありますが、これらの操作の一部は管理者権限でないと実行することができません。また 一方で、実行された時点で自身のプロセスが管理者権限を持っていない場合UACを表示させ るなどの権限昇格を要求する挙動も見られません。つまり一般に確認されているOlympic Destroyerの検体ははじめから管理者権限で実行されることを前提とした作りになっている ようにみえます。本記事執筆時点でOlympic Destroyerの侵入経路は明らかになっていませ んが、管理者権限での動作が前提となっていることを考慮すると、Olympic Destroyerには 管理者権限を持ったさらに一段階上の階層となるドロッパー(親検体)がいたか、脆弱性を 悪用した権限昇格による攻撃を用いた侵入経路が想定できます。ただし、管理者権限の実行 権限がなくとも(権限がないことにより一部の処理に失敗しつつ)表面上はエラーなく一部 の動作(保有しているパスワードを用いた横展開等)は継続できることから、完全に動作し ないというわけではない点に注意が必要です。 解析で見えた注目すべきポイント2(取得したログイン情報の自身への 埋め込みによる利用) 現在一般に入手できるOlympic Destroyerの検体には、複数のログイン情報と思われる文字 列がバイナリに直接埋め込まれており、その多くが「Pyeongchang2018」というドメイン 名と思われる文字列を含んでいることがわかっています。 8/12 図8 埋め込まれたログイン情報の概念図 図9 「Pyeongchang2018」という文字列が多くみうけられるログイン情報 我々の調査の結果、Olympic Destroyerは感染時に窃取したログイン情報(ユーザ名とパス ワード)の文字列を自身のバイナリの中間領域に埋め込んでいく挙動があることを確認しま した。 窃取情報の埋め込みがバイナリの末尾ではなく中間領域であることからファイルサイズは変 化しないため、見逃してしまう可能性がある挙動の一つです。 9/12 図10 Olympic Destroyerが感染するたびにログイン情報を埋め込んでいく概念図 以下は、実際に我々の検証環境で感染させた際の実行前後のOlympic Destroyerの差分結果 ですが、パスワードダンプツールにより摂取した情報を自身の内部に追記埋め込みしている ことがわかります。 10/12 図11 Olympic Destroyerが感染するたびにログイン情報を埋め込んでいく実証図 つまり、感染が広まっていくに従いマルウェアのバイナリに埋め込まれたログイン情報が増 えていくことを意味します。この動作から、当初から一見ハードコーディングされたように みえた複数のログイン情報は全て感染を重ねることで窃取され蓄積されたものと推測するこ とができます。この推測が正しいとした場合、Olympic Destroyerのバイナリに埋め込まれ たログイン情報の数を確認することで、おおよそどの時点の拡散検体なのか、また、初期感 染時の端末を追う手掛かりになるかもしれません。 その他の情報 昨年度はWannaCry、NotPetya、BadRabbitなど世界的に混乱を招く大きなマルウェアイン シデントが発生しましたが、それらの検体を解析してきた観点でOlympic Destroyerを見て みると、BadRabbitおよびNotPetyaに類似する挙動が一部垣間みえます。 例えば、以下は名前付きパイプによるプロセス間通信を用いた子プロセスとの連携に関わる コード部分の比較ですが、リソース領域から一時的に必要なEXEを%temp%に復号し、 GUIDをパイプ名に利用した名前付きパイプによるプロセス間通信により必要な情報のみを 取得して一時利用するといった処理の流れがほぼ同一です。その他にも、リソースセクショ ンを用いた必要ファイルの格納および展開利用のテクニックや、PsExecを用いた横展開な どいくらか気になる類似点があります。 11/12 図12 NotPetya、BadRabbit、Olympic Destroyerのコード比較 当然、挙動やコードを類似させようとして意図的に作り上げることは可能なため、これらを もって何かを断言できることではありませんが、興味深い調査結果の一つであるといえるで しょう。 ※本記事で使用した検体のハッシュ値は以下となります。 edb1ff2521fb4bf748111f92786d260d40407a2e8463dcd24bb09f908ee13eb9 吉川 孝志 の他のブログ記事を読む 菅原 圭 の他のブログ記事を読む https://www.mbsd.jp/blog/yoshikawa_index.html https://www.mbsd.jp/blog/sugawara_index.html 12/12 ページトップへ ©2004-2020 Mitsui Bussan Secure Directions, Inc. All rights reserved. ご利用条件 * 個人情報保護方針 * 情報セキュリティ基本方針 https://www.mbsd.jp/terms.html https://www.mbsd.jp/privacy.html https://www.mbsd.jp/security.html