Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とはマルウェア対策“一部”内製化大解剖(2)(1/2 ページ)

本連載では、ランサムウェアを含む「マルウェア感染」という、さまざまな企業が頭を悩ませる問題について、リクルートグループのコンピュータインシデント対応チーム「Recruit-CSIRT」の発想と技術をお伝えする。今回は、代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する。

» 2017年07月10日 05時00分 公開
[市田達也リクルートテクノロジーズ]

 本連載「マルウェア対策“一部”内製化大解剖」では、ランサムウェアを含む「マルウェア感染」という、さまざまな企業が頭を悩ませる問題について、リクルートグループのコンピューターインシデント対応チーム「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の概要図

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

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

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。