ISBN 9784839968069
マルウェア データサイエンス サイバー攻撃の検出と分析
概要
データサイエンス手法でマルウェアを検出・分析するスキルを身につける
想定読者
セキュリティエンジニアまたはデータサイエンティストで、機械学習をサイバー攻撃対策に応用したい実務者
こんな人には向いていない
- Pythonやscikit-learnを触ったことがなく機械学習の基礎知識がない読者には前提ハードルが高い
- マルウェア解析の手法論よりも個別ツール操作やインシデント対応手順を求める読者には内容が合わない
- ネットワークセキュリティの概念理解だけを目的とする読者には実装コードの比重が大きすぎる
読了後にできるようになること
- PEヘッダや文字列情報を使ったマルウェアの静的解析の基礎と応用(x86逆アセンブリを含む)を習得できる
- 共有コード解析とソーシャルネットワーク分析で複数マルウェアを同一攻撃者に紐付ける手法を実装できる
- scikit-learnを使った機械学習ベースのマルウェア検出器を構築し、ROC曲線で精度を評価できる
- KerasとDNN(ディープニューラルネットワーク)でニューラルネットワーク型マルウェア検出器をPythonで実装できる
- データ可視化でマルウェアキャンペーンの傾向を特定・追跡する分析フローを実践できる
- ゼロデイ攻撃や未知マルウェアへの対応に向けた独自検出システムの設計方針を説明できる
本書のキー概念(章解説)
- 第 1 章 マルウェアの静的解析の基礎 — PEヘッダ・文字列情報など、以降の章全体を支える分析基盤
- 第 2 章 静的解析の応用:x86逆アセンブリ — アセンブリ未経験者はここで時間を取るが、後半の機械学習章に進む前に読んでおく価値がある
- 第 3 章 速習:動的解析 — 静的解析との対比で読むと効果的。動的解析を深く学ぶ予定なら別書で補完を推奨
- 第 4 章 マルウェアネットワークを使った攻撃キャンペーンの特定 — ソーシャルネットワーク分析の応用。実務での攻撃者帰属(attribution)に直結する
- 第 5 章 共有コード解析 — 同一攻撃者による亜種マルウェアを識別する独自手法。本書の差別化ポイントのひとつ
- 第 6 章 機械学習に基づくマルウェア検出器の概要
- 第 7 章 機械学習に基づくマルウェア検出器の評価 — ROC曲線・適合率・再現率の読み方をセキュリティ文脈で解説
- 第 8 章 機械学習に基づくマルウェア検出器の構築 — scikit-learnを使った実装章。最も実務直結度が高い章のひとつ
- 第 9 章 マルウェアの傾向を可視化する — 大量サンプルの俯瞰分析に使えるデータビジュアライゼーション手法
- 第 10 章 ディープラーニングの基礎
- 第 11 章 Kerasを使ってニューラルネットワークマルウェア検出器を構築する — DNN検出器のエンドツーエンド実装。Kerasの基礎(10章)を先に読んでから取り組む
- 第 12 章 データサイエンティストになろう
ハイライト
- コード分析で『同じ攻撃者』が作成する『新しいマルウェア』を特定し、独自の機械学習検出システムを構築してゼロデイ攻撃・マルウェアを捉える(本書の3つの主軸(攻撃者帰属・ゼロデイ検出・可視化分析)が端的に表れている記述)
- マルウェア検出器の精度をROC曲線で測定し、セキュリティの最善アプローチを選択する(ML評価指標をセキュリティ文脈に直結させる本書の実践的立場が明確に示されている)
外部からの言及
- Pythonとnetworkxを使ってマルウェアとコールバックサーバーの関係をグラフ可視化する実践記事で、本書のデータセットとsuffixes.txtが参照されている。書籍が提供するサンプルデータが実際の技術検証に使われている事例(qiita)
編集メモ
Qiita言及1件 / 累計likes 8。セキュリティ×データサイエンスという領域の専門性は高く、日本語訳書として希少だが、Qiita上での流通量は限定的
読む前に押さえておきたいこと
- Pythonの基本的なコーディング力(関数・ライブラリのimport・ファイル操作)
- 機械学習の基礎概念(分類問題・特徴量・訓練/テスト分割)の理解
- セキュリティの基礎用語(マルウェア・C2サーバー・ゼロデイ攻撃)に最低限慣れていること
学習のコツ
- 静的解析(1〜2章)に慣れていない場合は焦らず丁寧に読む。3章の動的解析は概念把握として流し読みし、4〜5章の攻撃キャンペーン分析に早めに到達することで実務的な文脈がつかみやすい
- 6〜8章の機械学習章は独立して読むことも可能だが、1〜2章の静的解析知識(特徴量の意味)を理解した上で読むと精度評価の文脈が深まる
- 公式サイト(malwaredatascience.com)で提供されるデータセットと事前設定済みUbuntu VMを使うと環境構築の手間が省け、コードの再現確認に集中できる
- 付録(データセットとツール)は最初に目を通しておくと、各章で参照するリソースの全体像が把握しやすい
出版社による内容紹介
悪意を持つソフトであるウイルス・マルウェア(malware)は年々増え続けその手口も高度化しつつあります。 本書ではマルウェアの検出・分析に、機械学習、統計、ソーシャルネットワーク分析、データ可視化など「データサイエンス」の手法を導入・活用する方法を伝授。scikit-learn、Kerasで独自のマルウェア検出器を構築する方法を解説します。 ・コード分析で "同じ攻撃者" が作成する "新しいマルウェア"を特定 ・独自の機械学習検出システムを構築し、ゼロデイ攻撃・マルウェアを捉える ・マルウェア検出器の精度をROC曲線で測定し、セキュリティの最善アプローチを選択 ・データの視覚化で、マルウェアの傾向を特定・調査 ・DNN(ディープニューラルネットワーク)ベースの検出システムをPythonで実装 データサイエンティストを目指す方、悪意を持つソフトウェア撃退のためデータサイエンス、ディープラーニングを活用したい方には最適の書籍となるでしょう! no starch press『Malware Data Science:Attack Detection and Attribution』の翻訳書。 1章 マルウェアの静的解析の基礎 2章 静的解析の応用:x86逆アセンブリ 3章 速習:動的解析 4章 マルウェアネットワークを使った攻撃キャンペーンの特定 5章 共有コード解析 6章 機械学習に基づくマルウェア検出器の概要 7章 機械学習に基づくマルウェア検出器の評価 8章 機械学習に基づくマルウェア検出器の構築 9章 マルウェアの傾向を可視化する 10章 ディープラーニングの基礎 11章 Kerasを使ってニューラルネットワークマルウェア検出器を構築する 12章 データサイエンティストになろう A 付録:データセットとツール
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。