Estou tendo dificuldades para criar uma nova regra de segurança mod 2.5.
Minha implantação: servidor Apache, configuração como proxy reverso. (portanto, o servidor web apache __não_ hospeda o site. Em vez disso, faço proxy das solicitações para outro servidor que responde às solicitações da web.)
O servidor web usa tokens de autenticação para reescrever o URL do site em um URL seguro.
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"
O problema:
Atualmente, o Modsecurity verifica o URI. Devido à natureza dos URIs aleatórios, muitos falsos positivos foram produzidos. Para evitar isso, quero isentar todos os URIs da verificação.
Como o token de reescrita, redirecionamento e autenticação estão sendo gerados no servidor web (e é assim que queremos mantê-lo), como posso informar ao mod security que esses cabeçalhos são legítimos e não os verifico?
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"
Responder1
Seguindo a resposta nos comentários da pergunta original;
Resumindo, não é possível negar o URI da inspeção, o ModSecurity é como outros produtos baseados em regras/assinaturas.
O que você pode fazer, no entanto, é obter o ID de regra para seus falsos positivos (no log de erros do Apache VirtualHost
) e executar um SecRemoveRuleById 123456
na configuração do Apache, fazendo isso permitirá que você remova os falsos positivos da correspondência.
Eu sugiro fortemente que você faça o mais seletivo possível por meio de uma LocationMatch
diretiva ou similar
Por bate-papo,Hrvoje'smostra um exemplo ou encadeamento de regras que pode ser útil