Bugtraq mailing list archives

Country by Country ISA Computer Sets


From: "Thor (Hammer of God)" <thor () hammerofgod com>
Date: Mon, 14 Jan 2008 14:20:50 -0800

Recently, David Litchfield asked me to help him out a bit with a research project he was working on by having me set up 
a network capture in my DMZ to log SQL Slammer attacks.  I don't publish any services here at my Santa Cruz facility 
(meaning there are no required inbound protocols and no references in DNS anywhere) so I figured it would be nice 
"quiet" circuit to use for testing.  I basically port-forwarded UDP 1434 to a laptop in my DMZ running NetMon3 also 
filtering for UDP 1434.  After about 4 days of running NetMon, I had captured almost 30 (verified) random SQL Slammer 
attacks.  What I found interesting was that every single one of them was sourced in China (all from different 
addresses). 
 
Now, it's not my intent to start some geopolitical debate here, but I've long heard about how some people would block 
entire countries at the border in order to obviate issues with malicious traffic.  There are obviously some issues with 
this (both from a technical and potential customer standpoint) so I set out to do a bit of research on my own.  First 
thing I found out was that if one does decide to block entire countries, that it's going to be a bit of work from a 
rule standpoint.  Sure, if I wanted to block all of China I could block APNIC, but that would block WAY more than I 
would want.  So I set about finding a good resource for country-by-country IP ranges.  Fortunately, Wade Alcorn, one of 
my colleagues at NGSSoftware turned me on to one that seemed pretty decent (there are a few around, though).  But 
finding the resource was just the beginning...  The list I got included 234 countries, comprised by almost 100,000 
records of IP ranges.   

Making a firewall rule to block China, for instance, would require entering in almost 600 IP ranges - so the "manual" 
route was clearly out.  The thing is, I just didn't want to block countries without more research, so I needed a way to 
gather some statistics first.  Enter ISA Server - as many of you know, I'm a big fan of ISA - it's a true enterprise 
security product with great scripting capabilities, so I set to work creating an automated method by which to create 
computer sets in ISA for each country.   Basically, I created a SQL database and loaded all the records into it - I 
then wrote a little COM app to reach out and grab the data by countries, create the sets in ISA, and loop through the 
different ranges of IP's to add them to the set.  It worked great.
  
This accomplished two things - one, I now have full detailed computer sets for each country to do with as I please.  
Secondly, I have an excellent way of producing detailed reports for traffic analysis in ISA- this was key.  With data 
collection points set up at different places around the world, I was able to capture 3.1 million inbound connection 
attempts.  The results were quite interesting.  While China still led with connection attempts overall, it was 
interesting to see that Canada was a close second.  However, while China's traffic consisted of SQL Slammer, HTTP, 
SMTP, probes for GhostProxy, etc, almost all of Canada's traffic was MESSENGER spam (UDP 1026,1027,1208).  The world 
leader for HTTP was Brazil, strangely enough.  Now, all of this will change based on who and where you are, and the 
types of services being offered.  For example, I only got 5 SMTP connection attempts to my cable modem in a week, but 
my ISP in BM got hundreds of thousands (understandably) in the same time period.  I'll whip up some cool reports for 
what I found and post them once I get some more data in from different collection points, but the valuable outcome of 
the project was the creation of these individual country-by-country Computer Sets for ISA.

Beforehand, I had no real way of easily and effectively reporting on traffic patterns by source country.   Whether you 
can or can't block entire countries is your business, but at least this affords someone an easy way of doing research.  
You may not be able to (or even want) to block HTTP from China, but you very well may want to block SMTP - with ISA and 
computer sets, you can easily do this.  Even if you don't block anything at all, you can use the sets to get rich 
reports of what kind of traffic your are getting from a particular country.  While the validity of the practice of 
blocking entire countries (or particular protocols for that matter) may be up for debate, you now at least have the 
option to make your own decision based on factual information - to be sure, you've always been able to do this 
obviously, it's just been my experience that maintaining rule lists by country/protocol has been quite difficult and 
time consuming. 
I've exported every countries entire list to ISA 2006 .XML format, and have posted them on the HoG site for community 
use.  Since I've automated the Set creation process, I'll be updating the sets each month or so to ensure that changes 
are processed correctly.   I would like to thank NGSSoftware for purchasing the required business services to receive 
the updates - their donation makes it possible for me to give you updated sets for free. 

A full list of all countries' ISA .xml for ISA 2006 is available here:
http://hammerofgod.com/download/ISASets/

The first file is a zip of all countries is you want that one.  Go nuts!

t




Current thread: