Continuing the theme from my previous column on the relative security of Internet Information Service (IIS) vs. Apache, I've come across more studies to support my initial conclusion.
If you remember, I was questioning the findings of a Google report that stated that IIS Web servers were twice as likely as Apache servers to be hosting malware. I wasn't refuting the data, but I was questioning the conclusion, given the fact that the report's authors calculated their statistics using server IP addresses only.
Since a single Web server can, and often does, host multiple Web sites, the published results would be skewed by any server hosting multiple Web sites. And since Apache Web servers are often used to host hundreds to thousands of active sites (and IIS is less likely to host sites on the same scale), I felt the study underreported the prevalence of malicious Apache Web sites.
I was skeptical of the data because of my own experiences. I run both IIS and Apache Web servers in my honeynet. The Apache Web server gets attacked significantly more than the IIS server does. Also, most reported hacks are against Apache Web servers. Finally, I can't think of a single massive attack against IIS servers since the Code Red worm of July 2001. Yet, Apache servers are being taken over by the thousands nearly every night. Something didn't add up.
Of course, being a full-time Microsoft employee, I wondered if my relationship was clouding my "objectivity." Because I make a living in the Windows world, was I not seeing the true malicious Web site activity accurately?
Over the last month, I've decided to track every reported Web site exploitation or malicious Web server host. With more than 3,000 data points, the number of reported malicious or compromised Apache Web sites is running 17 to 1. But it's not just my own data; take any random sampling from Zone-H's hacked Web site monitor statistics and you'll see a huge skew toward Apache servers versus IIS. Normal statistics show that somewhere around 80 to 90 percent of all malicious Web sites originate from an Apache server.
Zone-H's data has some other interesting points, such as how many single IP addresses (a single Web server, in most cases) are linked to the reported Web servers. It's not unusual to see a single exploit affecting a single IP address to result in hundreds to thousands of malicious Web sites. And yes, the vast majority of these data points are Apache.
Paul Laudanski of CastleCops fame collected supporting statistics from his own Phishing Incident Reporting and Termination Squad database for me. He said, "For PIRT reports above 500,000 (without checking their phish status): IIS = 1,302 reports, Apache = 20,104 reports. For all PIRT reports w/o confirming status: IIS = 16,744, Apache = 181,724. There are of course other Web servers I haven't checked for." That works out to be about 6 to 8 percent for IIS and 92 to 94 percent for Apache.
The overwhelming slant toward Apache cannot be explained by sheer numbers alone. Netcraft reports that in August 2007, Apache accounted for 48 percent of public-facing Web sites while IIS rose to 34 percent. So does that mean IIS is more secure than Apache?
The real answer, of course, is that both IIS and Apache, if installed as directed by the developers, are relatively secure. Most malicious Web site infections are the result of administrative mistakes and buggy applications -- not the underlying Web server software.
Open Web Application Security Project, one of the most respected organizations trying to increase Web server security, continues to report nearly the same top 10 Web site security flaws that have plagued Web sites since the beginning of the Web.
So I want to end my one-way debate of IIS vs. Apache by saying that both are fine, relatively secure platforms. Installing a secure Web server is easy; hosting secure applications on top of that secure base is the true challenge.