CERT'S PODCASTS: SECURITY FOR BUSINESS LEADERS: SHOW NOTES

Building More Secure Software

Key Message: Software security is about building better, more defect-free software to reduce vulnerabilities that are targeted by attackers.

Executive Summary

In addition to computer, network, IT, and information security, software security (which includes application security) is starting to emerge as the next area to tackle. Software security means building better, defect-free software that is more able to resist, tolerate, and recover from attacks. As the security community deploys more effective solutions to address IT and information security vulnerabilities, attackers are targeting vulnerable application software with much greater frequency.

In this podcast, Julia Allen, a senior researcher with CERT, discusses why business leaders need to start paying attention to software security. Julia, along with several CERT and Cigital authors, has written a new book in the Addison-Wesley SEI/CERT and Software Security Series titled Software Security Engineering: A Guide for Project Managers. This book and the Department of Homeland Security Software Assurance Program's Build Security In web site serve as the basis for this conversation.


PART 1: SOFTWARE SECURITY IS JUST GOOD BUSINESS

Defining Software Security

Typically, when organizations think about security, they think about physical, IT, computer, network, and information security; or they think about protecting sensitive and personal information.

Software security is:

Software that is built with security in mind is less vulnerable to attack and a bit more bulletproof.

Attackers Are Getting Smarter

Attackers:

Software Security Is Good Business

The marketplace is starting to demand more secure software products.

The total cost of ownership for software can be upwards of 50-80% during the operations and maintenance phases, due to poor software quality.

Upwards of 50% of software vulnerabilities are design flaws that could have been detected much earlier in the life cycle.

It can be anywhere from 100 to 1000 times more cost and schedule effective to identify a software defect earlier in the life cycle versus finding it during operations.

We just can't keep up by addressing software security solely as an operational concern.

Why Is Software So Complex?

Software complexity stems from:

Addressing security in the face of this increasing complexity is a daunting undertaking.


PART 2: DEVELOP SOFTWARE WITH A SECURITY MIND-SET

How To Think About Software Security

Tackle security as a software development life cycle issue:

Think like an attacker:

Address software security as a risk management issue, assessing risk continuously during each life cycle phase. Risks will change over time.

Some Useful Software Security Practices

First of all, integrate software security practices into your organization's software development life cycle. Don't make it something new or distinct from your normal process.

Examples of good practices include:

Getting Started

Useful first steps include:

That said, most organizations today start with secure coding practices along with code analysis, peer reviews, and lower-level testing. These practices are in broader use and thus more mature.

For any improvement initiative, we recommend:

Tackling the tough issue of legacy systems and third-party software, while challenging, can result in high payoff.

Resources

The Department of Homeland Security Software Assurance Program's Build Security In web site

Allen, Julia; Barnum, Sean; Ellison, Robert; McGraw, Gary; Mead, Nancy. Software Security Engineering: A Guide for Project Managers, Addison-Wesley, 2008.

CERT podcast: How to Start a Secure Software Development Program

CERT podcast: Identifying Software Security Requirements Early, Not After the Fact

Copyright 2008 by Carnegie Mellon University