ここから本文です

Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは

7/11(火) 7:55配信

@IT

 本記事では、ランサムウェアを含む「マルウェア感染」という、さまざまな企業が頭を悩ませる問題について、リクルートグループのコンピューターインシデント対応チーム「Recruit-CSIRT」の発想と技術をお伝えします。

ログ取得項目と確認対象

 今回は「リクルートに特化した独自マルウェア解析環境の構築」へのアプローチを紹介します。

 前回の「リクルートのCSIRTが、マルウェア対策の一部を内製化した理由」では、「未知のマルウェアへの対応」と「マルウェアによる情報漏えい経路のブロック」を内製化するに当たっては、マルウェアの挙動ログが必要になる、という課題が残ることを説明しました。

 もちろん、マルウェアの「リバースエンジニアリング※」と呼ばれるソースコード解析手法でも挙動ログの代わりとなる情報は入手できます。今回は、まず代表的なマルウェア解析方法を紹介し、その後、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説していきます。「培養」は「1つのマルウェアに継続的に餌を与えて、あえて進化・高機能化させること」を意味する、リクルートテクノロジーズの社内呼称です。社外の第三者に攻撃しないように防衛策を実施しながら試行しています。

□□
●※リバースエンジニアリングについて

 既存の製品を解体・分解して、製品の仕組みや構成部品、技術要素などを分析する手法の総称。マルウェアにおいては、0と1の機械語の実行ファイルに対して逆アセンブルや逆コンパイルして人が読める形のソースコードを明らかにしていくこと。この記事では難読化されているコードを読める形にすることも含む。
□□

●動いた結果(動的解析)と動く予測(静的解析)

 マルウェアを解析する方法として、多くの記事や著書に「表層解析」「動的解析」「静的解析」という手法が記載されています。ここでは、詳細は割愛しますが、「未知のマルウェアかどうかの判定」「マルウェアの通信先(C&Cサーバ)の特定」のためには、一般的にマルウェアに合わせてこれら3つの解析手法の併用が必要です。しかし、内製化運用を行うには、われわれのリソースでは対応しきれない手法がありました。それは、「静的解析」(Static Analytics)です。

 静的解析は、ここまでで紹介した「挙動ログ」つまり動いた結果を出力する「動的解析」(Dynamic Analytics)と呼ばれる手法とは異なり、前述のリバースエンジニアリングによる解析手法です。昨今のマルウェアは、何回も難読化が施されており、正しく読めるソースコードを数時間で抽出するのは難しくなっています。通信先の網羅抽出を検討できたり、機能の全容を知ったりするには必要な手法ですが、「静的解析まで行うマルウェア解析の内製化は難しい」と感じました。全てのマルウェアを迅速に解析するにはさまざまな理由で限界があるからです。

 まとめると、「マルウェアの持っている機能の全容把握」「マルウェア通信先の網羅抽出」の2点が難しくなったことになります。

 しかし、「リクルートグループには影響がない機能や通信であれば、明らかにできなくても良いのではないか?」と考え、「リクルートグループに影響があるマルウェアを動的解析する方法」を模索しました。

●まずは自分たちの環境を理解する

 リクルートグループの多くの従業員は、「リクルート標準端末」という業務に最適化された端末で仕事をします。そのため筆者は、まず自分に配布された端末のスペック、インストールされているアプリケーション、常に起動しているプロセスや外部接続している通信先を監視し、リストアップしました。さらに、再起動後に自動実行登録されているプログラムやパーソナルFW(Fire Wall)設定やブラウザの設定、Microsoft Officeの設定などを確認し、詳細理解を深めていきました。

 次に、リクルート標準端末の設計書を見ながら、デフォルトインストールされているアプリケーションの詳細なバージョンや独自アプリの理解を進めました。

 具体的な話はセキュリティ上ここでは書けませんが、Officeやブラウザなど比較的新しいバージョンに寄せて構成されていたので、ちょっと安心したのを覚えています。

●動かないものを無視するとは?

 マルウェアは主に下記の要素によって、動作を制御します。


1. 各種レジストリの内容
2. 動作環境の時刻
3. ブラウザのバージョン
4. ソフトウェアが脆弱(ぜいじゃく)なバージョンで動いているか
5. ファイルサーバやドメインコントローラーとの接続の有無
6. DNSサーバの設定
7. VM(仮想環境)の有無
8. 解析ツールがインストールされているか、モニターツールが起動しているかの有無
9. 割り当てられているインターネット出口のIPアドレス

 これらがマルウェアを作成した攻撃者が狙う脆弱性や標的組織の見極め方だとすると、攻撃者の意図したプラットフォームでなければ、マルウェアは悪性な挙動を行うことが難しくなります。実際、以下の理由により、リクルートを標的としない多くのマルウェアがわれわれの環境で動作しませんでした。

・OSの種類またはバージョンが不一致
・UAC(User Account Control)などOSのセキュリティ設定により防御
・DLLなどコンポーネントの欠落
・Officeオプションのセキュリティ設定による防御

 これ以外に、攻撃者側のマルウェア自体の開発が一部失敗していて悪性挙動まで届かないものもありました。

●リクルート標準端末を模倣した解析環境、その3つの工夫

 そこで、「われわれのリクルート標準環境で、長期潜伏やC&Cサーバとの通信などの悪性挙動を実施できたマルウェアは深堀り解析し、動作しない被疑ファイルは深堀りしない」という取捨選択アプローチを採れるようにしました。

 具体的には、社内で「Odoriba」と呼ばれている、リクルート標準端末を模倣した解析環境を構築しました。リクルート端末を動的解析の環境としてそのまま使うことはセキュリティルール上認められないので、「模倣」に徹しました。

 Odoribaでは、マシンスペックをはじめ、OSや各種Office、ブラウザのバージョン、さらにアンチウイルスソフトやデフォルトインストールされているアプリまで模倣して構築しています。隣接するファイルサーバとドメインコントローラーも構築し、マルウェアの横展開とドメインコントローラーへの不正アクセスを確認できるようにもしています。

 Odoribaならではのポイントが3つあります。

○【1】端末のセキュリティ機構

 OSのパッチから、一部を除くパーソナルFW設定やブラウザ、Officeのセキュリティオプションまで、社内環境と同じ設定を入れました。

 ほとんどのセキュリティ機構は、既存の振る舞い解析製品ではOFF、つまり脆弱な状態になっています。これは、なるべく多くのあらゆるマルウェアを動作させるためです。Odoribaでは、リクルート環境への影響の有無を確認するため、セキュリティ機構で防御できるものはフィルタリングして解析します。

○【2】IPアドレスや機密情報のファイル名まで実際に使われている名義、情報と統一させた

 ブラウザに覚えさせている各種アカウント情報も組み込み、攻撃者がマルウェアを通じてそれらの情報を開いたことを確認できるようにログを取得しています。攻撃者の目的の断片を読み取り、その意図をより多く残す工夫です。

○【3】長期観測

 Recruit-CSIRTでいう「長期」は「1時間以上」と定義しています。

 効率化の観点からは短時間で解析できた方がいいでしょう。しかし、昨今の標的型攻撃で利用されるマルウェアは長期間活動せず潜伏したり、長期的に新たなマルウェアをダウンロードして機能拡張したりするものが確認されています。またC&Cサーバも、日付、時間によってDNS名前解決先のIPアドレスが変わりました。

 既存の振る舞い解析製品だと、解析時間を定義した上で解析を実行します。実態としては、多くの製品はSleepコールによるマルウェアの停止をスキップする機能を使った上で、振る舞い解析時間を数分間にしています。5分間実施してみて、顕著な動作が見えなかったら最初から10分間に変更して再解析、それでもダメだったら30分間と時間を増やしていきますが、再解析を繰り返すと重複する無駄な解析時間を含んでしまいます。

 また、ほとんどの既存の振る舞い解析製品は「解析終了時間」になるまで、それまでの途中経過を表示してくれません。そして「電子レンジ」のように途中で出したり、途中から追加で温め時間を増やしたりということができないのです。

 まとめると下記の2つの理由により、長期観測を実現するには、既存の振る舞い解析製品には頼らず、ログを垂れ流しながら途中経過を可視化する必要があると考えました。


1. 途中経過が見えないと、マルウェアが動作したかどうかの確認が遅れる
2. 長期解析のログは膨大になり、解析後に一括して確認するのは時間を要する

 そして、途中観測結果を確認しつつ、マルウェアがより目的を達成できるように手作業で操作(餌)を入れて、あえて進化・高機能化させる「マルウェア培養」に取り組むことになりました。

●マルウェアを培養した結果

 当初Odoribaでは、上記表のログを既存ツールとマンパワーを併用し、リクルートグループで感染したマルウェアの取得と解析を試みていました。

 マンパワーだからこそ、「マルウェアが再起動後も動作する設定を入れていたらあえて再起動する」「ランサムウェアによりファイルが暗号化されたら、脅迫文に記載のあるWebリンク先にユーザーのようにアクセスする」など、工夫しながら観測ができました。

 結果として、扱えたマルウェア数は少ないものの、数時間でC&CサーバのIPアドレスが変化したランサムウェアの事例や、ダウンローダー型マルウェアから遠隔操作ウイルスにまで進化した事例を発見できました。当時の既存製品では見えなかった通信先まで幾つか発見できました。

●次回は、マンパワーの「培養」を自動化

 この結果、次は、Odoribaを監視の内製化運用に乗せるべく、自動化システムの構築を始めることになります。

 次回は、その自動化システムについて概要と構築ノウハウをテクニカルに紹介します。自動化システムは、2017年4月に開催されたCSIRTの国際カンファレンス「FIRST Technical Colloquium」でRecruit-CSIRT初の発表を行ってきたところです。同じようなことをやろうと試されている方々の参考になれば幸いです。

□□
●筆者紹介

市田達也
リクルートテクノロジーズ ITソリューション統括部 サイバーセキュリティエンジニアリング部 インシデントレスポンスグループ

大手通信事業者のセキュリティオペレーションセンターを経て2015年から現職。前職ではマルウェア感染インシデント対応に従事。リクルートグループでは各種インシデント対応に加え、セキュリティ対策基盤の設計、開発も担当。Recruit-CSIRT所属。
□□

最終更新:7/11(火) 7:55
@IT