We just had a PCI compliance scan and we failed because HTST wasn't enabled. Looking through everything HTST is enabled on all of our Web Server Protection rules including the default one. The PCI scanning company said the server replying is using apache which we do not use internally at all. So I opened up a support ticket with Sophos.
After they looked at my system they told me that someone trying to access https://External-IP/ will match the first rule that matches port 443. Our first rule matching 443 is for our Exchange server and the WAF rule specifically states only accept 443 if it matches mail.domain.com. But they said if the IP address is used it simply matches the first rule with the same port: Per them:
"Please be informed that the firewall is doing packet forwarding based on the destination IP address, so the WAF rule will work with both the domain name and the IP address as an expected behavior."
WHAT?!? That makes no sense to me, a rule that specifies a exact host name should not also accept no host name. And even if this is true, which it seems to be, we have HTST properly setup on our Exchange server but since it's not using the domain name it's not being used. And again the scanning company said the reply is coming from apache.
How do I stop this and block incoming traffic on port 80 and 443 unless it actually matches our host names? This seems like a security issue.
EDIT: For those finding this after searching for a answer: I still don't understand why WAF is accepting a request without a explicitly matching firewall rule but I guess thats how it works and when it finds no rule matches the host name it gives a 403 Forbidden. This isn't great but it is what it is. As for my PCI compliance scan I submitted for a false positive based on the fact that HTST does not apply for IP addresses and shouldn't be used as a basis for a failure. I was able to show that a valid URL, our exchange server at https://owa.Doamin.com/owa on the same external IP does properly have the HTST header, and based on those two things my false positive was granted.
This thread was automatically locked due to age.