
おはよう、
現在、新しい mod security 2.5 ルールを作成中です。
私の展開: リバースプロキシモードのApacheサーバーがあります。このApacheサーバーではないウェブサイトをホストします。代わりに、ウェブ リクエストに応答する別のサーバーにリクエストをプロキシします。
Web サーバーは認証トークンを使用して、Web サイトの URL を安全な URL に書き換えます。
75.75.75.75 - - [01/May/2015:10:55:14 -0400] "GET /record/example.svc/js HTTP/1.1" 200 1786 "https://example.org/example.aspx?XOW%5eLdz%3c2%2f1%2f42%2527kbmhtbffJfx%3e0%2527qpkf%5ejc%3e2%2527Cfruho%60uhpmXOW%5eLdz%3c2%2f1%2f42%2527RptsbfVQU%60Jfx%3e193%2527qpkf%5ejc%3e2%2527RptsbfVQU%60Ejqts%60Bihmc%60Mblf%3cSdrtfru%1fTbpqjmh"
問題:
Modsecurity は現在 URI をスキャンしています。ランダム URI の性質上、多くの誤検知が発生しています。これを防ぐために、すべての URI をスキャンから除外したいと思います。
書き換え、リダイレクト、認証トークンはすべて Web サーバー上で生成されるため (これを維持したい)、これらのヘッダーが正当であり、スキャンされないことを mod セキュリティに通知するにはどうすればよいでしょうか。
75.75.75.75 - - [01/May/2015:10:55:52 -0400] "GET /thing.aspx?XOW%5eLdz%3c375%25cddnnd%60ttds%5ebt%60he%3c5%2f58328 HTTP/1.1" 200 15100 "https://example.org/example.aspx?XOW%5eLdz%3c2%2f1%2f42%2527kbmhtbffJfx%3e0%2527qpkf%5ejc%3e2%2527Cfruho%60uhpmXOW%5eLdz%3c2%2f1%2f42%2527RptsbfVQU%60Jfx%3e193%2527qpkf%5ejc%3e2%2527RptsbfVQU%60Ejqts%60Bihmc%60Mblf%3cSdrtfru%1fTbpqjmh"
75.75.75.75 - - [01/May/2015:10:55:52 -0400] "GET /example/example.svc/js HTTP/1.1" 200 1786 "https://example.org/example.aspx?XOW%5eLdz%3c375%25cddnnd%60ttds%5ebt%60he%3c5%2f58328"
答え1
私の知る限り、リクエストの特定の部分(URIやパラメータなど)を全面的に無視することはできません。全てModSecurity ルールを構成しました。これは便利な場合もありますが、多くのセキュリティ ホールが発生する可能性があります。
したがって、どのルールが失敗しているかを確認し、それらのルールのホワイト リスト例外を追加するだけです。
失敗したルールの例をいくつか挙げていただければ、これに関してサポートが必要な場合に、対処方法を提案できるかもしれません。
答え2
最終的に、URI をスキャンしない別のルールを使用することでこの問題を解決しました。
SecRuleUpdateTargetById 950120 !ARGS:REQUEST_URI
この方法では、この特定のルールは URI をスキャンしませんが、パケットの残りの部分はスキャンされます。このルールは、すべてのルールに対して複製する必要があることに注意してください。