---
description: 本書は、マルウェアが絡んだ事情を体系的にまとめている。攻撃者、防衛者、解析者の各視点から"マルウェア"のチョメチョメを理解することを目標としている。
---
マルウェア解析に必要な素養
====
筆者:[友利奈緒 (@K_atc)](https://twitter.com/K_atc)
__ターゲットの読者__ マルウェアに興味を持つ者。バイナリアン(志望者)。低レイヤー大好きマン。セキュリティエンジニア(志望者)。
:::danger
怪物と闘う者は、その過程で自らが怪物と化さぬよう心せよ。おまえが長く深淵を覗くならば、深淵もまた等しくおまえを見返すのだ。
(フリードリヒ・ニーチェ)
:::
__目標__ マルウェアが絡んだ事情を体系的に広範囲に学ぶ。攻撃者、防衛者、解析者の各視点から"マルウェア"のチョメチョメを理解する。インターネットで公開しているメリットを活かすため、取り上げる情報はなるべく3年以内程度のものを優先し、古いものは取り上げないか、簡単に済ませる。
__お断り__ 気が向いたときに執筆しているので __気長に更新を待ってください__ 。
アセンブリ解析を伴う実践的な解析技術は、セキュリティベンダやセキュリティカンファレンスで開催される高額なトレーニングなどで会得できるかと思いますので、そのトレーニングで言及されないと思われるトピックを優先して書いています。
未熟な者が本書を見て攻撃を試すことがないように、試しやすい攻撃技術の説明はかなりぼかして書いています。また、ワームの拡散に関わる脆弱なシステムの探索~ペネトレーション(侵入)までの一連の方法は、汎用目的で悪用されるとまずいので解説の対象外とします。必要に応じて部分部分の解説はしますが、知っていることすべては書きません。この内容を会得したい方はSANSのトレーニング(例えば国内でも開催されるSEC504)や、25歳未満の場合はセキュリティ・キャンプ(※ただしかなりぼかしが効きます)などの受講をおすすめします。
個人的な主義で、外来語の表記(特に長音付けルール)は[文科省の通達](http://www.mext.go.jp/b_menu/hakusho/nc/k19910628002/k19910628002.html)に従っています。
C言語を理解しているものとして話を進めます。
マルウェアと法律
----
文字数制限により [マルウェア解析に必要な素養~法律編~](https://hackmd.io/s/Hyv_p8uYb#) に移動しました。
導入
----
文字数制限により、
* まずアセンブリ(正確にはELF/PEバイナリ)と英語を読めるようになろう
* 計算機アーキテクチャとOSの仕組みを知ろう
* 本やインターネットとうまく接しよう
* 略語リスト
* 解析環境を整えよう
* 他に必要なスキル
* マルウェアとは何なのか?
は[マルウェア解析に必要な素養~導入編~](https://hackmd.io/s/HkV9t7chW#) に移動しました。
用語
----
文字数制限により [マルウェア解析に必要な素養~用語編~](https://hackmd.io/s/rkLiAUdYb#) に移動しました。
マルウェア解析の基礎
----
文字数制限により、
* ファイル形式
* ファイルシステム
* エンコード、デコード
* ステガノグラフィー
* ネットワークプロトコル
* マルウェア関連でよく出てくるプロトコルやアプリケーション
は [マルウェア解析に必要な素養~基礎編~](https://hackmd.io/s/HkABOISgG#) に移動しました。
マルウェア入門
----
文字数制限により、
* マルウェアの分類
* よくある感じのマルウェアの挙動
* ダウンローダー
* 標的型攻撃
* 情報窃取型マルウェア
* ランサムウェア(Ransomware)
* Webマルウェア
* C2サーバー(C&Cサーバー)
は [マルウェア解析に必要な素養~入門編~](https://hackmd.io/s/HyDFRbK-V) に移動しました。
攻撃者の事情・思考
----
マルウェア関連のツールはブラックマーケットで販売されている。そのツールは初心者でも扱える設計になっているという。ビジネスモデルとしては、ツール購入者がそのツールで得た収入の何%を販売者に支払うものがある。
本章では著名な攻撃者に関わるサービスやツールを紹介する。繰り返しになるが、ここで得た情報は悪用してはならないことを肝に銘じること。
### 電子通貨
ビットコイン(BitCoin)が代表的。匿名性は高いが、台帳が公開されているため何人がいくら支払ったのかを調べやすいのがネック。支払先のアドレス(財布)を感染者ごとに変えることはある。
### Ransomware as a service(RaaS)
ググればいくらでも出るので簡単に。
[暗号化型ランサムウェア「STAMPADO」の価格設定から考える「Ransomware as a service」のビジネス | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/13636)(2016/7/28)
> ランサムウェアが金のなる木とみなされるようになり、サイバー犯罪者はこぞって分け前にあずかろうとしています。その結果、知識を持つサイバー犯罪者が、ランサムウェアを利用した自作のサービスを「Ransomware as a Service(RaaS)」として、新人や志望者向け材料キットの形で提供していることが確認されています。
2016年がランサムウェアが重大な脅威として認められた年というのが筆者の印象。重要なデータを人質に取られたために支払いに応じた人が多かった模様…
[【海外セキュリティ】 サイバー犯罪の投資対効果と業務パスワードの傾向 - INTERNET Watch](http://internet.watch.impress.co.jp/docs/column/security/710001.html)(2015/7/3)
> サイバー犯罪の投資対効果は1425%
そうとは書かれてないけど、これもRaaSの話ではないかと。
[闇市場とサイバー犯罪:「RaaS」 ランサムウェアのサービス化 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/17416) (2018/5/18)
RaaSの実例(SATAN)を取り上げた記事。
### 開発者直々の意見
[攻撃者が考える「良いセキュリティ専門家」とは? - THE ZERO/ONE](https://the01.jp/p0005972/) (2017/10/27)
専門家としての心構えも含めて
### MITRE ATT&CK
公式サイト:https://attack.mitre.org/ (2013/9公開;2018年人気爆発?)
よみ:まいたー あたっく。
[今知るべきATT&CK|攻撃者の行動に注目したフレームワーク徹底解説](https://blogs.mcafee.jp/mitre-attck)(2018/11/27)
> 「ATT&CK™」は「アタック」と読み、MITRE(マイター)社が開発している攻撃者の攻撃手法、戦術を分析して作成されたセキュリティのフレームワーク・ナレッジベースです。
>
> ATT&CKは2013年より開発がスタート。その目的は攻撃者が攻撃に使用する戦術、戦法、そして行動(TTPs(Tactics, Techniques and Procedures)) を文書化することです。
本当に詳しく書いてあってありがたい:pray:
[ATT&CKについてとMatrixの日本語抄訳 | SOCYETI](http://www.socyeti.jp/posts/4873582) (2018/9/13)
> ATT&CKは、CVEの採番で有名な米国の非営利団体MITREが、サイバー攻撃の流れや手法などを体系化したものです。「Adversarial Tactics, Techniques, and Common Knowledge」の略で、無理やり直訳すると「敵対的戦術、テクニック、および共有知識」と言ったところでしょうか。
[「ATT&CK」とふれ合うBoF@InternetWeek 活動報告 | SOCYETI](https://www.socyeti.jp/posts/5458304)(2018/12/24)
ATT&CKを知るのにいいリファレンスの紹介あり
[MITRE ATT&CK 活用事例](https://ox0xo.github.io/security/mitre_attck)(2018/12/1)
> * ATT&CKを活用しているサービスの事例
> * ATT&CKのデータソースの入手
> * 自組織での活用事例:対応能力の定量評価
例)https://attack.mitre.org/matrices/enterprise/cloud/azuread/
Azure ADに対するTacticsやTechniquesをまとめたもの。
[MITRE ATT&CK technique info in Microsoft Defender ATP alerts - Microsoft Tech Community - 856835](https://techcommunity.microsoft.com/t5/Microsoft-Defender-ATP/MITRE-ATT-amp-CK-technique-info-in-Microsoft-Defender-ATP-alerts/ba-p/856835#M481) (2019/09/16)
エンドポイントセキュリティ製品での利用例。ATT&CKを知っていればアラートの理由が把握しやすい。
ATT&CKとマルウェア解析を絡めた調査:
[ATT&CK Techniques and Trends in Windows Malware | Kris Oosthoek](https://krisk.io/post/attack/) (2019/9/2)
> I did this over the last couple of months, in which I have analyzed a labeled sample of 900+ unique families of Windows malware from 2003 until 2018 (thanks to Daniel Plohmann’s Malpedia).
### Adversary Playbooks (by パロアルト)
https://pan-unit42.github.io/playbook_viewer/
[『攻撃者のプレイブック』に新たに 11 グループを追加 - Palo Alto Networks](https://www.paloaltonetworks.jp/company/in-the-news/2019/unveiling-11-new-adversary-playbooks) (2019/08/01)
攻撃者が用いるテクニック
----
五十音順で掲載。【無効化済み】は既にシステムがデフォルトで無効化していることを意味する。\*印は別の章で解説している項である。
**TODO**:レイヤー別・カテゴリ別でまとめたい。カオスすぎ。
### [Windows] UAC回避と権限昇格
[NEUREVTボットの解析 - フォーティネット](http://www.fortinet.co.jp/security_blog/140129-NEUREVT-BOT-ANALYSIS.html)
> UACが有効になっているシステムでは、特権を昇格させる必要があっても、このマルウェアはユーザーへのプロンプトを妨害したり、UACを無効化してしまうようなトリックは使いません。その代わり、直接ユーザーに許可を「求め」ます。
> このマルウェアは「Cmd.exe」のプロセスを作成し、マルウェアのファイルパスをコマンドラインの引数に置きます。プロンプトウィンドウがポップアップするということはつまり、Windowsのアプリケーションである「Cmd.exe」が特権昇格を求めていることになります。不注意なユーザーはこのリクエストに許可を与えてしまうでしょう。その後、マルウェアの新たなプロセスが「Cmd.exe」により作成され、「Cmd.exe」のシステム特権を引き継ぎます。
> このマルウェアは次の言語で警告を行うことが可能です。ロシア語、ポルトガル語、ドイツ語、フランス語、オランダ語、アラビア語、ヒンディー語、ペルシャ語、簡体字中国語、トルコ語、インドネシア語、イタリア語、スペイン語、ポーランド語、日本語、ベトナム語
> システムのデフォルトの言語ロケールに基づいてこれらの1つを選択し、ユーザーに疑念を抱かせるような言語の不一致を避けます。
### [Windows] アイコンとファイル拡張子でのごまかし
TODO
### [Windows] autoran.ini 【無効化済み】
TODO
### exif情報
exif情報にマルウェアのコンポーネントを仕込むケースがある。
実例:
* [JPGファイルを隠ぺいに利用するWebサーバ専用バックドア「BKDR_ZZPEG」の被害を日本で確認 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/7760)
### Wake-On-Lan
[標的型攻撃ランサムウェア「Ryuk」の内部構造を紐解く | MBSD Blog](https://www.mbsd.jp/blog/20191211.html)(2019/12/11)
> Ryukは、「8 LAN」という実行引数を渡され起動すると、ネットワーク上の端末の電源をリモートでONにするWake-On-Lanと呼ばれる技術を利用し、同一ネットワーク上でシャットダウン/スリープしている端末の起動を次々と試みます。
### \*[Windows] MBR(Master Boot Record)の改竄
TODO:軽い説明
[別章](#MBR)に詳細あり。
### 画像ファイル
画像ファイルに以下のデータを仕込むことがある。(cf. [\#exif情報](#exif情報))
* C2接続情報などconfigデータ
* 例)開くと正常な画像に見えるが、実は終端にマリシャスなデータを隠している(by [JSOC INSIGHT Vol.10 by ラック](http://www.lac.co.jp/security/report/pdf/20160106_jsoc_j001w.pdf))
* 例)HTTP GETするときに、画像ファイルをフェッチするように見せて、実はXORする必要がある(Daserf;[Cyber Grid View Vol.2 by ラック](http://www.lac.co.jp/security/report/pdf/20160802_cgview_vol2_a001t.pdf))
### 言語環境検出
[セキュリティ研究センターブログ: マルウェア解析奮闘記: コマンド実行のエラー文が日本語でないと動作しないマルウェア](http://blog.macnica.net/blog/2018/05/post-bed0.html) (2018/5/11)
> Windows OSが日本語設定である場合のみ次のステージに進むマルウェアを観測しました。
> このマルウェアの日本語設定の確認方法として、コマンドのエラー文を用いるという過去見られなかった手口が利用されていました。
### [Windows] ショートカット・ファイル
TODO
例:
* [世界のセキュリティ・ラボから - Windowsショートカット・ファイルの悪用:ITpro](http://itpro.nikkeibp.co.jp/article/COLUMN/20090215/324745/?rt=nocnt) (2009/02/20)
* [ドキュメントにないLNKの機能に隠れるJanicab | エキサイトセキュリティ](http://security.excite.co.jp/fsecureblog/article/3148) (原文:2015/4/22)
* [LNKファイルを利用してマルウェアをダウンロードする手法が増加中 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15091) (2017/5/31)
### 正規プログラム・プロセスの利用
[標的型攻撃ランサムウェア「MegaCortex」の内部構造を紐解く | MBSD Blog](https://www.mbsd.jp/blog/20191113.html)(2019/11/13)
OSの正規プログラムの利用やプロセス・サービスの強制終了が特徴的。
### セキュリティソフトの停止
例:
* 「インストールの妨げになるのでセキュリティソフトは停止してください」というようなインストラクションを加える
TODO: Emdiviがやってたような気がする…(曖昧な記憶)
### ソーシャルエンジニアリング
真面目な話、人を騙すのは容易い。ゼロ知識から予見することは困難なので、人の悪意はどのような形をしているのかをまじで知ったほうがいいし、身構えやすい。
攻撃ベクター:
* 対面
* コールドリーディング
* 電話
* 騙す対象の家族
* 電子メール
* フィッシングメール
* 郵便 ※脱線
* 訴訟の予告ハガキ
* 当然嘘
* 裁判の訴状(本物)
* 架空請求で使われる手口。本物の訴状が発行されており、無視すると裁判を放棄したことになる(=原告の主張を認めたことになる)。マルウェアはもう関係ないっすな
* Webサイト
* 公式サイトを装ってマルウェアを配布
* [偽のSymantecブログを通じてMacのマルウェアが配布される | スラド アップル](https://apple.srad.jp/story/17/11/29/063202/) (2017/11/29)
* 公式アプリ(アップデーター)がそもそもマリシャス
* FileZilla、Linuxのリポジトリ、npmのリポジトリ、…(※筆者は裏取りはしてないです)
TODO:これを専門に扱う本
TODO:情報漏えいしたケースとかを列挙すれば十分かなぁ(←さすがに脱線しすぎてるかな←まあいいんじゃない)。例えば、JTBのお漏らしと伊勢志摩サミットから、宿泊者リストから警備状況を把握するためと推理するとか。
[脱線]筆者は小学生の時に2度おもらし事故をしてこの手のやり口にはもう懲りているのです。で、赤の他人にされるお願いごとはすべて純粋な善意によるものであると暗に信じている方、他人の悪意に触れてみてください。<span style="color:gray">ステマになりますが、セキュリティの専門会社などに依頼して社内で標的型攻撃を模擬することも大切です。どうやって行うべきかはその会社のコンサルに相談してみては。←が、精巧な訓練メールは正当なメールとの判別が難しくて効果がないという言説もあります。</span>
### タイポスクワッティング(typosquatting)
タイプミスを狙って正規サイト・ソフトウェアになり変わること
[PyPIに悪意のあるパッケージがアップロードされていた | スラド デベロッパー](https://developers.srad.jp/story/17/09/17/2142245/) (2017/9/18)
pip install こわーいヾ(。>﹏<。)ノ゙
### 地域検出
メリット:
* メインの機能を実行可能とする地域を限定することで、正確な自動解析を困難にすることができる。
[「Powload」の手口の変化:ファイルレスな活動からステガノグラフィまで | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/20694) (2019/3/19)
> 地域を検出する手法は解析した検体ごとに異なります。いくつかの検体は、PowerShellコマンド「Get-Culture」を使用してコンピュータの地域設定を取得していました。
### 日本人が使用しているかチェック
警告のポップアップの言語を適切にするため、等
* キーボード配置
### Pass-the-Hash
パスワードクラッキングの手法の一つ。認証システムではユーザーのパスワードをハッシュ化して保存していることが多い。Pass-the-Hash攻撃はハッシュ値を元に認証を行う攻撃のこと。
Active Directory関連で、Pass-the-Ticketという攻撃もある。
[Active Directoryに対する攻撃の検知と対策手法のドキュメント、JPCERT/CCが公開 - クラウド Watch](http://cloud.watch.impress.co.jp/docs/news/1049364.html) (2017/3/14)
#### 具体例
「mimikatz pass-the-hash」でググってみよう!
### パスワードリスト攻撃
ありふれたパスワード・既知のパスワードを用いて、アカウントへのログインを試みる古典的な攻撃方法。
### Hidden Process
TODO
### ファイルレス
AV回避のための手法。マルウェアをドロップ(ファイルを生成)しないことが特徴。(**TODO**:若干説明が怪しい)
[Fileless threats | Microsoft Docs](https://docs.microsoft.com/en-us/windows/security/threat-protection/intelligence/fileless-threats)(2018/9/14)
Microsoft的3つのfileless
> * Type I: No file activity performed
> * Type II: Indirect file activity
> * Type III: Files required to operate
[ファイルレスマルウェア入門:非マルウェア攻撃を理解する | BLOG | サイバーリーズン | EDR(次世代エンドポイントセキュリティ)](https://www.cybereason.co.jp/blog/cyberattack/4191/)(2019/12/24)
例:
* Process Injection
* Process Hallowing
* Powershell(の`-Enc`オプション)
手法の解説
[Anti-forensic and File-less Malware - Malware - 0x00sec - The Home of the Hacker](https://0x00sec.org/t/anti-forensic-and-file-less-malware/10008)(2018/12/6)
> * Persistence
> * Process Hollowing
> * Reflective DLL Injection
> * Backdoor
#### 近況
[ファイルレス活動が前年同期比3.6倍に増加 - トレンドマイクロ | マイナビニュース](https://news.mynavi.jp/article/20190905-889320/) (2019/09/05)
* ダウンローダーPowload(パウロード)
#### レジストリの利用
[ファイルレスの NodeJS マルウェア「Divergent」](https://gblogs.cisco.com/jp/2019/10/talos-divergent-analysis/)(2019/10/9)
* コード実行のためのレジストリの利用
* > その役目は「ActiveXObject.WScript.Shell.RegRead」(以下は擬似コード)を使用して、レジストリ キー「HKLM\Software\ZfjrAilGdh\Lvt4wLGLMZ」内の JScript を eval 関数で評価することです。
* > この PowerShell コードは、変数「regkeyname」に HKLM\Software\ZfjrAilGdH\4FLJBnefsN のレジストリ データを代入した後、HKLM\Software\ZfjrAilGdH\kCu2DZ9WI0 のレジストリにあるコードを実行します。
#### Reflective DLL Injection
[What is Reflective DLL Injection and how can be detected? – So Long, and Thanks for All the Fish](https://www.andreafortuna.org/cybersecurity/what-is-reflective-dll-injection-and-how-can-be-detected/amp/?__twitter_impression=true) (2018/2)
元ネタ: [Detecting Reflective Injection - DEFCON-20-King-Reflective-Injection-Detection.pdf](https://www.defcon.org/images/defcon-20/dc-20-presentations/King/DEFCON-20-King-Reflective-Injection-Detection.pdf)
#### ツール
##### fireELF
https://github.com/rek7/fireELF/tree/master (2019/4公開)
LInuxでFile Less活動するフレームワーク。今はmemfd_createシステムコールを使ってメモリー上にファイルを生成してペイロードを展開する手法が実装されている(payloads/simple.py)。攻撃用にPythonコードが生成される。
ペイロード例)http://termbin.com/k6vp
### Process Hollowing
[不正メールで拡散される高度なテクニックを組み合わせたダウンローダーの脅威 | MBSD Blog](https://www.mbsd.jp/blog/20171214.html) (2017/12/14)
> プロセスハロウイングは数年前から標的型攻撃マルウェア等の一部マルウェアを中心に使用されてきたテクニックであり、正規プロセスの中身を完全にマルウェアコードと入れ替えることでマルウェアを隠蔽する手法です。プロセスの中身を入れ替えられた後もそのプロセスの実体ファイルは一切改変されていないため、実体ファイルを取得し調査してもそれはただの正規ファイルであり不正コードは一切見つかりません。そのため、ファイルに対して検知を行うタイプのウイルス対策製品では検出することが不可能となり、そうしたウイルス対策製品の迂回の手口として効果的な手法の一つです。プロセスのメモリダンプをしない限り不正コードを「ファイル」として捉えられないことからも、ここ数年の攻撃における流行となるファイルレス手法の一つとも言えるでしょう。
同上
> <一般的なプロセスハロウイングの手法>
>
> 1)正規プロセス (例:explorer.exe、lsass.exe 等) をサスペンド状態で起動させる。
> 2)起動させたサスペンド状態の新規プロセスのイメージベースアドレスからNtUnmapViewOfSection等でハロウイング(空洞化)する。
> 3)サスペンド中のプロセスにイメージベースアドレスを開始アドレスにし RWX (読み取り、書き込み、実行) メモリを割り当てる。
> 4)ターゲットプロセスの割り当てられたメモリに悪意のあるコードを書き込む。
> 5)最初のスレッドのターゲットアドレスを、悪意のあるプログラムのエントリポイントに変更する。
> 6)サスペンド状態だったプロセスをレジュームする。
実例:
* [流行マルウェア「EMOTET」の内部構造を紐解く | MBSD Blog](https://www.mbsd.jp/blog/20181225_2.html)(2018/12/25)
* [NtUnmapViewOfSecitonによるProcess Hollowingをやってみる - Snoozy](https://snoozy.hatenablog.com/entry/2019/12/19/121813) (2019/12/19)
### Heaven's Gate
[不正メールで拡散される高度なテクニックを組み合わせたダウンローダーの脅威 | MBSD Blog](https://www.mbsd.jp/blog/20171214.html) (2017/12/14)
> プログラム開発やプログラム動作における通常の概念では32bitと64bitには明確な超えられない壁がありますが、Heaven’s Gateは32bitプロセスから64bitプロセスのコードを呼び出すことを可能とした高度なテクニックであり、32bit/64bitの壁を突破することでマルウェアにとって多くの利益をもたらすことができます。多くのデバッガは32bitまたは64bitそれぞれのプラットフォームに合わせて開発されており、例えば基本的に32bitのプログラムは32bitのデバッガでないと命令の解釈ができません。そのため、32bitプロセスの内部処理の途中から64bitのコードを呼び出すHeaven’s Gateは一般的なデバッガによる解析作業の継続を困難とさせます。Heaven’s Gateは一般的に32bitプロセスから64bitプロセスへインジェクション等の何らかの干渉を行う場合や、今回のように32bitプロセスの内部において一時的に64bitコードを実行させる場合に利用されます。
### \*[Human] 標的型攻撃
[別章](#標的型攻撃、水飲み場攻撃)参照
### Pinnig
TODO: 正直良く知らん
### ポートスキャン
ここにnmapの使い方を書くのは危なすぎるので各自で調べてください。
学内・公共のネットワークでポートスキャンをかけるのやめましょう。あなたの腕試し/技術力誇示の場所ではありません。
#### [Shodan](http://shodan.io/)
攻撃への転用を含めたちゃんとした紹介をするのは危なっかしいので各自で調べてください。
### hostファイル書き換え
TODO
### メモリインジェクション
TODO
### UAC bypass
[UAC回避機能を複数搭載したランサムウェア「HkCrypt」 | MBSD Blog](https://www.mbsd.jp/blog/20171012.html) (2017/10/12)
> これは、WindowsOSにデフォルトで存在するいくつかのMicrosoft社製の正規プログラムにおいて、一般的にはUACが必要となるような権限昇格時にユーザーに確認することなく権限昇格(自動昇格)を行うことが可能な設定がなされており(後述のマニフェストと呼ばれる設定ファイルがEXEファイルに埋め込まれている)、そうしたいくつかの正規プログラムの挙動の仕様を悪用し権限昇格をおこなう手法です。
>
> すでにGitHubやインターネット上ではいくらかのUAC回避テクニックが公開されており、「HkCrypt」は感染環境のWindowsOSのバージョンによって、既知のそうしたUACの回避テクニックを巧妙に使い分けていることがわかりました。
詳しくは↑にて。
https://github.com/gushmazuko/WinBypass
* Slui File Handler Hijack LPE - Windows 8-10
* [公式のMetasploitモジュール化](https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/windows/local/bypassuac_sluihijack.rb)!
* SluiHijackBypass.ps1
* FodhelperBypass.ps1
### XXE(XML External Entity)
古典的な攻撃だが、2017年のOWASP Top10に入って話題になった。
[XXE攻撃 基本編 | MBSD Blog](https://www.mbsd.jp/blog/20171130.html) (2017/11/30)
[XXE 応用編 | MBSD Blog](https://www.mbsd.jp/blog/20171213.html) (2017/12/13)
覚えておくといいWin32 API(Windows API)
----
### kernel32.dll
API name | 機能 | 返り値
:-:|:-:|:-:
IsDebuggerPresent | 自プロセスにデバッガがアタッチしているかどうかを調べる<br/>回避可能 | 0: No
TODO
###
### 学習に役立つ便利情報
#### HSP
Win32APIを使って簡単にプログラミングができるCでもC#でもVBAでもない言語(インタプリタ系)。これを使うとマルウェアライクな挙動をする何かを割と手軽に作れる。
#### WinSpy++
Windowオブジェクトとかの情報をとれる。デバッグに役立つ。プログラムはspyxx.exeという名前でVisualStudioに付属したツール。
Windows特有の話
----
### COM(Component Object Model)
### 隠されたデスクトップ
[隠された(見えない)デスクトップに潜む脅威とその仕組み | MBSD Blog](https://www.mbsd.jp/blog/20180914.html) (2018/9/14)
> 普段我々がWindows PCを操作するときに必ず目にする領域、いわゆる、ファイルやフォルダのアイコンが並んでいる「デスクトップ」という領域があります。
>
> 実はそのデスクトップの裏側に、通常では見ることのできない「隠されたデスクトップ」が存在し悪用されている可能性があります。本記事では、その脅威と仕組みを掘り下げて解説します。
### lsass.exe
TODO: 標的型攻撃において重要な正規プロセス。調べた内容をブログにでもまとめるといいと思いますよ。(投げやり)
AVと対決したいときはこのlsass.exeのメモリをダンプする行為をすると良さげ。
Windows Exploitation
----
Windowsでチョメチョメな(※検索避けです)ことをする方法。
* [Awesome Advanced Windows Exploitation References](https://github.com/yeyintminthuhtut/Awesome-Advanced-Windows-Exploitation-References) (2019/4~)
* リンク集
### UAC回避
[NS1] [20170815_北朝鮮関連サイトのサイバー攻撃レポート_v1.pdf](https://www.nttsecurity.com/-/media/nttsecurity/files/resource-center/what-we-think/20170815_%E5%8C%97%E6%9C%9D%E9%AE%AE%E9%96%A2%E9%80%A3%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%8F%E3%82%99%E3%83%BC%E6%94%BB%E6%92%83%E3%83%AC%E3%83%9B%E3%82%9A%E3%83%BC%E3%83%88_v1.pdf)
> CreateProcessAsUserA() 関数を利用してプロセス名「ocheck.exe」で起動します。起動時にはログオンユーザーのセッションIDに対応した「winlogon.exe」のプロセスIDやアクセストークンを取得し、複製したトークンを利用することでUACを回避してsystem権限でダウンロードしたファイルを実行します [NS1]
[Windows Escalate UAC Protection Bypass (In Memory Injection) Abusing WinSXS ≈ Packet Storm](https://packetstormsecurity.com/files/144593/bypassuac_injection_winsxs.rb.txt) (2017/10/12)
### Mimikatz
https://github.com/gentilkiwi/mimikatz
攻撃者を知るために使い慣れておくといいかもしれないツール。一番知られている利用例は、
* lsass.exeに残ってるログオンパスワードのクラッキング
* pass-the-hash/pass-the-ticket攻撃
かな。"mimikatz is a tool I've made to learn C and make somes experiments with Windows security" というREADMEに反して、標的型攻撃以外に能がないように見える。単純にexeを置くだけでAVに消されるので、実行するにはAV回避手段が必要。
### Windowsでのエクスプロイト
Zero Day Zen Garden: Windows Exploit Development(2017/8/19~2017/11/6)
[Part 1](http://www.shogunlab.com/blog/2017/08/19/zdzg-windows-exploit-1.)
[Part 2](http://www.shogunlab.com/blog/2017/08/26/zdzg-windows-exploit-2.html)
[Part 3](http://www.shogunlab.com/blog/2017/09/02/zdzg-windows-exploit-3.html)
[Part 4](http://www.shogunlab.com/blog/2017/11/06/zdzg-windows-exploit-4.html)
### リモートプロセスへのコードインジェクション
* code/DLL injection
* Reflective DLL Injection
[RunPE: How to hide code behind a legit process - Adlice Software](https://www.adlice.com/runpe-hide-code-behind-legit-process/) (2015/7/10)
https://github.com/SafeBreach-Labs/pinjectra
> Pinjectra is a C/C++ OOP-like library that implements Process Injection techniques (with focus on Windows 10 64-bit)
`README.md` にCode Injection のテクニックを解説する資料へのリンクあり
[fireeye/DueDLLigence](https://github.com/fireeye/DueDLLigence)
Fireeye提案のDLL Injectionテクニック(2019/10)
macOS特有の話
----
[MacでEXEファイルを実行する攻撃を確認、端末情報を窃取しアドウェアをダウンロード | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/20356) (2019/2/14)
> トレンドマイクロは、MacでEXEファイルを実行する攻撃を確認しました。
>
> 今回確認されたマルウェアは、Windowsのアプリケーション実行環境「.NET Framework」をさまざまなプラットフォームに提供するフレームワーク「Mono」を利用してEXEファイルを実行していました。「Gatekeeper」のようなMacに組み込まれたセキュリティの仕組みはMac用のファイルのみを対象とするため、EXEファイルを利用することによりそのようなセキュリティを回避しデジタル署名のチェックを逃れることが可能です。
[macOSを狙うマルウェア:取引アプリに偽装し個人情報を窃取 | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/22850)(2019/11/18)
> 今回トレンドマイクロでは、macOS向け取引ソフト「Stockfolio」を偽装する攻撃を確認しました。
バックドア
----
* DoublePulsar(The Shadow Brockers)
RAT
----
**TODO**: RAT(Remote Access Trojan)
\# 利用したい脆弱性を指定すると勝手にマルウェアを生成するツールがあったような…(Metasploitじゃない方)
本章では2017年までに代表的なRATを紹介する。
TODO:(この用語、死語になってないか)
### Remcos RAT
[オンラインストレージサービスの悪用事例、RAT「ADWIND」などが感染 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15867) (2017/9/11)
### CyberGate
https://www.blackhat.com/docs/asia-15/materials/asia-15-Chubachi-Slime-Automated-Anti-Sandboxing-Disarmament-System.pdf
"Popular RAT tools"
"CyberGate can generates remote access server for targeting host"
"Anti-sandbox option enabled"
Exploit Kit
----
**TODO**:Exploit Kitとは
Exploit KitはEKと略されることもある。
* [DbD/EKの情報を集めるときに見ると良いサイト](https://gist.github.com/koike/2d9e4b40f9ad24ad453b18cc1a3b9832) (by nao_sec kkrnt)
トレンドの変化:
[Exploit KitおよびScamサイトの衰退とCoinhiveの台頭 – wizSafe Security Signal -安心・安全への道標- IIJ](https://wizsafe.iij.ad.jp/2017/11/120/) (2017/11/9)
[Exploit Kit Landscape Map – Execute Malware Blog](https://executemalware.com/?page_id=320) (2017/12/25)
### Gate
TODO
トピック:
* CDN事業者と協力したtakedown
### 代表的なEK
本節では2017年現在で代表的なExploit Kitを紹介する。
※活発な活動期間は「CYBER GRID VIEW Vol.3」(ラック)、「RIGエクスプロイトキット解析レポート」(NTT Security)を参考にした
#### Angler(〜2016/6)
(オワコンなので興味なし)
#### Nutrino(ニュートリノ;2016/6〜2016/9)
(オワコンなので興味なし)
#### RIG(リグ;2016/9〜2018年現在)
めっさ息が長いEKだな。
> NTTセキュリティ・ジャパン株式会社のSOCでは、2016年9月頃からRIGエクスプロイトキットによる攻撃を多く観測しました。RIGエクスプロイトキットはドライブ・バイ・ダウンロード攻撃を行うためのパッケージの1つであり、改ざんサイトや不正広告から誘導され、マルウェアへの感染を引き起こします。 [NTT]
次表はRIG EKの攻撃ステップを解説したものである([NTT]の表2より引用)。言葉足らずなところは赤字で加筆した。
Step | 説明
:-:|:-
① | 改ざんサイトや広告はユーザ端末からのアクセスを待ち受け、RIGエクスプロイトキットが設置された攻撃サイトに転送する。
② | 攻撃サイトはJavaScriptコードを送付し、ブラウザ判定を行い<font color=red>条件を満たしていれば</font>③へ進む。
③ | 攻撃サイトは2つ目のJavaScriptコードを送付し、<font color=red>IEの</font>動作環境をチェックした後、脆弱性を悪用する攻撃を行う。また、並行してFlashファイルを読み込ませる。
④ | 攻撃サイトは不正なFlashファイルを送付し、脆弱性を悪用する攻撃を行う。
⑤ | ③もしくは④で脆弱性の悪用に成功した場合、シェルコードを実行してマルウェアのダウンロードとインストールを行う。
補足:
* __[NTT] ②のブラウザ判定__ 一般のWeb開発でもされるようなUser-Agentに基づくブラウザ判定([NTT]の図5)とIE固有機能に基づく判定([NTT]の図6)がされる。両者の判定結果は一致しなければならない
* __Javascriptに対する脆弱性攻撃__ 利用するのはCVE-2013-2551(〜2017/3)またはCVE-2016-0189+CVE-2015-2419(2017/3〜)。任意メモリ書き換えが可能なのでOSのバージョンを確認した後、ROPチェーンを組む。シェルコードはマルウェアのダウンロードと実行をする。詳細は[NTT]のp.15参照
* __Flashファイルによる脆弱性攻撃__ 使用する脆弱性と難読化手法は検体によって異なる[NTT]。攻撃ステップは次の通り[NTT]。(各詳細が[NTT]でp.17〜p.21の5ページに渡って解説されている)
1. Flashファイルが実行されている環境を調査する。
2. 脆弱性をついて任意のコードを実行可能にする。
3. シェルコードを実行することで、マルウェア感染を引き起こす。
* __シェルコード__ javaScriptとFalshで挿入されるシェルコードは共通。[NTT]
* __マルウェアをダンロードするとき__ CreateProcess関数によりcmd.exeを実行。JScriptコードを生成してwscriptを実行する。引数で指定されたUser-Agentを用いてURLにアクセスし、マルウェアをダウンロードする。ダウンロードするマルウェアには多数の種類が報告されているが、SecurityのSOCではCerberが最も多く観測された。[NTT]
解析報告(と対策方法):
* [LAC] [CYBER GRID VIEW Vol.3猛威を振るうRIG Exploit Kitの全貌と対策 | LAC WATCH | 株式会社ラック](https://www.lac.co.jp/lacwatch/report/20170202_001203.html) (2017/2/2)
* 「図3:攻撃キャンペーンが利用するエクスプロイトキットの変遷(2016年)」もおもしろい
* [NTT] [RIGエクスプロイトキット解析レポート(by NTTセキュリティ・ジャパン株式会社)](https://www.nttsecurity.com/-/media/nttsecurity/files/resource-center/what-we-think/rigek-analysis-report.pdf) (2017/5/16)
* アングラな市場での調査レポートも載っていておもしろい
* [nao-sec] [初めての Rig Exploit Kit リーディング](https://github.com/nao-sec/RigEK) (2017/5/15)
* [Twitterでの \#RigEK の検索結果](https://twitter.com/search?q=%23RigEK&src=typd)
#### Magnitude
TODO
#### Sundown(2016年X月~2017年Y月?)
[ステガノグラフィの手法を駆使するエクスプロイトキット「Sundown EK」を確認 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/14214) (2017/1/5)
#### Sundown-Pirate Exploit Kit(Sundown-Pirate EK)(2017年6月~)※トレンドマイクロでの命名
[不正広告キャンペーン「ProMediads」、新型エクスプロイトキットを利用しランサムウェアなどを拡散 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15488) (2017/7/24)
#### Terror(2017年1月~?)
[Terror Evolved: Exploit Kit Matures](https://blogs.cisco.com/security/talos/terror-evolved-exploit-kit-matures) (2017/5/18)
[エクスプロイトキット戦国時代! 新興ツールが急速な進化を見せる | THE ZERO/ONE](https://the01.jp/p0005184/) (2017/6/15)
#### Astrum EK/Stegano EK(2016年下半期~)
[「Astrum EK」の更新を確認。エクスプロイトキット脅威再燃となるか | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15034) (2017/5/22)
[1] [AdGholas Malvertising Campaign Using Astrum EK to Deliver Mole Ransomware | Proofpoint](https://www.proofpoint.com/us/threat-insight/post/adgholas-malvertising-campaign-using-astrum-ek-deliver-mole-ransomware) (2017/6/20)
AdGholasという攻撃キャンペーンがAstrum EKを使っていて、Moleランサムウェアが落ちてくるっぽい(→関連:Moleランサムウェア)(TODO:読み間違えてる気がする)
> At this point, we began to consider whether AdGholas into Astrum EK (also known as Stegano EK) might be the infection vector, despite the fact that the ransomware payload was inconsistent with the activity of their usual customers who normally spread banking malware. [1]
[不正広告キャンペーン「AdGholas」、追跡困難化した脆弱性攻撃の利用で攻撃を拡大 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15325) (2017/6/27)
> 2017年5月15日に、解析回避機能を備えた「Astrum EK」の活動再開が確認されました。そして、それは不正広告キャンペーン「AdGholas」によって拡散されたことがわかりました。「AdGholas」は、ダウンローダやオンライン銀行詐欺ツール(バンキングトロジャン)「URSNIF(別名Dreambot/Gozi)」や「RAMNIT」など多様な不正プログラムを拡散します。
>
> 弊社も、CRYPAURAファミリの亜種を確認しています。その中には CRYPTOMIX の亜種、「MOLE」があります。Google ドキュメントの共有URL を悪用して拡散するランサムウェア「MOLE」は、4月下旬に確認されました。
#### KaiXin(2017年?月~)
TODO
Technical Support Scam(TSS)
----
TODO
(同人誌「TomoriNao Vol.1」で@kkrntが解説している)
権限昇格
----
### お粗末なrootアカウント
案外簡単にrootになれるかもしれないというお話。
#### Iamroot password bug (in macOS)
[「macOS High Sierra」にパスワードなしでログインできてしまう脆弱性 - CNET Japan](https://japan.cnet.com/article/35111084/) (2017/11/29)
> 端末で「システム環境設定」の「ユーザーとグループ」を表示し、鍵のアイコンをクリックすると、設定を変更するためのユーザー名とパスワードの入力を求められる。ここで、パスワードを入力する代わりに、ユーザー名に「root」と入力し、パスワードは空のままにすることができる。
[Objective-See](https://objective-see.com/blog/blog_0x24.html) (2017/11/29)
↑の解析記事
cf. [Windows98のセキュリティシステムをバイパスして突破する方法 - GIGAZINE](https://gigazine.net/news/20081001_how_to_bypass_windows98/) (2008/10/1)
### Kernel Exploit
#### Dirty COW
TODO: OriginalのDitty COW
[“Huge Dirty COW” (CVE-2017–1000405) – Bindecy – Medium](https://medium.com/bindecy/huge-dirty-cow-cve-2017-1000405-110eca132de0) (2017/11/27)
writeup & PoC
#### CTF
[Exploiting a Windows 10 PagedPool off-by-one overflow (WCTF 2018) | j00ru//vx tech blog](https://j00ru.vexillium.org/2018/07/exploiting-a-windows-10-pagedpool-off-by-one/) (2018/7/18)
> My contribution to the above result was a flag for the “Searchme” task authored by Eat, Sleep, Pwn, Repeat. It involved the exploitation of an off-by-one buffer overflow of a PagedPool allocation made by a vulnerable kernel driver loaded in Windows 10 64-bit.
#### ほか
[余談]カーネルエクスプロイト関連:
* [Project Zero: Detecting Kernel Memory Disclosure – Whitepaper](https://googleprojectzero.blogspot.com/2018/06/detecting-kernel-memory-disclosure.html)
### ルートキット(Root Kit)
TODO
永続化
----
### 自動起動設定
TODO: Windowsのレジストリのお話
### Boot Kit
> ブートキットとは、コンピュータの起動ドライブに感染する不正プログラムの一種です。PC などのコンピュータでは電源投入後、まず起動ドライブ内のブートセクタや MBR(マスターブートレコード)などと呼ばれる部分に保存されているプログラムが動き、OS を起動させます。ブートキットはこの仕組みを利用して Windows OS 起動前に不正プログラムを活動開始させます。結果的に Windowsシステム上に不正プログラムのファイルや自動起動設定などの「感染の痕跡」を残さずに不正プログラムを活動させることなどが可能になります。 [1]
[1] [国内ネットバンキングを狙う「URSNIF」が新たに「Bootkit」を利用 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15144)
[Rootkits and Bootkits | No Starch Press](https://nostarch.com/rootkits) (2019/5)
> Rootkits and Bootkits will teach you how to understand and counter sophisticated, advanced threats buried deep in a machine’s boot process or UEFI firmware.
Windowsのブートプロセスの解説もあるみたい
### MBR(Master Boot Record)
MBRを書き換え、OSよりも先に自分を起動することを目的とする。以降TODO
#### 例
[緊急レポート:韓国サイバー攻撃マルウェア詳細解析結果│セキュリティ・リサーチのFFRI(エフエフアールアイ)](http://www.ffri.jp/blog/2013/03/2013-03-27.htm)
チップレベルのインセキュリティ
----
脱線気味な気もする…
### Intel Management Engine
[OS停止時でも攻撃可能?Intel マネジメント・エンジンの脆弱性への対策 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/16567) (2017/12/5)
[How to Hack a Turned-Off Computer, or Running Unsigned Code in Intel Management Engine](https://www.blackhat.com/docs/eu-17/materials/eu-17-Goryachy-How-To-Hack-A-Turned-Off-Computer-Or-Running-Unsigned-Code-In-Intel-Management-Engine.pdf) (2017/12/4-7)
ファームウェアのインセキュリティ
----
TODO
スクリプト編
----
文字数制限により、
* コマンドプロンプト
* PowerShell
* Powershellの実行方法
* 実行ポリシーの回避
* 攻撃経路
* 難読化と難読化解除
* WMI
* .NET Framework
* PowerShellに関する情報セキュリティ系論文
* .NET
* JavaScript
* HTA
* 悪性文書ファイル
* VBAマクロ
* PDF
* RTF
は[マルウェア解析に必要な素養~スクリプト編~](https://hackmd.io/s/S1o-HWt-4#) に移動しました。
ペネトレーション
----
ここでいうペネトレーションはシステムへの「侵入」を指す。
### 情報源
* [Red Teaming Experiments](https://ired.team/)
### マインドマップ
ここでいうマインドマップは方法論を体系的にまとめたドキュメントのこと。
https://www.amanhardikar.com/mindmaps.html (2007年~)
### ラボ
合法的にハッキングの練習ができる環境のこと。
https://www.amanhardikar.com/mindmaps/Practice.html
脆弱な環境(Webアプリ、OS)やCTF会場のリストを掲載している。
ペネトレーションツール
----
### OS、VM
* [Kali Linux](https://www.kali.org/)
* たいていの攻撃系のセキュリティ系ツールがインストールされている
* [Commando VM: The First of Its Kind Windows Offensive Distribution | FireEye Inc](https://www.fireeye.com/blog/threat-research/2019/03/commando-vm-windows-offensive-distribution.html)(2019/3/28)
* > the Complete Mandiant Offensive VM (“Commando VM”) comes with automated scripts to help each of you build your own penetration testing environment and ease the process of VM provisioning and deployment
### Metasploit
読み:めたすぷろいと。エクスプロイトフェーズにおいて利用されるツール。解析経験が乏しいので攻撃に使われているのか知らないが、攻撃にも使えるツールなので一応取り上げる。絶対悪用するなよ。診断屋さんにも便利なので、セキュリティエンジニアを目指す人は使えるようになっておくといいかも(私はMetasploitは皆使えて当然のスタンスです)。
TODO: 別の章に移動
MetasploitはRapid7社の製品で、脆弱性スキャナ、ペネトレーションテストをするためのツールである。実際はPoCの寄せ集めで、中身はExploit DBと重複が多い。無料版と有料版(商用版)が用意されており、学習用に軽く使う程度・使うべきモジュールを把握しているなら無料版で差し支えない。
MSFconsoleはMetasploit Frameworkが抱えている攻撃コードデータベースを利用するためのコンソールである。コマンドラインで指定された設定ファイルを読み込むのではなく、msfconsole(MSFconsoleのコマンド名)で対話しながら攻撃条件を設定することに特徴がある。攻撃コードの検索、設定、実行の各ステップの操作に慣れが必要である上に、msfconsoleの使い方をいい感じにまとめたサイトが無いので(筆者調べ)学習が難しいという印象がある。しかし、次の1冊さえあればMetasploitを大体使いこなせるようになるはずで、筆者はこれをMetasploitを利用する上で必携の一冊と捉えている。
実践 Metasploit――ペネトレーションテストによる脆弱性評価
http://www.oreilly.co.jp/books/9784873115382/
不正行為の教唆に当たらないようにやり方は伏せるが、MetasploitにはWindows向けにシェルコードを生成する機能がある。そこで生成されたコードをネタに解析するのも面白いのでやってみて欲しい(筆者はIIJの2daysインターンでそれをやったことがあって、実際おもしろい動き方をする)。
Windowsへのペイロード生成に使われるmeterpreterも要チェック。
### PowerShell Empire
https://github.com/EmpireProject/Empire
Post-Exploitationフェーズにおいての利用を想定。手元のAVと対決しても面白いかもしれない。
cf. PowerShell Mafia
[The Empire (3.0) Strikes Back](https://www.bc-security.org/post/the-empire-3-0-strikes-back)(2019/12/24)
Empire 3.0 登場
https://github.com/BC-SECURITY/Empire/
### PsExec
[PsExec: The Ultimate Guide](https://adamtheautomator.com/psexec-ultimate-guide/)(2019/9/18)
> To cover the PsExec tool in depth, it was fitting to cover this coveted tool in an ATA Ultimate Guide. In this guide, you will learn what psexec is, what it's capable of any many examples of how to use this useful tool.
### ShinoBotファミリー
公式サイト:https://shinosec.com
Private Use(正当なペネトレーションテストなど)かEducationalな用途でよろしく!
マルウェア解析初心者の方は、最初にShinoBotの解析に取り組むといいかもしれません。
最近(2018年)はPowerShellがホットだったので、ShinoBOT.ps1の解析がナウいかも。
### ほかWindows系
[WinPwn](https://github.com/SecureThisShit/WinPwn) (2018/5~)
> Automation for internal Windows Penetrationtest / AD-Security - Still much work to do
ファイルシステム
----
### 復元対策
削除後のセクタからマルウェアの痕跡を消すことを考える。まさにバイナリ解析から逸脱してフォレンジック対策のお話!
TODO:トピックを集める
### NTFS
代替データストリーム→例:Zone.Identifier
#### 隠し領域
### FAT
#### 隠し領域
### USB Backdoor
DNS
----
### DNSクエリ
[DNSクエリにPowerShellコマンドを乗せて運ぶ攻撃を確認 | マイナビニュース](http://news.mynavi.jp/news/2017/03/07/101/)
### DNSトンネリング
DNSトンネリングはDNSクエリを用いた通信のことをいいます。
※TomoriNao Vol. 1で軽く概要を説明し、検知に取り組んでみました。
#### DNSトンネリングの検出
[DNS Tunneling & Other Hunts w/ RockNSM (Bro & ELK) – Perched](https://blog.perched.io/dns-tunneling-other-hunts-w-rocknsm-bro-elk-52a4486e44d0) (2019/1/3)
> In this post, I am expanding on my DNS typosquatting detection post as well as (re-)introducing DNS tunneling detection.
### DNSチェンジャー(DNSサーバー設定改ざん)
2通り:
* OSのDNS設定を書き換える
* ルーターのDNS設定を書き換える([別章](#狙われるルーター)へ)
### ドメイン名ハイジャック(DNS Hijacking)
TODO
DNS hijacking using cloud providers (2017/5)
https://2017.appsec.eu/presos/Developer/DNS%20hijacking%20using%20cloud%20providers%20%E2%80%93%20no%20verification%20needed%20-%20Frans%20Rosen%20-%20OWASP_AppSec-Eu_2017.pdf
[(緊急)米国国土安全保障省によるDNS設定の改ざんに関する緊急指令の公開について](https://jprs.jp/tech/security/2019-01-28-cisa-emergency-directive.html) (2019/1/28)
> 本指令では、米国の全省庁に対し、米国の複数の行政機関のドメイン名においてDNS設定の改ざんに関する一連のインシデントが発生しているとして、被害を軽減するための緊急対策の実施を指示しています。
### 放棄ドメインの取得
[放棄ドメインの大量取得によるスクリプトの乗っ取りについて - tike blog](https://tike.hatenablog.com/entry/2019/01/26/225229)(2019/1/26)
> このような放棄ドメインに紐付いた「存在しない」リソースを閲覧者に気付かれないように引き継ぎ、別の用途に悪用する事象がいくつか確認できましたので、本ブログで共有したいと思います。
コンテナに潜むマルウェア
----
実際:
* [露出したDocker APIとコミュニティイメージを悪用し仮想通貨発掘マルウェアを送り込む攻撃を確認 | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/20566) (2019/3/11)
### 研究
* 参考情報:[A Study of Security Vulnerabilities on Docker Hub](https://dl.acm.org/citation.cfm?id=3029832)(CODASPY '17)
### セキュリティ強化
* [Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで](https://www.slideshare.net/AkihiroSuda/docker-125002128) (2018/12/5)
### CVE-2019-5736
これは参考情報。runcのサンドボックスエスケープの脆弱性。
* [Dragon Sector: CVE-2019-5736: Escape from Docker and Kubernetes containers to root on host](https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html) (2019/2/13)
* > While solving this challenge we found out that creating namespace-based sandboxes which can then be joined by external processes is a pretty challenging task from a security standpoint.
* 発見者(Dragon Sector)による解説。(ドラセク相変わらず強いなぁ~)
* PoC: https://github.com/feexd/pocs/tree/master/CVE-2019-5736 (2019/2/14)
スマホアプリに潜むマルウェア
----
### 種類
#### バックドア型不正アプリ
[音声や動画を窃取する Android 端末向けバッグドア型不正アプリ「GhostCtrl」 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15502) (2017/7/25)
[モバイル端末向けランサムウェア「LeakerLocker」、ユーザ情報の流出と引き換えに身代金を要求 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15624) (2017/8/3)
#### ルートキット型不正アプリ
[「ZNIU」:脆弱性Dirty COWを突くAndroid端末向け不正アプリを確認 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/16031) (2017/9/29)
#### 情報窃取型不正アプリ
[Facebook の認証情報を窃取するAndroid端末向け不正アプリ「GHOSTTEAM」を確認 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/16857) (2017/1/24)
> GHOSTTEAM は Facebook アカウントの認証情報を狙います。ユーザが Facebook アプリを開くと、アカウントの認証を要求するダイアログが表示されます。認証方式は典型的なログイン画面と同じで、認証情報の入力が求められます。しかしその背後では、Web ページを描画する機能 WebView が不正アプリによって実行されています。WebViewClient に注入された不正なコードが Facebook へのログインに使用されたメールアドレスとパスワードを窃取し、C&Cサーバに送信します。
>
#### 偽セキュリティソフト型
[国内スマートフォン利用者を狙う新たな動きを詳細解説 | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/20731)(2019/4/3)
> スミッシングにより不正なWebサイトに誘導
> 今回確認されたXLoaderは、日本の携帯電話事業者が提供する正規セキュリティアプリに偽装していました。同事業者のWebサイトをコピーした、XLoaderをホストする不正なWebサイトへのリンクは、テキストメッセージ(ショートメッセージ、SMS)を利用した「スミッシング(SMS+Phishing)」によって拡散されていました。まだXLoaderへの感染報告はそれほど多くありませんが、問題の偽装SMSに関する報告は確認されています。
#### 不正なiOS構成プロファイル(不正プロファイル)
特殊な方法。
[iOS 上で大量のアイコンを作成する不正プロファイル「YJSNPI ウイルス」こと「iXintpwn」を解説 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/16007) (2017/9/26)
> iXintpwn 自体は未成年者による悪ふざけや自己顕示目的の産物に過ぎなかったとしても、未署名の構成プロファイルを悪用した手法は注目に値します。
#### 仮想通貨発掘マルウェア
[モバイル端末向け仮想通貨発掘マルウェア、Google Play で確認 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/16293) (2017/10/31)
### 手口
#### MDM(Mobile Device Management)
[MDM(モバイルデバイス管理)ツールを使用した標的型攻撃 - 忙しい人のためのサイバーセキュリティニュース](https://nanashi0x.hatenablog.com/entry/2018/07/17/210000)
[Cisco's Talos Intelligence Group Blog: Advanced Mobile Malware Campaign in India uses Malicious MDM](https://blog.talosintelligence.com/2018/07/Mobile-Malware-Campaign-uses-Malicious-MDM.html) (2018/7/12)
[【続報】MDMツールを使用してマルウェア配布。前回調査結果は「氷山の一角」か - 忙しい人のためのサイバーセキュリティニュース](https://nanashi0x.hatenablog.com/entry/2018/07/26/223000) (2018/7/26)
#### ほか
[Google Playから悪質アプリが29本削除。検出を逃れる巧妙な手口が明らかに](https://japanese.engadget.com/2019/02/04/google-play-29/) (2019/2/4)
> これら悪質アプリはユーザーの望まない広告をプッシュ表示したり、個人情報を盗むフィッシングサイトへと誘導したり、顔写真を盗むねらいと推測されるもの。ストアから削除されるまでに11のアプリが10万回以上、そのうち3本が100万回以上もダウンロードされたと伝えられています。
### 余談:iOSでアンチウイルスが成立しない話
[iPhone向けのアンチウイルスアプリは存在するか | カスペルスキー公式ブログ](https://blog.kaspersky.co.jp/ios-security-explainer/21510/) (2018/9/26)
狙われる家庭用ルーター
----
TODO:概要
* 家庭用ルーターの脆弱性
* 管理者アカウントのパスワードが初期のまま
* 管理画面にXSS脆弱性
* PHPの任意コード実行脆弱性
* [DNS 設定を書き換えるマルウエア (DNS Changer) 感染に関する注意喚起](https://www.jpcert.or.jp/at/2012/at120008.html)
* [【セキュリティ ニュース】不正DNSへ変更する「GhostDNS」、10万台以上が被害 - 70種類以上のルータが対象(1ページ目 / 全4ページ):Security NEXT](http://www.security-next.com/098578) (2018/10/3)※ルーターが家庭 or 商用のどちら?両方?
TODO:DNSチェンジャーとは
* [DNSチェンジャーの脅威とは | トレンドマイクロ:セキュリティ情報](http://about-threats.trendmicro.com/RelatedThreats.aspx?language=jp&name=How+DNS+Changer+Trojans+Direct+Users+to+Threats)
一見外部からアクセスできないように見えるルーターは、以下の経路によりアクセス可能である。ルーターのセキュリティは重要視されるべきで、内部ネットワークで使っているからそんなに影響がないと思ってはいけない。
* (a) 改ざんされた正規サイト→ルーターにアクセス→ルーターのDNS設定書き換え
* (b) マルウェア感染済み端末→ルーターにアクセス→ルーターのDNS設定書き換え
ルーターにアクセス出来てしまうのは、脆弱性の利用でそれが容易であったり、管理者のアカウントパスワードが初期設定のままであるか、推測が容易なものであるからという理由による。
(a)の例:
* [Wi-Fi ルータの DNS 情報の書換え後に発生する事象について](http://blog.nicter.jp/reports/2018-02/router-dns-hack/) (2018/3/26)
* TODO: 他の記事
* [ルーターのDNS改竄によりダウンロードされる「facebook.apk」の内部構造を読み解く – カスペルスキー公式ブログ](https://blog.kaspersky.co.jp/malicious-facebook-apk/19968/) (2018/4/2)
また、ファームウェアの欠陥により、管理画面が意図せず外部に公開されていることがある。
このケースにおける実機観測結果が以下の通り報告されている。
* [ルータのDNS設定を変更するサイバー攻撃にご用心 | セキュリティ対策のラック](https://www.lac.co.jp/lacwatch/people/20180607_001647.html) (2018/6/7)
### JITON(2016年~;PC&スマホ)
* [ニュース - 家庭のルーターやテレビに迫るサイバー攻撃、トレンドマイクロが解説:ITpro](http://itpro.nikkeibp.co.jp/atcl/news/16/110703280/?rt=nocnt)
* [家庭用ルータを狙う不正スクリプト「JITON」、国内でも攻撃継続中 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/13114)
> 問題の不正な JavaScript は、改ざんされた正規サイトに仕掛けられており、日本国内のサイトにおいても該当の改ざんを確認しています。このような活動は以前にも「家庭用ルータの DNS設定変更を行う不正プログラムを確認」で報告をしていますが、不正サイトへの誘導により、結果として不正プログラム感染や、アカウント認証情報の詐取などの被害に遭う恐れがあります。
### Switcher(2016年~;Andorid)
* [Androidを標的にした新種のマルウェア “Switcher” が発見される。Android経由でWi-Fiルーターを乗っ取りDNS設定を書き換えて詐欺サイトに誘導 | juggly.cn](http://juggly.cn/archives/213740.html)
* [Switcher: Android joins the ‘attack-the-router’ club - Securelist](https://securelist.com/blog/mobile/76969/switcher-android-joins-the-attack-the-router-club/)
### VPNFilter(2018年)
[Cisco's Talos Intelligence Group Blog: New VPNFilter malware targets at least 500K networking devices worldwide](https://blog.talosintelligence.com/2018/05/VPNFilter.html) (2018/5/23)
> ![](https://i.imgur.com/yKWj6cp.png)
これが第一報。
[ネットワーク機器を標的とするマルウェア「VPNFilter」について](https://www.jpcert.or.jp/newsflash/2018052401.html) (jpcert; 2018/5/24)
> 2018年5月23日 (米国時間)、Cisco Talos から、ネットワーク機器を標的とする VPNFilter と呼ばれるマルウエアに関する調査結果が公開されました。この調査結果によると、VPNFilter の感染活動は 2016年から確認されており、今年 5月から世界中で感染活動が拡大していることから、対象デバイスのユーザに対して対策を呼び掛けています。
>
> Cisco Talos によると、感染したデバイスの数は、少なくとも 54カ国 50万台と推定され、QNAP、Linksys、MikroTik、NETGEAR および TP-Link の製品が対象となっているとのことです。該当する機器の詳細については Cisco Talos の情報を参照してください。
[続報:IoT ボット「VPNFilter」に感染したデバイスで 19 件の脆弱性を確認 | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/19349) (2018/7/30)
利用している脆弱性の一覧あり。
### Moose(2015年:Linux)
読み:むーす。
* [Linuxルーターを狙うワーム「ムース」がSNSをむさぼり尽くす | マルウェア情報局](https://eset-info.canon-its.jp/malware_info/news/detail/150618.html)
### ルーターの防衛手段
こんなのがある。筆者はTrendMicroの回し者ではないよ。
[ウイルスバスター for Home Network - トレンドマイクロ](http://safe.trendmicro.jp/products/vbhn.aspx)
TODO:このInternals←ARPスプーフィング
IoTマルウェア
----
IoT機器に対するマルウェア感染は2016年頃からホットになった。(2017年で下火になった感。)
2018年~2019年はハニーポットなどでよく観測されてホットな話題だった感じ。
[IIJ Security Diary: 2018年の IoT ボット観測状況と最近の動向](https://sect.iij.ad.jp/d/2019/01/288147.html)
> * Mirai, qBot, Hajime の 3大ファミリーが勢力を維持
> * 多数のコードの販売、リークによる参入障壁の低下と亜種の多様化
> * 攻撃者らによる SNS の利用と DDoS 攻撃のさらなるカジュアル化
> * Mirai 作者、Satori 作者らへの有罪判決
> * Telnet 以外の感染手段として多様なエクスプロイトの利用
> * DDoS 攻撃以外の目的を持ったボットの存在
■ボットの分類が難しい話
https://twitter.com/MasafumiNegishi/status/1081438845437075456
> **@MasafumiNegishi**
> ボットの分類は実は結構難しくて、qBot (Gafgyt) や Mirai はコードが公開されているので改変しやすい。たとえばこの検体 (Hakai) は DoS攻撃や C2通信の機能は qBot から、SYN スキャンの機能は Mirai から流用してます。なので AVエンジンによって検知名がバラつきます。
> https://www.virustotal.com/#/file/29682c1ec48b8c72bf2d84236726e2334c84e174713199ba21dcf64e52c96b83/details
### Mirai(2016年~2018年現在)
TODO。2016年12月がピーク?(TODO)。2017年はMiraiよりもHajimeのイメージ。
2017年のUSENIXでMiraiに関する報告がありそうです。期待ですね。
[Understanding the Mirai Botnet | USENIX](https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/antonakakis)
~~TODOだらけで良ければこちらも→[All about Mirai (Malware) ](https://hackmd.io/s/S122vFpQl#)~~
#### 亜種?:Hajime(2016年9月~)
TODO: Miraiの亜種でもなく、Miraiとは正反対らしい
TODO: あとで裏取り→[IoTのボットネットの新入りマルウェア「PERSIRAI」 | THE ZERO/ONE](https://the01.jp/p0005224/)
#### 亜種:PERSIRAI(2017年)
> OEMで生産されたネットワークカメラを対象にしており、影響のあるモデルは1,000以上になります。PERSIRAI は、既にインターネット上でソースコードが公開されている「MIRAI」から派生したマルウェアとして出現しました。 [1]
[1] [IoTの新たな脅威、ネットワークカメラをボット化する「PERSIRAI」の出現 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/14836)
### 亜種:Yowai(2019年?~)
[Webアプリの脆弱性を利用するボット型マルウェア「Yowai」および「Hakai」を確認 | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/20253)(2019/2/1)
> トレンドマイクロは、主に中国で利用されているWebアプリケーション開発フレームワーク「ThinkPHP」で遠隔からのコード実行(Remote Code Execution、RCE)が可能になる脆弱性が、Miraiの新しい亜種「Yowai」および「Gafgyt」の亜種「Hakai」によって利用されていることを確認しました。
### BrickerBot(2017年)
> BrickerBot の場合、IoT機器のストレージ機能とカーネルパラメータの設定を変更する、インターネットへの接続を妨害する、動作速度を低下させる、機器内のファイルを削除するなどの一連の不正な Linuxコマンドを実行することで機器に致命的な改変を加え、最終的に使用不能にします。 [1]
[1] [IoT機器を「使用不能」にするマルウェア、「BrickerBot」 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/14757)
### Reaper(2017年)
[IoT 機器を狙う「Reaper」、数百万台のネットワーク機器に感染 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/16282) (2017/11/1)
> Reaper は、さまざまな、「Internet of Things(モノのインターネット、IoT)」機器に存在する既知の脆弱性を突いて機器を乗っ取り、コマンド&コントロール(C&C)サーバとの通信による遠隔操作を可能にします。
(DAWソフトのReaperと名前を被らせるのやめちくり)
### Bashlite(2014年~)
別名:Gafgyt, Lizkebab, Qbot, Torlus, LizardStresser [wikipedia](https://en.wikipedia.org/wiki/BASHLITE)
[IoTマルウェア「Bashlite」、新たにUPnPを利用しスマートホーム機器を狙う | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/20879) (2019/4/17)
> 今回確認されたBashliteは、ペネトレーションテストのためのフレームワーク「Metasploit」のモジュールを使用することで、Universal Plug and Play(UPnP)APIを有効化したスマートホーム向けIoTデバイス「WeMo」を狙います。
QBotのソースコードらしきもの:
https://github.com/geniosa/qbot
### 以下ネタ枠
#### Linux.MulDrop.14(2017年)
[「Raspberry Pi」を狙うマルウェアが出現--暗号通貨をマイニング - ZDNet Japan](https://japan.zdnet.com/article/35102503/) (2017/6/9)
ロシアのDoctor Webがおとりのラズパイで発見。pi:raspberry(Raspbianのデフォルトユーザーとパスワード)で外部からログインできるラズパイをターゲットにする。拡散活動あり。ビットコインではない暗号通貨のマイングもおこなうとのこと。
[Shodanで"ssh raspbian"と検索すると](https://www.shodan.io/search?query=ssh+raspbian)約7万台ヒットするので、目のつけどころはいいのかもしれない。__※勝手にログインするのは不正アクセスなのでやってはいけませんよ__
狙われる産業システム
----
産業システムで使われるシステムは外界からの攻撃を想定していない作りであることがあり、それが今になっても使われ続けてしまったためにこのような現状となっている。
産業システム系はカスペルスキーが頑張ってる印象。
### Stuxnet(2010年)
読み:すたっくすねっと。TODO: (もう古すぎないか…)
<!--
要点(大昔に調べたときの記憶で書いてるのでここの情報は暫定):
* USBデバイスを起点に感染
* 未知のWindowsの脆弱性を複数利用
* 特定のネットワーク構成でのみ動作
* PLCの制御コードに不正コードを挿入
* 異常な動作をするような制御命令を出させる
* シマンテック、トレンドマイクロから詳細な解析レポートが出ている。シマンテックはStuxnetが動作するようなネットワークを実際に組んで動作検証した
-->
### BlackEnergy 2(2010年)
TODO
### CrashOverride(2016年)
ESETの検出名はWIN32/INDUSTROYERっぽい。
* [JVNTA#99970831: 制御システムを狙う CrashOverride マルウェアの脅威](https://jvn.jp/ta/JVNTA99970831/index.html) (2017/6/13)
* [停電の原因は産業制御システム狙うマルウェアか 「Stuxnet以来、最大の脅威」 - ITmedia エンタープライズ](http://www.itmedia.co.jp/enterprise/articles/1706/13/news052.html) (2017/6/13)
* > セキュリティ企業のESETは6月12日、ウクライナの首都キエフで2016年12月に発生した停電について、産業制御システムを狙うマルウェアを使ったサイバー攻撃だった公算が大きいと発表した。「Stuxnet以来最大の産業制御システムに対する脅威」と位置付けている。
* [ESET: WIN32/INDUSTROYER - A New Threat for Industrial Control Systems](https://www.welivesecurity.com/wp-content/uploads/2017/06/Win32_Industroyer.pdf) (2017/6/12)
* [Welcome to Dragos](https://www.dragos.com/blog/crashoverride/) (2017/6/12)
* PDF Report: [CRASHOVERRIDE: Analysis of the Threat to Electric Grid Operations - CrashOverride-01.pdf](https://www.dragos.com/blog/crashoverride/CrashOverride-01.pdf)
### 通信事業者
[通信事業者を狙った世界規模のサイバー攻撃:Operation SoftCell | BLOG | サイバーリーズン | EDR(次世代エンドポイントセキュリティ)](https://www.cybereason.co.jp/blog/cyberattack/3694/) (2019/07/03)
> 2018年、Cybereason Team Nocturnusは、グローバル通信事業者を標的としたあるAPT攻撃の存在を確認しました。
> 攻撃の目的は、大手通信事業者のCall Detail Record(CDR:通話に関する詳細記録)を盗み出すことにありました。
POSマルウェア
----
POS マルウェアについて - 株式会社FFRI
http://www.ffri.jp/assets/files/monthly_research/MR201409_Survey%20of%20POS%20Malware_JPN.pdf
[PoSマルウェア「TreasureHunter」のソースコードがオンラインに流出 - THE ZERO/ONE](https://the01.jp/p0006748/) (2018/5/18)
[機能追加を続ける「TrickBot」、POSシステムを狙う新しいモジュールについて解説 | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/20024)(2018/12/26)
> この新モジュールは、感染PCが接続されたネットワークをスキャンし、POSに関連したサービスや機器を検索します。
>
> psfin32は、ドメイン管理者や基本的なユーザアカウントの情報に基づいてネットワーク内のPOSサービスを識別するために、以前のモジュールと同様にLDAPクエリを利用し、ネットワーク上のオブジェクトに関する情報を格納するActive Directory Service(ADS)にアクセスします。このLDAPクエリは、グローバルカタログの「dnsHostName」属性に以下の文字列が含まれたコンピュータを検索します。
ATMマルウェア
----
[「ATMマルウェア」の実態とその攻撃手口に迫る | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/16318) (2017/11/6)
記事内に詳細レポートへのリンクあり
マルウェア対策(Anti-Malware)を俯瞰してみる
----
### 積極的対策
積極的なマルウェア対策の主要なアプローチは次の通り。
* 非実行状態のマルウェアの検出
* 詳しくは、後章「マルウェアの検知手法の分類」参照
* メールサーバーでの添付ファイルの検疫
* 例)GMail
* 実行状態のマルウェアの検出
* TODO:章を立てねばならぬか…
* APIフック
* メモリ検査
マルウェア対策ソフトはどちらの場合でも検出行為をしている印象。(少なくともCylance PROTECTはそう)
### 消極的対策
消極的なマルウェア対策の主要なアプローチは次の通り。
#### 物理レベル
* プラットフォームレベルの環境の分離(Trusted execution environment;TEE)
* ある意味サンドボックスのハードウェア実装ともいえる。最も信頼を置くことになるファームウェア(ブートローダー)がセキュアに実装されていることがすべての前提になる
* Intel系:Trusted Execution Technology
* ARM系:TrustZone(ELx Architectureという人もいる)
* 実行コアを共有するものの、実行環境(レジスタ除く)をSecure World、Non-Secure Worldに分け、さらに実行レベルを複数段階に分けることを特徴とする
* TrustZoneの要は、AXIバス(うろ覚え)に接続されたTZCモジュールにより、セキュアアクセスとノンセキュアアクセスを識別し、メモリ領域をセキュア側のみがアクセスできる領域、両者がアクセスできる領域に分けることである。
* AXIバスは、アクセス元がセキュアであるかノンセキュアであるかを識別するビットフラグ(アクセスビットって名前だった記憶)を持てる。
* 実行レベルを分けるのは、ファームウェア(=モニター;ハイパーバイザー相当)の責任で、ARM CPUはアーキテクチャとしてElxのレベリングの仕組みを用意するだけ。
* TrustZoneにおけるモニターとは、実行をセキュア-ノンセキュア間で切り替えるためのソフトウェア。
* 実行対象の切り替え(モニターの呼び出し)はSMC命令または割り込みがきっかけ
* ARMの割り込みは、FIQとIRQの2レベルに分かれている。TrustZoneでは、FIQがSecure World専用、IRQがNonSecure World専用という割当だったはず。
* レジスタの退避と切り替えはモニターが行う。
* この辺の実装は[SafeG](http://www.toppers.jp/safeg.html)を見ると分かりやすい。国産でコードベースが小さいので、初心者にオススメ。
* マゾな方にはARM謹製の[ARM Trusted Firmware](https://github.com/ARM-software/arm-trusted-firmware)がオススメ
* 当然モニターがTrustZoneの攻撃ベクターになる。
* 例)セキュアOSはノンセキュアOSに対して、データ共有のAPIを公開します。もし、ノンセキュアからセキュアに悪質なポインターを渡すと、何が起こるでしょうw?
* iPhone 5以降で使用されているとされていると噂
* (もっと解説したほうがいい?といってもARMv8-Aの方しか分からない→ちょっと書いた)
#### 論理レベル/実行環境レベル
* サンドボックスによる環境の分離
* ブラウザ:Chrome(確か)
* モバイル:iOS, Dalvik VM
* Appleは、iOSではアプリごとに監獄ができているので、アンチウイルスが成立不可能という見解
* TODO:App Storeの審査ガイドライン?(公式声明が出てた)
* ユーザーアプリケーション向け:UWP
* TODO: 中身どうなってるんかな。これを突っついている研究者いないんかな
* AV的なハイパーバイザー
* 例)[INT-Φ(INT ZERO) by F.TRON](http://www.ftron.co.jp/japanese/products/)
#### ネットワークレベル
* ネットワークの分離
* DMZ、VLAN
* ネットワークトラフィックの監視
* パーソナルファイヤーウォール(要はセキュリティソフトについてくるファイヤーウォール機能)
* ファイヤーウォール、IDS、IPS、**TODO**
* snort、Surikata (IDS)
* 人力部門→MSS(Managed Security Service)、SOC(Security Operation Center)
* DNSレベルでのマルウェア通信のシャットアウト
* TODO:サービス例
#### アプリケーションレベル
* サンドボックス環境でのWebページの事前レンダリング
* サービス例
* マクニカ(Menlo Security)[[プレスリリース](http://www.macnica.net/pressrelease/menlosecurity_20150825.html/)]
* IIJ[[プレスリリース](http://www.iij.ad.jp/news/pressrelease/2017/0116.html)]
* JavaScriptの無害化とサンドボックス内実行
* 例)Google Apps Script(※GAS側で無害化を無効化可能)
#### OSレベル
* EDR
* 例)[Carbon Black](https://www.carbonblack.co.jp/topics/edr/)
アンチウイルス
----
[Making an antivirus engine : Guidelines - Adlice Software](https://www.adlice.com/making-an-antivirus-engine-the-guidelines/) (2013/7/15)
> So, I’ll cover here the guidelines for a basic antivirus coding, for Windows and in C/C++. One can found here the pointers to design an antivirus engine, or simply learn how most of them are built.
マルウェアの検知手法の分類
----
### シグネチャ
TODO
* yara
### ヒューリスティック技術
資料:
* たのしいバイナリの歩き方
*
### ログベース(動的解析)
TODO:
* Symantecがクラウドで動的解析環境を提供しているらしい
* クラウドなのは解析基盤を秘密にしたいからだそうで
### 静的解析+機械学習
**TODO**: Cylance(サイランス)PROTECT, Black Carbon
* [AIで定義ファイル不要の軽さを実現、マルウェア対策ソフト「CylancePROTECT」 -INTERNET Watch](http://internet.watch.impress.co.jp/docs/news/1039391.html)
[閑話休題]要は完全なものなど無いという話です。
* CylancePROTECTの輝かしい戦績→ [CylancePROTECT vs. X](https://www.google.co.jp/search?q=CylancePROTECT+vs.+site%3Acylance.com)
* タコ殴りにされるCylancePROTECT→[CylancePROTECT vs. X](https://www.symantec.com/connect/blogs/cylanceprotect-symantec-labs-analysis)
[余談]機械学習は信頼ならないかも。
<blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="ja" dir="ltr">Cylance等の機械学習を使ったAVはある意味で凄い・・<br> <a href="https://twitter.com/hashtag/include?src=hash">#include</a> <stdio.h><br> int main()<br> {<br> printf("Hello world!\n");<br> return 0;<br> } <a href="https://t.co/Z5atznKECP">pic.twitter.com/Z5atznKECP</a></p>— yamatosecurity (@yamatosecurity) <a href="https://twitter.com/yamatosecurity/status/896293163375001600">August 12, 2017</a></blockquote>
### 機械学習との向き合い方
[死にゆくアンチウイルスへの祈り | 一生あとで読んでろ](https://ntddk.github.io/2017/09/10/a-prayer-for-the-dying-antivirus/) (2017/9/10)
[A cat-and-mouse game on a dataset(by 愛甲健二)](https://github.com/kenjiaiko/secml/blob/master/SecML_web.pdf) (2017/9/10) ※最初の数ページは空白
機械学習とそこで利用するデータセットへの付き合い方。いつごろまで高い検出率を維持できるのかを考えるのも大事。
[アウトブレイクを食い止めるための新たな機械学習モデルを検証 | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/22175) (2019/08/15)
> 本リサーチでは、ごく少数の検体のみが利用可能な場合に「敵対的自己符号化器(Adversarial AutoEncoder、AAE)」を用いて動的にマルウェアを検出する手法を提案し、その性能を評価しました。
[New machine learning model sifts through the good to unearth the bad in evasive malware - Microsoft Security](https://www.microsoft.com/security/blog/2019/07/25/new-machine-learning-model-sifts-through-the-good-to-unearth-the-bad-in-evasive-malware/) (2019/07/25)
> Most #machinelearning models are trained on a mix of malicious & clean features. Attackers try to throw these models off balance by stuffing clean features into malware, but that doesn’t work against a new class of detection models called monotonic models.
> Twitter: @msftsecintel
マルウェア(バイナリ)の表層解析
----
表層解析(Surface Analysis)は、バイナリをリバースエンジニアリングすることも、実行することもせず、ただファイルをパースして得られる情報を解析することをいう。解析の初期段階にこれを行う。
表層解析で得ておきたい情報は次の通りである。
* ファイルの形式:PE、ELF、js、ps1、swf、jpg、png…
* 対象のCPUアーキテクチャ:x86、x86_64、ARM、…
* 実行ファイルの場合→パッカーの有無、パッカーの種類:UPX、ASPack、…
* PEの場合→使用しているWindows API
* APIの種類が少ないときはパッカーの存在を疑う
* スクリプトファイルの場合→難読化の有無
* 画像ファイルの場合→exif情報、ヘッダ
* ファイルのmd5、sha1、sha256ハッシュ
* ハッシュ値でググったり、Virus Totalにハッシュ値を投げる
表層解析で役立つツールは次の通りである。
* file
* linuxのコマンド
* ファイルのMIME(ファイルの種類)を表示してくれる
* readelf
* binutils付属コマンド
* `-h`オプション: ELFのヘッダを表示→対象アーキテクチャが分かる
* `-s`オプション: シンボル情報(関数など)を表形式で表示
* 同binutilsのnm コマンドの方が楽の可能性がある
* PEiD
* __32ビットPEファイル限定__。開発停止中
* 主要なパッカーの検出を行える
* 【宣伝】64ビットPEほかにも対応した[Yet AnotherなPEiD](https://github.com/K-atc/PEiD/)作りました
* yara
* 種々のルールでパターンマッチングすることが得意。理論上ファイルの形式を問わないのも強み(Cuckoo SandboxのログもOK)
* PEiDの代替になる ?
* python-yaraはyaraのpython向けラッパー
* strings(コマンド)ないしは解析ツールのstringsウインドウ
* どんなAscii文字列が含まれているのかを知ることは重要。解析の省力化につながる
* 解析ツール:IDA Pro、x64dbgなど
* 呼び出しているWindows APIの一覧がImportsウインドウにあるはず
* 010Editor
* ファイルをパースしてフィールドごとの値をチェックできたり、フィールドごとに色を付けたりする機能あり。特に画像ファイルや正体不明ファイルの解析向き
* `man ascii`コマンド
* ASCIIコード表をシュッと出したいときに便利^^
マルウェアの静的解析とその妨害
----
静的解析(Static Aanlysis)は、検体を __実行せずに__ 動作内容を把握することを目標とする解析方法である。実行しないとしても、解析ツールに対する攻撃が存在するため、 __解析環境は解析専用の環境__ であることが望ましい。
手法:
* ディスアセンブラ、デコンパイラ(=解析ソフト)の利用
* [#バイナリ解析環境を整えよう](#バイナリ解析環境を整えよう)で述べた通り
* シグネチャ
* バイナリの特徴的なバイト列に着目
* 例:yara
anti-静的解析の手法:
* IDA Proなどの解析ソフトの脆弱性への攻撃
* パッカー([別章](#パッカー、アンパック)を参照されたし)
* 難読化([別章](#難読化と難読化解除)を参照されたし)
* stripped binary
* 特定の引数・ファイル(復号鍵など)を与えないと動かなくする
* TODO:これは妄想。具体的な検体を見つける
参考になる資料:
* [Edomae 2015 - マルウェアを解析してみよう](http://www.slideshare.net/SatoshiMimura/edomae-2015)
[余談]バイナリ解析ツールへの攻撃:
* [IDAの脆弱性とBug Bounty by 千田 雅明](https://www.slideshare.net/codeblue_jp/masaaki-chida-japub)
### stripped binary
シンボル情報を取り除かれたバイナリのこと。元の関数名が分からないため、静的解析が困難になる。共有ライブラリを静的リンクし、stripすると効果絶大。
#### シンボル情報の復元
[Project Zero: Searching statically-linked vulnerable library functions in executable code](https://googleprojectzero.blogspot.com/2018/12/searching-statically-linked-vulnerable.html) (2018/12/18)
### アンチディスアセンブル
一般的なテクニックは以下の本を参照するとよい。
* Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software
#### 関連トピック
[RISC-V での簡単なアンチ逆アセンブル - FFRIエンジニアブログ](https://engineers.ffri.jp/2019/08/22/riscv_antidisassembly/)
マルウェアの動的解析とその妨害
----
動的解析(Dynamic Analysis)は、検体を実行しながら動作内容を把握することを目標とする解析方法である。
手法:
* 検体をアンパックして静的解析に回す
* アンパックするときはx64dbgなどのデバッガを利用するとよい
* メモリを解析(アンパックされてメモリに展開されたコードを解析)
* e.g. [マルウエアの設定情報を抽出する ~ MalConfScan ~ - JPCERT/CC Eyes | JPCERTコーディネーションセンター公式ブログ](https://blogs.jpcert.or.jp/ja/2019/07/malconfscan.html) (2019/7/30)
* メモリインジェクションされたコードを抽出して静的解析に回す
* APIコールトレース
* Process Monitor(Sysinternals Suiteの1つ)
* イベントを収集できるが、内容は簡易的。正確にはAPIでなくイベントのトレース
* 全部収集してからフィルターでほしいものを表示するアプローチ
* [API Monitor](http://www.rohitab.com/apimonitor)
* Win32APIなどの呼出しを引数とともに表示する。引数をHexdumpで見ることができ地味に便利
* 欲しいものを指定してから(kernel32.dllのAPIだけという指定も可能)それだけを収集するアプローチ
* サンドボックスでの実行
* [#仮想化技術、サンドボックス](#仮想化技術、サンドボックス) を参照されたし。
* テイント解析(Taint Analysis)
* TODO:章を立てる
* パケットキャプチャ
* 使えたほうがいいツール→Wireshark, tcpdump
* トラフィック解析
* 使えたほうがいいツール→Fiddler
* Malware Traffic Analysisが [練習問題](http://www.malware-traffic-analysis.net/training-exercises.html) を用意している
anti-動的解析:
* anti-debug
* Anti-VM/Anti-Sandbox
### 上記手法を利用できるツール
~~TODO:別の章に移動~~
#### IDA Pro プラグイン
[Talos Blog || Cisco Talos Intelligence Group - Comprehensive Threat Intelligence: Dynamic Data Resolver (DDR) - IDA Plugin](https://blog.talosintelligence.com/2019/01/ddr.html)(2019/1/16)
> * Code Flow Trace
> * Shows which basic blocks were executed how many times by approx. 20 different colors
> * Searchable API call logging
> * This includes all occurrences where certain instructions e.g call,jxx,etc., touch an API address
> * Searchable string logging
> * Resolving dynamic values and auto-commenting
#### FakeNet-NG + Noriben
:::info
かっちりしたサンドボックスよりも、このNoribenをベースとした解析から手を付けるのがお手軽です
:::
FakeNet-NG:
https://github.com/fireeye/flare-fakenet-ng
> akeNet-NG is a next generation dynamic network analysis tool for malware analysts and penetration testers.
Noriben:
https://github.com/Rurik/Noriben
> Noriben - Portable, Simple, Malware Analysis Sandbox
#### 使用例
[training_material_sample_for_dynamic_analysis.pdf](https://sect.iij.ad.jp/d/2018/05/044132/training_material_sample_for_dynamic_analysis.pdf) (2018/5; by IIJ)
* Fakenet32.exe
* Noriben.py
* (glogg)
#### DECAF
#### SLIME Sandbox
https://www.blackhat.com/docs/asia-15/materials/asia-15-Chubachi-Slime-Automated-Anti-Sandboxing-Disarmament-System.pdf
"SLIME Sandbox fakes different sandbox-related artifacts each malware execution"
"SLIME logs instruction per execution"
実際のマルウェア解析例
----
* [IDA Pro・Responder Pro・Shadow3を用いたマルウェアの解析例 | フォーカスシステムズ サイバーフォレンジックセンター](https://cyberforensic.focus-s.com/support/1284/)
* 目次を見れば分かる通り、細かく見ている
* [Course: CS-E4330 - Special Course in Information Security - Reverse Engineering Malware, 11.01.2017-05.04.2017, Section: Materials](https://mycourses.aalto.fi/course/view.php?id=13064§ion=1)
* FsecureのPaolo Palumbo氏による出張講義の資料?
* Windowsにおける各種解析テクを実践する講義の模様(ツールが古い…)
### 解析エンジンの実際
#### Windows
[Reverse Engineering Windows Defender’s JavaScript Engine](https://recon.cx/2018/brussels/resources/slides/RECON-BRX-2018-Reverse-Engineering-Windows-Defender-s-JavaScript-Engine.pdf) (REcon Brussels 2018)
サンドボックスを用いた安全な解析
---
### Jail系(TODO:←くくりが雑すぎる)
[Microsoft didn’t sandbox Windows Defender, so I did | Trail of Bits Blog](https://blog.trailofbits.com/2017/08/02/microsoft-didnt-sandbox-windows-defender-so-i-did/) (2017/8/2)
Windows DefenderのスキャナがSYSTEM(Windowsの最上位の権限)で動いていて危なっかしいので、俺がサンドボックスを追加してあげたぜって話?
1枚目のgifはWannaCry検体のシステムへのアクセスを拒否させたってデモかな?
Windows Defender自体はサンドボックスを持たない?[要調査]
[Windows Defender Antivirus can now run in a sandbox - Microsoft Secure](https://cloudblogs.microsoft.com/microsoftsecure/2018/10/26/windows-defender-antivirus-can-now-run-in-a-sandbox/)(2018/10/26)
> Windows Defender Antivirus has hit a new milestone: the built-in antivirus capabilities in Windows can now run within a sandbox.
#### AppArmor
[AppArmor - Wikipedia](https://ja.wikipedia.org/wiki/AppArmor)
#### SELinux
#### seccomp
#### gVisor
[20分でわかるgVisor入門](https://www.slideshare.net/uzy_exe/201805gvisorintroduciton?slide=16)
### VM系
### Hypervisor系
仮想化技術(サンドボックス)を用いた動的解析
----
[3] 仮想化技術によるマルウェア対策とその問題点(2012年;須崎@横国大)
http://www.slideshare.net/suzaki/ss-13589611
[Malware Analysis 101 - Sandboxing - InfoSec Write-ups - Medium](https://medium.com/bugbountywriteup/malware-analysis-101-sandboxing-746a06432334)(2019/09/29)
サンドボックスでの解析についての長所・短所を述べている(流し読みした感じだと)
### VM型
#### QEMU
[1] 仮想化技術を用いたマルウェア解析(2014年;by ntddk):
https://speakerdeck.com/ntddk/jia-xiang-hua-ji-shu-woyong-itamaruueajie-xi
* DECAF(QEMUのプラグイン)
* テイント解析
* シンボリック実行
おすすめ書籍([1]の受け売り):
* [Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design)](http://www.amazon.co.jp/dp/B006NV2EO0/) [1]
* 9,000円
#### Cuckoo
読み:かっこう。使いやすくなったバージョン2を使おう。
[マルウェア対策“一部”内製化大解剖(2):Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (1/2) - @IT](http://www.atmarkit.co.jp/ait/articles/1707/06/news032.html) (2017/7/10)
[マルウェア対策“一部”内製化大解剖(終):Cuckoo Sandbox、Selenium WebDriver、bson解析――独自マルウェア解析環境を自動化した際に施した2つの工夫 (1/2) - @IT](http://www.atmarkit.co.jp/ait/articles/1707/28/news011.html) (2017/7/28)
←自社にとって最適な動的解析環境を追求した話
### VMM型
VMMにトレーサー機能を付けたタイプ。システム全体の動きが分かるのがVM型に対するメリットかな
[2] FFR GreenKiller (AVAR 2009@kyoto; by Junichi Murakami)
http://www.ffri.jp/assets/files/research/research_papers/avar-2009-murakami.pdf
* [BitVisor](http://www.bitvisor.org)
* "Open-source VMM software(BSD License)"
* "GreenKiller uses BitVisor as a VMM framework"
Alkanet: http://www.iwsec.org/mws/2015/pdf/IPSJCSS2015111.pdf
rVMI - A New Paradigm For Full System Analysis
https://github.com/fireeye/rvmi
### オンラインサンドボックス
セットアップが不要で、レポートも見れて、手軽。無料の範囲ではVirusTotalがおすすめ。
サービス | ベース | ゲストOS | Poweshell | サンプルログ | コメント
:---:|:---:|:---:|:---:|:---:|:---:
[VirusTotal](https://www.virustotal.com/ja/) | TODO(複数あり) | Win, macOS, Linux | TODO | TODO | 情報が豊富でおすすめ
[ANY.RUN](https://any.run/) | TODO | Win (TODO) | TODO | TODO | 検索がリッチでほしい検体を探すときに便利らしい。動的解析はインタラクティブにブラウザ越しで行える。
[hybrid-analysis.com](https://www.hybrid-analysis.com/) | VxStream | Win7? | Yes | TODO | 無料枠では見れる結果に制限が強い
[Deepviz](https://sandbox.deepviz.com/) | Deepviz | Win7 | Yes | TODO |
[Malwr](https://malwr.com/submission/) | Cuckoo | WinXP | <font color="red">No</font> | TODO | 使う理由がない
要チェック:eyes::
* [Free Automated Malware Analysis Sandboxes and Services](https://zeltser.com/automated-malware-analysis/)
### Hybrid Analysis
[How to issue a full API key for automated submissions - Hybrid Analysis Knowledge Base - Hybrid Analysis Team](https://team.vxstream-sandbox.com/display/VSKB/How+to+issue+a+full+API+key+for+automated+submissions)
2017/11/24にAPIによる検体提出が可能になった。
### QEMU
**FixMe**:別章に移動するか章として独立?
ソースコードを読もうとすると遭難するとの噂。
QEMUのここがクソだよ:
* **後方互換性への配慮が無く**、その説明もRelease Noteに特に無い。バージョンアップするには温かみある手動パッチが必要
* 例)ヘッダーファイルの消滅を伴う形でQIntとQFloatをQNumに統合@[Commit 01b2ff](https://github.com/qemu/qemu/commit/01b2ffcedd94ad7b42bc870e4c6936c87ad03429)
* 1.xと2.x系でディレクトリの構造が様変わり
* eventを飛ばすためにC\+\+のTemplete構文を使用(C\+\+初心者殺し)
#### ソースコードのディレクトリ構造
TODO:ソースコードリーディングの成果を発揮←正直書くのがめんどい
#### Dynamic Binary Translation (DBT)
QEMUのDynamic Binary Translationがあって良かったねという話:
https://speakerdeck.com/ntddk/qemufalsedynamic-binary-translationgaatuteliang-katutanetoiuhua
* __"DBTがQEMUの肝"__
* Tiny Code Generator (TCG)
* "ゲストのコードを逆アセンブルし中間コードに変換→中間コードをホストのコードに変換"
* Translation Block
* 基本ブロック的なもの?
* TCGで可能なこと:"バイナリをLLVMに逆コンパイル(S2E[ASPLOS11])"
* KLEE←S2Eが依存。"与えられたソースコードをLLVMでビルド"
#### bhyve
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">僕がbhyveを広めたいのは、KVMを知ろうとしてQEMUのソースコードを読み始めたまま遭難して帰らぬ人となる若者を増やしたくないからです。</p>— СЮУ1228 (@syuu1228) <a href="https://twitter.com/syuu1228/status/460748398962806787">2014年4月28日</a></blockquote>
#### DECAF
QEMU [1.0](https://github.com/sycurelab/DECAF/blob/master/decaf/VERSION)ベースの動的解析環境(S2Eよりもベースのバージョンが古いんだが…)。
GitHub: https://github.com/sycurelab/DECAF
論文を読んでくだされ
[DECAF: A Platform-Neutral Whole-System Dynamic Binary Analysis Platform - Semantic Scholar](https://www.semanticscholar.org/paper/DECAF-A-Platform-Neutral-Whole-System-Dynamic-Bina-Henderson-Yan/5425dac9b3b70fe86edf846a7feb5beffa082ca6)
DECAF++(RAID 2019)
https://github.com/decaf-project/DECAF
[QEMU 1.0ベース](https://github.com/decaf-project/DECAF/blob/master/decaf/VERSION)(え?
資料:
* [DECAFによるマルウェア自動解析 | 一生あとで読んでろ](https://ntddk.github.io/2015/08/16/automated-malware-analysis-using-decaf-in-seccamp15/)
### BitVisor
[BitVisor: A Single-VM Lightweight Hypervisor](https://www.bitvisor.org/)
国産ハイパーバイザー。
TODO
チェックリスト:
* 東大品川研 https://www.os.ecc.u-tokyo.ac.jp/
* Twitter: [品川 高廣](https://twitter.com/utshina2)
* BitVisor Summit
* BitVisor のAdvent Calendar(12月に有志により開催)
### [Cuckoo](https://cuckoosandbox.org/)
今はCuckoo 2使ってください…
__TODO__:マルウェアの動的解析の実例としてもう一度登場させる
> Cuckoo Sandbox is an advanced, extremely modular, and 100% open malware analysis system with infinite application opportunities. By default it is able to:
> * Analyze many different malicious files (executables, document expoits, Java applets) as well as malicious websites, in Windows, OS X, Linux, and Android virtualized environments.
> * Trace API calls and general behavior of the file.
> * Dump and analyze network traffic, even when encrypted.
> * Perform advanced memory analysis of the infected virtualized system with integrated support for Volatility.
> http://www.iwsec.org/mws/2014/files/FFRI_Dataset_2014.pdf
> オープンソース(一部非公開)のマルウェア解析システム
> * 仮想環境内でマルウェアを実行
> * 実行時のふるまいをモニタリング
> * VirusTotal連携、yara連携等
### FFRI yarai analyzer professional ※商用製品
2017年1月、ver. 2.8よりFFR yarai改め、FFRI yaraiになった。
> http://www.iwsec.org/mws/2014/files/FFRI_Dataset_2014.pdf
> * 仮想環境内でマルウェアを実行
> * 実行時のふるまいをモニタリング
> * プロセス毎のAPI呼び出し履歴を取得可能
> * 解析対策機能を持つマルウェアを解析可能
>
> データの利用例
> * マルウェア検知・分類
> * ベンチマーク
> * 自身の自動解析システムとの比較、有効性検証
### FireEye AX ※商用製品
[マルウェア解析 | FireEye](https://www.fireeye.jp/solutions/malware-analysis.html)
> マルウェア解析(AXシリーズ)製品は、安全性が確保された環境で高度な不正活動をテスト・実行し、結果に基づいて分類、文書化します。
> * カスタマイズされたセキュリティ強化ハイパーバイザーでMicrosoft WindowsとMac OS Xの両方の仮想マシンに対応
アンチデバッグ(Anti-debug)
----
TODO
手法:
* デバッガ検知
* デバッガのアタッチを検出するAPIの利用
* WindowsだとKernel32のIsDebuggerPresent()、PDBのデバッガアタッチフラグ(名前忘れたw)
* CPUに設定されたハードウェアブレークポイント数を取得
* 意図的なint3命令
* ブレークポイント発生~ハンドラ終了までの時間を取得
* 対解析者
* Hidden Process
* リモートプロセスへのコードインジェクション
VM(VMM)検知、Anti-VM、Anti-Sandbox
----
マルウェアはVM(VMM; Virtual Machine Monitor)で動いているかどうかを気にする。VMMで動いていることがわかればおとりの動きをする。そうすることで解析者に自分はマルウェアでないと勘違いさせることができる。そうなれば今後自分を駆除するための努力をさせずにすむ。(TODO:見直し)
マルウェアが用いるサンドボックス検知の手法は主に以下の手法がある。
* Execution Environment Fingerprinting
* Execution Timing Detection
* 特定の仮想環境でしか使用できないCPU命令
* 存在しないドメインに対するアクセス
* AI
* TODO
上以外に、もっと単純な方法が存在する。意外と効果があるらしい
* 起動時間(uptime)
* デスクトップのファイルの数や種類
* 画面の比率 ?
* キーボードの配列 ?
* 壁紙 ?
* ユーザー名 ?
* コンピュータ名 ?
日本を狙う特定の環境でしか動作しないマルウェアの特徴とは?
http://news.mynavi.jp/articles/2016/12/08/malware_kas/
### Execution Environment Fingerprinting
実行環境の特定に関するお話。
https://www.blackhat.com/docs/asia-15/materials/asia-15-Chubachi-Slime-Automated-Anti-Sandboxing-Disarmament-System.pdf
* Sandbox/VM environment specific files
* Sandbox/VM environment specific registory keys
* Sandbox/VM environment specific devices and its attributes
* e.g. QEMU HDD vendor name
* Sandbox/VM Speficic I/O port
* Sandbox/VM related process
* Like vm ware, virtualbox etc.
* Using virtual machine implementation specific platform value and reaction
* CPUID instruction result
* Redpill
* using LDT/GDT and IDT incongrusness
* interesting research here: Cardinal Pill Testing
追加:
* ARP Table
* > サンドボックス製品のネットワークは仮想化されており、同じセグメントにはデフォルトゲートウェイのみがあり、ARPテーブルは1行のみというケースが多いようです [1]
実例:
* [samratashok/nishang](https://github.com/samratashok/nishang/blob/master/Gather/Check-VM.ps1) (2017/12)
* PowershellでVM検知する例
[1] [マルウェアの視点で見るサンドボックス:合法マルウェアで実感「リアルとサンドボックスの違い」 (2/3) - @IT](http://www.atmarkit.co.jp/ait/articles/1404/18/news004_2.html)
#### AlicanAkyol/sems
Anti-Sandbox and Anti-Virtual Machine Tool:
https://github.com/AlicanAkyol/sems
> Once the tool is run in a virtual machine(Virtualbox, Vmware, Qemu), it performs all the checks which are shown below and drops logs to the console about detected signatures until the "control" text is shown. In addition to that a separate .txt file with the finding name is created in the running directory for each detected signatures. Example; vboxBios.txt will be created for virtualbox bios signature.
### Execution timing detection
https://www.blackhat.com/docs/asia-15/materials/asia-15-Chubachi-Slime-Automated-Anti-Sandboxing-Disarmament-System.pdf
* Using clock count differential
* Traditional anti-debug technique
### 特定の仮想環境でしか使用できないCPU命令
TODO:
『サイバーセキュリティプログラミング』に書かれている
### 存在しないドメインに対するアクセス
キルスイッチドメインとも。
WannaCryにて、
> 自身が解析環境で実行されているかを判別するために、存在しないドメインへのアクセスを試みます。サンドボックスなどの解析環境では、存在しないドメインへのアクセスに対して、何らかのレスポンスを返すネットワークを構成することがあるためです。 [lac]
↓これを逆手に取ると
> 特定のドメインにアクセスができればWannaCryを停止させることができます。そのため、WannaCryが通信を行う未登録のドメインを研究者らが取得し、Sinkhole化させる動きがありました。今回Sinkhole化されたドメインはWannaCryのキルスイッチ・ドメインとも呼ばれています。 [lac]
参考資料:
* [lac] [JSOC INSIGHT vol.17 | セキュリティ対策のラック](https://www.lac.co.jp/lacwatch/report/20170925_001387.html) (2017/9/25)
### デスクトップのファイルを根拠にする
TODO:実例←標的型で実際にあった記憶
サンドボックスには一般的なビジネスマンのデスクトップを再現しないと、人為的な環境だとバレるかもという話(デスクトップが異様にさっぱりとしているのは怪しい)。
### VM Evasion, VM Escape
TODO:VMからの脱出。
[QEMU脆弱性を利用したVMエスケープ攻撃の検証:概要&テスト環境構築編 (1/2):OSS脆弱性ウォッチ(12) - @IT](https://www.atmarkit.co.jp/ait/articles/1903/20/news020.html) (2019/4/3)
ソースコードベースの検証記事
### MS Office マクロにおけるサンドボックス検知
[1] [「URSNIF」の新手法:マクロを利用してサンドボックス検出を回避 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/16418) (2017/11/20)
#### AutoCloseマクロを利用した回避
> AutoClose を利用するマクロでは、文書ファイルが閉じられた後に不正な PowerShellスクリプトが実行されるため、サンドボックスによるマクロの解析の回避が可能になります。この手法は実装が容易なため、多くの不正なマクロで利用される機能になりつつあります。 [1]
#### 列挙型変数を利用した回避
> Microsoft Office では、定義済みマクロのための列挙型変数をユーザに提供していますが、一部の列挙型変数は、Microsoft Office の比較的新しいバージョンにのみ存在します。これを利用して、列挙型変数を特定の値と比較することにより、Office のバージョンをチェックすることが可能になります。 [1]
### AI
[DeepLocker : AI-embedded attack](https://www.mbsd.jp/blog/20190311.html) (mbsd; 2019/3/11)
> 2018年8月に開催されたBlack Hat USAにおいて、IBM Researchの研究者らが「DeepLocker」と呼ぶ、マルウェアを使用した標的型攻撃の新手法を提案しました。
>
> 本検証では、DeepLockerの動作検証を行うために、検証用のDeepLockerを作成しました。
Anti-anti-malware
----
AV(Anti-Virus, Antivirus)回避とも。マルウェア対策技術を無力化しうる策(攻撃者のための対抗策)を紹介するが、セキュリティソフトで対策されているものもある。
TODO: [CODE BLUE 2014 : マルウエアによる検出回避方法の解説 by 篠塚 大志 HIROSHI SHINOTSUKA](https://www.slideshare.net/codeblue_jp/cb14-hiroshi-shinotsukaja)
* [Bypass EDR’s memory protection, introduction to hooking](https://medium.com/@fsx30/bypass-edrs-memory-protection-introduction-to-hooking-2efb21acffd6) (2019/1/18)
* 対EDRのAndrewSpecialを実装したお話
* (lsass.exeのメモリのダンプをする話かな?)
* [Art of Anti Detection 1 – Introduction to AV & Detection Techniques – Pentest Blog](https://pentest.blog/art-of-anti-detection-1-introduction-to-av-detection-techniques/) (2016/12/8)
### AVの無効化を求める
重要なシステムアップデーそソフトウェアです。インストールを阻害するのでAVを停止してくださいというインストラクションを添える。標的型攻撃にありがち。
### ファイル拡張子によるスキャナの回避
* スキャナが検査するファイルがexe, dllだけなので別のファイルの拡張子ならOKとか
* メールの添付ファイルをスキャンする対象の拡張子に該当しない拡張子をつける [1]
[1] Ransomware - Defending Against Digital Extortion (2016/11; O’Reilly Media)
### ヒューリスティック検出の回避
例:
* [ランサムウェア「CERBER」、機械学習を利用したセキュリティ対策を回避 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/14661)
* > 暗号化型ランサムウェア CERBER は、既に各セキュリティ対策製品によって対策が講じられています。そのため、通常のプロセス上で CERBER自身の不正コード を実行することで振る舞い検知を回避し、自身の検出を困難にさせることを狙ったのです。。
* > 自動解凍アーカイブのファイルや簡易なファイルの利用も同様に、静的な機械学習を用いた検出にとって課題を突きつけられることになります。自動解凍アーカイブのファイルは、ファイルの内容に違いがあっても、どれも類似した構造となります。そして、特定の機能でファイルを復号することも、必ずしも不正な振る舞いでありません。
### 正規アプリの悪用
[正規ソフト「AutoHotkey」を悪用した攻撃を確認 | トレンドマイクロ セキュリティブログ](https://blog.trendmicro.co.jp/archives/19054)(2019/4/4)
> 2019年4月2日、無料オンラインスキャンサービスである「VirusTotal」に「Military Financing.xlsm」というファイル名のマクロ形式のエクセルファイルがアップロードされました。当該ファイルは内部に正規のスクリプトエンジンAutoHotkey、および、それに読み込ませるための不正なスクリプトファイルをバイナリ形式でデータを内包し、マクロを実行するとそれらをドロップして実行します。
### Unhook
AVはユーザーランドのAPIの呼び出しを乗っ取り、APIがマルウェアによって呼び出されていないかどうかを検査するルーチンを実行したのち、正規のAPIの実行を再開する(API Hookと呼ばれる)。API Hook自体はAVもマルウェアも利用する古典的な手法。
[Bypassing Cylance and other AVs/EDRs by Unhooking Windows APIs - Red Teaming Experiments](https://ired.team/offensive-security/bypassing-cylance-and-other-avs-edrs-by-unhooking-windows-apis) (2019/4/28)
lsass.exeのメモリダンプを取得する話。CylancePROTECTがHookしているAPIをHookされていない状態に戻す。
### メモリインジェクション(memory injection)
例:
* [国内ネットバンキングを狙う「URSNIF」が新たに「Bootkit」を利用 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15144)
[Treepoline – new code injection technique](http://www.hexacorn.com/blog/2019/04/24/treepoline-new-code-injection-technique/) by hexacorn (2019/4/24)
↓
[Windows Process Injection: WordWarping, Hyphentension, AutoCourgette, Streamception, Oleum, ListPlanting, Treepoline | modexp](https://modexp.wordpress.com/2019/04/25/seven-window-injection-methods/) (2019/4/25)
> I’ll briefly discuss all of these and provide a few working examples. The first five examples work with Edit and Rich Edit controls.
> * WordWarping
> * Hyphentension
> * AutoCourgette
> * Streamception
> * Oleum
> * ListPlanting
> * Treepoline
"Edit and Rich Edit controls" はWindowsのウインドウのテキストボックスあたりのことかな?
#### [malWASH](https://www.usenix.org/conference/woot16/workshop-program/presentation/ispoglou)
WOOT'16にてKyriakos K. Ispoglou and Mathias Payer, Purdue Universityによって提案された手法。
TODO
### エクスプロイト保護の回避
使われているのか…?
[asintsov: Bypassing Exploit protection of NORTON Security](http://asintsov.blogspot.jp/2016/12/bypassing-exploit-protection-of-norton.html)
### ローダーのハック
[特殊なSMBサーバーを使用してマルウェア検出を避ける攻撃「Illusion Gap」 | スラド セキュリティ](https://security.srad.jp/story/17/09/30/1912221/) (2017/10/1)
> アンチウイルスプログラムがインストールされたWindows環境でSMBサーバー上の実行ファイルを実行する場合、アンチウイルスプログラムによる安全確認後、Windowsローダーが実行ファイルを起動する。SMBサーバー側ではファイルのリクエストがアンチウイルスプログラムからのものか、Windowsローダーからのものかを識別できるため、前者では安全なファイルを返し、後者で悪意あるファイルを返すことでウイルススキャンをバイパスしてマルウェアを実行させることができるという。
> > We want to serve different files, one for Windows PE Loader and another for the Windows Defender Antivirus over SMB. We can achieve that using a custom implemented SMB server. When a process creation is made by Windows PE Loader, a request will be made to the SMB server for the executable file, and we will serve file A, which is malicious. When Windows Defender requests the executed file, we will serve file B, which is benign. This way, file B will be scanned while file A will be executed. But at first, we have to identify which request is made by whom. (cited from [Illusion Gap – Antivirus Bypass Part 1 - CyberArk](https://www.cyberark.com/threat-research-blog/illusion-gap-antivirus-bypass-part-1/))
### NTFS junctionによる隔離機能の悪用
[ウイルス対策ソフトの欠陥を突いた“#AVGater”、「Windows Defender」には影響なし - 窓の杜](https://forest.watch.impress.co.jp/docs/news/1091603.html) (2017/11/15)
[#AVGater vulnerability does not affect Windows Defender Antivirus, MSE, or SCEP – Windows Security blog](https://blogs.technet.microsoft.com/mmpc/2017/11/13/avgater-vulnerability-does-not-affect-windows-defender-antivirus/) (2017/11/13)
> This vulnerability can be exploited to restore files that have been detected and quarantined by an antivirus product. To exploit this, malicious applications, including those launched by user-level accounts without administrator privileges, create an NTFS junction from the %System% folder to folder where the quarantined file is located. This NTFS junction can trigger the antivirus product to attempt to restore the file into the %System% folder.
### 偽装ファイル
#### 証明書ファイル
[セキュリティ研究センターブログ: 防衛関連のファイルを装うマクロマルウェアの新しい手口](http://blog.macnica.net/blog/2017/12/post-8c22.html) (2017/12/4)
> ダウンロードしたファイルをwinoowsに付属している証明書関連の操作ができるcertutilコマンドを使い、Base64デコードをします。ダウンロードしてきたファイルの中身は、以下のように証明書に見えますが、実際は、CAB形式の圧縮ファイルでした。攻撃者の意図としては、証明書ファイルのダウンロードに見せかけて検出を回避する事が考えられます。
### セキュリティ機構の悪用
[Intel CPUのセキュリティ機構「SGX」にマルウェアを隠すことでセキュリティソフトで検出できない危険性、概念実証用のプログラムも公開済み - GIGAZINE](https://gigazine.net/news/20190214-intel-sgx-vulnerability/) (2019/02/14)
パッカー、アンパック
----
**検討課題**:
* Anti-anti-malware の一種になるが、量がなければそこに合体するのもアリかも?
* 暗号化し、実行時に復号する動作方式はここで扱うべきか?(きわどい)
TODO:概論
参考資料:
* 『効率的な解析を目的とした自動マルウェア分類に関する研究』(岩村さんの博士論文;[早稲田大学リポジトリ](https://waseda.repo.nii.ac.jp/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=19691&item_no=1&page_id=13&block_id=21))
### アンパックの実際
[A Walk-Through Tutorial, with Code, on Statically Unpacking the FinSpy VM: Part One, x86 Deobfuscation — Möbius Strip Reverse Engineering](http://www.msreverseengineering.com/blog/2018/1/23/a-walk-through-tutorial-with-code-on-statically-unpacking-the-finspy-vm-part-one-x86-deobfuscation) (2018/1/23)
[HamaCTF WriteUp (Unpack category)](https://www.slideshare.net/Sh1n0g1/hamactf-writeup-unpack-category) (2019/4/19)
x64dbgを用いたアンパックを解説。
解説を読む前に[HamaCTF2019](http://hamactf.cf/hamactf2019/)にチャレンジすると良さそう。
難読化と難読化解除
----
:::info
Powershell, コマンドプロンプトに関する難読化は「マルウェア解析に必要な素養~スクリプト編~」で取り扱う
:::
Anti-anti-malwareのお話。バイナリにおける難読化はアセンブリコードやコントロールフローを読みにくくすることで静的解析へ対抗する。
JavascriptやPowershellでも難読化が適用される。難読化の実際は[スクリプト編](https://hackmd.io/s/S1o-HWt-4#)を参照されたし。
難読化 = Obfuscation
難読化解除 = Deobfuscation
資料:
* [1] [QEMUのDynamic Binary Translationがあって良かったねという話 // Speaker Deck](https://speakerdeck.com/ntddk/qemufalsedynamic-binary-translationgaatuteliang-katutanetoiuhua)(by ntddk)
### 難読化
https://twitter.com/sh1n0g1/status/1100617914862907392
> **@sh1n0g1**
> 今更ながらAPT10も利用したという難読化ツールDKMC(https://github.com/Mr-Un1k0d3r/DKMC …)を見てみたら面白かった。BMPにシェルコードを隠すんだけど、「BM」というマジックナンバーからそのまま実行して動作するようにしている。 'B'=0x42=inc edx 'M'=0x4d=dec ebp 頭から「実行可能」なBMPができあがる。
#### movfuscator
[Understanding the Movfuscator | x0r19x91's blog](https://x0r19x91.github.io/2019/utctf-mov) (2019/3/14)
UTCTF’19で出題されたMovという問題のWriteup
### 難読化解除
概論:[The Art of De-obfuscation - Speaker Deck](https://speakerdeck.com/ntddk/the-art-of-de-obfuscation)(2018/10/7;by ntddk)
#### OptiCode [Syscan13]([1])
* "バイナリをLLVM bitcodeに変換"
* "LLVMの最適化パスによって難読化を除去"
* e.g. "レジスタに無意味な値を挿入する難読化(`-dse, -simplifycfg`)"
* e.g. "NOPと投下の命令を挿入する難読化(`-constprop, -instcombine`)"
* e.g. "レジスタへの代入をばらけさせる難読化(`-instcombine`)"
* Opaque Predicate
* "LLVMによる最適化では解除できない"
* "常に真(偽)となる条件文を挿入。実行されない箇所にコードを配置するというもの"
* "LLVM bitcode に対して symboric execution"して解除
#### FLOSS
https://github.com/fireeye/flare-floss
Fireeye製。バイナリを与えると、難読化された文字列をデーコードしたり抽出したりしてくれる。
#### IDAsec & BINSEC
IDAsec = https://github.com/RobinDavid/idasec
BINSEC = https://github.com/binsec/binsec, http://binsec.gforge.inria.fr/
[Code Deobfuscation: Intertwining Dynamic, Static and Symbolic Approaches](http://www.robindavid.fr/publications/BHEU16_Robin_David.pdf)(BlackHat Europe; 2016/11)
> We show in this talk how to combine in a successful way several disassembly techniques -- namely dynamic analysis, several state-of-the-art variants of symbolic execution and static analysis, in order to help recovering a more precise CFG of the obfuscated code under analysis.
Opaque Predicateの検出:https://github.com/RobinDavid/idasec/blob/master/idasec/analysis/opaque_analysis.py
#### Adwind(Javaのマルウェア)
ストリーム暗号ベースの難読化を自身に行う。
[JPCERT CC] [Adwindが持つ難読化された文字列の解読(2016-04-25)](https://www.jpcert.or.jp/magazine/acreport-adwind.html) (2016/4/25)
* 難読化解除ツール(Python製)を提供
[各OSに対応するJavaのRAT「ADWIND」が再び確認。スパムメールで拡散 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15445) (2017/7/14)
#### シンボリック実行併用
[GitHub - JonathanSalwan/Tigress_protection](https://github.com/JonathanSalwan/Tigress_protection)
> Playing with the Tigress binary protection. Break some of its protections and solve some of its challenges. Automatic deobfuscation using symbolic execution, taint analysis and LLVM.
memory-patching
----
TODO:章移動
http://www.ffri.jp/assets/files/research/research_papers/avar-2009-murakami.pdf
"We can detect memory-patching by malware"
* [Viton, Hypervisor IPS(BlackHatUSA 08)](http://www.fourteenforty.jp/research/research_papers/bh-japan-08-Murakami.pdf)
* Manipulate Guest PageTable/PageTableEntry,
* To protect memory patching by malicious driver
Post-Exploitation
----
### クレデンシャル窃取
[一般ユーザ権限でクレデンシャル情報を取得するPost-Exploitationツール「Mimikittenz」について: NECセキュリティブログ | NEC](https://jpn.nec.com/cybersecurity/blog/191125/index.html) (2019/11/29)
### Lateral Movement
日本語訳:横展開。Post Exploitの一つで、組織のネットワークで感染が拡大する。
cf. 「インシデントレスポンス」の節
使われるもの:
* SMBの脆弱性
* TODO
[攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐](https://www.slideshare.net/codeblue_jp/by-84800677) (2017/12/13公開)
#### 例
プローブにおける攻撃者側の工夫:
> 図7(※省略)は図5①(筆者注:WannaCryに感染した端末Aが、ネットワーク上の端末に445/tcpに接続可否を調査するフェーズ)において発生する通信の一部で、DoublePulsarが設置されているかを確認する通信です。この通信は、__SMB通信では通常使用しないコマンド(TRANS2_SESSION_SETUP)13を用いており、TimeoutフィールドおよびMultiplex IDフィールドの値を利用し、バックドアに対して命令を送信します__。 [lac]
参考資料:
* [lac] [JSOC INSIGHT vol.17 | セキュリティ対策のラック](https://www.lac.co.jp/lacwatch/report/20170925_001387.html) (2017/9/25)
#### 参考)パスワード
[パスワードってどこにあるの?その1 | MBSD Blog](https://www.mbsd.jp/blog/20190514.html) (2019/5/14)
> 今回は、Windows内部でパスワードはどのように保存されており、どのように認証が行われているかご紹介したいと思います。
* Pass the Hash への言及あり
[パスワードってどこにあるの?その2 | MBSD Blog](https://www.mbsd.jp/blog/20190520.html) (2019/5/20)
* Active Directoryの認証とパスワード管理について。
#### 参考)For Blue Team
[Mitigations against Mimikatz Style Attacks - SANS Internet Storm Center](https://isc.sans.edu/forums/diary/Mitigations+against+Mimikatz+Style+Attacks/24612/) (2019/2)
### Active Directory
例)Pass-the-ticketによるGold Ticketの奪取→ファイルサーバーからの情報漏洩
* [Pass-the-Hashの仕組み - Binary Pulsar](https://binary-pulsar.hatenablog.jp/entry/2018/12/06/090000)(2018/12/16)
[Active Directory Security – Active Directory & Enterprise Security, Methods to Secure Active Directory, Attack Methods & Effective Defenses, PowerShell, Tech Notes, & Geek Trivia…](https://adsecurity.org/?p=2362) (2016/1/1)
参考)脆弱性の緩和策
----
### EMET
TODO:EMET自体がディスコンなのでここの内容をアーカイブしたい。
EMETはMicrosoft WindowsのOSおよびWindowsアプリケーションのセキュリティ機能を拡張するためのソフトウェアである。言い換えるとシステムを全域的に脆弱性の影響を緩和するための策である。
<blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="ja" dir="ltr">Windows 10を使っても、EMETは必要なセキュリティ対策 <a href="https://t.co/2TMB4nhyfe">pic.twitter.com/2TMB4nhyfe</a></p>— yamatosecurity (@yamatosecurity) <a href="https://twitter.com/yamatosecurity/status/801994901726498818">November 25, 2016</a></blockquote>
> ### ライフ サイクル終了に関する声明
> 2017 年 1 月 27 日に EMET のライフ サイクルが終了することに関してお客様からのフィードバックを受け、サポート終了日が 18 か月間延長されることを発表します。新しいサポート終了日は 2018 年 7 月 31 日です。2018 年 7 月 31 日以降、EMET に関するサポートおよびセキュリティ更新プログラムを提供する予定はありません。セキュリティ向上のために、お客様には Windows 10 の最新バージョンに移行することをお勧めします。
> https://technet.microsoft.com/ja-jp/security/jj653751.aspx?f=255&MSPPError=-2147217396
EMET 4.0の調査
http://www.ffri.jp/assets/files/monthly_research/MR201307_Investigation_into_EMET4.0_JPN.pdf
EMETによるSEHOP実装の改良の提案
http://www.ffri.jp/assets/files/research/research_papers/EMETReport.pdf
マルウェア検知編
----
文字量制限により、以下の内容は [マルウェア解析に必要な素養~マルウェア検知編~](https://hackmd.io/s/H1PLOgtZE) に移動しました。
* クラスタリング
* 表層解析による検知
* 不正通信の検出
* 未知マルウェアの検出に向けて
解析者編
----
文字量制限により、以下の内容は [マルウェア解析に必要な素養~解析者編~](https://hackmd.io/s/rJ6ipszPM) に移動しました。
* 解析者のテクニック
* アンチ解析
* マルウェアデータベースの構築
* Threat Hunting
* 資格
マルウェアに感染したときにすること
----
参考情報
__TODO__:[NIST SP800-83の邦訳](https://www.ipa.go.jp/files/000025349.pdf)、IPAの勧告、[ここの連載](http://itpro.nikkeibp.co.jp/atcl/column/15/110900259/)を元に再構成。「誰が、いつ」するのかを明確にする。
* ネットワークの遮断
* フォレンジックツールの使用
* 公的機関に届け出
* IPA→[届出:ウイルスの届出:IPA 独立行政法人 情報処理推進機構](http://www.ipa.go.jp/security/outline/todokede-j.html)
* 今の窓口はJPCERTだったような気も→[JPCERT コーディネーションセンター インシデント対応依頼](https://www.jpcert.or.jp/form/)
__NG行為__:
* HDD/SSDのフォーマット
* 何が起こっていたのかの確認が困難になる最悪手
* (サーバーの)電源遮断
* 個人使用の業務PCをつけっぱにするのはOK?NG?
* ランサムウェア感染の場合は、メモリに残存する復号に使える情報が消える可能性があるのでNG。アプリケーションの立ち上げもNG
参考:
* [NIST SP800-83の邦訳](https://www.ipa.go.jp/files/000025349.pdf)
* [実践、セキュリティ事故対応:ITpro](http://itpro.nikkeibp.co.jp/atcl/column/15/110900259/)
* [マルウェア感染!!そのときあなたがやるべきこと、やってはいけないこと](https://www.slideshare.net/IIJ_PR/ss-121246301)(2018/10/31)
ビジネスで意識したいこと
----
脱線。
### 取締役会対策
[ハッキングされたとき、取締役会に説明すべきこと:Gartner Insights Pickup(38) - @IT](http://www.atmarkit.co.jp/ait/articles/1711/10/news009.html) (2017/11/10)
> 取締役の関心事は以下の通りだ。
>
> 1. 戦略(オペレーションではない)
> 1. リスク監督(管理ではない)
> 1. ビジネスの結果(技術の詳細ではない)
> 1. 明確な責任
> サイバーセキュリティについては、取締役に分かる言葉でビジネスの意思決定および結果と関連付けて説明すべきだ。取締役には、何を知っている必要があり、何を知っている法的義務があるかを解説するとともに、重大なリスクへの管理を徹底する方法があることを伝えて安心させるとよい
### CISO
[CISO ハンドブック(CISO支援WG) | NPO日本ネットワークセキュリティ協会](https://www.jnsa.org/result/2018/act_ciso/index.html)
> 本書では、この点を踏まえ、CISOが経営陣の一員としてセキュリティ業務を執行する上で前提となる、ビジネス(経営)の基本的な枠組みを整理し、明確にすべき目標と指標、そして施策を評価する判断基準を提供することを目的としています。
周辺領域
----
#### 異常検知
TODO
### メモリフォレンジック
資料:
* The Art of Memory forensics
**TODO**:OSSのフォレンジックツール
#### Volatility
Volatility Plugin Contest:
http://www.volatilityfoundation.org/#!contest/ck3
### IAT再構築
職人技が光る。
### 脆弱性の利用を検知する技術
資料:
* たのしいバイナリの歩き方
#### ROP検知
FFRI…
### 脆弱性の自動検出に役立つ技術
資料:
* [angr, AFL, Driller | 一生あとで読んでろ](http://ntddk.github.io/2016/08/27/angr-afl-driller/)
#### ファジング
学術ネタとしてファジングをやりたいなら、先行研究のベースとなっている以下を試すとよい。
* [AFL](http://lcamtuf.coredump.cx/afl/) (american fuzzy lop)
* Instrumentationはgccベース
* [libFuzzer](https://llvm.org/docs/LibFuzzer.html)
* Clangの一機能
以下お役立ち情報。
[Zoo AFL / Digital Security corporate blog / Habr](https://habr.com/en/company/dsec/blog/449134/) (2019/4/25)
Fuzzer まとめ
#### シンボリック実行
TODO:動的解析技術の章に移動
TODO:シンボリック実行とは
シンボリック実行に入門しようとした:
http://ntddk.github.io/2014/09/12/symexec-intro/
##### シンボリック実行エンジン
シンボリック実行エンジンは、シンボリック実行を実施するプログラム。
###### angr
http://angr.io/
慣れいている人向けメモ:
* [angrメモ - HackMD](https://hackmd.io/s/HJmVUH4Rb#)
###### Triton
Intelのバイナリに対応。ARMも対応予定。
#### (ファジング+シンボリック実行)
TODO
* Driller
SOC
----
TODO:解析者編に移動でもいいかも?
### 内製SOC構築の勘所
[守れサイバーセキュリティ~SOCとは? ヤフーにおけるその役割 - Yahoo! JAPAN Tech Blog](https://techblog.yahoo.co.jp/entry/20190711705562/) (2019/7/11)
> 今回は「SOCとは何か」、そして「ヤフーSOCでは具体的にどんな活動をしているのか」を少しでもみなさんに知ってもらえるよう、ご紹介したいと思います。
### ログ解析
TODO:SOC(Security Operation Center)で使われているテクとか無いかな?←何のログをどういう目的で収集するのかが肝なのでは?
#### Splunk
TODO
[Boss of the SOC (BOTS) Dataset Version 1](https://github.com/splunk/botsv1)
Splunkハンズオンのためのデータセット
↓の製品たち、どれもクエリやダッシュボード作成にそれぞれ個性的な癖がある…。
#### Elastic Search
TODO
### Datadog
TODO
TODO: 分類待ち
----
実行環境に応じて動作を変えるマルウェアに関する調査
http://www.ffri.jp/assets/files/monthly_research/MR201405_A_Survey_of_Environment_Sensitive_Malware_JPN.pdf
Fuzzy hashingの利用に関する検討及び評価
http://www.ffri.jp/assets/files/monthly_research/MR201403_Consideration_and_evaluation_of_using_fuzzy_hashing_JPN.pdf
Freeze Drying for Capturing Environment-Sensitive Malware Alive
http://www.ffri.jp/assets/files/research/research_papers/bheu14_chubachi_public_EN.pdf
Exploring the x64
http://www.ffri.jp/assets/files/research/research_papers/psj10-murakami_JP.pdf
Linuxマルウェアについて - FFRI
http://www.ffri.jp/assets/files/monthly_research/MR201501_Latest_Trends_in_Linux_Malware_JPN.pdf
未知ウィルス検知のための新手法と実装(NICT)
http://www.nict.go.jp/publication/shuppan/kihou-journal/kihou-vol51no1.2/02-08.pdf
[「AngleWare」の出現とオープンソースランサムウェア「Hideen Tear」の比較検証 | MBSD Blog](https://www.mbsd.jp/blog/20170331.html)
> 弊社のマルウェア解析チームにて「AngleWare」の検体を入手し解析を行った結果、過去にオープンソースとしてgithubに公開されたことで有名な「Hidden Tear」のコードと酷似する点が複数あることを確認しました。
- - -
2017/2/4 章の数が50に達してもおかしくない増加具合だ…(現在40前半)
2017/7/3 文字数が8万を超えた…あと2万文字しか書けないorz
2017/8/8 文字数が9万字を超えた!あと1万字なのでそろそろメモを分割せねば
2017/9/3 文字数が上限の10万字に達した!SEOの都合上、様子を見ながら少しずつ分割を進めていくよ
2018/2/15 また上限に達したので「解析者編」を用意した
2019/1/2 また上限に達したので「マルウェア入門編」「スクリプト編」「マルウェア検知編」を用意した