Any list of memorable computer viruses would have to include the SQL Slammer virus, unleashed in 2003. I certainly remember it. I was with UPS IT at the time and we had multiple servers go down from it.
The virus name is a bit misleading because it did not involve SQL, the Structured Query Language for database systems. It exploited an issue with buffer overflows in Microsoft’s SQL Server database system. It could not only bring down the database but, in some cases, whole networks.
The virus, actually a worm, was remarkably simple. It generated random IP addresses and then sent itself to those addresses. If the SQL Server Resolution Service, used to support multiple instances of SQL Server on single computer, the host becomes infected. The Resolution Services operates a UDP port used to send Internet datagrams, small messages that can be sent rapidly. Very rapidly as this virus would prove.
The virus was used to cause the database server to fail in one of two ways. It could cause portions of system memory to be overwritten with random data that would consume all of the server’s available memory. It could also run code in the security context of the SQL Server service that could bring the server down.
A third use of the virus was to create a “Denial of Service”. An attacker could create address so that appeared to come from one SQL Server 2000 system, and then sent it to a neighboring SQL Server 2000 system. This created a never ending series of message exchange, .consuming resources on both systems and slowing performance.
Few viruses have ever caused so much very public disruption so quickly. According to a University of Indiana study of the virus and its impact “The primary characteristic of the worm is its extraordinary rate of propagation. It is estimated that it reached its full level of global internet infection within ten minutes of release. At its maximum (reached on Sunday, January 26th) approximately 120,000 individual computers worldwide were infected and those computers generated an aggregate of over 1 terabit/second of infection traffic”.
They estimated that at peak infection 15% of Internet hosts were unreachable due to the virus.
In South Korea, most users could not access the Internet for about 10 hours. It brought down Bank of America ATMs and caused outages of the 911 system in Seattle. It brought down the network of Akamai, who operated the web sites for high profile companies like Ticketmaster and MSNBC. Continental Airlines had to cancel flights because of issues with its ticketing system.
The good news was the virus was relatively easy to respond to. It was easy to clear from memory and prevent by firewalling the impacted ports. In fact, Microsoft had release a patch for overflow vulnerability a year earlier. A fix was already available for download.
Which leads to an interesting part of this story. The origin of the virus to David Litchfield, a researcher, who identified the problem and created a “proof of concept” program. Litchfield presented his findings to folks at Microsoft who, unfortunately, were ok with him presenting them and the proof of concept at the famous annual Black Hat conference. It is presumed that the creators got the code and the concept from his presentation.
How could Microsoft allow him to do that?
They apparently thought of it as old news. They had the patch out and were busy working on the next version, SQL Server 2005.
Of course, the incident lit a fire under Microsoft’s digital rear end to focus on security for SQL Server 2005. It worked because nothing remotely like this has happened with SQL Server since.