Security Hole In Windows 7 UAC
An anonymous reader writes "A prolific blogger is warning of a possible security hole in the latest beta version of Windows 7. Long Zheng has posted both a description and a proof of concept for an issue that could allow an attacker to skirt the User Account Control component in the new version of Windows. The problem, explains Zheng, is that UAC itself is controlled through system settings. This can allow an attacker to completely disable the protections without user notification. Zheng notes that the issue can be easily fixed by changing the UAC setting to notify users when Windows settings are altered, and that Microsoft could remedy the problem by prompting the user when the UAC setting is altered."
Everyone knows from recent news that microsoft has removed the innards of windows 7 and replaced them with "gerald", a lovable computer literate field mouse.
Gerald is cheap, congenial, and zippy, but unfortunately has very poor judgment.
VLC FOR MAC IS DYING! IF YOU DEVELOP, PLEASE SAVE IT!!
This was discussed elsewhere (heise.de) earlier...
Short answer: this only works iff you are logged in as Administrator already...
Prompting the user when this setting is altered is quite worthless - if I have a script on my computer that can simulate keypresses and mouse clicks *nothing* will hinder it to click on "I've read the warning". Even adding captchas/moving the warning around/whatever will only be a fake-solution that will only work 'till there's a better script.
The beta worked perfectly!
Even the malware will be ready for Windows 7!
MS have already said that this flaw is "by design" to stop the appearance of too many UAC prompts when users alter their own system settings
http://www.istartedsomething.com/20090131/microsoft-dismisses-windows-7-uac-security-flaw-insists-by-design/
So, basically, what they did was build a big sturdy door (UAC) and put the treasure (system settings) behind it. Normally you need magic keys (certificates) to enter the door. Then, they built a button that unlocks the door from the outside. Wow!
Hey, at least they found it early - this is what beta's are for - now they can build a lock for that door
re. MS's 'By Design' / 'Won't Fix' response, they basically say - 'This doesn't matter as if this happens you are already infected'.
You need the damn UAC setting prompt so you are ALERTED TO THE FACT THAT THIS HAS HAPPENED SOMEHOW ASAP.
Yes the user may have done something stupid to allow infection, but the UAC setting prompt would then protect them from further damage even before the malicious code check package was updated to find whatever was out there infecting systems.
The Highest UAC setting would prevent this but it is not default.
All they have to do to fix this entirely, and make the current default not effected by this flaw, is change the UAC settings security certificate.
But your settings have been altered for better net penetration, do you want to allow?
Microsoft feel happy wnough with Windows Vista SP2
So much that they are not bothering with a second Beta
So what you have in your hands now is pretty much how it may ship
http://www.theregister.co.uk/2009/02/02/windows_7_no_second_beta/
correctly.
I mean, Linux and MacOSX (and others) have sudo for years, the original code dating back to 1980 according to Wikipedia.
The concept is not new : type your password to gain access to some privileges. That way bots and virus can't do everything while you can still administrative tasks easily.
My question is how hard is it to copy some 25 years old functionality (marketing it as brand new) and still don't get it right.
--- Bouh !!! ---
==============
"It look like you're trying to alter the UAC settings, Cancel or Allow?"
*click*
"It looks like you've confirmed the change in UAC settings, Cancel or Allow?"
*click*
"The UAC settings have been altered, Cancel or Allow?"
*click**click**click**click**click*-----INPUT DEVICE FAILURE
With Vista, there's no (official, at least) way to disable UAC except by a user actively going to Control Panel and disabling it.
This breaks a lot of things - particularly a lot of stuff concerning scripted/automated installers.
The obvious solution to this is to provide a way for a script to disable and enable UAC. But as soon as you do that, a lot of the protection offered by UAC disappears.
Big deal, just use Vista where you'll get a UAC dialog for everything by default. That will 'fix' this issue.
Vista service pack 2 seems a rather apt way to describe windows 7. I seem to think rather vista may be a late alpha or early beta or Windows 7 (its not like the number actually has a real sequential meaning).
http://www.aaronrogier.net
all this talk of UAC makes me feel like playing some doom again.
The biggest security hole in Windows 7's UAC is the user.
but is certainly no security expert.
But... Who controls the user acces to the user access control?
While betas do help with testing, they're certainly not for such fundamental security testing. If they couldn't prove with hard math that their root access was limited properly, they should at least have had a bunch of unit tests for every variation from the tried and tested unix sudo model.
This is no different to me browsing the web as root in linux and running any shit that pops up
If you mod me down, I will become more powerful than you can imagine....
I wonder if Slashdot should allow anonymous article submissions? Isn't it useful information to know if the submitter is also the subject of the article or its reference source? Shouldn't we be allowed to know that, so we can better judge the credibility of the article and its source(s)? Transparency is ALWAYS good.
What if the anonymous reader who submitted this was Roland P.? Wouldn't we wanna know that?
Seems like an odd bit of "by design".
Unless i'm mistaken, I (as a user) could download an application and run it on the mistaken assumption that my UAC settings would alert me if anything suspicious is going to happen.
The application could then drop my security level to the lowest possible (without me knowing) and then start silently installing a bunch of other stuff with no UAC prompts. If it was particulary careful, it could then reset the UAC level back to the what it was before it started.
I'm now completely compromised without the slightest indication that anything suspicious happened.
Avantslash - View Slashdot cleanly on your mobile phone.
Even the anonymous submitter can't muster up a more flattering adjective for the author than "prolific" - I'm sure I am about to enjoy a quality article.
sic transit gloria mundi
This?
http://www.youtube.com/watch?v=1JMuJ6Wy1j0
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
Another UAC prompt...Yes, by all means, not like there isn't enough of them already!
When all is said and done, nothing changes...
I don't use Windows much so perhaps I'm missing something obvious, but why is it so hard for MS to implement this sort of system? Unix has managed it with root, groups since the 70s and with ACLs, su, sudo etc since the 80s so why can't MS manage to get right something so simple and so fundamental to a multi user OS in 2009?? And why would you need it much anyway? If you're simply installing an app (as opposed to an OS/library update) why would you need administrator/root type access anyway?
If you look at the computer as a whole, it is incredibly stupid that after the user selects some option, the computer will pop up a dialog asking the user if he is indeed the one who selected this option.
I realize the series of historic accidents that led to this absurd situation - but couldn't they figure out a better way that does not make the computer behave so incredibly stupidly?
Note that most distributions don't enable sudo for the user account per default (not even Ubuntu's parent distro, Debian), it would be interesting what the Ubuntu folks would say if you suggested turning off sudo per default.
ANOTHER prompt! I have a great idea, why doesn't MS prompt the user telling them they are about to be prompted? Wouldn't that be just grand?
'You have hit the A on the keyboard. Continue (Y/N)?'
Genius.
Pax Vobiscum
Viol8:
UAC mimics much of the functionality present in a lot of Linux applications. You need root to install the application, but you don't need root to launch the application.
At least, this is exactly how Microsoft has it designed. And anything that requires administrative privileges should have a service that starts as admin/root and then the client side process should be low privileged.
This is exactly how Microsoft has it setup. The problem is that a lot of application developers are lazy. They don't want to write software for how Microsoft wants it to be written. This has, essentially been how Microsoft has intended software to be written for years. C:\Documents and Settings\User\Application Data has only been around since the Windows 2000 days.
The aforementioned design, however, has never been enforced by Microsoft.
And the worst part about it is that users themselves are asking for software to be written poorly. All you have to do is to take a quick look over at the ZSNES forums where the developers openly asked its users how they should store configurations now that UAC gets in the way, and the users tell them "We want it to be more portable!"
That's fine and all, if you want to install all applications to C:\Users\. But like Linux, there are folder conventions.
It's all there, everything. The environment for writing secure products that don't get exploited that run within the context of a limited user are all built into the OS already.
Microsoft even went out of their way to "virtualize" Program Files for applications that fail to follow the proper format.
But at least in Ubuntu you can change that easily...
/etc/sudoers: timestamp_timeout = 0
Why are we talking about a bug in beta software? This is code that is still 6-12 months from release.
UAC is a hack to deal with the problem that the Win32 API is full of inherent security holes that would require changing lots third-party software to fix. So they put a prompt up if a program is about to use one of the features that contain or implement part of one of these security holes.
The only real way to fix it is to implement a designed-for-security API and designate Win32 and everything based on it "legacy", only run in a sandbox.
Which is what Windows 7 was rumored to be, a couple years ago.
I've been installing Foxit on new machines for about nine months now, and have a lot of love for it. It was the retarded reboot-on-upgrade policy of Adobe that particularly ticked me off (load times notwithstanding).
I noticed earlier today that V3 is out, will be giving this a trial run sometime over the next couple of weeks. Only thing I'm hoping for is that they've improved the process for unattended setups, as this is the only thing that bugs me at the moment.
they had "changed" ???
HA HA !
I don't see this as a security hole. The first thing I did after installing was disable UAC. All it does is protect users from themselves...
Also, it using sendkeys in a script would be rendered completely useless if it was executed while the user was typing something, so this would only work assuming the user executed the script, and then immediately afterward went to take a piss...
Because, in Unix terms, the applications are all horribly written and want to store your personal settings in /etc
Note that most distributions don't enable sudo for the user account per default (not even Ubuntu's parent distro, Debian), it would be interesting what the Ubuntu folks would say if you suggested turning off sudo per default.
Then users will need to know their administrator password, and will end up using it as an account.
Sudo prevents a certain large segment of the potential Ubuntu population from being retarded. It's a calculated risk, but I don't think they would change their position. It is not one they arrived at by chance.
maugle:
pretty much.
This is exactly how Microsoft has it setup. The problem is that a lot of application developers are lazy. They don't want to write software for how Microsoft wants it to be written. This has, essentially been how Microsoft has intended software to be written for years. C:\Documents and Settings\User\Application Data has only been around since the Windows 2000 days.
Actually, per-user Registry Hives and filesystem locations were introduced in one of the last versions of Windows 95, IIRC - and they were _definitely_ in Windows 98 (and all versions of NT).
It's been a decade since a Windows developer has had any excuse whatsoever (let alone a good one) for releasing software that wasn't "multiuser friendly".
from my understanding UAC is designed to prevent execution of malicious code, or at least warn the user of the potential threat that they may be launching a virus instead of "top40.mp3" they just pirated from limewire.
As a repair tech at a small computer shop, I service *plenty* of infected Vista machines with UAC enabled. At least 1 in 3 have rogues like Antivirus 2009 installed.
So IMHO this "security hole" in UAC is moot because the PEBKAC.
Comment removed based on user account deletion
Well, don't keep us in suspense here, Mr. MCSE. What's the difference?
Sure it is over-hyped. But it is a security hole if an application can change UAC settings on a default install without user interaction.
Said, "It's just like dice but it's got more sides And it tells me who lives and who dies"
Well, I know that it's "technically" possible to install applications as non-root. The problem comes in that there are certain conventions that each distribution wants to follow to allow a unified experience for application developers.
There's a little give and take there.
I don't use Windows much so perhaps I'm missing something obvious, but why is it so hard for MS to implement this sort of system?
Because Windows tries to accommodate incompetent developers and ignorant users, rather than telling them to "RTFM or GTFO !".
Seriously.... how is this news???? SOP (Standard Operating Procedure) should not be news.
2 cents,
QueenB.
HDGary secures my bank
OMG, an Anonymous Coward dialog. How informative. How insightful. How authoritative. I am quivering in anticipation of what other Windows security gems I will find here.
I just had a weird thought. Perhaps Windows fanboys are comfortable posting AC because they are so certain their position is correct. I call that the Sarah Palin effect. Could one of these ACs be her? Anyone who can field dress a moose is likely to believe they can lecture on Windows 7 security design.
Whatever happened to the old Slashdot, when Windows was always laughed at?
Gary Dunn
Open Slate Project
I'm always a little irked by this supposition that the developer for an app that has nothing to do with security has to be aware of the details of the security subsystem.
Going back to the check book software example, we can probably agree there is nothing about such a software system that needs Admin privileges but we should also agree such a system shouldn't need to take any special consideration for the permission or security beyond the defaults. The data itself may need to be kept locked and private from other users but you don't do that by switching to Admin/elevating permissions.
So how did we end up with a situation where the check book balancing application has to be "aware" of roles and security? It is really all the fault of Windows design. Parts of the installer need to access other parts of the system that require elevation in privileges. Parts of the application often sit in restricted parts of the file system (C:\Program Files). Depending on what other facilities are being used working with Windows may restrict you. Add to this the system is tied up with AV and other security software which may interfere as well. At every level there may or may not be documentation on how to gain access. All of this is a PITA handle to program let alone support the user when it shouldn't have been an issue in the first place! Since Microsoft didn't see it fit to provide elegant systems to the developer to handle these case, developers came up with their own with the system available.
The people trying to sell a check book balancing software should be focused on writing the best damn check book balancing software instead of worrying about how to get the right "permission token" to run their app or cataloging thousands of possible error coming from outside of their application.
No. UAC is meant to have people run as unprivileged accounts without having the people who MUST RUN AS ADMIN OR ELSE!!! cry -too- much.
Its just impossible to get a balance between making people aware of admin-account requirements, and having people not bitch too much.
You have no business writing to Program Files. Do you still modify win.ini and system.ini and drop DLL's into system32 as well? Writing to Program Files is about as bad and obsolete a practice as writing to win.ini.
Yes it is frustrating to have it redirected and maybe they should have put something in your event log to help make it obvious, but dammit, writing to Program Files was discouraged even in Windows XP. The only reason it redirects instead of totally fails is because there are gobs of badly written programs that still exist (try to write to Program Files as a normal user) and Microsoft didn't want to break all of them.
There are API's to get a proper place to write system-wide settings. Even then, you probably will need to get your program to elevate itself via UAC because you are modifying global stuff. I bet if you elevated your app before writing to Program Files, it wouldn't redirect (check MSDN). Remember that "admin user" doesn't mean you are running as an admin in vista, your program has to request a UAC dialog before you run as root otherwise you run as a regular joe.
Seriously though, try running your program as Administrator (right click on the exe and go "Run as Administrator). See if it still redirects, I bet it doesnt.
Making it harder to install "Stupid Mouse Jumps Around the Screen and Installs Spyware.exe" is a feature, not a bug.
Well, for one I'd stop supporting her machine. Can't do that though because, you know, she is my mother and all. I can't just tell her to FOAD seeing as how she gave birth to me.
In other words, you want everybody to run as root all the time, right? Because the only way to avoid having a prompt of some kind or other is to always run as root.
How can you make a system both secure, "prompt free" *and* not have it run as root? Or is your solution to run as root 24/7? If so, sorry, been there done that, got the botnet.
That is 100% not true. Your user account *is running as a regular user* no matter what group it is in. It doesn't matter if you are in the admin group (unless you stupidly disable UAC, in which case you basically run as root).
"UAC" = "sudo [program name]"
"Vista, Administrator Group" = "your account is in
"Vista, non admin group" = "sudo [program name] with password, but that depends on the group policy... "
Your highly moderated post is 100% mis-information and is *not true*. YOU ARE NOT RUNNING AS ROOT UNTIL YOU ELEVATE VIA UAC!!
I don't use Windows much so perhaps I'm missing something obvious, but why is it so hard for MS to implement this sort of system?
Because people expect to still be able to use their horribly-written apps that assume they can scribble freely all over the C: drive.
Words have specific meanings and "You are not inputting a password to authenticate higher privileges. You already have them" means one doesn't know what they are talking about. That statement is *not* true. You do *not* have higher privileges no matter who you are. You need to go through a UAC dialog to elevate the privileges of a program.
If AC knew what he was talking about, he'd draw a line between the wheel group and the Vista admin group. They are somewhat alike, though on many unix systems a person in "wheel" can do all kinds of root-like things without the use of sudo--this is not true on Vista.
The fact that the AC says "input your password" says he is either a very good troll or has never used Vista in his life. People in the admin group never have to input their password.