Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
セキュリティエンジニアのための統計リテラシー入門.pdf
Search
ふたばと
April 21, 2021
Programming
0
110
セキュリティエンジニアのための統計リテラシー入門.pdf
ふたばと
April 21, 2021
Tweet
Share
More Decks by ふたばと
See All by ふたばと
敵対的ポイフル
futabato
0
94
【RFC 6797】HTTP Strict Transport Security
futabato
0
91
MBSD Cybersecurity Challenges 2022 最終審査会 IPFactory 発表スライド
futabato
0
2.4k
MBSD Cybersecurity Challenges 2021 最終審査会 After_the_CM 発表スライド
futabato
0
2.7k
MLflowとHydraを利用した実験管理
futabato
0
2k
futabato
futabato
0
200
Other Decks in Programming
See All in Programming
Milestoner
bkuhlmann
1
410
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
920
雑に思考を整理する技術と効能
konifar
58
29k
What We Can Learn From OSS
inouehi
0
420
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
180
Ruby Function Composition
bkuhlmann
1
330
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
220
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
320
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
410
코틀린으로 멀티플랫폼 만들기
pangmoo
0
150
GitHub Copilotのススメ
marcy731
1
200
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
690
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
237
11k
Statistics for Hackers
jakevdp
789
220k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
Building Your Own Lightsaber
phodgson
99
5.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Building an army of robots
kneath
300
41k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
Six Lessons from altMBA
skipperchong
21
3k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
Transcript
セキュリティエンジニアのための 統計リテラシー入門 2021-04-21 ISCLT futabato
自己紹介 ふたばと 情報セキュリティ学科3年 / IPFactory Twitter: @01futabato10 GitHub: futabato 最近:
画像認識技術を使った社会実装について。 メタ認知についてよく考えている。
WAffleを開発していたときの話 正規表現によるパターンマッチングと機械学習で防御するWeb Application Firewallを独自実装した。 正常な通信か異常な通信かと2値分類するタスクを解くことでWAFに機械学習が組み込める。 開発途中、testデータを用いて機械学習モデルの性能を確認したときの話。 GitHub:
https://github.com/futabato/WAffle Blog: https://01futabato10.hateblo.jp/entry/2021/03/15/203958, https://y0d3n.hatenablog.com/entry/2021/03/15/203845
Confusion Matrix 分類結果をまとめて性能を評価するための表 Predicted (True) Predicted (False) Actual (True) True
Positive (TP) False Negative (FN) Actual (False) False Positive (FP) True Negative (TN) 本来通常の通信を 異常な通信と判断 本来異常な通信を 正常な通信と判断 TP + TN 正解率Accuracy = -------------------------------- TP + TN + FP + FN
当時のWAffleの性能 12,213件のデータに対して41%の正解率! 正直低い正解率だが、ここからわかることは…? → モデルが悪いのは確か。 → しかし、何がどう悪い? → どういう方向で改善していけばよい?
PrecisionとRecall Predicted (True) Predicted (False) Actual (True) True Positive (TP)
False Negative (FN) Actual (False) False Positive (FP) True Negative (TN) 本来通常の通信を 異常な通信と判断 本来異常な通信を 正常な通信と判断 TP TN 適合率Precision = ---------------- 再現率Recall = ---------------- TP + FP FN + TN
当時のWAffleの性能 12,213件のデータに対してAccuracyだけでなくPrecision, Recallも算出してみる。 ここからわかることは…? → 異常な通信をすべて異常と判断できていることは素晴らしい。 → しかし、脳死ですべて異常と判断している可能性がある (実際そうだった)。 →
このデータセットに対して41%で正解とはいえ、 偽陽性が多すぎてWAFとしては使い物にならない のでは? Accuracy 0.41 Precision 0.41 Recall 1.00
もしデータに偏りがある場合 すべて正常と判断するとどうなる? → 99%の精度のWAFとなる。 → ただし、攻撃は1つも防いでいない。 Accuracyを使うだけでは評価として不十分な場合がある。 PrecisionやRecallを用いた評価もセキュリティではおそらく重要。 TP +
TN 正解率Accuracy = -------------------------------- TP + TN + FP + FN True Negativeの割合が高すぎて、 間違えている場合の評価が適切に反映されない!
PrecisionとRecallはどちらを優先させるべき? Recallを高めようとする → FNを小さくする必要がある → Positiveと予測する閾値を下げることになる → 過剰適合してしまう可能性が発生 => Precisionは低下する
Precisionを高めようとする → FPを小さくする必要がある → Positiveと予測する閾値を上げることになる → 見逃しが発生してしまうことがある => Recallは低下する Precision と Recallはトレードオフの関係にある。 → どちらを優先させるべきなのかは解きべきタスクや製品によって異なってくる。
WAFの場合は?(独自の意見です) そもそも、WAFを導入することは アプリケーションの実装面の根本的な対策になるわけではなく、 攻撃による影響を低減する対策になる。 (今の情勢でいう「マスクしてるから安心だね! ← それは違うやろ」って感じ) Webアプリケーション内部に脆弱性を組み込まないようにする等、 できることはたくさんあるはず。 WAFで過検知しすぎることは可用性に直結するため、
False Positiveを減らすことが重要。
まとめ 評価指標を選定する際には少し注意が必要。 ・そもそもAccuracyで良いのか? →こういった肌感覚を持つことが大事。 → データを専門的に扱う者ではなくても、 最低限のリテラシーを持っておくことは重要。 ・場合によっては”都合の良い”精度が出てしまう。 → 社内政治では使えるかもしれないが、
製品として売り出す際には使いにくい。 → 結局それは良いことではない。誰も幸せにならない。