Abstract

Introduction Many authors (Graff & Van Wyk, 2002; Howard, 2005; Howard & LeBlanc, 2002; Lipner & Howard, 2005; Microsoft, 2009; Shumba, Walden, Ludi, Taylor, & Wang, 2006; Walden & Frank, 2006; Viega & McGraw, 2002, Viega & Messier, 2003) have discussed integration of the concept of security into the software life cycle; however, none of them has done so within the framework of the Software Engineering Body of Knowledge (SWEBOK). Moreover, from an academic point of view, few university software engineering courses or textbooks incorporate guidelines and practices related to software engineering. Most focus on securing only one phase of the development process, which is coding (Graff & Van Wyk, 2002; Howard & LeBlanc, 2002; Viega & Messier, 2003). From an industry point of view, current surveys indicate that we are far from being able to develop acceptably secure software systems, CERT (CERT, 2003; PricewaterhouseCoopers, 2004) having reported over 5,000 software vulnerabilities in 2005. One of the main reasons for this is that software engineers do not always have a strong background in computer security and lack expertise in secure software system development. In spite of this, in practice, they are asked to develop software systems that call for security features. Without appropriate methodologies and modeling languages to guide them during the development process, it is likely that they will fail to produce effective solutions (McDermott & Fox, 1999). Articulating a body of knowledge is an essential step in the development of a profession because it represents a broad consensus regarding the contents of the discipline. The IEEE Computer Society, with the support of a consortium of industrial sponsors, has published the Guide to the Software Engineering Body of Knowledge (SWEBOK). It has also gained international recognition as ISO Technical Report 19759. Although the concept of security is not explicitly referred to in it, the Guide describes generally accepted knowledge about software engineering, and its ten knowledge areas summarize basic concepts and include a list of references to detailed information. This paper takes from the Guide a summary of the guidelines and practices that can measurably reduce software requirements, as well as design and implementation defects, and improve the education of current and future software developers. Our paper introduces a new way of teaching secure software engineering based on the SWEBOK Guide. This work differs from others by the following outcomes: * The topic of security will be highlighted through the SWEBOK Guide. * The summary of guidelines and practices are derived from the SWEBOK Guide to secure requirements analysis, design, implementation, and testing phases * The proposed topics to be covered in the course during the academic term are provided based on the SWEBOK Guide. Differences between our work and that of others are more detailed in the Literature Review section. The paper summarizes the guidelines and practices derived from the SWEBOK Guide in the Proposed Guidelines and Practices based on SWEBOK section. In the Proposed Course Topics section, it describes the detailed topics to be covered during the academic term, and in the section Suggested Recommendations to Enhance SWEBOK Guide we recommend some possible additions for SWEBOK 2010. The conclusions and our plans for future work are introduced in the last section. Literature Review Many authors have discussed the integration of security into the coding phase of the development process (Graff & Van Wyk, 2002; Howard & LeBlanc, 2002; Microsoft, 2009; Viega & McGraw, 2002, 2003). Howard and Leblanc (2002) described the best practices for writing secure code and stopping malicious hackers in their tracks, based on the knowledge of top security experts at Microsoft. …

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call