マルウェア解析入門1〜概要とか〜
1.introduction
こんにちは!yottiです!
今回からマルウェアの解析入門ということでマルェア解析の基礎を勉強がてら行っていこうと思います!
おそらく不定期ですが.....
こちらのgithubに公開していきまーす。
2.Background
みなさんもこの記事を読んでいるということは、少なくともセキュリティに興味があるということだと思います。またセキュリティに興味がある人は、外国の映画などに影響され、いわゆるハッカーと呼ばれる人たちが、何を打ってるかわからないPC画面上の前でカタカタとコードを書いて、企業のサーバや、個人の情報を抜き取ったりするというのに憧れてセキュリティの世界に足を踏み入れた人も少なくないはずです。
ですがそのような夢を見ている人は即刻この分野には合わないかもしれません。実際は大量のアセンブリ言語を読まなくてはならなかったり、地味な作業をひたすらやり続ける、その苦痛に耐えられなくなり、途中で辞める人も多いです。
ここでそのようなことにならないためにも初心者向けにマルウェア解析の概要と実際のマルウェアの解析方法をわかりやすく知ってもらいたいと思い作成しました。
3.What is malware analysis?
マルウェア解析とは、いわゆる不正な動きをするプログラムを調査しその挙動や目的などを明らかにすることです。以下のようなことが挙げられます。
・感染拡大を防ぐ
・感染動作を見極める
例えばあるマルウェアがあったとして、どのように感染するのかわかりません。自分で知らない間に、他の人にマルウェアをばらまいている可能性もあるわけです。またマルウェアに感染したことで、自分にとってどのような不利益があるのか?情報を抜き取られているのか?バックドアにされているのか?などを知る必要があります。
ここでマルウェア解析においていくつかポイントを意識しながら解析をするめる必要があります。以下にまとめると・・・・
・感染手段に注目
・バックドアのありなし
・感染端末
・目的に注目
が挙げられます。これらを意識しながら解析する必要があるわけです。
例えばバックドアがあれば、コード上にbind,listen,acceptなどといったバックドア特有の文字列が含まれているでしょう。
3.Process of Malware Analysis
マルウェアの解析には2種類あります。
動的解析(DinamicAnalysis)と静的解析(StaticAnalysis)。ではStaticAnalysisとDinamicAnalysisは何が違うのでしょうか?
まずStaticAnalysis後々説明するデバッカと呼ばれるものを使用してコードレベルでマルウェアを解析します。ただ重要な動作を見逃す可能性も高いです。
DinamicAnalysisというのは実際にマルウェアを仮想環境などに実際に感染させ、その動作や感染経路を記録します。実際に感染させるので使用しているPCがマルウェアに感染してしまうリスクも増えます。
双方メリットデメリットがあります。
ですので基本的に動的解析、静的解析のどちらも行うのケースが多いです。
それからマルウェアはパックと呼ばれる、静的解析を防ぐために暗号化や圧縮されているケースがあります。静的解析を行う場合はのパッカーを解凍してから行わなくてはいけません。これをアンパッカーと言います。
これらの動作を経てマルウェアの解析を行います。
4.Malware Types
今やマルウェアは世界に数百億もあると言われていますが。ある種類の亜種(派生)、があり実際は数種類〜数十種類のマルウェアが元となっています。そこで代表的なマルウェアのTypeをここで説明します。
・Backdoor・・・攻撃者がコンピュータにあなたの端末にアクセスするためにインストールされるマルウェア。バックドアは通常、攻撃者とコンピュータをコネクトしており、認証なしでアプリケーションを動かしたりコマンドラインを操作したりする。
・Botnet・・・バックドアに似ているが、コネクトしているのはC&Cサーバと呼ばれるサーバで、そのサーバには他にも感染したPCがつながっている。攻撃者がC&Cサーバに指示を出すと一斉に感染しているPCがその動作をする。その感染しているネットワークをBotNetと呼んでおり、最近ではIoT機器に感染するしDDOSattackを仕掛けるマルウェアが流行している。(mirai)
・Downloader・・・downlodaderは通常、初めてシステムにアクセスするときにインストールされる。このマルウェアに感染すると攻撃者の意思で、他のマルウェアをインストールしたりする。
・Inrformation-stealing malware・・・このマルウェアは情報をぬきとる。感染したPCは、オンラインバンキングのパスワードやlogなどを収集され、その情報を攻撃者へ送信される。
・Launcher・・・正規のランチャーに悪意のあるランチャーが偽造する。そしてあたかも正規のランチャーのように振る舞い、知らぬ間に悪意のあるマルェアなどをインストトールしたりする。
・Rootkit・・・個人的にexploittoolを作ったりするものだと思ってましたが、practical malware analysisには"" Malware code designed to conceal the existence of other code""と書かれているので他のマルェアを隠すためのkitですね。基本的に単体では動作せず、他のマルェアとペアになります。
・Scareware・・・これはマルウエアに感染していなくても、あたかもそのデバイスが感染しているかのように振る舞うマルウェアです。そのマルウェアは、このソフトを入れるとマルウェアをremoveできますと言いますが、実際はそんなことはありません。だってマルウェアには感染していないのですから。。。はい
・Spam-sending maiware・・・このマルウェアに感染すると、他のユーザーにスパムメールを送る。そこからまた感染した人が他の人にメールを送るという。
・Worm or Virus・・・Malicious code that can copy itself and infect additional computers.
4.Getting for malware
マルウェアを解析したい!!!と思っても解析するマルウェアの検体がなくては話になりません。そこでここではいくつかマルウェアの検体を入手できるサイトを紹介します。
・VX heavens
・Offensive Computing
・Shadowsever
5.Bibliography
[1]Michael Sikorski and Andrew Honig, "Pratical Malware Analysis~The hands-on to Dissecting Malicious Software",2012
[2]Arai etc,"Analysing Malware",2010