セキュリティ動向チェック
Security&Trustウォッチ(61)
最短距離でマルウェア解析職人になる方法
上野宣
2011/1/12
■意外と細分化されているセキュリティ分野
実は筆者は、マルウェア解析については素人同然だ。
セキュリティという分野は、一般的には狭い範囲に思われるかもしれない。しかし、Webアプリケーションが専門であったり、ネットワークが専門であったりと、意外と細分化されていて、他の分野のこととなると門外漢であることも多い。
もちろん、最近のマルウェアの仕組みや挙動の概要、バッファオーバーフローやデバッグといった個別の知識や技術は持っている。だが、それだけでは最新のマルウェアの解析まではできないのだ。
■マルウェア解析の前に立ちはだかる壁
最新のマルウェアを解析するには、マルウェア解析ならではの技術が必要になる。
例えば、現在流通しているほとんどのマルウェアには、実行形式を保ったまま圧縮・難読化を施す「パック」という技術が使われている。まずはこれを展開しないことには、IDA Proのような逆アセンブラに処理させても、マルウェア自体の逆アセンブル結果を取得できない。
パックされたものを展開する技術は「アンパック」と呼ばれている。だが、必ずしもZIPファイルのように決まった規格が使われているわけではなく、窓の杜などにあるような一般的な展開ツールではアンパックできない。中には、解析を妨害する機能などを備えたマルウェアもある。
その他にも、マルウェアの解析には「OllyDbg」や「IDA Pro」などのデバッガや、解析用プラットフォーム構築に「VMware」などの仮想化ソフトウェアを使うことがあるが、最近のマルウェアはそれらの動作を検出して解析を妨害する「アンチデバッグ」と呼ばれる手法を使っていることがある。
マルウェア解析でおなじみ、「IDA Pro」のスクリーンショット |
例えば、マルウェア自身が主要な監視ツールのプロセスを検出してそれらを停止させたり、感染動作を止めてしまったりする。中にはタイマーによるチェックを行っているマルウェアもあって、コードの実行に掛かった時間を計測し、自身が解析されていることを検出するといった回避策を備えている。
たとえこれらのマルウェア解析の妨害技術に対処したとしても、すでに動いているプロセスに対して「コードインジェクション」という技術で感染しようとするマルウェアを解析するというハードルが待っている。
【関連記事】 ソニーが音楽CDに組み込んだ“Rootkit”とは何者か?(@IT Windows Server Insider) http://www.atmarkit.co.jp/fwin2k/insiderseye/20051109rootkit/rootkit_01.html |
……と、ここまで話すぐらいの知識なら筆者にあるが、「それじゃあ実際にやってみろよ」といわれるとあたふたしてしまうばかりだ。
■アセンブリ言語の読経なしであこがれのマルウェア解析職人に近付こう
マルウェア解析に興味がなかったから、技術を身につけなかったわけではない。なんせ、マルウェア解析職人はセキュリティ技術者の花形である。かっこいいのだ。できることなら身につけておきたい。
しかし、前述のようにマルウェア解析はさまざまな技術の集大成であるので、学ぶべきことがたくさんあるのだ。さらにそれらを解説した書籍は日本語でも英語でもほぼ皆無であるし、インターネット上を探してもまとまったものがない。一朝一夕で身につけられるものではないので、今日まで先送りにしてきた。
すでにアセンブラの知識も風化し始めている筆者であるが、「アナライジング・マルウェア」と題した書籍を読んだ今は、マルウェア解析職人への道に一筋の光を見出している。
本書の目次は次のとおりだ。
1章 ファイルをダウンロードするマルウェアの解析
2章 パックされているマルウェアの解析
3章 動的解析を妨害するマルウェアの解析
4章 コードインジェクションをするマルウェアの解析
5章 カーネルモード(Ring0)で動作するマルウェアの解析
■マルウェア解析までの道のり
●マルウェア検体の入手
マルウェア解析を行うには、当然、マルウェアの検体(サンプル)が必要になってくる。欲しくないときにはどこからともなくやってくるのに、こうして解析したいと思ったときには手に入らない。プロであればストックぐらいはあるが、普通は持っているものではない。
そこで本書では、VX heavens(http://vx.netlux.org/)やOffensive Computing(http://www.offensivecomputing.net/)などのマルウェア専門Webサイトを利用して探す方法や、nepenthesなどのハニーポットを自分で運用してマルウェアを入手する方法などが紹介されている。
注:上記サイトはマルウェアそのものを配布していますので、閲覧・入手の際には自己責任でお願いします。 |
●解析環境の構築
素人が考えても、メールの送受信などで使っている日常の環境でマルウェア解析を行うと、うっかり感染してしまうのではという不安がある。実際そのとおりで、感染動作を引き起こすところまで解析すると、システムが感染してしまうこともある。そのため、普段の環境とは別に解析環境を構築する必要がある。
本書では、被感染システムとして物理的に専用ハードウェアを用意する方法と、VMwareなどの仮想化ソフトウェアを使って構築する方法が紹介されている。それぞれのメリットやデメリットなども説明しているので、環境構築の参考になる。
●マルウェアの解析
本書の本題はもちろんマルウェアの解析である。アンパックの技術から動的解析の妨害を乗り越える方法など、マルウェア解析に必要な技術が一通り解説されている。
例えば、デバッガや監視ツールのプロセスを検出して妨害するアンチデバッグの技術がある。本書ではマルウェアがよく使う特定のプロセスを発見するコードの例として、Immunity Debuggerのプロセスを発見するC言語のサンプルコードを挙げ、発見の手順を解説している。そして、このアンチデバッグ技術を回避するために、実行ファイル名を変更するといった方法や、Process32FirstでFalse(0)を返すといった手法なども紹介している。
本書はまた、全編にわたってサンプルコードを用意し、解説を加えている。しかも、フリーツールを中心とした手法を解説しているので、すぐにでも取り組み始めることができる。何といっても、本書はマルウェア解析の指南書であるにもかかわらず、アセンブリ言語の「読経」はほとんど登場しないという敷居の低さが魅力である。
アナライジング・マルウェア――
フリーツールを使った感染事案対処
新井 悠、岩村 誠、川古谷 裕平、青木 一史、星澤 裕二著
オライリー・ジャパン
2010年12月
ISBN978-4-87311-455-2
3150円
筆者は個人的に著者の1人である新井氏と友人であるが、株式会社ラックのサイバーリスク総合研究所所長である彼は多忙なので、懇切丁寧にマルウェア解析技術を教えてもらうことは困難だし、きっとお高いのではないかと想像する。
しかし、彼に直接教わらなくても、本書を片手に1週間も実践に取り組めば、マルウェア解析職人(見習いぐらい)にはなれるかもしれない。物覚えが悪いせいで何度か同じことを繰り返しても新井氏に怒られないのも、筆者にとっては好都合である。
Profile |
上野 宣(うえの せん) 株式会社トライコーダ代表取締役 セキュアWebアプリケーション開発などのセキュリティ教育や、脆弱性診断を主な業務としている。独立行政法人情報処理推進機構(IPA)セキュリティセンター研究員なども務める。 近著に「今夜わかるメールプロトコル」、「今夜わかるTCP/IP」、「今夜わかるHTTP」(共に翔泳社)がある。個人ブログは「うさぎ文学日記」。twitter IDは@sen_u。 |
Security&Trust記事一覧 |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|