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
Jakarta EE meets AI
ivargrimstad
0
370
From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism- An Example
philipschwarz
PRO
0
200
現場で役立つモデリング 超入門
masuda220
PRO
15
3.1k
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
230
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
5
1.7k
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
7
7.5k
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
150
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
230
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.1k
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
470
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
430
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
300
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Optimizing for Happiness
mojombo
376
70k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Why Our Code Smells
bkeepers
PRO
334
57k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Become a Pro
speakerdeck
PRO
25
5k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
A better future with KSS
kneath
238
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
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で良いのか? →こういった肌感覚を持つことが大事。 → データを専門的に扱う者ではなくても、 最低限のリテラシーを持っておくことは重要。 ・場合によっては”都合の良い”精度が出てしまう。 → 社内政治では使えるかもしれないが、
製品として売り出す際には使いにくい。 → 結局それは良いことではない。誰も幸せにならない。