An article in the December 2002 issue of Baseline magazine talks about securing your network from insiders. Its based on a rather fascinating story of a programmer named Chris Harn who worked for the world's largest betting software vendor, Autotote, and rigged the system to pay-off $3 million to one of his co-conspirators. The article gives the following advice:
- Limit Access - Set strict limits on who has access to production servers, where data is most sensitive, and enforce them.
- Create Activity Logs - Activate auditing mechanisms and review such logs randomly and religiously.
- Monitor the Network - Establish a separate authentication server that stores monitored data in a secure location that programmers cannot access.
- Hire Carefully - Do background checks on all staffers who have access to critical data.
- Regulate Hours - Deny employees access to the network during off-hours.
I'm not sure how, in reality, you do the last one. I bought a high bandwidth connection for each developer and encouraged them to use it because I found it was the cheapest way to get programmers to work more hours. Besides, I'm not sure its strictly necessary if you've got sufficient separation between development and production servers. Having a bright line between development and production servers is a great idea, not only for security, but reliability as well. My paper on tiered support gives much more detail about this.