[VOIPSEC] FWD: Blocking Skype
Robert Moskowitz
rgm at icsalabs.com
Mon Nov 14 11:33:36 CST 2005
>Date: Sun, 13 Nov 2005 23:35:41 +0400
>From: dsluser at emirates.net.ae
>To: full-disclosure at lists.grok.org.uk
>Cc:
>Subject: [security] [Full-disclosure] Blocking Skype
>Sender: security-bounces at lists.seifried.org
>
>
>Blocking Skype Using Squid and OpenBSD
>---------------------------------------
>
>
>Abstract :
>
>After much digging online for an effective way to stop this pesky app
>that is highly de-centralised and a big pain to blocked, I finally found
>a way
>to do quite nicely. It has been working perfectly fine on our corporate
>network, and we have had no complaints of users being denied access to
>legitimate web destinations (that are in compliance with our security
>policy of course). I used Squid-proxy running on an OpenBSD server to
>carry out the below. The choice of OS to run the proxy on is subjective
>(I chose OpenBSD as my network OS of choice for its proven security
>record and excellent reliability) and has no effect over the actual
>blocking mechanism. The same can be accomplished on any other BSD or Linux
>flavour.
>
>
>Background :
>
>This basic write-up will not delve deeply into the operation of Skype,
>but will quickly highlight the main challenges of blocking this
>application. As
>mentioned, the below is not an accurate study of how Skype operates, and
>is not be a comprehensive analysis of its behaviour :
>
>1) Skype will initially attempt to contact supernodes, the IPs of which
>are in a file stored along with the other files that Skype installs. The
>first method of contact is direct. The source ports that Skype attempts
>to connect from are non-default ports. From my observations I could see
>that the UDP source port 1247 is the initial control channel. Once the
>connection is established, the rest of the communications is done in TCP
>over non-default source ports with ranges sweeping from 2940-3000.
>In general, any company that is serious about its security policy would
>have strict egress filtering rules, which makes identifying the
>non-default source/destination ports that Skype uses irrelevant since
>they would be blocked anyway.
>
>2) If the above fails, Skype will use the proxy server specified in Internet
>Explorer, and attempt to tunnel the traffic over port 443 using the SSL
>protocol. The destination IPs are of course random as above, which makes
>destination blocking out of the question. The only option left is to
>block SSL,
>which is not really a solution, unless you want to end up excluding all
>legal SSL destinations.
>Deleting the user's proxy settings would also disallow Skype from
>connecting. That would however leave the user without internet access.
>Even if the user had no proxy settings, and the proxying was done
>transparently (which would definitely include proxying http and https
>traffic), the Skype traffic (SSL) would again be transparently proxied,
>which puts us back at square one.
>
>
>
>The Alternative That Works :
>
>Internet access services in our corporate workplace are provided by our
>proxy servers. The setup is basically Squid-proxy running over OpenBSD.
>PF (packet filter, OpenBSD's built-in firewall) takes care of all the
>egress/ingress filtering, and the rest of the content filtering is done
>in Squid using custom-written accesslists.
>
>Blocking Skype's default operation was a no-brainer, as our strict
>egress filtering rules block all outgoing traffic. The problem was with
>Skype detecting the user's proxy server, and tunneling its traffic over
>Squid. Upon checking Squid's access logs, all we could see was requests
>made by the user's machines using the 'Connect' method to random
>destination IPs.
>
>As mentioned above, blocking SSL or the 'Connect' method, means blocking
>access to all legitimate websites that use SSL (Hotmail, Yahoo,
>E-banking, E-commerce websites, e.g any website that is secured by SSL).
>Should you go down that road, you would have to explicitly allow all
>permitted destinations (an ongoing technical nightmare).
>
>The catch in successfully blocking Skype given all of the above, would be to
>block access to requests made by clients, to destination specified by their
>numeric IP address, AND using the 'Connect' method to tunnel the Skype
>data. I
>have done that simply by writing an access list in Squid that achieves
>just that.
>The access-list is in regex (regular expression) format that identifies
>numeric IP addresses. The access-list further specifies the connection
>method that the client is using. In Squid the 'Connect' method is
>conveniently called 'Connect' as well.
>
>
>The access list then is of the following form :
>
>
># Your acl definitions
>acl numeric_IPs urlpath_regex ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
>acl connect method CONNECT
>
># Apply your acls
>http access deny connect numerics_IPs all
>
>
>I have had no problems at all with the above setup, and as a result,
>only Skype is blocked, as most(if not all) companies serious about
>having a web presence
>have registered domains and hence are referenced by their FQDN URLs.
>
>The blocking was so effective, that one user told me days later, he had
>not bothered calling me the first 2 days to complain about lost Skype
>connectivity
>because he thought there was an actual problem with Skype. Apparently,
>Skype is so good at getting around firewalls. On the third day however,
>the user called
>to inquire whether Skype had effectively been blocked. The answer was a
>efinitive yes :)
>
>
>Should you find the above useful, I would appreciate all comments emailed to
>vi_cipher at yahoo.com. Enjoy !
>
>
>
>Written by rootn0de
>November 13th - 2005
>_______________________________________________
>Full-Disclosure - We believe in it.
>Charter: http://lists.grok.org.uk/full-disclosure-charter.html
>Hosted and sponsored by Secunia - http://secunia.com/
>
>_______________________________________________
>Get your free port scan here: http://www.seifried.org/freescan2/
>
>security mailing list
>security at lists.seifried.org
>https://lists.seifried.org/mailman/listinfo/security
>
Robert Moskowitz
Senior Technical Director
ICSA Labs, a division of Cybertrust, Inc.
W: 248-968-9809
F: 248-968-2824
VoIP: 248-291-0713
E: rgm at icsalabs.com
There's no limit to what can be accomplished if it doesn't matter who
gets the credit
More information about the Voipsec
mailing list