Security Plans for When Your Senior Developer Leaves? 90
An anonymous reader asks: "Our CTO, responsible for all hardware and networking setup, who also coincidentally happens to be our senior (and only) developer, has just resigned to go work for the competition. We are not a software company, but he's written proprietary code that we use on a daily basis to work. What interim measures should we be taking to ensure a smooth transition to the next person hired to take over? What can we do about security, since this person designed and implemented all current security procedures? What about ensuring that we have all the intellectual property to which we're entitled? As one co-worker put it: 'His resignation was a surprise to us, but it definitely wasn't a surprise to him.' If he wanted to leave some hard-to-find malicious timed-release back-door-opening code running, it's certainly within his means. We don't expect any malicious action, and can rely on a reasonable level of co-operation and documentation before he goes, but I want to get a sense of what others have done in this situation."
Malicious action on his part would make your day. (Score:4, Insightful)
Re:Malicious action on his part would make your da (Score:4, Funny)
I think what you meant to say was "Get lubed up and get your lawyers ready to go." They are lawyers, after all. >.>
You need a registered bad-ass (Score:5, Insightful)
Your company sounds small enough that they had very few 'computer guys' but big enough that the computer infrastructure is fairly complex.
The guy in charge (your soon to be ex-CTO) probably designed and built the existing systems from the ground up. As he didn't have anybody watching over his back, do not be surprised if there is some jury-rigging in there. He probably shared some of the quirks with some of the other computer guys, but not all.
He may be an important part of the wet-ware in your system. An easy to understand example would be a bowling alley - if your company has to bowl a strike every time the ball gets thrown, he was the guy that walked down the alley continually making minor adjustments to the path of the ball. This could be custom reporting on your data, swapping out the backup tapes, deleting temporary files, cleaning out the log files so they don't fill the hard drive, or booting the servers in a particular order so as not to overload the UPS. It has become routine that he takes for granted and probably doesn't even think about them any more so when he doesn't mention it (and they don't get done)
You have some pretty important apps that he may be the only guy that understands how they work.
Today is the day of truth, you are on the cusp of finding out if he is disgruntled or not. If he is disgruntled, the LAST people you want talking to him is HR. They will either piss him off more than he is, or try to bully him - you need to get his favorite tech to take him off-site, dinner or to a strip club, and off the record find out why he is leaving, what his primary concerns are, what he would honestly have changed given the chance, what he anticipates the hot-spots being after he is gone, and most importantly : does he have any recommendations for a good replacement.
This last one is key. There are lots of paper tigers out there (MCS* certs), lots of guys that are good at network administration, lots of guys that can code language A or B or C++, lots of guys that can diagnose and maintain an SQL Server, and lots of guys that can operate in the role of CTO to work as manager and liason between the IT department and upper manglement. You are going to find precious few people that can do ALL of the above(*), and unfortunately that is exactly what you need to do - and find a guy that enjoys doing it because the first few months are going to be rough. Doubly rough if your CTO is disgruntled, so if one of trusted colleages was in there he might hesitate before setting off some time bombs that his pal is going to have to clean up.
The penalty for getting this wrong is going to be pretty severe.
(*) I would be perfect for the job, but I am pretty happy where I am.
Re:You need a registered bad-ass (Score:5, Funny)
Or - you could lock him away on some Island someplace after gassing him just as he arrives at his Apartment and give him the number six as a code-name.
Why did you resign?
Make him eager to help out ... (Score:3, Interesting)
Consider it a very important support contract with a limited lifes
Too late! (Score:5, Insightful)
Re:Too late! (Score:3, Informative)
Re:Software development cycles (Re:Too late!) (Score:2)
Ummm I am guessing No. Nobody bails on a CTO slot in today's economy unless he is really really frustrated, really really mad, or going to make GOBS more cash at his next position. Line coders -maybe- but not at the Chief Technology Officer level.
People often -say- they are leaving because they don't like to maintain code, or want to work in the exciting initial phases of development, or whatever
Re:Software development cycles (Re:Too late!) (Score:2)
Sorry, the job shortage is for us peons. Executive level staff are being headhunted like mad. Since medium-small companies can't get a big name C-type, they're pulling from small-small companies. He's just advancing his career.
Best way to keep them is to h
A bad position to be in (Score:1, Insightful)
Supprisingly, the several small companies I've worked for treated me like family but drove me off with a combination of mainly extremely long hours and low pay.
I guess I forgot to tell the small business owner that he owned the company and I did not and therefore he had a huge interest in it making millions of dollars while I would at best get my salary increased 7% a year if things went good.
This isn't a techological problem (Score:4, Insightful)
Take care of it at hiring (Score:4, Informative)
Run, run competent staff! (Score:3, Insightful)
"Intentional security breaches," for instance. Okay, no problem, none of us want intentional security breaches and since Outlook and MSIE are both responsible for a large number of breaches they're history. What, I can't do that - you're telling me that you're holding my feet to the fire yet denying me the authority to do anything about it? See ya!
Ditto all of your other suggestions. Of course an
Re:Take care of it at hiring (Score:2)
Other code? (Score:2)
What if the developer is on salary, develops a neat little software gizmo on his home computer when he isn't at work?
To muddle things a little more, what if this guy telecommutes from home on that same computer two days a week?
A little more - what if the code he developed dealt with / was similar to or an extension of things he generally worked with at work?
What if he takes out a patent on stuff related to what he does at work?
What if he takes out a patent on stuff abs
Old ways are best (Score:5, Funny)
Or, you know, change passwords, and stuff. I hear that works too.
Re:Old ways are best (Score:2)
Two things (Score:1)
Nothing else you can do, except do a code review of all the systems he had access to.
Re:Two things (Score:1)
Re:Two things (Score:1)
Lots of people here are saying that you should kiss this guy's ass. I see no such need to do that. Tell him exactly what you will do to him if he screws you. Make him think twice about it.
Then, if he screws you, take him to court.
Re:Two things (Score:3, Insightful)
If you're going to break up, why not remain friends if you can? Not go to "If you take my alarm clock, I'm going to sue you, and remember the time you left the toilet seat up etc". Doh.
After all the questioner said: "We don't expect any malicious action, and can rely on a reasonable level of co-operation and documentation before he goes,"
Th
Re:Two things (Score:2)
Dumbest thing I ever heard.
Fact is, this company needs a lot more from the person who's leaving
"make him sign another piece of paper" (Score:2)
Piss him off (Score:4, Funny)
Might as well steal the toys off his desk, decline the steak dinner on his expense report, deduct some personal long distance calls from his paycheck, and key his car while you are at it.
Dot Bombs Are Perfect Model (Score:5, Informative)
In the heyday of the bubble, jumping ships was a practice that everyone knew about it, and often tried. So, relating from my experience of that...
I think your requirements for a replacement CTO should start with securing the system. Hire consultants until the right guy is found to document what's going on - NOT for more development.
Although I have no info about the politics, your lack of insight into managing your technology is stunningly poor. I hope you pick the best of those consultants and hire them to spread this risk in the future.
Above all this, prepare for your competition to now exploit any weakness you have in your market. No more BusinessAsUsual. If you didn't care about what this guy until he left, perhaps you should re-evaluate what you use your technology for, and take it a bit more seriously.
mug
Re:Dot Bombs Are Perfect Model (Score:2, Insightful)
Rats Leaving? Time to Go! (Score:5, Funny)
but I want to get a sense of what others have done in this situation."
Ask him if you could go with him to the new corporation.
Don't put all your eggs in one basket (Score:5, Informative)
The easiest source of information is going to be him, himself. It doesn't sound like he's left on the worst terms, and, really, the truth of the matter is he's got all the cards now. If he wanted to screw you over with a malicious time bomb, he could, and there's very little you could do about it. So I would just take what he gives you in terms of documentation and all, and, unless evidence proves otherwise, assume that he's on the up and up. You have little choice, and the other options (like lawyers) are going to make him very uncooperative. Most programmers I know don't get malicious unless they feel that they've been royally screwed over. YMMY.
But, to the future! The best way to avoid exactly this kind of thing is to not have a new guy, but two (or more) new guys. Even if its a senior-level and a junior-level, having someone who can be your backup is invaluable. At worst (depending upon the software), you could get an intern or other low-paid peon to serve as the backup on the cheap. Some of them are clods, but some can be quite smart. Code review reduces not only bugs, but logic bombs and backdoors, and it leaves someone who at least has a clue about the system if one of the two leaves.
As for security: Make sure you have a firewall, and the rules are set to the bare minimum allowed in (but you should have this already, right?) Change the root/administrator passwords. If you have a competent sysadmin, have him monitor for unusual activity...but these are all things that should be going on all the time. In other words, nothing out of the norm.
Re:Don't put all your eggs in one basket (Score:2)
But then instead of just a BOFH you get a PFY too
Trust (Score:5, Insightful)
If you think they are the type of person who may do something like that, you probably shouldn't have put them in charge of security.
Is this a one-man company? (Score:3, Insightful)
I would suggest making two complete backups of all data on all machines. That way if there were a problem then the backups could be used for forensics. Second, monitor any connections to the network from remote access modems or internet connections using an intrusion detection system. Then just relax. If the guy is leaving on good terms then you probably have nothing to worry about.
Re:Is this a one-man company? (Score:1)
Re:Is this a one-man company? (Score:1)
Of course, I don't know if you'd get funny, insightful, or redundant (as in blindingly obvious).
LOL
Give him stock (Score:1)
Care and feeding of developers. (Score:3, Interesting)
We don't expect any malicious action
Well then you shouldn't have made life so difficult for your CTO. I mean, everyone has their price, PAY IT!
Oh wait, you want team players. Well then who's idea was it to cut his pay, deny funding to the latest project, or take photos at his last "business trip". Certainly not his...
Re:Care and feeding of developers. (Score:1)
Consultants (Score:1)
Your best bet... (Score:2)
Your next best bet, is to make sure he doesn't feel that you have a grudge against him, and that you are willing to let him go. At least then, you can probably ask him about something later, if a specific problem pops up.
start from scratch! (Score:5, Informative)
Make sure they remove all existing accounts on all systems, and start with new ones, with very secure passwords. This is a good time to require a password rotation policy, and password length & strenght requirements as well.
No non-secure connections to non-public systems from outside the company, period. Or at all, if you can get away with it. No connections from dynamic-IP connections to internal systems, either. (make sure all allowable connections to internal systems are from a list of known IPs)
Make sure PHYSICAL access is secured! Lots of ex-employees keep security cards, keys, etc, and can often get back in after the fact.
Make sure your people know about 'social engineering'!
Don't use inherently-insecure technology from companies who don't give a rat's ass about your security. No bonus points for correctly guessing which company I'm talking about. This becomes stupendously more important if you're the sort of silly-ass company that only has one techie on staff at a time. Lots of updates are to be applied, no matter what platform you go with.
Now's the time to separate systems if you host stuff. Hosting stuff should go in a co-lo facility (since you obviously don't have the staffing resources to handle your own data center), and you should have separate systems for business needs, like e-mail, etc., in case your website gets DOS'd, it won't impact your e-mail, etc.
Have regular security reviews by external security companies. Rotate which company you use each time.
Make sure your insurance covers all your computing infrastructure and eventualities (fire, flood, theft, cracking, etc.).
Make regular backups.
TEST your backups.
Make sure you have off-site backups.
Make sure you have a disaster preparedness plan and the appropriate people know how to implement it. What happens to your business if the building burns down? If the phones go out? If the Net connection goes down? What if there's a major terrorist attack in your city and noone can get to work? Welcome to the real world.
Make sure you have onsite spare parts for your computers, at least for the critical ones.
Make sure noone saves important documents ONLY on their own machine - either make them start saving to shared drives which get backed up daily, or have each machine backed up daily. Say you lose the business plan you're showing to investors tomorrow? What do you do? WHAT DO YOU DO?!
Don't get locked into proprietary file formats, or you may never be able to switch. Plus you may get hit with 'requests' (ie threats) to inventory every piece of software on your site.
Definitely have more than one techie & programmer (2 of each, at least) at your company. That's flat-out ridiculous, as you are probably aware by now.
Okay, that's all I can think of off the top of my head right now. Have a day.
Re:start from scratch! (Score:5, Insightful)
Any company with one developer is going to be a small business -- small businesses have budgets, just like REAL people -- believe it or not, companies don't want to spend every penny of budget on IT, since -- without sales -- there is no damn IT department. Making a bunch of silly recommendations that are beyond the means of this company is silly.
Some or your recommendations are valid
The rest of your recommendations were intelligent assuming a magical world with no budgets, no deadlines and no need to be realistic. But -- if you take into account the real world -- they were moronic.
MultiMan! (Score:2)
You are IT. Also known as IS, MIS, and 'the computer guy'. The entire weight of the company rests on your shoulders, from the systems that run AP/AR, maybe Payroll, the custom apps, printing, networking, backup, and developing / maintaining a hundred little internal use apps. Maybe you get farmed out a few weeks a year at $160 an hour
Bullshit. You are the one in a prallel universe. (Score:2)
Lets see:
-Hire a security team to secure your systems.
What is so intractable about that? It is a one of cost that could save the very existence of your company. These companies (or a consultant with a good trackable record) will charge you a few hundred bucks for an assesment and then will charge you the normal hourly rate of any IT
Re:start from scratch! (Score:1)
Re:start from scratch! (Score:3, Insightful)
The cost of such an action may be more than the company makes all year, if the company is a microbusiness.
Fast, cheap, good. Pick any two. I'd suggest hiring a CS college student now and have him be the intermediatry between the old worker and the new. Keep him on as an intern, and have him in charge of documenting everything.
Re:start from scratch! (Score:2)
Actually some of his suggestions wouldn't fly even in larger companies that have money to spare. Especially the one about removing all existing accounts on all systems and then adding them back in. I'm curious as to what the people who use those accounts are supposed to do while the accounts are being removed and then added back in.
The comment about not using Microsoft software at all is pretty humorous. I wonder what happens when an important customer sends a document that Abiword or OpenOffice can
Re:start from scratch! (Score:2)
The only problem is, after the entire new team of 75 IT people is finished making off-site backups with amanda, deleted and recreated all accounts, eliminated all Microsoft products, replaced Word with vi and excel with an abacus paid your $2.5 million insurance bill, and shipped your systems to a colo facility... all your real employees will have quit and you'll be out of cash.
Get a clue, fucktard.
Actually, what I've seen before (Score:2)
I've seen this handled in a draconian sort of way in the past - take his stuff and send him home now, pay his salary for the rest of the two weeks.
It's not always the best way to handle it, especially when dealing with a C$_O, but it would get the job done.
Re:Actually, what I've seen before (Score:2, Insightful)
It would probably sink the company.
The reason you have someone escorted out is because you believe they may cause some sort of damage.
If he wanted to do any damage, he would have done the dirty work in the period between deciding to leave, and t
First Step (Score:2, Interesting)
Assuming that you already have some sort of data backup performed on a semi-regular basis, my first step would be to keep a static copy somewhere in storage. A snapshot li
It happened here (Score:4, Interesting)
We make DSL equipment. Shortly after a layoff last year, all of our test stations at several contract manufacturers stopped working almost simultaneously. It seems one of our test engineers had programmed them to phone home to his PC at headquarters to make sure everything was ok. Thank goodness it wasn't one of the linecard software guys or we could have had thousands of lines out of service.
Trouble? Yes, we've had our Phil.
Get him first! (Score:1)
You live in Iraq, right?
Daniel
He is probably more worried than you... (Score:4, Insightful)
Re:He is probably more worried than you... (Score:2)
audit the code (Score:5, Insightful)
Then, once he's gone, audit the code. Maybe you'll need to hire an outside consultant to do it. Anyway, once the source code is audited, you still aren't in the clear. It could be that he put a backdoor in the binaries, leaving the backdoor out of the copy of the source code he pointed you toward. Thus, once you are done auditing the code, compile it. Do a file compare of the current binaries and the newly compiled binaries.
In Windows, the command line is fc /b filename1 filename2.
If there are any differences, that doesn't necessarily mean anything significant. Move the current binaries to a temp directory or someplace out of the way. Don't delete them, as they could be important later. Copy the newly compiled binaries in. Test the whole system to make sure it works.
As for ensuring your intellectual property is protected, I don't know how you can truly do that from a technical standpoint. You should notify your corporate legal counsel of your concern. If you don't know who that is, bring it to your CEO's attention.
Good luck.
don't be an idiot and learn... (Score:5, Insightful)
don't accuse him of things he might not have done. don't screw around with his career. shake hands, wish him well and generally be professional. it's business. cope.
second, solve your problems. the person who is leaving has his own issues - poor communication, poor loyalty, excessive greed, whatever. those are his problems. let him work on those, they're not your problem.
the main reason for your discomfort is that you put all your eggs in one basket. and now your basket has left. so in the future hire two people, not just one.
and when you have these two people on board, talk to them more often. find out how they feel. you were taken by surprise by this person leaving, that suggests poor communication - on his part or your part.
finally, you seem to have no idea what code this person wrote even though your business seems to depend on it. does the code go in a source code control system? do you have a release procedure? can you get the previous releases?
you need to answer yes to all three of those. if you don't answer yes to all of those now, make sure you can in the future.
Re:don't be an idiot and learn... (Score:2)
Re:don't be an idiot and learn... (Score:1)
The trickier the job, the longer the leave-notice period.
Normally people have 30days leave notice for most technical jobs. Engineers have 90days.
If the job requires more hand-over time, then make it required in the contract.
If he wants to quit but does not help the new guy during those 90 days, then he becomes sueable.
I hope this teaches all you "at-will"-contract-touting companies a lesson.
--
jpa
Position (Score:2)
And that's what you company is gonna look like if you don't have NDAs in spades signed by this guy.
two words... (Score:2)
One word in response... (Score:3, Informative)
California, where no-competes are unenforceable. Note that you could still get the soon-to-be-ex-CTO with inevitable disclose of company secrets, but you have to go to court for that one.
Re:two words... (Score:3, Funny)
2) Non-compete clauses are dumb ideas. You don't want a skilled baker to work in a rival bakery? What's he going to do then? Work as a beautician? You going to pay him to do nothing? Same for programmers.
In fact some companies do pay key people to do a year or so of "gardening".
BTW if someone is really crap... e.g. Mr Anderson, you suck, we'll help your CV look good, just go work for the competition. And if you sign this "do compete clause", you'
Be nice to him. (Score:3)
Anything he wanted he already has... (Score:2)
Enter, stage right... (Score:2)
Documentation Documentation Documentation
[image insane person running around the stage clapping his hands]
When I was your boss... (Score:2, Informative)
Where's about what I told them. (I wish I could find the original letter, but I can't.)
Disable all accounts listed on attachment (a). Better yet, monitor activity on them. Look for ones I've forgotten/failed to list. (We had a
Re:When I was your boss... (Score:2)
Great advice, mod this guy up!
Procedures (Score:3, Interesting)
This isn't a termination, of course, but should be handled the same way.
Re:Procedures (Score:2)
There are of course some similarities between firing someone and them leaving to move on in their career, but treating the latter too much like the former, just makes you look silly.
Too little too late. (Score:1)
If you are worrying about these things now, then you are screwed. It's too late. If that senior developer didn't have appropriate clauses in his employment contract...well, you just had it coming, didn't you?
All you can do now is disable his login account. That doesn't buy much.
If there isn't enough documentation to make his replacment straight-forward, well, you might as well offer him a 50%
get root's password and some source code now (Score:2)
More than one person fell into the sysadmin job because the old guy left and only one person remembered to ask for root. The old guy didn't care cause he was leaving, the people who remember to ask care because they are staying. Of course if there are junior guys to this person you don't need to get the password (assuming the juniors are smart enough to get it, maybe you should check...).
As for source code: if you ahve the source code you can audit it. I'm willing to audit it if you need someone. (I ha
A problem to be solved long before a resignation (Score:3, Insightful)
We had something simliar (Score:1, Interesting)
A contract manager stole her NDA/NC out of a cabinet she had a key to. She also stole a few developers' NDA/NCs and hired them. She's set up a few minutes away. She competed (in one case sucessfully) for our contracts, claiming she got all of our developers and that we're going out of business (neither of which is true -- I'm the only qualified developer on the project she managed to steal).
She left a huge trail of slime on the way out...
No idea what you should do. I'll see how our management handles it
What's that strange probing sensation?!?! (Score:2)
>back-door-opening code running, it's certainly within his means.
<PESSIMIST>
How long has he been working there?
If he wants to fuck you, YOU ARE ALREADY FUCKED!
</PESSIMIST>
<OPTIMIST>
Since this guy is really smart, he'll realize that he'll be blamed for anything that goes wrong over the next 10 years. He has worked hard to build your infrastructure, and does not want to harm it.
</OPTIMIST>
<CYNIC>
You seem ve
You are Scrod. (Score:2)
It's like wanting to put on your seat belts after you've had the accident.
Unless your ex-coworker has morals that forbade him from doing you harm your best defense is to warm up the lawyers and get them all nice an toasty just in case. There is precedent for ex-employees who leave "easter-eggs" for their employers getting sued for damages. That's all y
All you pompous geeks listen up..... (Score:1)
Deal with it 6-12 months ago. (Score:1)
I've just been employed by a charity for the same reasons... ostensibly it's because they have too much work for one person (they do, but anyway). Practically it's also so that one person doesn't have all the keys, and knowledge of how things work.