web-dev-qa-db-ja.com

一般的なWebアプリケーションのModSecurityのデフォルト設定はどの程度役に立ちますか?

シナリオ:

  • 「デフォルト」または「汎用」構成のModSecurity(たとえば、共有ホスティングプロバイダーによって提供される構成など)。
  • ModSecurityによって特定のルールが提供されていない汎用Webアプリケーション(カスタム、アンコモン、または不明)。

この状況でModSecurityはどの程度役に立ちますか?何パーセントの攻撃を防ぎますか?どんな攻撃?

この質問をする理由:ModSecurityのデフォルトルールの問題を回避するために、問題が発生している場合は、この特定のアプリケーションに対してdisableを推奨するWebアプリケーションがあります。それは私にとって素晴らしいアドバイスのようには思えませんが、デフォルトのModSecurity構成が実際にModSecurityをまったく持たない(無効にする)よりもはるかに有用であるかどうかはわかりません。

3
reed

TL; DR:セキュリティにはあまり役に立たず、おそらくアプリが壊れる可能性があります。

ModSecurityのデフォルトルールの多くは、攻撃から保護しないための教科書の例です。 XSSが最良の例です。特定のHTMLタグが含まれているように見えるリクエストをブロックするため、人々が無害なコードサンプルを投稿しようとするサイトを破壊します。 (XSSを防ぐ正しい方法は、データを完全にブロックする必要なしに、HTMLで終わるユーザー提供のデータをエスケープすることです。)残りのルールは同様のパターンに従い、危険に見えても危険ではないものをブロックします。アプリが正しく記述されていて、誤検知の可能性が高い場合、実際には危険です。そのため、すべてのModSecurityはセキュリティシアターや、いくつかの規制を満たすためにWAFを持っているボックスをチェックするのに本当に適しています。オフにしても特に害はありません。また、ソフトウェアに悪影響を与えることはありません。 (ウィキペディアの機能であるMediaWikiでも、これをオフにするように指示しています。)

私たちはmodSecurityが非常に有益であることを発見しました、それは私たちの経験で偽陽性のわずかな割合を生み出します。

私たちのアドバイスは、異常スコアリングモードを使用することです[1]。このアプローチは、従来のスコアリングよりも有益であることがわかりました。

重要な考慮事項は、実装するWebアプリ(またはアプリ)のタイプです。たとえば、アプリが非常に「テキスト」/「ワード」である場合、つまり多くのフリーテキストフィールドである場合、誤検知の可能性が高くなります。異常なスコアリングを伴うModSecurityは、最良の推測をしようとしています。すべて正規表現に基づいています。

私たちのアプリの一部の数値では、毎月約1億1千万件のリクエストがあり、偽陽性の割合が非常に低くなっています。

ModSecurityを使用してcontentTypes、HTTPメソッドなどをホワイトリストに登録できることも指摘しておきます。SQLインジェクションとXSSをスキャンするだけではありません。

確かにmodSecurityをオフにするつもりはありません。

これが多少役立つことを願っています。

[1]異常スコアリング。 https://www.modsecurity.org/CRS/Documentation/anomaly.html

0
Darragh