Solution Builder - Channel Insider
Empowering the next generation Channel
 

Sponsored Links
  • Get up and running in as quickly as 30 days with BI. Learn how today.
  • FREE Securing Smartphones & Tablets for Dummies Book from Sophos
  • 5 New Technologies That Will Change Enterprise ITAdvertisement
  • Build an IT Infrastructure That Delivers the Future

  •  

    Getting MS Applications Right for Your Customers the First Time

    in Solution Builder



    Article Rating:starstarstarstarstar / 0
    Article Views: 2911

    You've written a great application, but it crashes when you deploy it on the client's network. How embarrassing. One way to avoid this pain, suggests one Tech Ed presenter from Keene, is to write your applications without administrator privileges.

    Rate This Article:
    Add This Article To:

    You're proud of the custom application you wrote for your big client. Not only does the software do everything they asked for—with a little extra panache—but you've thoroughly tested it on your development environment and you know it's rock solid. However, when you sit down at the user workstation to show off the software, your brand-spanking-new application crashes spectacularly. Oh, dear. How did that happen?

    One strong possibility is that the end user doesn't have the right privileges to run the application. Most software developers and VARs create their applications with administrator-level rights to network and system resources, but—with an eye toward security—plenty of user accounts have very limited access. It's a good idea to "develop for the least privileges," suggests Scott Golightly, senior principal consultant at Keene Inc. and a presenter at Tech Ed this week. Your programming staff is advised to create their applications without running an administrator account, to ensure that the application is given the right security levels.

    There's several good reasons to do so. One obvious advantage is improved security. While some IT "managers" might suggest that it's easiest to give all users admin privileges, that's obviously opening the barn door wide. Applications that run with a least-privileges philosophy have a reduced attack surface. "If you don't have registry access," points out Golightly, "you can't mess it up."

    From a VAR's point of view, a prominent reason is a business issue. Since users are rarely administrators, when you deploy your custom application on their computers they'll discover that they can't use features or access resources your application depends on. The client's IT managers may claim that end-user accounts have no restrictions. Don't depend on that claim. A failed rollout looks bad, especially when the client was anxiously awaiting deployment, and it sends you back to the drawing board to figure out the problem. And just when you thought you could send the invoice, too.

    In addition, if you're programming in Windows, the "Designed for Windows" logo requires that an application work acceptably—that is, it won't crash— in non-administrator mode.

    Writing your applications for non-admin privileges isn't always easy, though. It's more than just booting to a non-admin account and starting up your development suite. You'll find that you really do need higher-level security access for certain things. For example, non-administrators can't manage network cards and can't write to every place in the registry.

    However, writing the application with a non-admin account will point out to you—rather dramatically—what those services are, so you can add them as necessary or test for their presence gracefully. In both Windows applications and Web applications, suggests Golightly, your code should explicitly demand the permissions needed, take appropriate actions when the permissions are unavailable, and create custom CAS policies as necessary. There's plenty of technical details to contend with—which we'll leave to another time—not the least of which is that you cannot debug processes on non-privileged accounts that are not owned by you, such as SQL Server or Microsoft Message Queue. But the main point from this presentation is a philosophical one: Deal with the issues in advance so your user doesn't encounter a system failure at the worst possible time.




    comments dic


     
     
    >>> More Solution Builder Articles          >>> More By Esther Schindler
     


     



    channel chatter


    HTML PLAIN TEXT

    Keep on top of news for VARs and Resellers with CI's Weekly Newsletter and Alerts.


    [ci] feeds
    XML
    Add Channel News, Product Reviews, Trends and Analysis to your RSS newsreader or My Yahoo!


     


    CHANNEL SPONSORED RESOURCE CENTER
     
     
     
    Start the New Year with business intelligence—it’s a smart move
    Join us on February 1 for an encore rebroadcast at either 5 am or 12 noon EST and discover how business intelligence (BI) supports companies in uncertain business and economic climates. Get expert advice on how to create a strategy that fits your organization's needs and budget and see how quickly it can pay for itself.
    Click Here
     
    Security and Availability Essentials for Running Your Business in the Cloud
    Are you moving to the cloud? Find out what every IT professional should know about security and availability before moving to the cloud. Hear what a security provider’s own CSO has to say.
    Watch Video
    A new algorithm automatically identifies relationships between variables to help reduce researcher prejudice.
    Click HereAdvertisement