読者です 読者をやめる 読者になる 読者になる

ぎじゅつめも

とある工学系学生が学んだことをメモするだけのブログです。

ログ分析に基づくマルウェア解析の過程

ログ収集システムを用いたマルウェア解析を実際に体験して学んだことをメモしておこうと思います。

解析環境はWindowsです。

 

セキュリティオペレーションの流れ

まず、マルウェア解析を含むセキュリティオペレーションの一連の流れを示します。

順序概要 
 1  アラートシステム(Cybereason,SIEM等)が異常検知
 2  異常と検知されたプロセス/ファイルの解析(Cybereason,SIEM等の示すログ情報と異常根拠を元に解析。必要に応じて感染ノードを回収して実ファイルの調査とユーザへの聴取。)
 3  分析後に対象がマルウェアか過検知かの判定
 4  マルウェアの場合、被害状況・現状の確認
 5  対応(マルウェア削除、システムのスキャン、再発防止の仕組み構築、注意勧告、上長や関係部署への通達)

 ここでは、上記の内の2~3に該当するマルウェア解析について述べて行きたいと思います。また、コードの解析はアラートシステムに任せ、ログ情報を元にした解析に焦点を当てます。

 

マルウェア解析

今回はアラートシステムにCybereasonを用いた場合の解析について述べます。

注視するべき要点 

ネットワークフォレンジックの観点から注視すべき要点は以下のものです。

単語概要
場所 IPアドレスと、それが存在する地域についての情報。攻撃の温床となるアドレスは偏っているので、怪しさの指標になる。C&CサーバやbotnetのIPアドレスはスキャンサービスのVirustotal等で調べられる。
時刻  攻撃・異常の発生時刻など。どのタイミングでどのような振る舞いをしているかは分析に重要。
期間 疑わしいプロセスが振る舞う期間。潜伏期間や攻撃期間などはマルウェアの動向を考察する上で参考になる。
方向性 通信が内向きか外向きかという方向性。外部通信であればC&C通信である可能性があり、内向きであれば横への展開(感染拡大)である可能性があるという推測ができる。
ポート トランスポート層でのポート番号。どのようなサービスにアクセスしようとしたか等を知る事が出来る。例えばポートスキャン実行時には複数の宛先ポートが検出される。
 データ量 通信量とも。不自然に大きなデータがやり取りされていれば、情報窃取やマルウェア注入などのインシデントを想起できる。 
頻度 振る舞いの頻度。通信頻度が正規ユーザが行う頻度とかけはなれていた場合、悪意のあるプロセスがバックグラウンドでC&C通信を行っている可能性などが考えられる。 また、不審な振る舞いの頻度が高ければマルウェアであるとの判断につながる。
評価 Reputation。マルウェアハッシュ値IPアドレスドメイン名、URLなどに対する評価。様々なマルウェアスキャン製品・サービスによって裏付けられた評価であり、分析対象がマルウェアか否かを判断する指標となる。 これを行うサービスとしてはVirustotalIBM X-Forceなどがある。
履歴  ログ情報。 プロセスが如何なる振る舞いをしているか、ある端末で起きている事象が他の端末でも起きていないか等の調査に役立てる。
プロセス プロセスの正当性の確認。異常なプロセスが親や子にいないか。プロセスの実行源となったファイルに署名はついているかなどを確認する。
状態

疑わしいプロセスが現段階でどのような状態にあるか。既にマルウェアとしての活動を停止しているのか、現在もまだ動作しているのかなど。 

 

怪しいプロセスの具体的な情報例

上記に記された要点に沿って、実際のマルウェアで観測されがちな特徴を記述します。

ファイルのハッシュが既知のマルウェアと一致

ファイル名は自由に決めることができるため、マルウェア配布者は、マルウェアに無害そうな名前をつけることがあります。しかし、そのファイルの内容までを悪意のないものに偽装するのは難しいことです。そこで、マルウェア解析者は、ファイルの内容を識別するためにハッシュを用います(※本筋から逸れるのでハッシュや衝突に関する説明は省略します)。既知のマルウェアのハッシュと、検知した疑わしいファイルのハッシュが一致すれば、ファイル名が異なっても中身が同じでマルウェアの可能性が高いと判断できます。ハッシュとしてはSHA1MD5がよく用いられるようです。

既知のマルウェアとハッシュが一致するものがあるか検索する際にはVirustotalなどを利用します。

ファイルパスが怪しい

例えば実行ファイルがユーザローカル領域のtempフォルダ配下から実行されている場合などは、ユーザの意図に関わらずマルウェアから実行されている場合があります。

例)Emdiviなど

また、おおよそ正規の実行ファイルはProgramFilesに置かれます。マルウェアの場合、すぐに発見されないようにフォルダの深い階層に設置するような場合があります。

アイコンや名前・拡張子がおかしい

拡張子が.pdf.exeのように2重になされている場合、2重拡張子といい、ユーザに実行ファイルではない偽装を行う意図が考えられます。2重拡張子には、.exeを表示領域から見切れさせるために、.pdf____________.exeと冗長な命名をするようなものもあります。また、実行ファイルにも関わらずドキュメントファイルのアイコンなどを装う場合もマルウェアの可能性があります。

実行ファイルが実行ファイルを作成している

ドロッパー(Dropper)と呼ばれるマルウェア等にありがちな挙動です。ドロッパーは、それ自体にC&C通信などの諜報機能を持ちませんが、実行されると、悪意のある挙動を行うマルウェアダウンローダー等)を作成して子プロセスとして実行します。

目立った諜報活動を行う子プロセスのマルウェアが削除されても、そのマルウェアを作成・実行するドロッパーが生きていればまたマルウェアが作成されるので、ドロッパーも特定して削除する必要があります。

ヒューリスティック分析(振る舞い検知)を行っているCybereason等では、実行ファイルを作成するような動作もマルウェアとして検知してくれるようです。また、仮にマルウェアが検知された場合、解析過程でその親プロセスを辿ることができればドロッパーに行きつくことがあるのでプロセスの親子関係も大事な要素です。

信頼できそうな製作者や製品名だが電子署名がない

ファイルにはその製作者や製品名を記述できますが、その他にも作成元を証明するための電子署名をつけることができます。

マルウェアの作成者は、この製作者や製品名を、偽装したアイコンやファイル名、ダウンロード時の状態に合わせてもっともらしいものに設定します。例えば、Flash Playerの脆弱性につけこんでダウンロードさせたマルウェアの場合、製作者をadobe systems incorporated、製品名をadobe flash player utilityなどとすることがあり、この情報だけだと一見安全そうに見えます。ただし、電子署名までは偽装できないので、この電子署名が無いという情報だけで一転してとても信頼性のないファイルとなります。

現状の把握

サイバー攻撃、特に標的型攻撃を、その手順ごとに段階化した考えをサイバー・キル・チェーンといいます。以下の表にその概要を示します。

名称概要 
偵察 あらゆる偵察行動を指します。企業のサイトや公開情報から、攻撃対象の情報を得る。また、攻撃の踏み台に出来そうな脆弱性のあるノードを探すなど。脆弱性の調査にはポートスキャンなどが行われる。
武器化 脆弱性のあるサイトに悪意のあるコードを埋め込んだり、攻撃ツール(rootkit,dropper)やマルウェアを作成する。
配送 なりすましメールなどにマルウェアを添付して攻撃対象に送り込んだり、悪意のあるコードを埋め込んだサイトに攻撃対象を誘導して、ドライブバイダウンロード(ユーザに気づかれないようにDL)させる。
エクスプロイト/攻撃 メールの添付ファイルを開かせたり、ダウンロードさせた実行ファイルを実行させる。
インストール エクスプロイトの結果としてマルウェアが設置される。
遠隔操作 C&Cサーバに接続させることにより、感染端末を遠隔操作する。
侵入拡大 通称、横への展開とも呼ばれ、ネットワーク内で脆弱性を探して侵入先を拡大する。
目的実行 目的の情報を窃取する。

現状を把握する場合、このサイバー・キル・チェーンがどの段階かを把握すると良いかもしれません。また、攻撃対策時には、このサイバー・キル・チェーンをどこで切れるかを考慮します。

過検知について

正規の正常なソフトウェアが誤ってマルウェアと検知されてしまうことを過検知といいます。とりあえず疑わしきは罰するという路線では業務がままならず、必要である正常なソフトウェアは削除しないようにしなくてはならないため、過検知かどうかを正しく判断する技術が重要になってきます。

対応

対応は技術的対応と業務的対応に分けられると思います。

技術的対応としては例えば

・C&Cサーバのアドレスをブラックリストに登録して通信させないようにする

マルウェアやその生成源を特定して削除する

・感染の疑われるノードのスキャン

・感染の疑われる端末の押収と実端末上での捜査

などが挙げられます。

業務的な対応としては例えば

・感染先ネットワークの管理者や上長、セキュリティチームへの報告

・インシデント関係者への聴取と警告

などが挙げられます。