- Mythbuster busts his own tale
- 10 open source companies to watch
- Sony recalls 73,000 Vaio laptops
- Tool to evade China's Web censorship
- Chrome and Firefox and add-ons
Newsletters | Podcasts | Chats | Opinions | RSS Feeds | This Week In Print | IT Careers | Community | Reports | Downloads | Slideshows | New Data Center
Partner Sites:App Performance | On Demand Security | Networking Solution | SOA | Value of WDS
In software security, there's a depressing but indisputable truth: No matter what you do or how much money you spend making code more resilient, fortifying the network or electro-shocking developers who write bad code, you can't get rid of all the security bugs. Not only is it impossible to make 100% secure software; it's not cost effective. If we accept that bad things are going to happen, we can take simple steps throughout the development life cycle to weave a software safety net that limits the damage and pain of the inevitable, uncaught vulnerabilities that resist our best efforts at prevention.
Let's look at some of the safety nets that can be woven into software development:
Requirements safety net: As early as product inception and requirements gathering, developers should be asking tough questions about postdeployment patching. How easy is it? Can it be patched under rampant vulnerability exploitation? What are customers' needs for patch deployment? What patch impact will users tolerate (downtime, patch size and so on)? Determining customer/operations requirements around failure and patching upfront can help make software maintainable. Understanding security needs can forge an incident-response process that minimizes operational risk.
Design safety net: During design, "planning to fail" is about lessening the severity of vulnerabilities that surface later. Classic security design principles can go a long way, such as the principle of least privilege (giving the application only the rights it needs for a task) and compartmentalization (segmenting the application). Beyond these, think carefully about error handling. Asking "What if the bad guy had control over this component?" will help sharpen focus to contain damage and put up barriers between components and critical data.
Development safety net: This is where the largest volume of vulnerabilities is introduced in software. Developer security training helps with prevention, but to catch common mistakes, a source-code scanner or security-specific code reviews can help enforce specific coding policies.
Testing safety net: Even if you test security, your test cases are probably going to miss issues. There are techniques that can help you hedge your bets. For example, fuzz testing - the practice of randomly corrupting data through software's interfaces - can reveal vulnerabilities that testers may have never conceived of.

Gartner summarizes its view on Application Delivery Controllers, evaluates strengths and weaknesses...
Vulnerability Management For DummiesDownload this concise book "Vulnerability Management for Dummies," to learn about the simple steps...
The ROI and TCO Benefits of Data Deduplication for Data Protection in the EnterpriseThis paper examines and quantifies the costs and benefits of backup with deduplication storage as...

Life on the edge of your WAN has changed dramatically. With the need to deliver advanced services,...
PoE Plus: Impact on the PoE MarketThe standard for Power over Ethernet (PoE), IEEE Std. 802.3af(tm)-2003, advanced networking,...
Harnessing the power of communications to increase workplace performanceDue to the convergence of IT and telecommunications technologies, the business workplace has been...

We have so many holes punched in our firewalls today that many industry insiders question the value...
The self-managed networkWe aren't there yet, but advances in network and systems management tools are making it possible to...
Partner Content
Brilliantly simple security and control solutions for email, web and endpoint
www.sophos.com
Stopping data leakage
Learn how to exploit your current security investment to control the information that flows into, through and out of your network.
Download the white paper.
Why detection rates aren't enough
Evaluating endpoint security products is a time-consuming and daunting task. Learn the six critical questions you need to ask prospective vendors to get the right endpoint solution.
Download the white paper.
Applications: taking back control
Employees installing unauthorized applications is a growing threat to business security and productivity. Cost-effectively reduce this threat by integrating control into your malware protection.
Learn more today.
Comment