Hi Guys,
just wanted to make a little contribution about HTTPS blocking.
Nowdays, you have two ways of blocking traffic in HTTPS:
- Man in the middle attack and see HTTPS traffic as clear.
- Alternates ways of detecting or maybe guessing is a better term of what a user is doing.
I'd like to talk about the second one.
Why does the MK's L7 filter works on HTTPS if the traffic is encrypted? If all the traffic passes through the MK, maybe you are actually filtering the DNS query (you can do this or something similar like that last great link about adding to address lists all DNS queries that contains facebook).
But what about if the DNS traffic doesn't pass through my MK router? Well, if it works, it's because of a TLS extension used nowadays called SNI (
http://es.wikipedia.org/wiki/Server_Name_Indication) is matching our L7 filter. This is THE WAY to block HTTPS by URL. It's great and doesn't makes false positives, because you cant block a google search that says "who is the owner of facebook.com", because that traffic is already encrypted, and you just block the domain name that the user connected to.
Some big name UTM manufacturers use this to block HTTPS.
But what about blocking FarmVille inside Facebook? You just need a couple of pcap captures to see it, you can guess what a user is doing by looking it's traffic, not the encrypted part, but all headers. All applications have behavior profiles that can be guessed with good confidence, and in the end of the day (not a day actually, this takes a LOT of time to do and mantain....
) have a happy HTTPS firewall.......and have LOTS OF FUN TOO!!!!
Well, just wanted to make this little contribution. If anyone wants any of this topics explained further, just ask.
Best regards!
Jorge.