Apache 2.2でのmod_securityのRBLルールに苦労しており、誤検知が発生しているようです。監査ログに次の情報が表示されます(IPアドレスが編集されています)。
メッセージ:4.3.2.1.sbl-xbl.spamhaus.orgのRBLルックアップがREMOTE_ADDRで成功しました。 [ファイル "/etc/httpd/modsecurity.d/activate_rules/modsecurity_crs_42_comment_spam.conf"] [line "21"] [id "981138"] [msg "RBL Match for SPAM Source"] [severity "CRITICAL"] [tag "自動化/悪意のある "]
私を悩ませているのは、ログメッセージで指定された名前に対してnslookup
を実行すると、それが存在しないという結果が得られることです。私が理解しているように、これはこのアドレスがリストにないことを意味します。では、なぜmod_securityが成功するのでしょうか。
また、spamhausのルックアップサービスを使用して、IPアドレスがブラックリストに登録されていないことを確認しました。
何が足りないのですか?何かがキャッシュされているように感じますが、どこにあるのかわかりません。
もう少し背景がありますが、当初、ホストは、ルックアップが失敗した場合でも(役立つ)アドレスを返すDNSサーバーを使用していました。 Googleサーバー(8.8.8.8と8.8.4.4)を使用するように構成を切り替えましたが、Host
とnslookup
は期待どおりに機能します。サーバーを再起動したので、理論的にはメモリキャッシュにありません。また、IPアドレスを保持するmod_securityデータファイルがクリアされていることを確認しました。アドレスの最初のルックアップが上記のように表示され、最初の誤った成功の後、アドレスが既知のスパムアドレスとして表示されるため、これは機能していることがわかります。
問題のルール:
SecRule REMOTE_ADDR "@rbl sbl-xbl.spamhaus.org" \
"phase:1,id:'981138',t:none,pass,nolog,auditlog,msg:'RBL Match for SPAM Source',\
tag:'AUTOMATION/MALICIOUS',severity:'2',setvar:'tx.msg=%{rule.msg}',\
setvar:tx.automation_score=+%{tx.warning_anomaly_score},\
setvar:tx.anomaly_score=+%{tx.warning_anomaly_score},\
setvar:tx.%{rule.id}-AUTOMATION/MALICIOUS-%{matched_var_name}=%{matched_var},\
setvar:ip.spammer=1,expirevar:ip.spammer=86400,setvar:ip.previous_rbl_check=1,\
expirevar:ip.previous_rbl_check=86400,skipAfter:END_RBL_CHECK"
私はもうこの問題を見ていません、そして私は私が原因を知っていると思います。
(1)は正しいままですが、ワイルドカードDNSエントリを削除したため、example.comを検索してもexample.com.mydomain.comで一致するものはなくなりました。