2024-04-10 に WordPress のバージョンアップをした結果、ModSecurity でいくつかの偽陽性判定(誤検知)があり、対象のルールを除外することで復旧しました。現時点の WordPress のバージョンは 6.5.2 です。バージョンアップ後、すぐには影響が無かったのですが、これは Redis などのキャッシュの影響なのかもしれません。
ちなみに、セキュリティシステムによる影響でシステムとして正常な通信がブロックされた場合、「誤検知」という表現をよく聞きます。「誤検知」という表現は、セキュリティシステムのバグのようにも捉えられる可能性があり、状況によってはトラブルシューティングのミスリードを招く場合もあります。私自身はセキュリティシステムにおける「誤検知」という表現を嫌います。もちろん、本当にバグの場合もあるかもしれませんが、それは、本来は一定の切り分け後に判定されるべき内容です。
セキュリティシステムとして、正式には以下のように表現されますので、「誤検知」は使わずに以下で表現するようにしましょう。実は、まとまって書かれた情報元がなかったのですが論理的にこうなると思います。
- ①偽陽性 (false positive): 正常な通信を不正な通信と判定(またはブロック)した状況を指します。前述の誤検知とはこの偽陽性のことです。これは、セキュリティというより目的としているシステムの挙動に影響がある状態です。
- ②真陽性 (true positive): 偽陽性の逆です。システム全体として正しい動作をしています。
- ③偽陰性 (false negative): 不正な通信を正常な通信と判定した状況を指します。この状態は気づきにくく、非常に危険な状態です。特に、WAF のように汎用シグネチャに依存している場合、何を不正な通信と見做すかは公開されているシグネチャの作成者のコンセプトによるので、一般的な利用者側での判定はほぼ不可能に近いと思います。
- ④真陰性 (true negative): 偽陰性の逆です。システム全体として正しい動作をしています。
上記を表にまとめると以下のようになります。システムとして正しい動作は、true negative, true positive であり、それを維持するように運用する必要があります。
項目 | 正当な通信 | 不正な通信 |
---|---|---|
通過 | ④真陰性 (true negative) | ③偽陰性 (false negative) |
ブロック | ①偽陽性 (false positive) | ②真陽性 (true positive) |
ModSecurity WordPress のバージョンアップで偽陽性判定