DESKTOP

Windows 7 : Understanding the User Account Control

1/7/2014 3:03:10 AM

At one time, PCs were stand-alone machines and had no security issues to speak of. Yes, a PC could get infected by someone with a floppy, but even that form of infection required direct user interaction and was easily stopped by leaving the floppies out of the machine. Early network connections weren't much of a problem either, as long as the administrator kept the system clean. The problems started when users started connecting to the Internet and the potential sources of contamination became many and varied. Today, a network administrator has to work hard simply to keep the infections under control, much less prevent them. Consequently, systems today need robust security, and the UAC is part of that solution. The following section provides a developer view of the UAC.

1. Considering the Need for the UAC

Developers have become more careful about their programming strategies as technology has improved. Applications today are usually carefully planned and rely on a significant number of tools to make them more secure. The problem is complexity. Today's applications are considerably more complex than those early applications that ran on the original PC. In addition, bugs can exist in many places, many of them not under developer control. Consider these bug sources:

  • Developer-created application code

  • Code used from older projects and other developers

  • The .NET Framework

  • Third-party libraries

  • Windows

  • External application interactions

  • Drivers and DLLs

Given that only the first of these sources is actually under the developer's control, it isn't surprising that lots of finger-pointing occurs when a bug results in an infection. There are more people looking for entrances into your application than there are developing that application. It's easier to find and exploit a bug than it is to fix it once it's discovered.

When an outsider wants to exploit a bug in your application or any of the support mechanisms on which it depends, it's all too easy to persuade the user to participate, which is where the UAC comes into play. In many cases, the best way to avoid infection is to look for unusual activities. The UAC alerts the user to possibly unusual activities that could result in an infection. Of course, the big thing is to train the user to recognize the UAC as a helpful aid and also to keep UAC alerts to a minimum so the user doesn't get desensitized to them.

2. Why It Isn't a Good Idea to Override the UAC

Most users don't care anything at all about your application — their only concern is getting work done so they get paid and can go home each night on time. Anything else is an unwelcome disruption. It isn't too surprising, then, that security takes a back seat to the user's desire to get work done. Consequently, users often look for ways to disable the UAC because it disrupts their work.

Developers are almost as bad as users when it comes to the UAC. The developer has to write additional code to implement the UAC. In short, the UAC is also a disruption to the developer who wants to get a working application out the door as quickly as possible.

Windows isn't known as a particularly secure operating system. In part, this reputation is warranted — Microsoft has made more than a few security mistakes over the years. Windows is also a complex operating system, and many of the concepts incorporated into it come from a time when security wasn't as big an issue as it is today. However, part of the reputation is simply a matter of Windows popularity. Everyone likes to attack the biggest target, and Windows is definitely a big target.

Because of the number of threats arrayed against it, Microsoft implements a number of security features in Windows. Of course, there's the application security that you should be adding to your application. (You are adding it, aren't you?) Windows itself provides security features, and there's the firewall that Windows supplies. The system should also have antivirus measures installed. The UAC is an essential piece of additional protection for a system that's almost certainly under daily attack. In most cases, it's also the only piece of protection that alerts you to unusual system activities (unless you have a third-party product installed that also provides this protection). Consequently, user and developer alike should make use of this important feature.

3. Developing Applications with Fewer Rights

One way in which the UAC can actually help the developer is by providing an alert to excessive rights. When a user is going to read a file, there's no need to give that user the right to write to it as well. If your application needs to view access rights for the user to a file, there's no need to also obtain the audit rights. Every time your application needs to display a UAC dialog box, you need to consider whether the UAC alert is actually warranted. The UAC provides an important indicator to the developer that something is amiss with the application.

Developing applications with fewer rights is a good idea from a number of perspectives. A user who uses an application with fewer rights is less likely to invite various forms of contamination onto the machine, and there's less chance that the contamination, when it does occur, will cause problems such as data loss. Fewer rights also make it less likely that applications will face issues such as resource contention. For example, several applications can share a file in read-only mode; only one application can use a file in read/write mode. There are many ways in which fewer rights actually make application development easier, not harder.

A concern for most developers in creating applications with fewer rights is that users will complain. It's true that users will complain if they can't access the things they need to accomplish work. However, most users won't even notice having fewer rights when they can access everything they need. You'll make the application more secure and less resource-hungry, and all without raising any user ire as long as you test the application carefully using precisely the same rights that the user has to the application. Testing is the important part of the equation because the user's initial impression is important — an application that functions correctly from the outset won't attract any attention, even if the user has fewer rights than with the previous version.

Other  
  •  Windows Server 2003 : Supporting and Troubleshooting Terminal Server (part 5) - Managing User Sessions
  •  Windows Server 2003 : Supporting and Troubleshooting Terminal Server (part 4) - Managing and Troubleshooting Terminal Server - Device Redirection
  •  Windows Server 2003 : Supporting and Troubleshooting Terminal Server (part 3) - Managing and Troubleshooting Terminal Server - Connection Configuration
  •  Windows Server 2003 : Supporting and Troubleshooting Terminal Server (part 2) - Managing and Troubleshooting Terminal Server - Points of Administration
  •  Windows Server 2003 : Supporting and Troubleshooting Terminal Server (part 1) - Installing and Configuring a Terminal Server Environment
  •  Windows 7 : Configuring and Troubleshooting Internet Explorer Security - How to Identify Group Policy Restrictions
  •  Windows 7 : Configuring and Troubleshooting Internet Explorer Security - How to Troubleshoot Certificate Problems
  •  Windows 7 : Configuring and Troubleshooting Internet Explorer Security - Adding Sites to the Trusted Sites List , Protected Mode
  •  Windows 7 : Configuring and Troubleshooting Internet Explorer Security - Internet Explorer Add-Ons (part 2) - How to Configure ActiveX Add-Ons
  •  Windows 7 : Configuring and Troubleshooting Internet Explorer Security - Internet Explorer Add-Ons (part 1)
  •  
    Top 10
    3 Tips for Maintaining Your Cell Phone Battery (part 2) - Discharge Smart, Use Smart
    3 Tips for Maintaining Your Cell Phone Battery (part 1) - Charge Smart
    OPEL MERIVA : Making a grand entrance
    FORD MONDEO 2.0 ECOBOOST : Modern Mondeo
    BMW 650i COUPE : Sexy retooling of BMW's 6-series
    BMW 120d; M135i - Finely tuned
    PHP Tutorials : Storing Images in MySQL with PHP (part 2) - Creating the HTML, Inserting the Image into MySQL
    PHP Tutorials : Storing Images in MySQL with PHP (part 1) - Why store binary files in MySQL using PHP?
    Java Tutorials : Nested For Loop (part 2) - Program to create a Two-Dimensional Array
    Java Tutorials : Nested For Loop (part 1)
    REVIEW
    - First look: Apple Watch

    - 3 Tips for Maintaining Your Cell Phone Battery (part 1)

    - 3 Tips for Maintaining Your Cell Phone Battery (part 2)
    VIDEO TUTORIAL
    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 1)

    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 2)

    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 3)
    Popular Tags
    Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 Adobe Indesign Adobe Flash Professional Dreamweaver Adobe Illustrator Adobe After Effects Adobe Photoshop Adobe Fireworks Adobe Flash Catalyst Corel Painter X CorelDRAW X5 CorelDraw 10 QuarkXPress 8 windows Phone 7 windows Phone 8 BlackBerry Android Ipad Iphone iOS