誤検知
TL;DR
セキュリティにおいて、誤検知とは、実際には存在しない問題をツールが報告することを指します。
誤検知とは?
誤検知とは、セキュリティツールが実際には存在しない問題を報告することです。
簡単な例:
- 実際の問題:火事が原因で煙探知機が作動する。
- 誤検知:料理の蒸気が原因で煙探知機が作動する。
警報は本物ですが、実際の危険はありません。
誤検知が問題となる理由
誤検知は時間を無駄にするだけではありません。時間が経つにつれて、実際の問題を引き起こす可能性があります。
それにより以下のことが起こります:
- 存在しない問題を修正するために時間を無駄にする
- セキュリティチームと開発チームの間でのフラストレーション
- 実際の問題が無視されるため、リスクが高まる
誤検知が発生する理由
セキュリティツールは慎重に設計されています。実際の攻撃を見逃すよりも、多くの警告を出す方が安全です。
一般的な理由:
-
コンテキストの欠如
ツールがハードコーディングされたパスワードを検出しますが、それはテストファイルにのみ存在します。
-
複雑なコード
ツールはユーザー入力が安全でないと考えますが、コードはすでにそれをクリーンにしています。
-
古いルール
新しい安全なソフトウェアが古い脅威のように見えます。
-
ルールが広すぎる
例えば、安全であってもすべてのeval()の使用をフラグする。
誤検知の実際のコスト
あまりにも多くの警告が蓄積されると、実際の問題が発生します。
- チームは警告に注意を払わなくなります。
- ビルドとリリースが遅くなります。
- 熟練したエンジニアが偽の問題をレビューするために時間を無駄にします。
偽陽性と偽陰性
| 用語 | 意味 |
|---|---|
| 真陽性 | 実際の問題が正しく発見される |
| 偽陽性 | 問題が報告されるが実際には存在しない |
| 真陰性 | 安全なコードが正しく無視される |
| 偽陰性 | 実際の問題が見逃される(これは危険です) |
関連用語
FAQ
アラートが偽陽性かどうかを知るにはどうすればいいですか?
実際のユーザーが問題を引き起こす可能性があるかどうかを判断するためにコードをレビューする必要があります。
ツールに偽陽性がゼロであることは可能ですか?
いいえ。目標はそれらを完全に排除するのではなく、減らすことです。
偽陽性が多いツールの使用をやめるべきですか?
すぐにはやめないでください。ほとんどのツールはコードベースに合わせて調整する必要があります。