【要約】LightGBMとeBPF/XDPを用いてDDoS攻撃のAI自動緩和に挑戦。#3 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がDDoS攻撃を自動緩和するシステムを構築する際、収集した生データから攻撃を識別する手法の確立が課題となる。単なるデータの羅列では、未知の通信パターンに対して予測を行うことができないためである。具体的には以下の問題に直面している。
- ・生データから目的変数を予測するための学習ロジックの欠如。
- ・攻撃と正常通信を正確に判別するためのモデル構築手法の必要性。
- ・データセットの量と質がモデルの精度に与える影響の管理。
// Approach
開発者は、PythonとLightGBMを用いて、データセットから特徴量を抽出し学習を行う
train.pyを実装した。学習プロセスは以下のステップで構成される。- ・pandasを用いてCSV形式のデータセットを読み込む。
- ・scikit-learnの
train_test_splitでデータを学習用とテスト用に分割する。 - ・LightGBMの二値分類(
objective=binary)とAUC(metric=auc)を指定して学習を実行する。 - ・
model.save_modelを用いて、学習済みモデルをmodel.txtとして保存する。 - ・決定木の可視化により、検知ロジックの解釈性を確保する。
// Result
開発者は、構築したモデルの精度を評価し、実運用に向けた閾値の設定方針を決定した。評価結果は以下の通りである。
- ・Precision(適合率)は0.96と高く、誤検出を極めて低く抑えられた。
- ・Recall(再現率)は0.62に留まり、攻撃の見逃しが課題として残った。
- ・誤検出による正常通信の遮断を防ぐため、閾値を0.8に設定する運用方針を固めた。
- ・次ステップとして、リアルタイム検知を行う
agent.pyの実装へ進む。
Senior Engineer Insight
> 精度評価において、PrecisionとRecallのトレードオフを明確に捉えている点は評価できる。DDoS緩和では、誤検出による正常通信の遮断は致命的だ。そのため、閾値を高めに設定する判断は実戦的である。ただし、Recallの低さは攻撃の突破を許すリスクとなる。本番環境では、データセットの拡充とともに、推論にかかるレイテンシがXDP連携時のボトルネックにならないか、厳密な検証が求められる。