Stories
Slash Boxes
Comments

News for nerds, stuff that matters

MS Mulling Changes to Thwart .ANI-type Attacks

Posted by Zonk on Fri Apr 27, 2007 02:17 PM
from the thinking-around-the-problem dept.
Scada Moosh writes "ZDNet has a story about the lessons Microsoft learned from the recent animated cursor (.ani) attacks and some of the broad changes being made to flag this type of vulnerability ahead of time. The changes include a possible addition to the list of banned API function calls, more aggressive checks for buffer overruns and enhancements to existing fuzz testing tools. '[Michael] Howard said Microsoft will "rethink the heuristics" used by the /GS compiler to flag certain issues. "Changing the compiler is a long-term task. In the short-term, we have a new compiler pragma that forces the compiler to be much more aggressive, and we will start using this pragma on new code," he added. Two other Windows Vista security mechanisms -- ASLR and SafeSEH -- were also in place to catch code failures but, in the case of the .ani bug, Howard said the attackers were able to wrap vulnerable code in an exception handler to find ways around those mitigations.'"

Related Stories

[+] Windows .ANI Problem Surfaced Two Years Ago 110 comments
An anonymous reader writes "There's a new twist to the tale of Windows .ANI exploit, that's been in the news all week (including when a spam campaign used the teaser of nude Britney Spears pictures to lure people to malicious sites). InformationWeek reports the Windows .ANI bug at issue first surfaced — and was patched — two years ago, in early 2005. 'If they had simply looked for other references for the same piece of code when they originally dealt with it a few years ago, they would have found this and patched it in 2005,' says Craig Schmugar of McAfee. 'It would have saved a whole lot of people a lot of time, money and effort.' Microsoft claims this .ANI vulnerability is different from the old, but beyond that they're not talking."
This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • What is a banned API call? (Score:5, Interesting)

    Does the banning of an API call mean that the call is still there, it just can't be officially used? Couldn't it still be used deviously to exploit it? Shouldn't we just remove the function from the API, not prevent the compiler from compiling code with that function being used?
  • They should concentrate on better design, coding and testing methods rather than blaming the compilers.
    • 1 reply beneath your current threshold.
  • Default deny policy (Score:3, Insightful)

    by sd.fhasldff (833645) on Friday April 27 2007, @02:32PM (#18905603)

    While risking being out of sync with Slashdot's schizophrenic stance on Microsoft-bashing, let me lower my hammer on this one:

    "The changes include a possible addition to the list of banned API function calls"

    That's exactly the problem with security under Windows! (okay, there are other problems as well)

    Microsoft needs to apply a "default deny" policy to all aspects of Windows' security and this sort of thing wouldn't be a problem in the first place. There shouldn't be a list of BANNED calls, there should be a list of safe ALLOWED calls.

    I'm not saying that other operating systems couldn't do a better job too, but security is one (huge) area where Microsoft really and truly sucks - and it isn't something they can solve overnight, either. It seems ingrained in their philosophy and permeates all aspects of Windows (and other products).

  • Related news (Score:5, Funny)

    by 140Mandak262Jamuna (970587) on Friday April 27 2007, @02:33PM (#18905615)
    (Last Journal: Wednesday October 31, @08:33AM)
    Old Bill's Livery and Horse Trading post announced that they have decided to strengthen the windows of the stable because horses were being stolen with surprising regularity. When the reporters queried the wisdom of strengthening the windows while the door is wide open and unlocked, Old Bill's assistant Steve threw the straw bales he was sitting on at the reporters.
  • In context (Score:2)

    by aero6dof (415422) <aero6dof@yahoo.com> on Friday April 27 2007, @02:33PM (#18905621)
    (http://slashdot.org/)
    In this context, I hope what you mean by mulling is: slapping forehead exclaiming "that was dumb!"
  • Incremental approach. (Score:4, Insightful)

    by RightSaidFred99 (874576) on Friday April 27 2007, @02:36PM (#18905687)
    The main problem is that complex software is just hard to secure. And not just complex MS software - they are not the only ones suffering these kinds of vulnerabilities.

    This incremental approach will eventually result in operating systems that are secure to all but the most sophisticated local attacks. You can't stop the attack where someone just downloads something and blindly runs it. Unlike most people, I don't think computer OS's and apps will always be as insecure as they have been for the last 15 years since the explosion of the Internet to the masses.

    It may take another 5 years, but I think we're getting there. Vista isn't perfect, but it's a step closer.

  • For starters.... (Score:3, Insightful)

    Don't allow IE to load a cursor with a .jpg extention....
  • by UnknowingFool (672806) <minh_duong @ y a h o o .com> on Friday April 27 2007, @02:38PM (#18905725)

    The changes include a possible addition to the list of banned API function calls, more aggressive checks for buffer overruns and enhancements to existing fuzz testing tools.

    You know if Bill Gates was any kind of leader, he would call for his programmers to scrutinize their code for these kinds of security issues. Oh wait! He did 5 years ago. [usatoday.com] It's great to know that MS has spent the last 5 years innovating such features.

  • by G4from128k (686170) on Friday April 27 2007, @02:39PM (#18905729)
    Write it the right way once, call it often, and it's fixed. Please outlaw code that reinvents insecure versions of routines for basic data structure.

    In this day and age of OOP and libraries, there's no excuse but negligence for crappy code.
  • Always remember to practice SafeSEH by using the CON dev. :)
  • What Microsoft REALLY Needs To Do... (Score:3, Insightful)

    by Zero_DgZ (1047348) on Friday April 27 2007, @02:49PM (#18905901)
    ...Is re-evaluate what the true purpose of the operating system is, and stick to it instead of tacking so much nonsense to the abomination that today we call Windows.

    Microsoft made a big to-do about "focusing on security" in the development of Windows Vista, but instead spent all this time A) spackling over the screwball security holes that the superfluous bits of the last version of the operating system created, and B) bolting on more superfluous bullshit.

    The pattern of flagrant Windows/Microsoft security breaches has traditionally involved the fracal-like fuzz of superfluous features surrounding Windows. It simply tries to be too much. How many times have we heard about some hole in Internet Explorer that lets l33t h4xx0rs walk in and screw with your OS? Animated cursors opening security holes. ET-phone-home Windows Media player opening security holes. IIS subsystems on home user's computers opening security holes... Ad infinitum.

    You want a web browser on your PC? Install a web browser. It shouldn't be your OS'es job. You want animated cursors? Install a cursor manager. It shouldn't be the OS'es job. You want media players? Install a media player. It shouldn't be the OS'es job. Are we seeing the fucking pattern here, yet? If Microsoft could focus on the core of the operating system, making it the platform and the framework that the rest of your computing experience happens on instead of trying to make it the damn "multimedia/computing experience" itself I'll wager a significant portion of these stupid, smack-on-the-forehead sort of problems would go away. And if and when they did crop up, users affected could just patch or uninstall the affected browser/media player/cursor manager/whatever instead of having it permanently tied into their OS for the rest of time (heaven forbid, for example, users reinstalling Windows into it's stock, unpatched state).
  • Innaccurate Summary (Score:3, Insightful)

    by ThinkFr33ly (902481) on Friday April 27 2007, @02:51PM (#18905923)

    Howard said the attackers were able to wrap vulnerable code in an exception handler to find ways around those mitigations.
    This is incorrect.

    Howard said that the vulnerable code happened to be wrapped in a very general try/catch block.

    This try/catch block, which was in the vulnerable code already, and not injected by the attackers, potentially allowed the attackers to repeatedly try different memory locations looking for system call addresses that were randomized by ASLR.

    Without this try/catch, the process would have crashed after the first failed attempt.

    In other words, liberal try/catch policies can potentially expose security vulnerabilities by giving bad guys more than one chance to do their bad deeds.

    Also, there were no reported instances of Vista being compromised. It is doubtful that the engineers of the various exploits targeted Vista, and therefor didn't take advantage of the try/catch issue to overcome ASLR since XP doesn't have ASLR. In addition, Protected Mode IE would have thwarted the attack even if they had.
  • But I Thought... (Score:3, Interesting)

    by Nom du Keyboard (633989) on Friday April 27 2007, @03:06PM (#18906167)
    Wasn't Vista rewritten from scratch, rather than using the old NT code base? Isn't this wh it took an extra 3 years to arrive? Isn't this where there are still major compatibility errors in Vista compared to previous NT and Win95/98/ME versions?

    So what did they do here? Rewrite the .ANI handler by re-implementing the same bug as before?

    Or were we just lied to again, by Microsoft?

  • Compiler issue? (Score:2)

    by Applekid (993327) on Friday April 27 2007, @03:08PM (#18906191)
    I still can't get over why generating "safe" code is the job of the compiler, anyway. What's wrong with checking lengths and buffers before using them? What's wrong with paranoid programming?

    Did Microsoft's new focus on security from the ground up with Vista really just amount to compiling all its system components with /GS? Pathetic.
  • Sorry. (Score:1)

    by Skiron (735617) on Friday April 27 2007, @03:10PM (#18906239)
    (http://www.linicks.net/)
    MS just don't get the security bit anyway - never will. 99% spam comes from MS boxes. Let alone a mouse cursor that lets the crackers do it.
  • by Myria (562655) on Friday April 27 2007, @05:07PM (#18906673)
    Prior to Vista, you could drag files from Explorer to cmd.exe to have it type in the filename for you, exactly like on Mac. However, due to overzealous security changes by Microsoft, this does not work in Vista [microsoft.com].

    In NT, console windows are actually owned by the most privileged user-mode process in the system, csrss.exe. One of Vista's big security changes is that processes cannot send window messages to windows owned by processes of higher security clearance. This means that Explorer cannot send a message to console windows telling them that there is a file being dragged to it. Starting Explorer as Administrator does not help, because csrss.exe runs with higher privilege than that.

    Rather than fix the insane design issue of csrss.exe owning console windows, they decided to leave it the way it is. Never mind that there have been exploits against csrss.exe through the console system in the past.

    To give you an idea of how bad of a hack the console implementation is, kernel32.dll's WriteFile detects console handles, which are fake handles, and translates the call into an RPC call to csrss.exe. This breaks all kinds of stuff.
  • backwards (Score:2, Interesting)

    by midnighttoadstool (703941) on Friday April 27 2007, @07:40PM (#18907681)
    Here we go again.

    Another pointless discussion that doesn't acknowledge the depth of complexity of backwards compatability, and its commercial necessity.

  • Easy fix (Score:2)

    by Opportunist (166417) on Saturday April 28 2007, @04:13AM (#18910225)
    Hire people who know that it's a really, really, really bad idea to drop a structure onto the stack, especially if said structure is to be filled by user data. That should take care of the issue.

    Instead of fixing the underlying problem, MS tries hard to "fix" the world around it. It's not an issue with the compiler, it's not an issue with API calls that can be "abused", it's an issue with badly written API functions. Grab the source of those friggin' libs and move the structures that you moronically created on the stack onto the heap. Yes, this would still allow a malformed structure filler (i.e. some file with bogus information to fill) to mess with your heap and possibly cause the program running it to crash, but it would make absolutely CERTAIN that such a malformed data file cannot be used to execute code contained within.
  • Re:Maybe... (Score:4, Funny)

    by Anonymous Coward on Friday April 27 2007, @02:25PM (#18905477)
    Is it a male dinosaur?
    [ Parent ]
    • Re:Maybe... by flyingfsck (Score:2) Friday April 27 2007, @08:15PM
  • Thanks, I'm not half as organized with my Slashdoting as you are!

    [ Parent ]
  • by dedazo (737510) on Friday April 27 2007, @03:04PM (#18906111)
    (Last Journal: Friday August 31, @07:08PM)
    Wow twitter, so what you are telling me here is that if I allow my operating system to be compromised, it will be compromised?
    [ Parent ]
  • I can't see anything in that article that would stop that exact same attack working on Linux.

    Go ahead and make one then. I'm sure Mr. Gates would promise to pay you well and then stab you in the back, but you would have proved your point.

    [ Parent ]
    • 1 reply beneath your current threshold.
  • An AC pest taunts,

    By the way twitter, how do you feel about how "M$" enjoyed a 60% jump in revenue on Vista and new office sales in the last quarter? Looks like Vista is doing well!

    They stuffed their channels and I don't expect the next quarter to look very good. Studies that show that only one in ten people are planning to use Vista better and that a large percentage of businesses never plan to move to Vista are more in tune with reality. The fact that M$ has not and will not fix their security model makes me think those numbers will go south. Give the channels another quarter of crappy sales and all hell will break lose for M$ as they are forced to admit they overbought Vista. The partners have been starved for six years, this is supposed to be their best year ever. Their investors will demand better and 2007 will be the year of Linux.

    Taunts like that are fun. Keep it up, M$ marketdroids!

    [ Parent ]
  • by pushing-robot (1037830) on Saturday April 28 2007, @12:19AM (#18909455)

    I can't see anything in that article that would stop that exact same attack working on Linux.
    I can think of one. I doubt you could convince many Linux users to run, with root privileges, a small binary executable that has no readily available source and no trusted community vouching for the program.

    Not even if you called it FREE XXX SLUTZ NOW.JPG.exe.
    [ Parent ]
    • 1 reply beneath your current threshold.
  • Nothing is new with the Vista security model. Check out boot kits [theregister.co.uk]

    So while M$ contemplates fixing ancient flaws, the virus writers have discovered brand new ways to 0wn Windoze. Great, they are running circles around them.

    Look at what they did to Twitter [slashdot.org]. I count no fewer than 10 modpoints blowing him off the discussion within 12 hours. He must have struck a nerve.

    [ Parent ]
  • 6 replies beneath your current threshold.