マルウェア解析に必要な素養~用語編~
====
:::success
親ページ:[マルウェア解析に必要な素養](https://hackmd.io/s/S1kLEr5x#)
:::
以降の章を読むために理解しておきたい用語を挙げていく。英語表記を併記しているのは覚えてほしいからで、ググる時に思い出して欲しい。
### アーティファクト(artifact)
TODO:("アーティファクト フォレンジック"でググると良いかも)
### 攻撃ベクター(Attack Vector)、Attack Surface
TODO:章にしたほうが良いのかな?
攻撃ベクター:
* <span style="color:red; font-weight: bold;">人間</span>
* OS(Windows, macOS, Linux, Android, iOS, …)
* ブラウザ(特に古いInternet Explorer)
* Microsoft Office
* ベンダー製品
* Adobe Flash, Adobe Acrobat
* 資産管理ソフトウェア
### 標的型攻撃(Targeted Attack)
TODO
特に「特定の相手に狙いを定め、その相手に適合した方法・手段を適宜用いて侵入・潜伏し、数か月から数年にわたって継続するサイバー攻撃」(独立行政法人 情報通信研究機構(NICT)のサイバー攻撃対策総合研究センター(CYREC))のことをAPT攻撃(Advanced persistent threat)と呼ばれる。
### PDB
Windowsのデバッグ情報ファイル(シンボルファイル)。
### 攻撃キャンペーン
TODO
2016年の主要な攻撃キャンペーン:
* Pseudo-Darkleech
* Afraidgate
* ElTest
2017年の主要な攻撃キャンペーン:
* AdGholas
* 不正広告を利用
* AdHook ※暫定
* Malvertisingを利用
* AdHook Campaign→RIG EK→{Ramit, Dream bot}
* ChessMaster
* 標的型
* [「ChChes」を操る標的型サイバー攻撃キャンペーン「ChessMaster」による諜報活動の手口 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15551) (2017/7/28)
* [標的型サイバー攻撃キャンペーン「ChessMaster」の新しい戦略:変化を続けるツールと手法 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/16364) (2017/11/10)
2018年の種よおうな攻撃キャンペーン:
* TODO
サイバー攻撃レベルの攻撃キャンペーン:
* [韓国で確認されたサイバー攻撃「OnionDog 作戦」を綿密調査 | トレンドマイクロ セキュリティブログ](http://blog.trendmicro.co.jp/archives/15686) (2017/8/17)
* [PlugXと攻撃者グループ"DragonOK"の関連性 | セキュリティ対策のラック](https://www.lac.co.jp/lacwatch/people/20171218_001445.html) (2017/12/18)
### IOC(Indicator of Compromise)
日本語訳がベンダーによって不定(個人的には「侵入(の)痕跡」で良いんじゃないかなと思う)。システムにセキュリティー侵害があったことを示す痕跡のことで、検体のファイル名・ハッシュ値、変更されたレジストリキー、通信先のドメイン・IPアドレスなどの情報が入る。
cf. アーティファクト(フォレンジック用語)
IOCはマルウェア解析ブログの記事の末尾で提示されることが多い。
例)[nao_sec: Survey of "ngay campaign"](http://www.nao-sec.org/2017/12/survey-of-ngay-campaign.html) (2017/12/11)
### Tor
TODO
### ISP
インターネットサービスプロバイダのこと。インターネット接続を提供する企業で、一般にはプロバイダと呼ばれている。
プロバイダーには通信の秘密を守る義務があるが、それに触れない範囲でサイバー攻撃を対策する動きあり。
* プロバイダー同士で攻撃者のIPアドレスを共有しようという動きを報じるニュース記事
* [ニュース解説 - サイバー攻撃をプロバイダーは止められるか、総務省の意欲:ITpro](http://itpro.nikkeibp.co.jp/atcl/column/14/346926/110101186/)
### DNS
TODO
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">攻撃者や「セキュリティエンジニア」ってそこまでDNS知らなさそうだし、DNSのことよく知ってる人の方が攻撃者を出し抜ける感ある</p>— しゅーと (@shutingrz) <a href="https://twitter.com/shutingrz/status/878787177404022784">2017年6月25日</a></blockquote>
#### DNSSEC
TODO
DNSSECはクソ:
* [DNSSEC はなぜダメなのか](http://www.e-ontap.com/dns/criticism/)
### Deep Web、ダークウェブ(Dark Web)
TODO:概略。
ダークネットと混同されすぎて区別する必要もないかも。
* [お勧めのダークウェブ検索エンジンを紹介します - 週刊 ピンク・ハッカー](http://www.pinkhacker.com/entry/2017/06/16/090000) (2017/6/16)
* [Awesome DarkWeb Research - HackMD](https://hackmd.io/s/rkAJVhtLz#) (by [Sh1ttyKids](https://twitter.com/Sh1ttyKids)
; 2018/2/9初公開)
* リサーチャー向け情報
* [PwCが約3万件の「.onion」アドレスを収集、ダークウェブを分析 | 日経 xTECH(クロステック)](https://tech.nikkeibp.co.jp/atcl/nxt/news/18/04087/?n_cid=nbpnxt_twbn)(2019/02/08)
### ダークネット(Darknet)
組織に割り当てられたグローバルIPアドレス領域のうち未使用部分を指す言葉。未使用のアドレスにパケットが飛んで来るのはおかしいよねという前提。
未使用のグローバルアドレスにセンサーを設置し、外部からの攻撃を観測することが行われている。例えばNICTのnicter([プレスリリース](https://www.nict.go.jp/publication/NICT-News/1205/06.html)、[NICTERWEB 2.0](http://www.nicter.jp/#))。
### ブラックマーケット
闇市場。クレジットカード情報、アカウントなどの個人情報、違法薬物の売買、マネーロンダリング(資金洗浄)がされている模様。
* [AlphaBay消滅後のダークマーケットはどうなる? | THE ZERO/ONE](https://the01.jp/p0005415/) (2017/7/21)
* [「医療データは闇市場でクレカ情報より約20倍の値がつく」 医療IoT機器のセキュリティを死守するために (2/2) - ITmedia NEWS](https://www.itmedia.co.jp/news/articles/1903/14/news017_2.html) (2019/3/14)
### マネー犯罪
* [QRコード離れを起こす中国のキャッシュレス決済事情|中国(アスキー) - Yahoo!ニュース](https://headlines.yahoo.co.jp/hl?a=20190304-00000004-ascii-sci)(2019/03/04)
### マネーロンダリング(資金洗浄)
TODO:話が逸れ始めたぞ…
### IV(初期化ベクトル;Initiation Vector)とKey(鍵)
TODO
### トロイの木馬(Trojan Horse)
TODO
### ボット(Bot)
TODO
**TODO**:疑問点
* 侵入可能なコンピュータを探索し、特定のサーバーに報告するタイプのマルウェア(例えば、Mirai(2016年))に感染したコンピュータはボットに含まれる?←入りそう
### PoC(Proof of Concept)
意味が複数ある。
* 脆弱性の再現やエクスプロイトを目的とした攻撃コード ←本ドキュメントではこちらの意味で用いる
* あるサービス・機能の実証を目的とした実装 ←一般人の認識はこっち(?)
* cf. MVP(=簡単な試作品)
### ペイロード(Payload)
データから、ヘッダないしはメタ情報を除いた部分というくらいの意味合い。
### シェルコード(Shellcode)
最小限の定義をするならば、シェルを獲得するためのコード(機械語コード、アセンブリ、マクロコード、…)のこと。
Linuxの最小のシェルコードはC言語で書き下すと `sys_execve("/bin/sh", 0, 0);` のような形をしている。これはLinuxのexecv\*システムコールを直接呼び出す。
### 任意コード実行(arbitrary code execution)
英語での名称は要暗記。マルウェアの文脈では、多くの任意コードはマシンコードの羅列である。Webアプリケーションでの任意コード実行では、高級言語のコードが実行されるが、任意コード実行ではなくコードインジェクションと呼ばれがち(他にも例外あり)。
#### cf. コードインジェクション(Code Injection)
上述の通り。
SQL文に対するインジェクションは、SQL Injection(SQLi)と言われる。
Webページに対するJavaScriptコードの挿入は、クロスサイトスクリプティング(XSS)と呼ばれる。
#### cf. リモートコード実行(RCE;remote code execution)
海外だとRCEと書かれることが多い。(Webアプリケーションの)脆弱性により外部リソースがダウンロードされ、コードとして実行される。
### 脆弱性
読み:ぜいじゃくせい。
#### cf. CVE(Common Vulnerabilities and Exposures)
国際的に使用されている脆弱性の識別番号。CVEを振るのはMITREだけでは無い。
[CVE採番機関CNAの今/ウェブプライバシー保護技術の比較【海外セキュリティ】 - INTERNET Watch](https://internet.watch.impress.co.jp/docs/column/security/1104483.html) ※必読
#### cf. CVSS
[「CVSS」とはそもそも何か? 脆弱性対応の優先順位付けではない!?【海外セキュリティ】 - INTERNET Watch](https://internet.watch.impress.co.jp/docs/column/security/1161142.html) (2019/1/9)
> 「人々がCVSSに対して本当に期待しているもの(特に脆弱性対応の優先順位付け)」をCVSSのコミュニティが提供できていないことが問題であるというのがCERT/CCが主張したいことなわけです。
### エクスプロイト(Exploit)
サービス、アプリケーションの脆弱性を利用した攻撃のこと。エクスプロイトコードはそれを実現するためのスクリプト(C言語で書かれることもある)。
前述のシェルコードはこのエクスプロイトコードに含まれて書かれる。
ホワイトハッカーは、Windowsでエクスプロイトを成功したときに電卓(calc.exe)を起動することが多い。
#### ローカル型/リモート型
TODO:(Wikipediaにある説明で十分な気も…)
#### connect-back方式(reverseshell)/bindshell
TODO:(Wikipediaにある説明で十分な気も…)
使い分けのポイント:
* アウトバウンド通信がどの程度許可されているかどうか
* connect-back shellの場合は内→外に通信が発生するので、公開サーバーが外に接続を開始するのはおかしいとする前提ではファイヤーウォールのDropルールに引っかかるおそれがある。
* アウトバウンド通信が許可されていて、外から見えないホストから攻撃者にシェルを張りたいときは、connect-back shellが有効
* インバウンド通信で使えるポート番号の制限
* ファイヤーウォールのせいで特定のポート以外に接続できないときはbindshellは無力
### 権限昇格(Privilege Escalation)
(権限昇格の英語(のスペル)が覚えにくくないすか。)
一般的なOSでは、ユーザーまたはグループの権限レベルを管理し、レベルごとにシステムに可能な操作を制限している。権限昇格とは(Exploit対象の)現在のユーザーの権限レベルを昇格させることをいう。昇格先として、Linuxではroot、WindowsではAdministratorsやSYSTEMがある。
ホワイトハッカーは、権限昇格を実現すると、rootのターミナル(rootを示すプロンプトが出ている状態)をスクショして見せびらかすことが多い。
権限昇格の実際については、[\#権限昇格](#権限昇格) を参照されたし。
### 難読化(Obfuscation)
コードを読みにくくすること。対義語はDe-obfuscation(難読化解除)。
TODO:各言語での代表的な難読化手法を列挙したい…
### SOC(Security Operation Center)
読み:そっく。SoC(読み:えすおーしー、そっく)と書くと組込みシステムの話になるので注意。客先に置かれたネットワーク機器から上がってくるログをSOCに収集して __集中的に__ 人力で監視するというのがコンセプト。話を聞く限りは、SOCのアイデア自体は新しいものではなく、以前からされていて、別々のサービスでログ監視をしていたManaged Security Service(MSS)の部隊を集約してSOCと称しているケースもあるようだ。
国内だとIIJがMSSを90年代に先駆けて始めたんだっけな(←曖昧な記憶だし、裏取りがまだ)。
TODO:国内のSOCと運用形態書いたほうがいい?
TODO:よくあるSOCの構成。←客先ネットワークでインベントを収集してVPN越しでSOCに転送というパターンのイメージ。
TODO:マイクロソフトとIBMはSOCとは別の呼び方をしてた記憶
SOCからインテリジェンスレポートが発行することがある。マルウェア界隈の情報を毎日キャッチアップできない人は特にそれを読んでおくことをおすすめする(ラックとNTTセキュリティのSOCレポートがおすすめ)。攻撃者に配慮してか、詳細なレポートの提供を数ヶ月遅らせるケースがあるように見える(※あくまで個人の感想です)。
後学のための資料:
* [SOCって何_公開用_-圧縮済み.pdf - Speaker Deck](https://speakerdeck.com/secchick/soctutehe-gong-kai-yong-ya-suo-ji-mi) (2019/3/27)
* 表層的な部分を解説。
* [情報セキュリティポリシーサンプル改版](http://www.jnsa.org/result/2016/isog-j/index.html) (2016/12/26)
* > 本書では、セキュリティ対応を専門として実施しているセキュリティオペレーション事業者の視点から、改めてセキュリティ対応組織における実用的な機能や役割について整理する。
#### Advanced
[Lessons learned from the Microsoft SOC—Part 1: Organization - Microsoft Security](https://www.microsoft.com/security/blog/2019/02/21/lessons-learned-from-the-microsoft-soc-part-1-organization/) (2019/2/21)
[Lessons learned from the Microsoft SOC—Part 2: Organizing people](https://www.microsoft.com/security/blog/2019/04/23/lessons-learned-microsoft-soc-part-2-organizing-people/) (2019/4/23)
“Part 3: Technology,”: TBA
### CSIRT(Computer Security Incident Response Team、シーサート)
読み:しーさーと。
(組織内)CSIRTがやること:
* セキュリティインシデントに対応するための各サービス・システムに向けたガイドラインの策定
* セキュリティパッチが公開されたあとのアップデートの周知
* 外部組織・CSIRT要員からの情報収集
* 場合により不正通信を遮断するルールをネットワーク機器に追加するとか
* 発生したセキュリティインシデントの初期対応・収束(=自組織向けのインシデントレスポンス(IR))
CSIRTの機能を体系的にまとめた資料:
* [CSIRT Services Framework Version 1.1](https://www.first.org/education/csirt_service-framework_v1.1)
* see [現代のCSIRTが提供するサービスをまとめた一覧「FIRST CSIRT Framework Version 1.1」【海外セキュリティ】 - INTERNET Watch](https://internet.watch.impress.co.jp/docs/column/security/1099/603/index.html) (2018/1/5)
日本シーサート協議会が出してる『[CSIRT:構築から運用まで](https://www.amazon.co.jp/dp/4757103697)』で基礎が抑えられると思う(ただ読み物としては退屈な部類の本)。ただディープな話は期待する本では無いように見えます。それを期待する方はリクルートテクノロジーズの『[実践CSIRT 現場で使えるセキュリティ事故対応](https://www.amazon.co.jp/dp/482223777X)』が良さげ。
* [CSIRTスターターキット Ver2.0](http://www.nca.gr.jp/imgs/CSIRTstarterkit.pdf) (by 日本コンピュータセキュリティインシデント対応チーム協議会) (2011/8/1)
[ステマ]NRIセキュアなどのセキュリティベンダーが組織内CSIRTの立ち上げ支援とかしてるらしいっすよ。
CSIRTの中の人の話:
* [2017 InternetWeek Showcase (Day 2): 昨今の標的型攻撃との向き合い方 ](https://internetweek.jp/sc-program/day2-sato.pdf) (2016/6/2)
標的型攻撃を見据えたCSIRTに求められるもの(もう解析関係ない…):
* [企業セキュリティ、七つの鉄則 - CSIRTがうまくいく、たった二つの条件:ITpro](http://itpro.nikkeibp.co.jp/atcl/column/17/062200257/062300001/) (2017/7/3)
### トラフィック
第一に、帯域、そこに存在している通信のことを指す。トラヒックと表記されることもある。
第二に、改ざんされたサイトへのアクセスをまとめてトラフィックと言い回すことがある。
### mangle/demangle
TODO: mangleは、C++などで名前空間や型情報をシンボル名に含めるためのエンコーディングのこと。demangleは、人間に分かりやすいように名前空間や型情報を表示すること。
TODO:例
objdumpやディスアセンブラを使うときに気をつければいい話。Dlangバイナリの場合は、自動でdemangleしてくれないGUI逆アセンブラが多いかもしれない。
#### demangleのやり方
単発のdemangleにはc++filtが便利。
TODO: objdump, nm, gdb, Hopper(ネイティブver, D言語ver)でのdemangleのやり方
### 改ざん(改竄;compromise)
TODO。英語は要暗記。
改竄と表記することは少ない。
### 資産管理ソフトウェア
TODO
任意コード実行脆弱性が発見されたもの:
* SKYSEA Client View
* [SecureWorks、顧客企業を標的とする脅威をリアルタイムで監視するEBS | マイナビニュース](http://news.mynavi.jp/news/2017/04/11/292/) (2017/4/11)
* [ビジネス用ソフトの欠陥突くサイバー攻撃相次ぐ | NHKニュース](http://archive.is/3brkZ) (2017/4/11)
* Skyが言っている「一部報道」はこれ
* [【SKYSEA Client View情報】各種報道に関しまして - セキュリティ・脆弱性について|Sky株式会社](https://www.skygroup.jp/security-info/170412.html)
会計ソフトで脆弱性が見つかったこともあるな?(WannaCryで使われたんだっけな)
### OSINT (Open Source Intelligence)
TODO
* [OSINT 用検索エンジンあれこれ | ninoseki.github.io](https://ninoseki.github.io/2018/12/03/osint-search-engine.html) (2018/12/3)
* [『2019 OSINT Guide』を翻訳してみた +α - セキュリティコンサルタントの日誌から](https://www.scientia-security.org/entry/2019/02/04/195517) (2019/2/4)
* 環境
* [Buscador OSINT VM](https://inteltechniques.com/buscador/index.html)
### OPSEC (Operations security)
TODO