趣味でやるマルウェア解析
はじめに
これはセキュリティキャンプ 修了生進捗 #seccamp OB/OG Advent Calendar 2018 の22日目の記事です
今夏のセキュリティキャンプのチューターをやったときあたりから、本格的にマルウェア解析に興味が湧いてきたので、色々調べたことを公開するエントリを書くことにしました。マルウェア解析というものは独学でやるには敷居もリスクも高く、企業や研究機関に所属していないと本格的に行うことは難しいと思います。そこで、ここでは趣味でやるマルウェア解析と称して、出来るだけ敷居を下げられるように色々とマルウェア解析関連の資料をまとめました。
ただ、私はマルウェア解析については全くの初心者で、このエントリで私がマルウェア解析について指南することは基本的にありませんし、載せているリンクも質を保証するものではありません。ここでまとめているものは私がぱっと見で良さそうと思ったものであり、私自身に対するこれからの課題でもあります。
環境構築
マルウェア解析をするにあたって環境構築は重要な項目になります。間違っても(少なくとも趣味の範囲では)実機でマルウェアを動作させるのはいけませんし、仮想環境上でも適切な設定を行わなければなりません。この辺りの注意事項については暗黙の了解なのか詳しく書いてあるところはあまりなく、私がみた中ではこちらの書籍の環境構築の部分に詳しく書いてあります。
Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software
- 作者: Michael Sikorski,Andrew Honig
- 出版社/メーカー: No Starch Press
- 発売日: 2012/02/01
- メディア: ペーパーバック
- 購入: 1人 クリック: 21回
- この商品を含むブログ (2件) を見る
アナライジング・マルウェア ―フリーツールを使った感染事案対処 (Art Of Reversing)
- 作者: 新井悠,岩村誠,川古谷裕平,青木一史,星澤裕二
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/12/20
- メディア: 単行本(ソフトカバー)
- 購入: 8人 クリック: 315回
- この商品を含むブログ (22件) を見る
マルウェア解析の環境は主にwindowsになると思います。そのほかのOSのマルウェアももちろん存在しますが、一般的なwindowsのシェアからか、マルウェアも主にwindows上で動作するものが多い印象です。これから始めるならwindowsの用意が必須になります。しかしwindowsは有料で安くはないので私はこちらのサービスを使いました。
developer.microsoft.com 前はmodern.IEと呼ばれていたものですが、名前だけ変わっています。windowsのバージョンも選べるので便利。
マルウェア解析では非常に多様なツールを使用します。
ツールなどの用意はこのツールで簡単にできてしまいます。簡単な手順で主要なツールを導入してくれます。インストール方法など詳細はこちらにも書いてありますが、インストールはgithubのREADMEに従ってやるのが良いと思います。動画でも紹介されていますが、この動画と同じようにできるかどうかは保証できません(実際私は失敗した)ので、実際にやるときには公式のサイトを参考にすると良いです。でも、ツールの紹介などをしてくれるので一度見ておくと良いと思います。
https://www.fireeye.com/blog/threat-research/2018/11/flare-vm-update.html
Fastest Malware Analysis Lab Setup With FREE VM and Tools
しかし、解析系のツールは非常に多く、似たようなものもいろいろあります。その中で選ぶのは本当に好みに左右されることもあり、FLAREVMではその全てを導入してくれるわけではありません。慣れてきたらいろいろ使ってみて自分の環境を揃えて行くと良いかもしれません。
PEフォーマット
windowsのマルウェアを解析する際、windowsの実行可能ファイルの形式であるPEフォーマットについての知識は必須です。日本語の資料だと、上記のアナライジングマルウェアや、以下のものが良いと思います。
マルウェア解析系の記事や資料には冒頭にPEの解説が入ることがよくありますので、これだけをずっと読むよりは色々見ていく方が良いと思います。 またこれはよく言われていることなのですが、PEフォーマットはかなり複雑なものになっていて、全てを暗記して理解している人は少ないらしいです。なので全体をざっと理解して、よく参照される部分(インポートテーブルなど)の繋がりを理解しておけば、良いと思います。
ちなみに、PEフォーマットの全体像を一枚にまとめたPDFがあります。
眺める程度に一度見ておくと面白いです。
解析
マルウェアを解析するには表層解析、静的解析、動的解析があると言われていますが、基本的に何をするにしてもアセンブリ言語の知識は必須だと思っています。また、私がフォレンジックツールなどを用いて解析するよりもアセンブリ言語を読んだりする方が好きなことから、リバースエンジニアリングの方をまとめていくことにしました。 まず、マルウェアのリバースエンジニアリングの入門にはこちらの書籍が良かったです。ソフトウェアの実行の仕組みからアセンブリ言語の解説、簡易デバッガの作成やシリアルコード抽出まで色々とやっているので結構楽しんで読めると思います。
- 作者: Digital Travesia管理人うさぴょん
- 出版社/メーカー: 秀和システム
- 発売日: 2018/09/14
- メディア: Kindle版
- この商品を含むブログを見る
また直接マルウェア解析と関係はないですが、著者のサイトも面白いです。
他にはこちらがかなり参考になると思います。上記の書籍よりもアンチデバッグや難読化についての記述が多く、C++やDLLの解析についても書かれています。
- 作者: 姜秉卓,金輝剛,金凡峻
- 出版社/メーカー: インプレス
- 発売日: 2013/09/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
次に、マルウェア解析全般的に解説してくれているサイトです。
このサイトはかなり読みやすくて、絵やGIFも多用されていてわかりやすいと思います。
また、海外では動画でマルウェア解析関連の動画がよく上がっています。チャンネルをいくつか載せておきます。
マルウェア解析というよりはライブアンパッキングという感じですが面白いです。その他マルウェア解析系の様々な技術の紹介をしてくれたりします。
最後に、結構有名なものだとは思いますが、OPEN SECURITY TRANINGがあります。こちらはコンピュータセキュリティに関する様々な技術の資料や講義がフリーで公開されています。マルウェア解析だと以下のようなものが良いと思います。
IntroductionToReverseEngineering
資料も講義の動画も全部英語の上、ボリュームもすごいことになっているので全部すぐに理解するのは難しいとは思いますが、いろんなところからリンクを貼られているので、質はお墨付きではないかと思います。
また、OpenSecurityのトレーニングに載っているこちらの画像によると、マルウェア解析のスキルツリーはこのようになっているらしく、この通りに技術をつけていきたいですね。
解析は実際に手を動かして経験を積むのが一番なのですが、いきなりマルウェアを読み始めたりするのは億劫になる人もいると思うので、こういうCrackMeと呼ばれるようなトレーニングで色々触ってみると良いと思います。
あとは、CTFのbinaryやreversingといったカテゴリーの問題を解くのも良いと思います。
検体
マルウェアを解析しようと思っても肝心のマルウェアがなければ話になりません。ハニーポットを建てて自分で集めるのも良いですが、すでに公開されている検体をもらってくるのが最も簡単な方法です。こちらで色々公開されています。普通にマルウェアなので取り扱いには重々注意してください。
VirusTotalです。ファイルをアップロードしたら色々解析してくれるサービスですが、課金ユーザーになるとアップロードされたファイルをダウンロードできるようになります。 VirusTotal
こちらも同じようなサービスですが、無料でもアップロードされたファイルをダウンロードできます。
https://www.hybrid-analysis.com/
以下、マルウェアがまとめられているサイトなどです。 malshare.com
https://83.133.184.251/virensimulation.org/
If you are a Malware researcher/analyst and need access to samples you can visit my malware samples library at https://t.co/Xl0N51Rq66 (Without Tor Browser) or https://t.co/l8PIEZDM1d (With Tor Browser). I mainly collect APT variants among other malware types. #malware #infosec pic.twitter.com/JjNiclrLg8
— 0xffff0800 (@0xffff0800) 2018年12月2日
news
マルウェアなどの動向は絶えず変化し続けていくので、最新の情報を常に取得することが大切だと思います。プロの方々は人それぞれ情報網を持っていたり、選別したサイトなどを見てキャッチアップしていると思います。この辺りは僕も本当に知りたいところなのですが、個人的に良いなと思ったニュースサイトを上げていきます。
この辺りは有名ですし、日本語で書いてあって読みやすいし良いと思います。
英語ですが、マルウェア関連のニュースを多く扱っているサイトです。
redditのセキュリティ系のチャンネルです。
その他、自分はここを見ている、こうやって情報収拾しているというものあれば、コメントなどで教えていただけると嬉しいです!
おわりに
本来は全く別の技術的な記事を書くつもりだったのですが進捗が全然間に合わず、急遽別の候補であるこの記事を書きました。まともな文章も書かず、ムラだらけのリンク集みたいな記事になってしまい すみません。
はじめにでも書いたようにこれは私自身への課題という側面があるのですが、こういう記事を見てマルウェア解析に興味を持って、一緒に勉強してくれる人が出てきてくれたら嬉しいなという思いもあります。
来年の今頃にはもっと技術的に面白い記事が書けるように頑張ります。
明日は tmyk_kym さんの記事です。