Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

[ Create a new account ]

500 Thousand MS Web Servers Hacked

Posted by kdawson on Fri Apr 25, 2008 11:48 AM
from the scream-and-shout dept.
andrewd18 writes "According to F-Secure, over 500,000 webservers across the world, including some from the United Nations and UK government, have been victims of a SQL injection. The attack uses an SQL injection to reroute clients to a malicious javascript at nmidahena.com, aspder.com or nihaorr1.com, which use another set of exploits to install a Trojan on the client's computer. As per usual, Firefox users with NoScript should be safe from the client exploit, but server admins should be alert for the server-side injection. Brian Krebs has a decent writeup on his Washington Post Security Blog, Dynamoo has a list of some of the high-profile sites that have been hacked, and for fun you can watch some of the IIS admins run around in circles at one of the many IIS forums on the 'net."

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login
Loading... please wait.
  • ob... (Score:4, Funny)

    by Anonymous Coward on Friday April 25, @11:49AM (#23198614)
    Does it run on linux.
    • Re:ob... (Score:5, Interesting)

      by ArcherB (796902) on Friday April 25, @12:02PM (#23198802) Journal

      Does it run on linux.
      That is actually a good question and the first thing I thought of. While I'm not worried about my little webserver being hacked as it runs on Linux without MySQL, I am worried about my browser.

      If I run Firefox on Linux without NoScript, is there a danger?

      • Re:ob... (Score:5, Insightful)

        by RobBebop (947356) on Friday April 25, @12:30PM (#23199212)

        In other words, you can't rely on the site you are visiting to be safe.. so the onus is on the end user to make sure their PC is fully patched and as secure as possible.

        The above quote is from the article link which lists "important sites that have been compromised". I think the important thing is that any site running MSSQL could potentially be compromised in a way that would affect a reader of that site who (a) does not have an updated web browser, or (b) doesn't have script disabled.

        In 2008... why is it really so easy to put a damned single or double quote into a SQL form and then make it possible to execute your malicious code on that server? Shouldn't disabling this be a fundamental security rule for databases?

        • Re:ob... (Score:5, Insightful)

          by keithjr (1091829) on Friday April 25, @01:11PM (#23199740)
          In 2008... why is it really so easy to put a damned single or double quote into a SQL form and then make it possible to execute your malicious code on that server? Shouldn't disabling this be a fundamental security rule for databases?

          It is fundamental. It's called secure input handling, or sanitizing input. Just because it's a rule doesn't mean it is followed.
        • Re:ob... (Score:4, Insightful)

          by sm62704 (957197) on Friday April 25, @01:35PM (#23200062) Homepage Journal
          True, but the summary could have mentioned it. As it is, it's a ripe subject for humor. Only some folks here defend their choice of operating systems like others defend their wifes and children. Anyone who would get angry because someone jokes about someone else's product has some serious issues.

          "It Isn't Secure" is a tired old joke. But so is Microsoft!
        • Re:More data needed (Score:4, Informative)

          by CastrTroy (595695) on Friday April 25, @08:34PM (#23204404) Homepage
          You can have SQL injection problems just as easy in stored procedures as you can in plain old code. Look at this example (pardon the probably incorrect syntax):

          Create Procedure GetUserTelePhone(@UserName varchar(50))
          Begin
                Declare @sql varchar(300)

                Set @sql = 'SELECT TelePhone From Users where UserName=''' + @UserName + ''''

                return exec(@sql)

          END

          See, there you go, completely open to sql injection, and it's a stored procedure. The problem isn't that people aren't using stored procedures, it's that people are creating queries which result from the concatenation of strings and variables, which invariably leaves them open to attack. A much better way to do things, is to use prepared queries, either in you stored procedures, or just using prepared queries directly in the code.

  • Bias? (Score:5, Informative)

    by jmpeax (936370) * on Friday April 25, @11:50AM (#23198632)
    SQL injection is a result of poor data validation on the part of the web application - not, as the blurb implies, an indicator of an insecure web server. LAMP installations are also susceptible to SQL injection [mysql.com] (PDF). From TFA:

    Unless [...] data is sanitized before it gets saved you can't control what the website will show to the users. This is what SQL injection is all about, exploiting weaknesses in these controls.
    As for the fact that Firefox + NoScript prevents the problems, that really isn't a surprise seeing as these specific exploits rely on executing a JScript. Any browser with scripting disabled would be immune.

    The tone of the blurb is not only biased but also counter-productive to promoting open source (as this appears to be its intention): by trying to criticise closed technologies not by highlighting their actual deficiencies but instead by spreading FUD, the whole community is done a disservice.
    • Re:Bias? (Score:4, Interesting)

      by ischorr (657205) on Friday April 25, @11:54AM (#23198678)
      Also, is it 500,000 web *sites* identified so far, or 510,000 web *pages*?
      • Re:Bias? (Score:5, Informative)

        by Mia'cova (691309) on Friday April 25, @12:04PM (#23198838)
        The blurb completely misquotes the article. The article clearly states pages as reported by google. Plus, Google is hardly a live metric for the state of the internet. It really gives us a very poor estimate of how much impact this is having.

        Also, which browsers are affected? It sounds like most of the exploits being used against the browsers have already been patched. Is there a new one there?
    • Re:Bias? (Score:5, Insightful)

      by Shados (741919) on Friday April 25, @11:55AM (#23198700)
      I agree, and that was my first reaction: "Wtf does IIS have to do with SQL injection". If nothing else, a LAMP stack would be more susceptible, not because of the servers, but because PHP didn't have mainstream prepared statements as part of a default standard install in its earlier versions, and now that it DOES have it, a lot of script kiddies or peanut gallery programmers aren't using them, as opposed to Java/.NET/Whatever which, while still having some issues with the same group of newbie developers, are prepared-statement centric in their development paradigms and documentation, thus reducing the amount of possible SQL injection significantly, unless the apps are made in legacy environments too.

      Its such a rediculous flamebait, I don't know what to say.
      • Re:Bias? (Score:5, Informative)

        by Col. Klink (retired) (11632) on Friday April 25, @12:27PM (#23199174)
        > "Wtf does IIS have to do with SQL injection". RTFA:

        the attackers looked for ASP or ASPX pages containing any type of querystring
        This specific attack, of which google has found over half a million affected pages, is targeted at IIS.
        • Re:Bias? (Score:5, Interesting)

          by Shados (741919) on Friday April 25, @12:38PM (#23199314)
          Doesn't change that IIS doesn't have anything to do with it. If you take aside that both ASP and ASP.NET (more ASP though) aren't IIS specific by a long shot, the attack is targeting specific technologies, then targetting specific software development flaws within the boundaries of those technologies. If I'm running PERL/PHP on my server, it won't see it. If I'm running an ASP page on Apache, it will, and even if my server hasn't been patched for the last 5 years, I'm no more or less vulnerable to that attack.

          If the attackers looked for servers that were advertising themselves as IIS, and/or attacked IIS vulnerabilities or bad administration practices, you'd have a point. But the fact that the servers were running IIS was little beyond a strong corelation.
          • Re:Bias? (Score:5, Informative)

            by Facetious (710885) on Friday April 25, @01:44PM (#23200166) Journal
            The admins on the ground seem to disagree [iis.net] with you. From that page, "Our initial investigations are pointing at an attack through IIS using ASP in an overload."
            • The admins on the ground are so clueless it hurts to even read the posts. They actually think they can close the hole by searching for strings such as "EXEC", "SELECT" or "NVARCHAR" in all query parameters and rejecting the request if anything similar is found. The words "escaping" and "parametrized queries" are not found once in the whole thread.

              If you actually bother to read the thread, anyway, it's clear that the problem is indeed with applications that use queries like "SELECT * FROM Users WHERE Name

      • ...the first person to google for attacked pages only turned up ASP pages as cracked. Later on, they say that the javascript attempts to use an ActiveX control. If I am exceedingly generous, I'll allow for the possibility that the story was written by someone who saw just these two comments and assumed that since both of these are generally run on Microsft OS', that this was an IIS problem. (Actually, more than a few people using Microsoft OS' run other web servers. There's quite a selection to choose from. Also, both ASP and ActiveX are usable under Linux, well, ish.)

        However, it is now abundantly clear that the attack is NOT ASP-specific, and just because one of the vectors it tries is based on ActiveX does NOT mean it doesn't try other methods. It only means that the people who spotted it early spotted it trying that method. Although it's unlikely to have an attack library for multiple OS', it would be surprising if it didn't have some alternative action for when ActiveX isn't available.

        I'm concerned about the number of Government sites that have been shown to be vulnerable, especially (as has been commented by others on Slashdot) a Canadian site dealing with national security. This attack is unlikely to cause any particular lasting harm, but stop and think. These are the sorts of sites that actually need to be secure. Even if not directly connected to internal secure networks (and I'd be willing to bet that far more are than are supposed to be), they are high-profile and for that reason alone are likely to be much more at-risk than other sites.

        Most smaller websites are just point-of-presence and information sites. It's an irritant if they vanish for a while, but it's unlikely to hurt anything. Nobody is going to die if a blog site isn't available for an hour or so, unless they're a serious addict. No small vendor is going to lose business if their PDF datasheets aren't reachable for a little while. Adult sites risk making a one or two percent loss of webcam income out of their steady stream of millions. I seriously doubt anyone from the United Methodist church will suddenly become Mormon or Catholic because their primary website was hit.

        • Re:Bias? (Score:5, Insightful)

          by Shados (741919) on Friday April 25, @12:12PM (#23198954)
          No, i'm not trolling. My point is that the story itself is trolling. This isn't an IIS directed attack, it is a "bad programming" directed attack. The -same- attack, exactly, would work -regardless- of the server. You don't even need to CHECK which server is running on the machine for this attack to work, since the server is IRRELEVENT, and I was trying to demonstrate that. Nothing more.

          It is NOT an IIS directed attack. At best, its a loose corelation statistic, and one thats pretty useless without comparing it to other references, such as other web servers.
          • Re:Bias? (Score:5, Funny)

            by Stellian (673475) on Friday April 25, @01:51PM (#23200308)
            In fact, the attack enumerates all ASP variables and tries to force a SQL payload in them, that in turn if executed adds the link to the malicious script to every textfield in the database. A very simple vulnerability scanner, if you like, targeting only ASP applications - thus the ISS spin.
            Since we don't see the LAMP version spreading I think we can safely conclude that no web application written in PHP with a MySQL back-end is currently vulnerable to any type of SQL injection.
        • Re: (Score:3, Insightful)

          This is not an IIS attack, it is an application attack. No more IIS specific than this [slashdot.org] one is Apache's fault, correct?

          I love the difference in tone between the two submissions, and especially the "haha this is all a big joke, relax" tone of the comments on the other one.

          It's unfortunate that Slashdot is becoming one big FUD-spewing machine.

    • Not really (Score:4, Informative)

      by Scareduck (177470) on Friday April 25, @12:00PM (#23198772) Homepage Journal
      PHP has pretty much fixed SQL injection hacks, at least for MySQL, something TFA you quote mentions on page 74. Given that this is the majority combination on web-facing machines, shouldn't that blunt the "LAMP installations are also susceptible to SQL injection" if only by quantity? I mean, I agree with your counter-FUD reasoning, but it seems to me that this blunts your whole sentence, MySQL+PHP being two pillars (and the last half) of LAMP.
      • Re:Not really (Score:5, Interesting)

        by weicco (645927) on Friday April 25, @12:48PM (#23199486)

        As so has ASP.NET. I write (almost) all my database queries parametrized like this

        SqlConnection conn = ...
        SqlCommand cmd = ...
        cmd.CommandText = "SELECT * FROM Foo WHERE Bar = @bar";
        cmd.Parameters.AddWithValue("bar", barValue);

        This way I'm pretty safe from SQL injection attacks. Add all the HTML encoding/decoding stuff to that and you can rest your nights peacefully.

        Then enter the PHB. Now a days we stuff all the parameters straight to the DB procedure where they aren't sanitized at all. We build SQL query inside the stored proc by concatenating strings and call sp_execute to execute them. So all my earlier input validation and parameterized queries went down the drain. PHB's reasoning? - We trust our users.

        • Re: (Score:3, Insightful)

          Build an exploit for it and use it in front of your PHBs boss.

          If you are under SarBox, remind them that this is an security audit issue.

          This all can be done in a professional manner and not a 'get my stupid boss' manner.

          IF you deal with any personal information, in your report you will make before the meeting, show the PR and legal nightmare that happens when data gets out.

          Your boss should not be telling you how to program.

    • Re:Bias? (Score:4, Insightful)

      by Anonymous Coward on Friday April 25, @12:09PM (#23198910)
      Agreed. I *hate* Microsoft and am as rabid a Free Software advocate as you will find, but code injection attacks are neither the fault of nor prevented by the OS or web server.

      If users of open source software want to protect our largely well-deserved right to be smug, we have to be no less vigilant against these attacks than the proprietary chumps. This particular attack may only have hit MS servers, but this category of attack in general is frighteningly equal-opportunity.

      We can't take our superiority for granted; we have to earn it every day.
    • Re:Bias? (Score:5, Interesting)

      by toby360 (524944) on Friday April 25, @12:14PM (#23198980)
      I have to agree that this is highly Biased.
      This has nothing to do with IIS, SQL or ASP, coding against SQL injection is the responsibility of web designer. Also it should be noted that ASP was originally released way back when with NT4.0 in 1996(v1) , 2.0 in 1997 and 3.0 in 2000 http://en.wikipedia.org/wiki/Active_Server_Pages [wikipedia.org].

      With the newer ASP.NET MS was kind enough to provide several layers of protection against attacks such as SQL injection with both server side and client side validation applied to controls when built in the designer (by default).
  • LOL (Score:3, Funny)

    by ThePhilips (752041) on Friday April 25, @11:56AM (#23198714) Homepage Journal

    Lolicious.

    I once spend an hour trying to explain IIS/MS SQL Server admin what PHP/MySQL addslashes()/mysql_escape_string() do - all to no avail. He was absolutely sure it is sufficient to like in VB surround any string with single quotes and it all will be fine.

    Now seeing that it's real fun for guys, I can only laugh.

    • Re: (Score:3, Informative)

      I'd personally laugh at you. Escaping sql strings, what the hell? the 1980/90s called and they want their obsolete methodologies back.

      In any semi-advanced programming language or framework (including PHP, even more so since PHP5 as it doesn't require any extension or whatever), you just use prepared statements. Maybe that MS SQL Server admin was a bozo, but in VB, you'll almost always be using prepared statements (even in VB5-6, pre-.NET), or at worse, stored procedures, which act as prepared statements.

      SQL
  • by RzUpAnmsCwrds (262647) on Friday April 25, @12:02PM (#23198804)
    This site makes me sick sometimes. If this were a problem with PHP (which, mind you, it IS), we wouldn't be calling it a "vulnerability".

    ASP.net has lots of built-in features to prevent SQL injection attacks (like bind parameters) and the ASP.net DB documentation specifically warns about this type of attack.

    Anyone still getting hit with this in 2008 needs to be whacked on the head.
    • by MrMunkey (1039894) on Friday April 25, @12:08PM (#23198890) Homepage

      Anyone still getting hit with this in 2008 needs to be whacked on the head.
      This is true of any language, not just ASP. You can easily prevent SQL injection with Perl, Python, PHP, etc.
      • Why would astronauts be writing web applications? Don't they have more important experiments to be conducting to waste time playing on the internet?
  • ok, story 1 is a sql injection

    there seems to be a story 2 here: what the trojan will do in a few weeks to all of the IE users who visit these half a million sites

    and, reading some of the links and finding that these trojan hosting domains are registered in china, there also seems to be a story 3: chinese hackers are pissed off

    i got hacked shortly after the hainan island incident [wikipedia.org] in 2001. that is when the us spy satellite was bumped a chinese fighter, and was forced to land on hainan island (china). there was much chinese nationalist anger then, and it was taken out by hacking western sites with "f**k usa!" and the chinese flag replacing the main page

    obviously, this hack is contemporaneous with the whole tibet riots/ olympic torch protests. that's the meat of this story, and that avenue seems unexplored as of yet. similar to the russian ddos of estonia due to the deprecation of a war statue in 2007 [slashdot.org]: the lesson is that, much like al qaeda and terrorism, cyber warfare is not so much a tool of any state government, but chest-thumping activity for ultranationalists and religious bigots and other organizations of cultural or national or religious chauvinism. the theme of the 21st century seems to be shaping up as partisan tribalism and extreme ideology reaching beyond the notions of sovereignty, statehood to go to war with each other in a novel ways
    • I got hacked shortly after the hainan island incident in 2001. that is when the us spy satellite was bumped a chinese fighter, and was forced to land on hainan island (china).

      Is that the fighter plane with warp drive and photon torpedos?

      Sorry to pick on ya dude... it was a US spy plane, not a spy satellite :)
    • Re: (Score:3, Insightful)

      obviously, this hack is contemporaneous with the whole tibet riots/ olympic torch protests. that's the meat of this story, and that avenue seems unexplored as of yet. similar to the russian ddos of estonia due to the deprecation of a war statue in 2007 [slashdot.org]:

      Please don't spread this unsubstantiated rumour. The only one who ever was found guilty of the dos attacks was an Estonian Russian script kiddie. The other allegations about Russia launching a cyber attack on Estonia were just that, allegations with no evidence what so ever.

    • Please do not perpetuate hysteria.

      The "Russian DDoS attacks of Estonia" were done by a few Estonian kids mad about some statues being moved around.

      http://www.theregister.co.uk/2008/01/24/estonian_ddos_fine/ [theregister.co.uk]

      There was no cyberwar, the Russian government had nothing to do with it, and every media source that mentioned it really needs to update their articles because the misinformation is causing far more harm than good.
  • Before you post such a headline, perhaps it would be a good idea to check your facts. I RTFA'ed and checked those links and there is no mention of how many servers were attacked. There were 510,000 pages mentioned, but pages do not equal servers. This a sensationalistic headline based on a sensationalistic interpretation of a Google web search.
    • Re: (Score:3, Insightful)

      Yep...too bad there's not a firehose or some other way to vote to pull existing posts. This is wrong through and through and is just confusing and misleading.
  • by Guppy (12314) on Friday April 25, @12:39PM (#23199324)
    Hmmm.... nihaorr1.com? "Ni Hao" is a greating, like "Hello" in Chinese. Anyone figure out any meaning behind the other names?

    (Other meanings are possible as well, due to the large number of homophones in the language, but this is by far the most obvious meaning.)
    • Re:epic lol (Score:5, Informative)

      by James Kilton (714163) on Friday April 25, @11:57AM (#23198738)
      Wow. The responses on the forum http://forums.iis.net/t/1148917.aspx?PageIndex=1 [iis.net] are sad indeed. Windows Security patches DON'T protect against shittily built websites. My favorite:

      I also have been hit by this attack on Saturday 4/12/08. It compromised our database and overwritten that script into all of your products. Luckily a database restore fixed the problem. Two days later the same thing happened, I have changed all the database and login passwords and did another db restore. Now today 4/18/08 we got hit again by the same thing but this time as the pages are loaded ActivX is activated and wants to run but of course I did not allow it. Anybody has successfully solved this situation?
      It truely sickens me how many web developers STILL don't know about SQL Injection.
      • Why do you think he's a developer? He sounds more like a sysadmin to me.
        Sure, he should know about SQL injection stuff - but even if he did, would he be able to fix it?
      • Re: (Score:3, Insightful)

        How can you blame them however? Look at what THIS site (as in Slashdot) is doing. The headline implies that its an IIS hack. If you read the posts attached to this -very- article, a significant amount of people are replying acting like it IS a server issue, related to MS or some such.

        When such misconceptions are so pervasive (even in -articles- on a geek web site like here!), obviously newbies are going to be confused all over the place.

        Its a bit similar on how there's still so many SQL Server DBAs who thin
        • Re: (Score:3, Funny)

          Doing the same thing over and over and expecting different results?
          Like flipping a coin?
    • Re: (Score:3, Informative)

      Parent -1 Flamebait. (Actually...it's more Article -1 Flamebait.)

      Anyway, as it has already been noted, this problem has nothing specifically to do with the IIS servers.

      Two other notes:
      FOSS is good, I agree. But FOSS, by default, is not always better than closed source solutions. Making a blanket statement like that is being just as close minded as the opposite camp.

      Using M$ to represent Microsoft is soooooooo 1990s.
    • There are several smart things that need to be done to protect yourself.

      Restrict the account that is used to access the database to the absolute minimum permissions it needs to run; using one set of credentials for insert/update/delete and another for selects is enough to foil a lot of exploits (I actually never allow deletes, just out of paranoia...I just update the record with an "inactive" flag, and purge them later with a local account).

      For gods sake, don't allow a single account to access multiple databases, and even within the database make sure it only has access to the tables you're going to be using. I've seen more than a few MySQL injections that just dump the user table to the screen because some joker didn't think he needed to restrict access for "SELECT" statements.

      Escape ALL data that comes from userland. This is your first line of defense, and it's where most people screw up. If you let an escape character past without it being escaped, your only protection is the privileges associated with the user account.

      Abstract your data methods. If you just throw out random SQL queries all through your code, you're going to make a mistake somewhere. Make a single method that does your selects. Make a single method that does your inserts, etc. If it's only in ONE PLACE you can go over the code in extreme detail. If the queries are scattered through the code, you can't.

      This is all just best practice stuff. The most important thing is to PAY ATTENTION and remember that one unsecured account can screw your entire server.
      • Re: (Score:3, Informative)

        I agree there's no excuse for it, but in your second paragraph I don't agree with your logic 'til the final parenthetical remark.

        In development, it often IS simpler to start with a single hardcoded SQL query (probably cut and paste from your DB tool, and then if your language supports + or . for string concat, it's easier to just do a "+variablename+" where the hardcoded value was -- plus, it keeps the flow of the SQL 'sentence' in correct order, rather than that kind of weird "sprintf()"ness you get when y
    • Yeah sure [slashdot.org].

      Add a healthy dose of misrepresentation, twisting of facts and oh-so-funny exaggeration (the IIS admins are running around in circles, LOLZORZ) and people like you can feel better about yourselves, at least for a few hours.

      In the meantime, it's been 5+ years and no one has found an exploitable vulnerability in IIS.

      I'm sure FOSS is better off this morning, thanks to kdawson, Slashdot and this type of misguided "advocacy". Might as well have twitter control the content of the front page.