![]() |
![]() |
|
September 15, 2005User Account Protection (UAP) in Vista: Did Microsoft get it right?I wasn't able to make it to this years PDC, but I have been lucky enough to get my hands on some of the security slide decks. One slidedeck that was of REAL interest to me was on how to secure your applications with least privilege that was being done by Steve Hiskey. I was just floored as I read through it. LUA has come a LONG way since the pre-release of Longhorn that I have been running. And now that its been renamed to UAP (LUA=UAP), I am starting to get a better picture on how Vista is going to handle this. The biggest thing I learned that has changed in Vista? Well it would HAVE to be: All applications run by DEFAULT in standard mode unless the manifest requests admin rights, or the app is in the app compat database. EVEN WHEN RAN AS ADMINISTRATOR That's right, even when logged into the administrator account, apps will start up in standard mode (meaning without elevated privileges). If you need admin perms, then you can select "Run Elevated" to do so. In many cases, it will prompt you to do so. This is more clearly shown in the following dialog:
If you will notice, the disk cleanup wizard prompts even the administrator that they need to increase privileges. For you Unix geeks out there, think of this as the right way to implement sudo. I even think this method is easier than how Apple did it with OSX. No weird grace period that lets everything run elevated. Associate risk appropriately through each app! Congratulations Microsoft. You might have just done this one right. Guess its time to install the new CTP bits of Vista and take it for a whirl and see how well it works. Posted by SilverStr at September 15, 2005 04:22 PM | TrackBackComments
This is good, but I think the dialog needs more than an Ok/Cancel. Most users just click Ok without ever reading dialogs, anyway. Response on my blog. Nice reply on your blog Rick. One thing though... how do you know the user ISN'T challenged for credentials when then hit ok? :) Thats why I said I am going to have to install the CTP bits and check it out. Otherwise, a simple work around for malware would be to simply programmatically click the "Ok" button to elevate privileges when the dialog pops up. Posted by: Dana Epp at September 16, 2005 09:13 AMSweet! At least now we can allow a single "bad" app admin rights without having to let the whole thing run as admin. Certainly will make the whole spyware control problem a lot easier. Posted by: Amy at September 16, 2005 10:53 AMHmm, I wonder which makes more sense, asking for credentials on the first dialog or a subsequent one. I'll have to think about that. There's still something psychologically unapplealing about operating as Administrator. I suppose it would be like logging in as root, being able to make certain changes (Control Panel, etc) but having every application act as a normal user. I can also vision the conversation: A step in the right direction? Yes. I really like what is being done regarding the registry and the redirection there. At the end of the day though, I'm still wondering what good is an Administrator account? If UAP is off, it operates as "normal" in XP, meaning it can do whatever it wants (lets hope this isn't a simple registry setting some malware can tick on/off). If it's set to on then an Administrator is as good as a normal user so why have the distinction in the first place? Why not use normal accounts as a default? I do think remembering two passwords is a little annoying at first but if I can manage it with Linux and OSX (which is incredibly easy for even mom and pop users) then I shouldn't have a problem doing it with Windows. I will let time be the judge though and give it a shot. Maybe it will evolve through the Beta phase into something a little more worthy. The security looks good on paper (and in Beta1) but until someone pokes at it enough with a stick, it'll be a house of cards in my mind. Posted by: Jeremy Brayton at September 16, 2005 12:06 PMYou said: "I even think this method is easier than how Apple did it with OSX. No weird grace period that lets everything run elevated. " Not to sound like a total fanboy, but it's worth noting that the grace period is only for sudo, not for privileges that you grant applications through the GUI. In that respect, the Microsoft approach (from what you describe) is nearly identical. That said, you're right about the unawesomeness of having timestamps in sudo (which seems to be a historical artefact, more than anything), and it's the first thing I turn off on new installs of any unix. Incidentally, there's been a trend on OSX for applications (especially installers) to just ask for privilege straight off, on the off-chance it'll be needed, and to ask for permissions far in excess of what's needed. For example, most installers need a privilege called system.root.install (I think) that seems to allow them to write to disk, change preferences, etc. Instead, they seem to increasinly ask for system.root.user, which has substantially greater privilege. So, while it's a really good idea for the operating system to operate in this way (least-privilege and password-to-upgrade), there's still a very substantial chunk of work that needs to be done in educating developers to ask for (and use) privileges responsibly. Otherwise, I can just see having to grant system.root.user every time I want to play a game. Thanks for the updates. :) Posted by: Simon at September 18, 2005 10:11 PMI am really confused about this.Sometimes this worksout just fine for me and sometimes I have to struggle, when i used it the last time. I just hope it turns out well this time Posted by: amber at September 19, 2005 05:10 AMThe problem with prompting for credentials is _spoofing_. If you get the user trained to enter their administrative credentials every time a password dialog appears, they won't consider carefully whether to do so, and possibly will enter their credentials into a fake dialog. Result: stolen credentials. This is a major reason that Single Sign-On exists (apart, of course, from it being extremely annoying to keep entering passwords). Too, you must recall that Windows does not have a single 'administrator' login as Unix does. Would the user therefore enter their login credentials as confirmation? I think Microsoft are aiming *not* to have the user enter credentials. It doesn't really add much more security - presuming that the process isolation works and therefore a low-privilege app cannot click the button by sending input or a window message. If the 'confirm' dialog is spoofed, no credentials can be stolen simply because you haven't entered them! Posted by: Mike Dimmick at September 20, 2005 11:45 AM |
![]() ![]()
My 5 Favorite Books
Writing Secure Code
Secure Programming Cookbook Security Engineering Secure Coding Principles & Practice Inside the Security Mind ![]()
My 5 Favorite Papers
Smashing the Stack
Penetration Studies Covert Channel Analysis of Trusted Systems DoD Trusted Computer System Evaluation Criteria NSA Security Recommendation Guides ![]()
Archives
January 2007
December 2006 November 2006 October 2006 September 2006 August 2006 July 2006 June 2006 May 2006 April 2006 March 2006 February 2006 January 2006 December 2005 November 2005 October 2005 September 2005 August 2005 July 2005 June 2005 May 2005 April 2005 March 2005 February 2005 January 2005 December 2004 November 2004 October 2004 September 2004 August 2004 July 2004 June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 December 2003 November 2003 October 2003 September 2003 August 2003 July 2003 June 2003 May 2003 April 2003 March 2003 February 2003 January 2003 December 2002 November 2002 October 2002 September 2002 August 2002 July 2002 ![]() |
|