Focus on Microsoft
Country by Country ISA Computer Sets Jan 14 2008 10:17PM
Thor (Hammer of God) (thor hammerofgod com)
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

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:

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


[ reply ]


Privacy Statement
Copyright 2010, SecurityFocus