セキュリティエンジニアのための機械学習

―AI技術によるサイバーセキュリティ対策入門

[cover photo]
TOPICS
Security
発行年月日
PRINT LENGTH
312
ISBN
978-4-87311-907-6
原書
Mastering Machine Learning for Penetration Testing
FORMAT
Print PDF EPUB
Ebook
3,300円
Ebookを購入する
Print
3,300円

情報セキュリティのエンジニアや研究者を読者対象とした機械学習の入門書。フィッシングサイト、マルウェア検出、侵入検知システムなどの情報セキュリティ全般の課題に対して、機械学習を適用することでどのようなことが可能になるのか? 本書ではサイバーセキュリティ対策でとても重要なこれらの知識を実装レベルで身につけることができます。また、どうすれば機械学習による検出を回避できるか、という点についても同時に解説します。サンプルコードはPython 3対応。Google Colaboratory上で実際に手を動かしながら学ぶことができます。

関連ファイル

目次

訳者まえがき
まえがき

1章 情報セキュリティエンジニアのための機械学習入門
    1.1 なぜ情報セキュリティエンジニアに機械学習の知識が必要なのか
    1.2 本書のコードサンプルの実行環境
        1.2.1 Google Colaboratory入門
        1.2.2 GPU/TPUランタイムへの変更
        1.2.3 OSコマンドの実行とパッケージの追加
        1.2.4 GitHub上のサンプルコードの実行方法
        1.2.5 Google Colaboratoryの制限事項
    1.3 機械学習によるモデル開発の進め方
    1.4 まとめ
    1.5 練習問題

2章 フィッシングサイトと迷惑メールの検出
    2.1 ソーシャルエンジニアリングの概要
    2.2 フィッシングサイト検出器の開発
        2.2.1 ロジスティック回帰を使用したフィッシングサイト検出
        2.2.2 決定木を使用したフィッシングサイト検出
    2.3 迷惑メール検出器の開発
        2.3.1 NLP概論
        2.3.2 tf-idfを使用した迷惑メール検出
    2.4 まとめ
    2.5 練習問題

3章 ファイルのメタデータを特徴量にしたマルウェア検出
    3.1 マルウェアの概要
        3.1.1 マルウェア解析
        3.1.2 検出回避の手段
    3.2 PEヘッダを使った機械学習によるマルウェア検出
        3.2.1 PEファイルの構造
        3.2.2 マルウェアのデータセット
        3.2.3 ランダムフォレストのハイパーパラメータチューニング
        3.2.4 勾配ブースティングのハイパーパラメータチューニング
        3.2.5 AdaBoostのハイパーパラメータチューニング
    3.3 Androidマルウェアのデータセットを使った検出器の開発
        3.3.1 SVMのハイパーパラメータチューニング
    3.4 まとめ
    3.5 練習問題

4章 ディープラーニングによるマルウェア検出
    4.1 脳とニューロン
    4.2 パーセプトロン
    4.3 ニューラルネットワーク
        4.3.1 活性化関数
    4.4 PEヘッダを使用したディープラーニングによるマルウェア検出器の開発
        4.4.1 マルウェアのデータセット
        4.4.2 特徴量の標準化
        4.4.3 ハイパーパラメータのチューニング
        4.4.4 マルウェア検出のテスト
    4.5 畳み込みニューラルネットワークとマルウェアの画像化を使用した分類
        4.5.1 畳み込みニューラルネットワーク(CNN)
        4.5.2 リカレントニューラルネットワーク(RNN)
    4.6 マルウェア検知とCNN
    4.7 ディープラーニングをマルウェア検出に適用する手法への期待と課題
    4.8 まとめ
    4.9 練習問題

5章 データセットの作成
    5.1 サイバー脅威インテリジェンスとは
    5.2 Twitterを通じた脆弱性情報データセットの作成
        5.2.1 開発者アカウントの登録
        5.2.2 Twitterのスクレイピング
        5.2.3 ラベリング
        5.2.4 PigeonXT
    5.3 まとめ
    5.4 練習問題

6章 異常検知
    6.1 異常検知技術の概要
    6.2 SIEMとUEBA
    6.3 Windowsログの基礎
        6.3.1 イベントの構成要素と種類
        6.3.2 イベントの発生傾向と辞書攻撃との相関性
    6.4 時系列分析による異常値検出
        6.4.1 データセットと前処理
        6.4.2 時系列データの分解
        6.4.3 Prophetによる異常検知
        6.4.4 msticpyによる異常検知
    6.5 まとめ
    6.6 練習問題

7章 SQLインジェクションの検出
    7.1 SQLインジェクションの概要
    7.2 データセット
    7.3 特徴量の追加
        7.3.1 エントロピー
        7.3.2 SQLインジェクションに特徴的な文字
        7.3.3 特徴量の追加
    7.4 SQLインジェクション検出器の開発
    7.5 N-gramによる特徴量の再抽出
    7.6 まとめ
    7.7 練習問題

8章 機械学習システムへの攻撃
    8.1 機械学習システムの脅威モデル
    8.2 攻撃に利用できるライブラリ
        8.2.1 ARTによる攻撃の流れ
    8.3 転移攻撃
        8.3.1 Copycat CNN
    8.4 回避攻撃
        8.4.1 FGSM
        8.4.2 Carlini & Wagner Attack
        8.4.3 ZOO Attack
        8.4.4 Adversarial Training
        8.4.5 Randomized Smoothing
    8.5 汚染攻撃
        8.5.1 BadNets
        8.5.2 Activation Clustering
    8.6 まとめ
    8.7 練習問題

9章 深層強化学習によるマルウェア検知器の回避
    9.1 実世界のアンチウイルス製品に存在した問題
    9.2 機械学習を用いるマルウェア検知器MalConv
    9.3 Machine Learning Static Evasion Competition
    9.4 PEファイルフォーマットの基礎知識
    9.5 pefileを用いたPEファイルの改変
    9.6 マルウェア検知を機械学習によって回避するには
    9.7 深層強化学習の基礎知識
        9.7.1 問題設定
        9.7.2 Q学習
        9.7.3 Deep Q-Network
    9.8 OpenAI GymとKeras-RLを用いたMalConvの回避
    9.9 まとめ
    9.10 練習問題

10章 機械学習のヒント
    10.1 どの機械学習アルゴリズムを使ったらよいのか問題
    10.2 精度や指標についてどう考えたらよいのか問題
    10.3 まとめ

付録A 練習問題の解答
    A.1 1章情報セキュリティエンジニアのための機械学習入門
    A.2 2章フィッシングサイトと迷惑メールの検出
    A.3 3章ファイルのメタデータを特徴量にしたマルウェア検出
    A.4 4章ディープラーニングによるマルウェア検出
    A.5 5章データセットの作成
    A.6 6章異常検知
    A.7 7章SQLインジェクションの検出
    A.8 8章機械学習システムへの攻撃
    A.9 9章深層強化学習によるマルウェア検知器の回避
    A.10 10章機械学習のヒント

参考文献
索引