Posted By: ScottWelker | Aug 17th, 2008 @ 8:14 AM
page 1 of 2
Comments: 27 | Views: 1220

I could use 9ers cogent thoughts on securing Developer Workstations. I am on a site where developers are constrained to very minimal workstation privileges AND, the infrastructure team is… well… let’s just say unresponsive. The frustration is off-the-scale.

I now have the ear – Monday – of someone with the authority to fix this. I need to make a sound case.

I understand and agree that the workstation must be “secured against attack” and I understand and agree with the “Least-Privileged Account” idea described here: http://msdn.microsoft.com/en-us/library/aa302367.aspx.

Our infrastructure team adds that they don’t want unsupported technologies “leaking” into our applications and, they don’t want the support calls when developers “wipe-out” their workstations.

I intend to propose largely keeping everything as it is now but with these additions:

1) For each “trustworthy” developer do as the aforementioned article prescribes, create a secondary, seldom used, administrative account.

2) Make the development team responsible for their own workstation image. If we (I) wipeout our workstation, it’s our responsibility. We won’t bother the infrastructure team.

3) Establish sufficient oversight, architecture/code review, production hand-off, ??, that ensures no technology ever “leaks” into our applications.

Sorry so long winded. This is the case I’ll make – with some fine tuning.

Please feel free to fire holes in it or counter or bolster the arguments.

1) Doesn't work. Or maybe works for a few weeks before everyone just starts using the higher privileged account all the time.

2) Then you wander into the realms of developers thinking they know better than the infrastructure team. Manageability goes out of the window and the problems the infrastructure team have to deal with increase exponentially.

3) Plan ahead and know what you are going to need so that it can be dealt with in an appropriate manner? If there was much chance of that happening, it'd be where you are already.
Sounds like where I used to work.  You are not working in Idaho by chance?  :->

I would suggest you learn to love the word "Standards".  Your infrastructure team likely has a corporate standard.  Your development team should also have  a "development standard".  This standard should define what technologies your team will use and establish a "base" for your infrastructure team to help you with.  I suspect you probably have the first but not he last item.  Push for, adopt, and enforce the adherence of standards.  They are a benefit to all parties.  By providing your team with a set standard your team stays focused and develops quality code without diversions down non-approved technological side streets.

I am of course not suggesting you do not learn new items, but deploy them into your development environment in an agreed upon manner.

Depending upon how paranoid your infrastructure team is, you could also push for a completely different network.  I.E., have development servers, dns, and other items on their own network.  You the developers hold the keys and must fix your own problems.  You cannot however get outside the "box" they put you in.

As to the least privileged account?  While you can have a second box for this, why not use a virtual test box?  This way you can test your deployment against a known configuration over and over again. 



W3bbo
W3bbo
The Master of Baiters
Wouldn't it just be easier to put all the developer's workstations on a separate network, isolated from the infrastructure team's?

Or am I missing something?
harumscarum
harumscarum
out of memory
Or work off VMs that aren't on the network?
W3bbo
W3bbo
The Master of Baiters
Interactive virtual-machine performance still needs a lot of work, mainly due to the emulated GPUs. The emulated S3 Trio64 in VirtualPC 2007 can't run at 1600x1200 with 32bpp (which is smaller than my current desktop), the one in Hyper-V isn't much better either.

Modern GPUs can be virtualized (check out VMWare's work), but until emulation can be done away with completely a VM will never match the responsive feel of a native desktop.
I used to work only on VMs. We had a nice Server, Dual Core / Dual Proc server, 16gb of RAM, Windows 2003 R2 (if I recall correctly), RAID configuration (forget which one). One main drive for the OS, the RAID was used only for the VMs.

I would VPN into the corporate network and use Remote Desktop to go into my box for development.

Note, I wouldn't be running high-end graphic apps at all, but the work I did, did involve UI work,

The thing was so fast, it honestly felt like I was working my laptop, when in fact my remote deskop was merely full-screened.

Man, I miss that box.
W3bbo
W3bbo
The Master of Baiters
Accessing a VM via RDP isn't running it in Console mode though. When you use RDP you're using the rdpdd display driver which isn't emulated so you're going to get better interactive performance with rdpdd than any emulated GPU.
vesuvius
vesuvius
Das Glasperlenspiel
At some point, you have to eat humble pie and just accept that you are not, and will not be the administrator of the network. Were the network administrator to supply you with administrative privileges, then they'd be talking themselves out of a job. Why would they bother coming to work if everybody has admin access and can do as they please?

In Britain, the Prime Minister reserves the right to re-shuffle his cabinet (bad example I know - politics 'n all). What happens when he or she supplies other cabinet members the right to re-shuffle whoever they want at a whim?

Disaster, that's what happens.

This is by no means and isolated request. In any IT company, whether it is support or development, you always have advanced users (I know you are much more advanced than advanced) who require a little more control, but in my experience it has always been an opportunity for person x-y-z to show me who is boss.

Agreed. In fact, I'd go so far as to say you're asking the wrong question. Rather than make demands, why not talk with the infrastructure team to find out what it is they can do to support you better. Tell them what software and tools you need and let them find the way to best support that within the constraints they need in place to ensure a reliable and stable environment.
I think the bigger issue, is, what are you doing that actually requires developers to have administrative priveleges? I've yet to encounter a single situation where I've ever needed administrator priveleges to do anything dev-related, with the exception of testing installer packages (which I do in a blank slate windows vm installation anyways).

If none of your dev-work requires it, then, the devs should not have administrative priveleges on their machines at all. And if a dev is wiping out their workstation somehow... then there's something seriously wrong with that developer, and I'd seriously question their future employment.

As for technology "leaking" into your code, that's what code review is for, and actually keeping track of what your developers are doing. That's more of a management issue than any sort of infrastructure issue. After all, you have to let developers be able to modify the code, which automatically lets them put whatever they want into their part of the codebase, there has to be some measure of trust here. Setting a clear policy on what is allowed here and what isn't is needed, with real consequences if you get caught doing violating the policy.

Proposed solutions 1 and 2 simply do not work at all.

App virtualization is more light weight approach to running things without affecting the environment than VM's etc.

a) Simpler solutions that also allow you "going behind the back not telling anyone": Installfree and Thinapp should be able to wrap anything that doesn't install drivers so that it will work with limited privileges. Atleast that's the word, I started only recently playing around but it looks good. Of course if they say "use this and that" and attempt to restrict things so you can't use anything else and find out you still managed to do things your way then you might have some explaining to do.

b) There are other solutions that are more centralized and have also things like license management and so on. These more likely to involve more initial setup work where as the above ones can also be centrally deployed but in more hands on way rather than a ready made solution.

Here's a chart http://virtualfuture.info/2008/06/virtualfuture-appchart/ that compares the different products and from which my info above is from.

Yes. But the whole point of having a managed desktop and an infrastructure team is so that they can assess the impact of installing new applications, roll them out and update them accordingly. Now, if you have a problem that your infrastructure team need to be more agile so that delays are minimised, that's one thing, but expecting them to simply grant full admin rights isn't particularly helpful since it undermines their ability to do their job just as much as you not having an SVG plugin (or whatever) may undermine yours.
Follow the corportate standard the infratstructure team has created or if possible work on creating a developer standard.  As to the "free" adobe program are you sure its licenseable for business work?  Remember the "Free" version of Adobe is for personal use and not corporate use.

Licensing is a huge pain in the a$$ however it sis something that needs to be dealt with and worked with. 

Infrastructure team is trying to manage the devices in an easy to do automated way and needs to be kept as standard as possible.

Actually, he did mention that it is "Adobe SVG viewer" which is free even for corporate use (Just like the Adobe Reader.)

Note that lots of the "read only" softwares (like Microsoft's Word/Excel/Powerpoint viewers, RARLAB's UnRAR DLL, just to name a few) are free and you might use them freely.

If it's in-house development, the choice of free software/libraries would have been even wider (GPL does allow free usage as long as you're not going to sell the software that includes it).

Although I'd agree that's the way to go to ask the infrasturcture team to install it, dealing with unresponse infrastructure team can be a pain. It's always a good idea to keep a handfull of "replacement toolset" that offers less functionality, but neither need administrative right to run nor need to be installed (mostly command-line tools however... who knows why it's so rare to find capable GUI variants).

page 1 of 2
Comments: 27 | Views: 1220
Microsoft Communities