Thirteen software companies and universities have banded together to create a group focused on educating developers about how to design secure software, releasing a report offering the 10 best practices to avoid common software flaws.
Called the IEEE Computer Society Center for Secure Design, the group includes participants from Google, Twitter, RSA, McAfee, Harvard University and the University of Washington. The group, which has formed under the auspices of the Institute of Electrical and Electronics Engineers (IEEE), met in April at a workshop to compare examples of the design problems encountered by their development teams.
"The price of admission to the workshop was to bring along some real flaws and dump them on the table, so we could have no-holds-barred discussions about the issues and security," Gary McGraw, chief technology officer of vulnerability-scanning firm Cigital and a Center for Secure Design participant, told eWEEK. "This problem is so hard, that working on it together makes a lot of sense."
The group found that about half of all security issues are due to software defects—bugs in the code, McGraw said. Yet, the other half of security problems are caused by poor design, he said.
On Aug. 27, the group released a report to bring together the top-10 recommendations for developers based on issues identified in the case studies presented by its members. The flaws ranged from trusting other software components too much to the frequent improper use of encryption. The issues covered a lot of architectural ground, such as advising developers to consider how adding external components to their software can affect the security of the entire package.
"Software architects and designers—their main tool is a Magic Marker and a whiteboard," he said. "And so we are talking about flaws that can be found at the whiteboard level."
The document, for example, urges developers to use an approach that validates all data and describes a number of recommendations—such as using a centralized mechanism for validation—that an architect could use to incorporate that functionality into a software project.
The guidelines are already being used by the members, McGraw said. Google has used such guidelines to change the design for one of its products resulting in an architecture that eliminated the risk of cross-site scripting issues. Twitter created an internal document that used real examples from the service’s codebase as a case study for engineers, he said.
By offering guidance, the group hopes that program architects will tackle security issues as early in the software development process as possible, avoiding costly remediation of security vulnerabilities.
"The Center for Secure Design will play a key role in refocusing software security on some of the most challenging open design problems in security," Neil Daswani, a member of the security engineering team at Twitter, said in a statement.
"By putting focus on security design and not just focusing on implementation bugs in code, the CSD does even the most advanced companies in the space a huge service," Daswani said.