Q

Which automated quality assurance tools can be used to test software?

If your application development process is not yet addressing security at all six phases of the lifecycle, now is the time to start. Application security expert Michael Cobb explains which quality assurance tools can help.

I have read your February 2007 article, " The dangers of application logic attacks." When talking about prevention recommendations, you reference the need for quality assurance activities. Is there any technical answer for this problem, like software or frameworks?
To the best of my knowledge, there is no automated process or software that can ensure the security of applications as you build them. Indeed, the creation of such a tool is hard to imagine, given the difficulty of simulating all possible logic attacks for a specific, individual app.

Automated quality assurance-verification tools are often used to test software once it has been built, either by performing automated code analysis or vulnerability testing. The latter approach simulates an attacker hacking away at the application, while the former plays the role of an intelligent examiner that reviews the code; product examples include offerings from Ounce Labs Inc., Fortify Software Inc., and SPI Dynamics. For basic testing, you can have your own coders review each other's work, or you can hire an outside coder to offer a fresh perspective on where the gaps may lie.

Despite advances in computer automation, humans are still superior at ensuring applications are developed securely, probably because the best challenge is posed by humans, notably those who can think as an attacker would. However, human work is often more effective if a framework guides it. There are numerous examples of secure software development life cycle processes. The U.S. Department of Homeland Security is a good starting point to learn more.

While some of these frameworks have been applied to massive projects, such as aircraft flight control systems, other development guides can be readily used for much smaller initiatives. Such is the case with Microsoft's Trustworthy Computing Security Development Lifecycle, which breaks the build process into six phases: requirements, design, implementation, verification, release and support/servicing. And while Microsoft is hardly synonymous with software security, the company's Security by Design initiative is a valuable contribution to the creation of more secure applications.

More information:

  • If your application development process is not yet addressing security at all six phases, now is the time to start. In the meantime, be sure to read Ed Skoudis' article on software development best practices that can prevent input-validation attacks.

  • This was first published in June 2008

    Dig deeper on Software Development Methodology

    Pro+

    Features

    Enjoy the benefits of Pro+ membership, learn more and join.

    Have a question for an expert?

    Please add a title for your question

    Get answers from a TechTarget expert on whatever's puzzling you.

    You will be able to add details on the next page.

    0 comments

    Oldest 

    Forgot Password?

    No problem! Submit your e-mail address below. We'll send you an email containing your password.

    Your password has been sent to:

    SearchCloudSecurity

    SearchNetworking

    SearchCIO

    SearchConsumerization

    SearchEnterpriseDesktop

    SearchCloudComputing

    ComputerWeekly

    Close