Secure Development: Web Site Development Problem Statement & Student Guide Version 3: 25th November 2015 Scenario description RapidWeb is a small software house specialising in the development of Web sites and applications. It has grown rapidly by adopting an aggressive pricing strategy when tendering for work. Low prices are achieved by setting short development timescales. However, customer complaints and time spent on bug fixes have now started impacting on their profitability. Many of the complaints relate to poor security in the web sites delivered by RapidWeb. In an attempt to address this issue, you have been appointed as the new Application Security manager, responsible for ensuring security is engineered into the company’s systems. You are pleased to hear that at the kick-off meeting of a project, the director in charge stated, “This website has to look good, be easy and intuitive to use, and it has to be secure.” However, at the end of this project, a more accurate statement would have been, “This website has to look great, be easy for me to use, and if we have time and it doesn’t compromise the first two aims, be secure.” In the project, the general attitude was that security was interfering and slowing up the “amazing creation” being conjured up by the graphic designers. Those tasked with coding the site were forced to spend most of their time writing JavaScript and testing to ensure they had produced the desired pixel-perfect effect. Protestations about the lack of security control testing were quickly batted away by references to a variety of well-known sites that “don’t have that check, so why should we?” You ask to see the security guidelines and coding standards and are met mostly with blank looks, one developer mutters something about using the MVC model. Learning Outcomes On completion of the scenario, students will be able to: 1. Identify and explain the top 10 security threats and vulnerabilities to web sites and how they can be exploited. 2. Explain approaches to mitigating the threats 3. Evaluate technical and non-technical approaches/ models to develop secure web software. 4. Justify an approach for integrating security audit into the development of Web Applications and the associated security tasks. 5. Explain good practice in securing software and have an awareness of relevant standards and codes of practice. 1 Your Task Clearly there isn’t a security culture here, and it’s your job to change it. Furthermore, it is apparent that the development team (and director) are unaware of the threats and vulnerabilities that their web applications experience. Discussions with the director identify that there are no processes or standards for ensuring good security, and the director requests that you deliver a report and presentation which meets the following terms of reference: 1. Identify and explain the top 10 threats to web applications and actions to mitigate them. 2. Identify the preferred method for secure Web development, identify the phases for each delivery, and the security audit tasks / tests that will be undertaken at each phase. 3. Specify a training plan to address the current needs. 4. Produce an outline contents for a handbook of secure coding guidelines. Reflection on Learning It is also important that at the end of the scenario you should reflect on your learning and team working and identify what worked well, what didn’t and actions for future improvement. 2 The Consulting Process One of the benefits of Problem-based Learning is that you learn professional skills as well as technical knowledge. The process we ask you to follow to explore and provide solutions to the problem also mirror those used in consultancy. In order to assist you with the process, the following table shows the activities we would expect you to complete in your PBL team. You should read this carefully and make sure you are familiar with both the generic activities (in column 2) and the specific ones in column 3. Steps 1 & 2 will be conducted in the first PBL tutorial. Step 3 a) and b) comprises your individual research, and summarizing your learning. Step 3 c) takes place as a sharing and teaching session at the next tutorial. This process of sharing and teaching others is extremely beneficial to your own learning. Step 4, 5, 6 consist of team work and whilst they are logically distinct, they may take place at the same meeting as stage 3c) depending on the schedule of meetings. Step 7: In this Scenario you will not be planning or implementing a solution, so this step is not undertaken in this scenario Step 8 should be completed at the end of the scenario, both individually and as a team, to identify what you’ve learned and how you can improve your learning and team performance in future. Your tutor/ facilitator will discuss it with you. 3 The CSKE Consulting/ Learning Model 1 Problem-solving model What PBL normally includes’ Understanding organizational history and context Scenario analysis Socio-technical organizational analysis. Clarification of ambiguities Requirements Analysis: identify key issues Simulated consultation with stakeholders (e.g. through role-play and/or online interaction). Reviewing technology/ processes in use. Identifying learning goals. Facilitator Guidance. Individual research & learning to resolve knowledge gaps. Summarising & reflection. Teams share learning. Determining and agreeing evaluation criteria and process. Identifying technical possibilities, considering acceptance issues and organizational fit. Facilitator Guidance. 2 3 4 Determining the problem to be resolved Identifying/ learning necessary knowledge Identifying alternative solutions 5 Choosing optimal solution 6 Planning the implementation What you will be doing at each stage a) Deciding on best technical, organizational and social outcomes. Proposing solution with justification Applying planning and scheduling techniques. Proposing plan and deadlines. Building the solution (if appropriate). Deploying the solution (if appropriate). Formal evaluation methods re project success. Personal reflection and evaluation. b) c) a) b) c) a) b) c) a) 8 Implementation Final evaluation 4 Team review of scenario: identifying key issues. Identifying learning goals. Team publish action list & summary in forum. Individual research & learning to resolve knowledge gaps. Individually creating summary of learning and how it applies to the scenario. Team sharing learning/ teach each other. c) Determining evaluation criteria through team discussion. Team identification of options considering acceptance issues and organizational fit. Facilitator Guidance. a) Team decision and justification. b) c) Review Scenario text and resources. Produce Report identifying the threats & controls, preferred development methods, training plan, handbook outline. Presentation to Tutor as stakeholder. b) d) 7 Individual and team review of scenario text and video resources. Team discussion. Clarification of ambiguities with tutor/facilitator. a) b) Team evaluation of performance and project success. Individual reflection on personal learning & development. Resources There are a number of resources available to you: Cobb, M. (2012) Building a secure website and maintaining good website design. Computerweekly.com, available online at http://www.computerweekly.com/tip/Building-asecure-website-and-maintaining-good-website-design [last accessed 24/11/15] A short, readable article providing tips for secure websites. A good starting point. Cobb,M. (2011) Secure SDLC for SMBs available online at http://www.computerweekly.com/tip/Secure-software-development-lifecycle-An-approachfor-SMBs last accessed [last accessed 24/11/15] Another short article from Computer Weekly discussing approaches for SMEs developing Apps. Cobb,M. (2011) Web application security guidelines available online at http://www.computerweekly.com/tip/Web-application-security-guidelines-for-developers last accessed [last accessed 24/11/15] This article has further hints and links. Hunt, T. (2015) Web Security Fundamentals: Varonis. Available from: http://info.varonis.com/web-security-fundamentals-course [Last Accessed: 25/11/15] An excellent introductory video course (1 hr) which explains four important vulnerabilities and how to control the risks. These are: SQL Injection; Transport Layer Security; Insecure Password Storage; Cross-Site Scripting; Weak Account Management. Institute of Information Security Professionals (2010) IISP INFORMATION SECURITY SKILLS FRAMEWORK, Available online at: https://www.iisp.org/imis15/iisp/Accreditation/Our_Skills_Framework/iispv2/Accreditation/Ou r_Skills_Framework.aspx [last accessed 24/11/15] A detailed document which will be useful for specifying training and skills levels in this scenario. Microsoft (2015) Security Development Lifecycle, Microsoft, available online at: http://www.microsoft.com/en-us/sdl/default.aspx [last accessed 24/11/15] The Security Development Lifecycle (SDL) is a software development process that helps developers build more secure software and address security compliance requirements while reducing development cost OWASP (2015) OWASP Top Ten Project Available online at: https://www.owasp.org/index.php/OWASP_Top_Ten_Project [last accessed 24/11/15] The OWASP Top Ten represents a broad consensus about what the most critical web application security flaws are. Project members include a variety of security experts from around the world who have shared their expertise to produce this list. Rather vital for this scenario. Stuttard,D. & Pinto,M. (2011) The Web Application Hacker’s Handbook, 2nd Edition, Wiley. 5 An excellent, detailed book which would be worth skimming for this scenario. It goes into much more depth than required. Symantec (2015) Website Security Threat Report 2015: Symantec. A good industry report that identifies trends over several years, high profile vulnerabilities, cybercrime, (another) ‘top 10 vulnerabilities, websites with malware, malicious web domains. Provides excellent background. The Open Web Application Security Project (OWASP) Available online at: https://www.owasp.org/index.php/Main_Page [last accessed 24/11/15] You should be aware of OWASP, it is important. They say that :”The Open Web Application Security Project (OWASP) is a not-for-profit charitable organization focused on improving the security of software. Our mission is to make software security ‘visible, so that individuals and organizations worldwide can make informed decisions about true software security risks. OWASP WebGoat Project https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project The primary goal of the WebGoat project is simple: create a de-facto interactive teaching environment for web application security. SANS Institute (2004) A Security Checklist for Web Application Design http://www.sans.org/reading-room/whitepapers/securecode/security-checklist-webapplication-design-1389 [last accessed 24/11/15] A bit more than a checklist. It provides a description of the security challenges introduced by externally facing web applications. It provides the knowledge necessary to articulate to developers the security requirements for a specific web application. Web Application Security Consortium http://www.webappsec.org [last accessed 24/11/15] Another body you should be aware of: The Web Application Security Consortium (WASC) is 501c3 non profit made up of an international group of experts, industry practitioners, and organizational representatives who produce open source and widely agreed upon best-practice security standards for the World Wide Web. Whitehat security (2015) Website Security Statistics report. Another useful background report which overlaps with the Symantec report, but some different emphasis. Worth a skim read. Other security guidelines include: The following are technical resources, not necessary for completion of this scenario, but for interest if you are a technical developer: https://github.com/OWASP/DevGuide/tree/dc5a2977a4797d9b98486417a5527b9f15d8a251/ DevGuide2.0.1 [last accessed 24/11/15] The NSA also provide useful sources of generic information - guidance on Information Assurance security solutions: NSA Methodology for Adversary Obstruction; Defensive Best Practices for Destructive Malware; Top 10 IA Mitigation Strategies https://www.nsa.gov/ia/mitigation_guidance/index.shtml The following are PHP general coding standards which are not security specific but incorporate the basics: http://pear.php.net/manual/en/standards.php [last accessed 24/11/15] Coding standards https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md 6 Coding Style Guide https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines 7 WebAppSec/Secure Coding Guidelines: a concise and consistent approach to secure application development of Mozilla web applications and web services Assessment Grading Criteria Learning Outcome LO1. Identify and explain the top 10 security threats and vulnerabilities to web sites and how they can be exploited. LO2. Explain approaches to mitigating the threats LO3. Evaluate technical and non-technical approaches/ models to develop secure web software. LO4. Justify an approach for integrating security audit into the development of Web Applications and the associated security tasks. LO5. Explain good practice in securing software and have an awareness of relevant standards and codes of practice Working With Others: Participate constructively in team by Taking responsibility Showing sensitivity and provide supportive feedback to others. Meeting deadlines Evidence Pass (40-49%) Top 10 Security Risks identified. Some controls identified. Development model identified showing some phases/ tasks. Team Report Appropriate industry standard identified. Acceptable spelling and grammar. Mostly relevant content. Some good quality references provided Sound Pass (50-59%) Top 10 Security Risks explained, identifying vulnerabilities Links are made between risks and controls. Development model identified showing most phases & sec tasks. Appropriate industry standard identified. Alternatives are discussed, but may be briefly. Report structured with appropriate headings. Accurate spelling and grammar. Generally appropriate level of detail, but inconsistent Good quality references provided with correct syntax. Range may be limited. Very Good Pass (60-69%) Thorough discussion of top 10 risks, vulnerabilities and exploits in suitable format, and prioritised appropriately with clear discussion of appropriate controls. Development model identified showing all phases & sec tasks, linked to standards and risks. Appropriate industry standard identified. Alternatives are discussed highlighting key issues. Report structured with appropriate headings. Written in clear consistent and appropriate (business) style of English. Technical detail explained appropriately and consistently. An appropriate range of good quality references provided with correct syntax. Excellent (70-100%) Comprehensive list of risks , identifying emerging threats. Risks, evaluated and prioritised appropriately and clearly linked to appropriate controls. Development model identified showing all phases & sec tasks with appropriate justification for preferred method. Critical evaluation of alternatives, supported by compelling evidence linked to appropriate industry standards or research. Discussion of coding best practices, data storage issues and hacker mentality. Almost all security requirements identified with critical justification. Weight 70% Report structured with appropriate headings. Accurate and consistent English throughout report. Clear, concise and complete with appropriate level of detail throughout almost all report. An appropriate range of good quality references provided with correct syntax. Team Presentation Presentation is consistent with, and relates to report. As pass and presentation emphasises key points and has balanced content. As sound pass and presentation clearly links features/ benefits of solution with client needs and problems. Presentation is persuasive, balanced, thorough and clearly links features/benefits of solution to client needs/p[problems 20% Timekeeping , oral contribution s, VLE postings, timeliness of work produced. Usually communicates quickly with others if problems attending or meeting commitments. On time for most meetings. Considered reliable by team mates. Almost always communicates quickly with others & renegotiates if problems attending or meeting commitments. Shares work with others in timely way. As Sound pass and on time for almost all meetings. Completes all work as agreed. As Very good pass and shows initiative / leadership in some areas of work. 10% 8 Completes most work allocated. NB Students can be excluded from teams for not meeting these requirements. 9