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
130
セキュリティエンジニアのための統計リテラシー入門.pdf
ふたばと
April 21, 2021
Tweet
Share
More Decks by ふたばと
See All by ふたばと
敵対的ポイフル
futabato
0
510
【RFC 6797】HTTP Strict Transport Security
futabato
0
160
MBSD Cybersecurity Challenges 2022 最終審査会 IPFactory 発表スライド
futabato
0
2.9k
MBSD Cybersecurity Challenges 2021 最終審査会 After_the_CM 発表スライド
futabato
0
3k
MLflowとHydraを利用した実験管理
futabato
0
2.8k
futabato
futabato
0
210
Other Decks in Programming
See All in Programming
現場で役立つモデリング 超入門
masuda220
PRO
15
3.1k
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
1.2k
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
300
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
1.1k
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
510
Importmapを使ったJavaScriptの 読み込みとブラウザアドオンの影響
swamp09
4
1.4k
Contemporary Test Cases
maaretp
0
120
Tuning GraphQL on Rails
pyama86
2
1.2k
開発効率向上のためのリファクタリングの一歩目の選択肢 ~コード分割~ / JJUG CCC 2024 Fall
ryounasso
0
440
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
150
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
180
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
5
1.7k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
43
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
GitHub's CSS Performance
jonrohan
1030
460k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
2k
Unsuck your backbone
ammeep
668
57k
Navigating Team Friction
lara
183
14k
Thoughts on Productivity
jonyablonski
67
4.3k
Music & Morning Musume
bryan
46
6.2k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
The Pragmatic Product Professional
lauravandoore
31
6.3k
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で良いのか? →こういった肌感覚を持つことが大事。 → データを専門的に扱う者ではなくても、 最低限のリテラシーを持っておくことは重要。 ・場合によっては”都合の良い”精度が出てしまう。 → 社内政治では使えるかもしれないが、
製品として売り出す際には使いにくい。 → 結局それは良いことではない。誰も幸せにならない。