関連サイト
本書の関連ページが用意されています。
- マルウェア データサイエンス サイバー攻撃の検出と分析|マイナビブックス
- サポートサイト
- VirtualBox Ubuntu Linux 仮想マシンのダウンロード(9GB近くあります)
- コード・データダウンロード(原著サイト)
- 原著サイト
内容紹介
データサイエンスの手法でマルウェアを暴く!
悪意を持つソフトであるウイルス・マルウェア(malware)は年々増え続けその手口も高度化しつつあります。
本書ではマルウェアの検出・分析に、機械学習、統計、ソーシャルネットワーク分析、データ可視化など「データサイエンス」の手法を導入・活用する方法を伝授。scikit-learn、Kerasで独自のマルウェア検出器を構築する方法を解説します。
・コード分析で "同じ攻撃者"が作成する"新しいマルウェア"を特定
・独自の機械学習検出システムを構築し、ゼロデイ攻撃・マルウェアを捉える
・マルウェア検出器の精度をROC曲線で測定し、セキュリティの最善アプローチを選択
・データの視覚化で、マルウェアの傾向を特定・調査
・DNN(ディープニューラルネットワーク)ベースの検出システムをPythonで実装
データサイエンティストを目指す方、悪意を持つソフトウェア撃退のためデータサイエンス、ディープラーニングを活用したい方には最適の書籍となるでしょう!
no starch press『Malware Data Science:Attack Detection and Attribution』の翻訳書。
書誌情報
- 著者: Joshua Saxe, Hillary Sanders(著), 株式会社クイープ(翻訳)
- ページ数: 304ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
Joshua Saxe
セキュリティソフトウェアの大手ベンダーSophosのチーフ・データサイエンティスト。マルウェア感染から守るニューラルネットワークベース・マルウェア検出器の開発責任者。DARPAが資金提供する米国政府向けセキュリティデータ調査プロジェクトを5年間リードした経験を持つ。
Hillary Sanders
Sophosのシニアソフトウェアエンジニア&データサイエンティスト。ニューラルネットワーク、機械学習、およびマルウェア類似度分析などセキュリティ技術の発明と製品化において重要な役割を果してきた。Black Hat USAやBSides Las Vegasなどのセキュリティカンファレンスで定期的に講演している。
株式会社クイープ
1995年、米国サンフランシスコに設立。コンピュータシステムの開発、ローカライズ、コンサルティングを手がけている。2001年に日本法人を設立。主な訳書に『プラトンとナード』、『サイバーセキュリティ レッドチーム実践ガイド』、『PythonとKerasによるディープラーニング』(マイナビ出版)、『Raspberry Piで学ぶコンピュータアーキテクチャ』(オライリー・ジャパン)などがある。
目次
本書によせて
謝辞
はじめに
1章 マルウェアの静的解析の基礎
- 1.1 Microsoft.WindowsのPEフォーマット
- 1.2 pefileを使ってPEフォーマットを分析する
- 1.3 マルウェアの画像を調べる
- 1.4 マルウェアの文字列を調べる
- 1.5 まとめ
2章 静的解析の応用:x86 逆アセンブリ
- 2.1 逆アセンブリの手法
- 2.2 x86アセンブリ言語の基礎
- 2.3 pefileとcapstoneを使ってircbot.exeを逆アセンブルする
- 2.4 静的解析の制限因子
- 2.5 まとめ
3章 速習:動的解析
- 3.1 動的解析を使用するのはなぜか
- 3.2 マルウェアデータサイエンスのための動的解析
- 3.3 動的解析の基本ツール
- 3.4 基本的な動的解析の制限
- 3.5 まとめ
4章 マルウェアネットワークを使った攻撃キャンペーンの特定
- 4.1 ノードとエッジ
- 4.2 2 部ネットワーク
- 4.3 マルウェアネットワークを可視化する
- 4.4 NetworkX を使ってネットワークを構築する
- 4.5 ノードとエッジを追加する
- 4.6 GraphViz を使ってネットワークを可視化する
- 4.7 マルウェアネットワークを構築する
- 4.8 共有画像関係ネットワークを構築する
- 4.9 まとめ
5章 共有コード解析
- 5.1 特徴抽出で比較するためのサンプルを準備する
- 5.2 ジャカール係数を使って類似度を数量化する
- 5.3 類似度行列を使ってマルウェア共有コード推定法を評価する
- 5.4 類似度グラフを作成する
- 5.5 類似度の比較のスケーリング
- 5.6 永続的なマルウェア類似度検索システムを構築する
- 5.7 類似度検索システムを実行する
- 5.8 まとめ
6章 機械学習に基づくマルウェア検出器の概要
- 6.1 機械学習に基づく検出器の構築手順
- 6.2 特徴空間と決定境界
- 6.3 過学習と学習不足:よいモデルの条件
- 6.4 主な機械学習アルゴリズム
- 6.5 まとめ
7章 機械学習に基づくマルウェア検出器の評価
- 7.1 4種類の検出結果
- 7.2 評価の基準率
- 7.3 まとめ
8章 機械学習に基づくマルウェア検出器の構築
- 8.1 用語と概念
- 8.2 決定木に基づく単純な検出器を構築する
- 8.3 sklearnを使って現実的な検出器を構築する
- 8.4 実用的な検出器を構築する
- 8.5 検出器の性能を評価する
- 8.6 次のステップ
- 8.7 まとめ
9章 マルウェアの傾向を可視化する
- 9.1 マルウェアデータの可視化はなぜ重要か
- 9.2 マルウェアデータセットの概要
- 9.3 matplotlibを使ってデータを可視化する
- 9.4 seabornを使ってデータを可視化する
- 9.5 まとめ
10章 ディープラーニングの基礎
- 10.1 ディープラーニングとは何か
- 10.2 ニューラルネットワークの仕組み
- 10.3 ニューラルネットワークを訓練する
- 10.4 ニューラルネットワークの種類
- 10.5 まとめ
11章 Kerasを使ってニューラルネットワークマルウェア検出器を構築する
- 11.1 モデルのアーキテクチャを定義する
- 11.2 モデルをコンパイルする
- 11.3 モデルを訓練する
- 11.4 モデルを評価する
- 11.5 コールバックを使ってモデルの訓練プロセスを改善する
- 11.6 まとめ
12章 データサイエンティストになろう
- 12.1 セキュリティデータサイエンティストへのキャリアパス
- 12.2 セキュリティデータサイエンティストの1日
- 12.3 有能なセキュリティデータサイエンティストの特徴
- 12.4 次のステップ
A 付録:データセットとツール
- A.1 データセットの概要
- A.2 ツール実装ガイド