MS Mulling Changes to Thwart .ANI-type Attacks
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.'"
Is it a male dinosaur?
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.
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).
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.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
In this context, I hope what you mean by mulling is: slapping forehead exclaiming "that was dumb!"
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.
Don't allow IE to load a cursor with a .jpg extention....
"All great things are simple & expressed in a single word: freedom, justice, honor, duty, mercy, hope." --Churchill
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. It's great to know that MS has spent the last 5 years innovating such features.
Well, there's spam egg sausage and spam, that's not got much spam in it.
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.
Two wrongs don't make a right, but three lefts do.
Always remember to practice SafeSEH by using the CON dev. :)
...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).
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.
Thanks, I'm not half as organized with my Slashdoting as you are!
Friends don't help friends install M$ junk.
Wow twitter, so what you are telling me here is that if I allow my operating system to be compromised, it will be compromised?
Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
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?
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
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?
/GS? Pathetic.
Did Microsoft's new focus on security from the ground up with Vista really just amount to compiling all its system components with
More Twoson than Cupertino
And since those attacks are For Sale for $3000 to $5000 on the Internet, everyone with intent to do serious, widespread damage will still be using them.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
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.
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.
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.
"Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
Please explain to me how it's going to get into my "BIOS" with Vista-specific flaws, and then we'll chat. You can use all the dollar signs you want, but do me a favor and try to make at least a bit of sense.
Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
I thought I remembered a specific Solaris telnet exploit not too long ago that was incredible oversight by Sun. I guess that must have really been a Microsoft telnet daemon?
The clash of honour calls, to stand when others fall.
Another pointless discussion that doesn't acknowledge the depth of complexity of backwards compatability, and its commercial necessity.
NT 3.0 was written from scratch. Please provide proof to the contrary, if you have it. Then, provide proof that *Microsoft* has claimed Vista is rewritten from scratch. And I said Vista, not Longhorn or anything else.
I'd calculate that about the same number of times you've declared "M$ Winblows" was "dead".
But I could be wrong.
Please provide proof of this. If true, it means that Microsoft has subverted the WP editorial controls, because for a closely-watched topic like that one, no matter how many times you edit it, someone will put your changes under the microscope. The vast majority of the Microsoft articles on WP are closely watched and by definition maintained free of harmful edits.
So, let's see some proof of your claim.
Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
Comment removed based on user account deletion
...apparently not. That is why the poor geek has no idea which is the business end...
Excuse me, but please get off my Pennisetum Clandestinum, eh!
Perhaps "PC heritage" was the wrong term. I was really thinking "microcomputer heritage", going back to the days of the S-100 bus, Apple, and the countless other pre-PC machines. That was before hard disks were common, let alone LANs, and macro viruses were not an issue until much later. Many of the people involved at that time were busy reinventing things from scratch, starting at the most rudimentary level. They mostly ignored any lessons that might have been had from software on bigger iron, because they had no experience with it.
Microsoft was a part of that time and inherited that attitude and ran with it, but it didn't originate the attitude. There's no question that later, they should have known better in a technical responsibility sense. In a pure business sense, though, it may have worked in their favor in various ways to ignore security.
As for Xenix, Microsoft acquired a license to that from SCO, they didn't develop it in-house. Despite Gates himself pushing it, it didn't gain traction. Any lessons that might have been learned from it were lost because not enough people within Microsoft were exposed to it.
My point is that Microsoft's approach to security isn't entirely a conscious choice: they began creating their monoculture back in a time when security wasn't a serious issue, so to move beyond that is difficult, because they don't really know any other world than the one they created.
What's purple and commutes? An Abelian grape.
What's purple and commutes? An Abelian grape.
I thought I remembered a specific Solaris telnet exploit not too long ago that was incredible oversight by Sun.
You win! I give up and admit the equality of Solaris and Windoze security models. Swarms of Sun powered bots will soon take down the internet.
Friends don't help friends install M$ junk.
What's purple and commutes? An Abelian grape.
Proof, flocktard. You were asked for proof. Semantic nitpicking of your own posts doesn't count. Prove that the contents of that WP entry are provided by "M$". Go ahead, we're all waiting. Just like those inexistent Linux botnets, the lawsuits that "destroyed" the Zaurus, your "job" at a "Fortune 100" company and all our other FUD.
Not even if you called it FREE XXX SLUTZ NOW.JPG.exe.
How can I believe you when you tell me what I don't want to hear?
Fortunately people like you who are incapable of adapting to new technology and get emotional about operating systems get weeded out. Face it, brother, you're a dinosaur.
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.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Nothing is new with the Vista security model. Check out boot kits
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. I count no fewer than 10 modpoints blowing him off the discussion within 12 hours. He must have struck a nerve.
DMCA, Hollings, Palladium. What might have sounded like paranoia is now common sense.
http://nostarch.com/download/rootkits_ch2.pdf
All I have to do is send you a TAR file with an already chmod'ed ELF binary and get you to unpack it and run it. And why not? Windows users do that all the time. Heck, they get infected by executables in password-protected ZIP files, even after Winzip and Windows ask them TWICE whether they want to run it or not. And Outlook by default won't even let them open it.
But maybe when all those people switch to "GNU/Linux" they'll automagically have their IQ upgraded by 70 points. Right?
You're still the same person. Whether it's MPD or just idiocy, I don't really care.
"It does not do to leave a live dragon out of your calculations, if you live near him." - Tolkien
Erris is Twitter's sockpuppet account.
This sig intentionally left blank.