Secure Software Development: Software Engineering Problem Statement & Student Guide Version 2: 17-Nov-2015 Scenario Part 1 You are a lead security consultant in a large telecommunications enterprise EdgeWise Mobile International, the enterprise has markets within the UK, Europe, America and the Far East, and currently employs 120,000 employees globally. Your team has approximately 70 security consultants globally, supported by additional security subject matter experts who specialise in Cryptography, Security Engineering, Security Architecture and Governance and Risk. The firm is organised into four main lines of business: Retail in store Telephone sales (customer services) Wholesale Digital (internet). Supporting each line of business there are operational teams that cover the following areas: Marketing and Branding Accounts (customer billing) Finance (accounts) Legal Fraud Regulatory compliance Business Information Systems (BIS) Information Technology (IT Support) Telecommunication Engineering Information Security (the team you work in). The firm currently has over 200 million customers who use the company mainly for the provision of mobile phone handsets and their associated pay as you go and monthly contract SIM card packages. Recently the firm has recruited a new chief operating officer (Lewis Pinstripe) who is in charge of the strategic business operating model and product lines. Despite the firm’s relative success within the traditional mobile telecommunications sector, they currently have 16% of global market and require their share price to increase from 300p per share to 400p per share over the next 3 years. Lewis has been informed by her executive colleagues that they need to increase their market share from 16% to 22% within the next 2 years in order to be on target. Lewis has therefore recently decided that the firm needs to embark on an ambitious programme to expand its digital and wholesale channels. His marketing department has decided that the digital channel needs to include the following high-level customer services, so that EdgeWise Mobile can gain a competitive advantage and entice new customers: Mobile applications to support customer account enquiry. Mobile applications to support sales of products. Mobile applications to recruit and drive the firms brand into new markets, such as: o Location services, o Payment services (peer to peer payments), o Entertainment (music and video streaming services). 1 As is usual, Lewis has delegated the programme of work to the Business Information Systems team to operate the project management office (PMO) for the delivery of the project within defined strategic phases. The annual budget for the project is set at 50,000,000 GBP. As one of the lead security consultants for the firm, it is your role to assist the programme management in the identification of security tasks, general advice and guidance, standards adherence (compliance with the firm’s security standards – which are based on the ISO 27001:2013 Annex A controls), as well as appropriate risk identification and acceptance in accordance with the firm’s Information Security Management System (ISMS) that is also based upon ISO27001, but as yet is not fully audited to be compliant. The project team that has been assembled includes the following people: Business Analysts. Solution Architects. Infrastructure Architects. Software Developers. Test Teams. Representatives from key business teams (stakeholders): o Marketing. o Fraud. o Legal. o Regulatory compliance. So far the programme has very little in terms of direction, however, Lewis (who is from a software development background) has stated that the firm’s usual method of software development which is based on the Software/Systems Development Life Cycle (SDLC) is too verbose and bureaucratic; consequently the programme has been charged with not only developing and delivering the new products, but it has also being asked to develop a new governance process that will allow the programme to meet its high-level business requirements quickly and safely with minimal risk to the business. The project management has decided that the first year of the programme will focus on the following deliveries: Quarter 1 – construct the new governance model. Quarter 2 – develop the designs for a new software product to be platformed on Android, iOS, Windows Mobile and Blackberry (RIM) operating systems. Quarter 3 – develop the customer support tools. Quarter 4 – launch the product to staff. The second year will refocus the project on the release of the core mobile application to customer base, ensuring that iterative software releases include new and exciting features that realise Lewis ’ vision for the selling of location, payment and entertainment services. The final steer from Lewis is that the customer registrations with the new mobile applications must be as mobile as possible. Allowing customers to see an advert in the street and decide there and then that they would like to be registered to participate in the service, and register to receive services without the need to answer post delivered mailer responses. The registration process must cater for existing customers of the firm; and It must also be able to expand to extend to other customers of other mobile phone company networks. One month into the development programme at EdgeWise Telecommunications Plc, it is widely recognised that 2 years is actually a very tight timeline in which to deliver the programme, and much emphasis has been made by the senior stakeholders within the business that the programme must deliver prototypes and methodologies within the first year. The PMO, which is panicked and is escalating all teams to mobilise dedicated resources, has 2 therefore decided that delivery milestones for software prototypes shall be based on a 30 day cycle. They have a working prototype for a web service that will broker mobile client requests, and a mobile application. Learning Outcomes The following technical learning outcomes are assessed in this scenario. On completion of the scenario, students will be able to: 1. Explain the differences between RAD and SDLC. 2. Articulate the key risks involved in rapid development life cycles, and prescribe methods for mitigating them 3. Justify an approach for integrating security audit into the development of software Apps and the tasks that will be undertaken by the security team. 4. Undertake a threat analysis against a mobile software app, and identify controls that would mitigate the threats 5. Identify a way in which the customer can register their mobile device with the service securely to mitigate against the threat of malware and social engineering. 6. Explain good practice in securing software and have an awareness of relevant standards and codes of practice. Your Task Security is important to the telecommunications company as it does suffer from customer fraud and has regulatory requirements to adhere to. Traditionally, the business has been guided by the ISMS process that is closely aligned to the SDLC. And as such it is understood that the security team are a key stakeholder by which the project must gain some buy-in before any product line can be a success. As such the project is looking to you to provide them with guidance on: The customer registration process The overall development of the products The governance model o Most large enterprises have a governance framework in which they operate. For example based on SDLC – however, there others that provide agile working. Governance models are closely coupled to project management life cycles and normally involve mandatory ‘gates’ in which the project must pass through before the project is allowed to proceed. For example, no systems within should be allowed to go into production without a service code, risk assessment, operating model, penetration test – the release cycle for systems requires projects to evidence that they have these artefacts. The risk management process. Deliverables 1. Provide an executive summary that identifies the key risks involved in rapid development life cycles, and prescribe methods for mitigating the risks (300 words) 2. Provide consultancy report that identifies the Information Security team’s preferred method for software development, identify the phases for each delivery, and the tasks that will be undertaken by the security team at each phase (1500 words) 3. Undertake a threat analysis against the proposed products, and identify controls that would mitigate the threats (1500 words). 4. Identify a way in which the customer can register their mobile device with the service securely to mitigate against the threat of malware and social engineering (1500 words). 3 Scenario Part 2: Infrastructure During the development of the EdgeWise Telecommunications Mobile Application, the programme team has identified a new hardware based appliance that will undertake TLS deep packet inspection of TCP packets containing XML and SOAP messaging, so that they can check the digital signatures of messages signed with ws-security signatures, and also undertake malware detection. As such there will be a requirement store high value cryptographic keys (i.e. the keys used for decryption of all TLS encrypted flows at layer 4 ingress and egress, and also to be able to digitally sign messages at layer 7). The device must support TLS mutual authentication. The device will be deployed within the firm’s DMZ. The DMZ has zones dedicated to: Management and monitoring – where SNMP managers and other management and monitoring software is stored. Presentation layers – where web forms are located that are customer accessible. Application layers – where the application containing the core business logic is stored. Storage layers – where the database is. Before the product can be used by the programme team must make arrangements for the product to be added to EdgeWise Telecommunications Plc’s approved products list. Your Task Develop a baseline standard that the product must conform to (1500 words): 1. Identify the industry standards and certifications to which you would expect a product such as this to conform. 2. Identify the security requirements that you would expect this device to meet: a) Event logging b) Authentication c) Crypto key storage (HSMs). 3. Provide an overview of TLS in mutual authentication mode, and identify the benefits on a standardisation of using a single set of PKI providers – what policies relating to mutual authentication must the enterprise adopt? 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. 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 3c) 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. 4 Step 7: In this Scenario you will not be implementing a solution, so step 7 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. 5 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 7 8 Planning the implementation Implementation Deciding on best technical, organizational and social outcomes. Proposing solution with justification Building the solution (if appropriate). Deploying the solution (if appropriate). Formal evaluation methods re project success. Personal reflection and evaluation. 6 a) Applying planning and scheduling techniques. Proposing plan and deadlines. Final evaluation What you will be doing at each stage b) c) a) b) c) a) b) c) a) b) c) Individual and team review of scenario text and video resources. Team discussion. Clarification of ambiguities with tutor/facilitator. 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. Determining evaluation criteria through team discussion. Team identification of options considering acceptance issues and organizational fit. Facilitator Guidance. a) b) Team decision and justification. Presentation to tutor in role of main stakeholders. a) b) Review Scenario text and resources. Produce Report identifying the phases for each delivery, and the tasks that will be undertaken by the security team at each phase. a) Team evaluation of performance and project success. Individual reflection on personal learning & development. b) Resources: Aizuddin, A. (2001) The Common Criteria ISO/IEC 15408–The insight, some thoughts, questions and issues. SANS Institute, Available online at: http://www.sans.org/readingroom/whitepapers/standards/common-criteria-iso-iec-15408-insight-thoughts-questionsissues-545 This paper provides an overview of an international effort called Common Criteria (CC), an IT Security evaluation methodology, developed to define and facilitate consistent evaluations of security products and systems,fostering international recognition and trust in the quality of security products and systems. You need to be aware of the Common Criteria. Anderson, R. (2008) Security Engineering: A Guide to Building Dependable Distributed Systems, 2nd Edition, Wiley: http://www.cl.cam.ac.uk/~rja14/book.html An updated (and expanded) version of the 2001 book, widely acclaimed as an in-depth treatment of taking a holistic approach to building secure systems. . A Brief video introduces it, from eurocrypt 2008: https://www.youtube.com/v/jU4QHfi6E3w Axelrod,C.,W. (2012) Engineering Safe and Secure Software Systems , Artech House. Engineering Safe and Secure Software Systems gives readers conceptual explanations about the differences between security and safety; ways to integrate the 2 concepts into the information systems life cycle; technology solutions; and detailed, in-depth case studies. The book also analyzes current practices for security and safety regarding appropriate maturity. It has a comprehensive view and analysis of management and technology solutions that companies require. Ben Othmane, L. , Angin, P. , Weffers, H. , Bhargava, B. (2014) Extending the Agile Development Process to Develop Acceptably Secure Software, IEEE Transactions on Dependable and Secure Computing, (11:6 ) p 497 - 509 This article focusses on: 1) A proposal of a security assurance method for incremental software development. 2) Attempts to combine security engineering into agile software development during the development phase to create “real-life” secure software. 3) The efficiency of the proposed security approach in agile development. Bruno, L. (2012) The Security Development Lifecycle, Available online at: http://social.technet.microsoft.com/wiki/contents/articles/7100.the-security-developmentlifecycle.aspx This Technet article explains the Microsoft Security Development Lifecycle (SDL), which is a software development process that helps developers build more secure software and address security compliance requirements while reducing development cost. “The process encompasses the addition of a series of security-focused activities and deliverables to each of the phases of Microsoft's software development process. These activities and deliverables include the development of threat models during software design, the use of static analysis code-scanning tools during implementation and the conduct of code reviews and security testing during a focused security push." Busch,M., Koch, N. & Wirsing,M. (2014) Evaluation of Engineering Approaches in the Secure Software Development Life Cycle, Lecture Notes in Computer Science Volume 8431, 2014, pp 234-265 7 The abstract states: “Our evaluation approach, called SecEval, supports the search and comparison of these artifacts. SecEval comprises: (1) a workflow that defines the evaluation process, which can be easily customized and extended; (2) a security context model describing security features, methods, notations and tools; (3) a data collection model, which records how data is gathered when researchers or practitioners are looking for artifacts that solve a specific problem; (4) a data analysis model specifying how analysis, using previously collected data, is performed; and (5) the possibility to easily extend the models, which is exemplarily shown for risk rating and experimental approaches. The validation of SecEval was performed for tools in the web testing domain” CERT Secure Coding Resources https://www.cert.org/secure-coding/ CMU’s CERT division provides significant input on secure coding which you should be aware of. The CERT Division has been extremely successful in the development of secure coding standards, which have been adopted at corporate levels by companies such as Cisco and Oracle, and the development of the Source Code Analysis Laboratory (SCALe), which supports conformance testing of systems against these coding standards. Common Criteria (2012), available at: https://www.commoncriteriaportal.org/cc/ The Common Criteria for Information Technology Security Evaluation (abbreviated as Common Criteria or CC) is an international standard (ISO/IEC 15408) for computer security certification. It comprises 3 parts: Part 1 - Introduction and General Model. defines general concepts and principles of IT security evaluation. Part 2 - Security Functional Requirements establishes a set of security functional components as a standard way of expressing the security requirements for IT products and systems. Part 3 - Security Assurance Requirements. This part produces a catalog of establishes set of assurance components that can be used as a standard way of expressing the assurance requirements for IT products and systems. .The CC should be used to produce deliverables to meet the (CC) requirements. ISO/IEC 15408-1:2009 Information technology -- Security techniques -- Evaluation criteria for IT security -- Part 1, Part 2, Part 3 Available from: http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html The ISO standards from the Common Criteria. Kissel,R. et al. (2008) Security considerations in the System Development Life Cycle NIST SP80064-rev 2. NIST. Available online: http://csrc.nist.gov/publications/nistpubs/800-64Rev2/SP800-64-Revision2.pdf NIST provides authoritative publications. SP800-64. This guide focuses on the information security components of the SDLC. First, descriptions of the key security roles and responsibilities that are needed in most information system developments are provided. Second, sufficient information about the SDLC is provided to allow a person who is unfamiliar with the SDLC process to understand the relationship between information security and the SDLC. This document integrates the security steps into the linear, sequential (a.k.a. waterfall) SDLC. Mano,P. (n.d.) The Need for Secure Software: (ISC)2 Available from: https://www.isc2.org/uploadedfiles/%28isc%292_public_content/certification_programs/csslp /csslp_whitepaper.pdf [ Last Accessed: 25-Nov-15] A good introduction which discusses the drivers and need for secure software, relationship to SDLC and approaches to achieve security. Mehta, D.M. (n.d.) Effective Software Security Management: OWASP 8 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.”. This paper describes the need and methodology of improving the current posture of Application Development by integrating Software Security. It attempts to provide an effective platform for organizations to understand how they can align software security in their SDLC. Microsoft (2005) At a Glance: Security Code Review, available online at: https://msdn.microsoft.com/en-us/library/ff649921.aspx This provides a summary view of the main input, output, and steps for performing a security code review, together with links to more detailed information. , NIST (2002) SECURITY REQUIREMENTS FOR CRYPTOGRAPHIC MODULES FIPS PUB 140-2 FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION. Available online at: http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf Another detailed standard from NIST which contains the requirements and standards for cryptography modules that include both hardware and software components. The standard provides four increasing, qualitative levels of security intended to cover a wide range of potential applications and environments PCIDSS Various papers, and standards, https://www.pcisecuritystandards.org/index.php A key standard for payment cards. The Payment Card Industry Data Security Standard (PCI DSS) is a proprietary information security standard for organizations that handle branded credit cards from the major card schemes. Certification is critical for conducting ecommerce. Seacord, R. (2011) Top 10 Secure Coding Practices, CERT, Available online at: https://www.securecoding.cert.org/confluence/display/seccode/Top+10+Secure+Coding+Prac tices;jsessionid=70BCBBA55CA2F2FD12DC29F4EDDB6D4E A very brief, focussed list of coding practices for achieving security. Very relevant to this scenario. Christian Collberg and Jasvir Nagra (2009) Surreptitious Software: Obfuscation, Watermarking, and Tamper proofing for software Protection. Addison-Wesley Professional, Print ISBN-13: 9780-321-54925-9 An excellent book if you want to get into the subject in depth Gutmann, P. (n.d.) Everything you Never Wanted to Know about PKI but were Forced to Find Out. Available online from: http://www.cs.auckland.ac.nz/~pgut001/pubs/pkitutorial.pdf X.509 is the standard for a public key infrastructure (PKI). It specifies, amongst other things, standard formats for public key certificates, certificate revocation lists, attribute certificates, and a certification path validation algorithm. This presentation provides a quick outline. IISP Framework C2 – Secure Development 9 Implementing secure systems, products and components using an appropriate methodology. Defining and implementing secure development standards and practices including, where relevant, formal methods. Selecting and implementing appropriate test strategies to demonstrate security requirements are met. Defining and implementing appropriate processes for transfer of a product/system to operation/sale/live use. Defining and implementing appropriate secure change and fault management processes. Minimising the risk to an asset or product through the ‘standard’ design and development processes. 10 Verifying that a developed component, product or system meets its security criteria (requirements and/or policy, standards & procedures). Analysing problem reports for signs of anomalous security issues, coordinating research into vulnerabilities and instigating corrective action where necessary. Specifying and/or implementing processes that maintain the required level of security of a component, product, or system through its lifecycle. Managing a system or component through a formal security assessment Assessment Grading Criteria Learning Outcome LO1. Explain the differences between RAD and SDLC. LO2. Articulate the key risks involved in rapid development life cycles, and prescribe methods for mitigating them LO3. Justify an approach for integrating security audit into the development of software Apps and the tasks that will be undertaken by the security team. LO4. Undertake a threat analysis against a mobile software app, and identify controls that would mitigate the threats LO5. Identify a way in which the customer can register their mobile device with the service securely to mitigate against the threat of malware and social engineering. LO6. Explain good practice in securing software and have an awareness of relevant standards and codes of practice Evidence Pass (40-49%) Sound Pass (50-59%) Very Good Pass (60-69%) Excellent (70-100%) Team Report & Standard Most valid risks for RAD identified. Some controls identified. Governance model identified showing some phases/ tasks. Some device threats and controls identified. Appropriate id techniques for registration Appropriate industry standard identified. Some security requirements identified Some TLS key points identified Reports are structured with appropriate headings. Acceptable spelling and grammar. Mostly relevant content. Almost all risks for RAD identified correctly and in suitable format. Links are made between risks and controls. Governance model identified showing most phases & sec tasks. Most device threats and controls identified Appropriate id techniques for registration with justification linked to vulnerabilities. Appropriate industry standard identified. Most security requirements identified Most TLS key points identified Alternatives are discussed, but may be briefly. Report structured with appropriate headings. Accurate spelling and grammar. Generally appropriate level of detail, but inconsistent All major risks for RAD identified correctly in suitable format, and prioritised appropriately with discussion of controls. Governance model identified showing all phases & sec tasks. Almost all device threats and controls identified Appropriate id techniques for registration with justification linked to vulnerabilities Appropriate industry standard identified. Almost all security requirements identified Almost all TLS key points 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. Comprehensive list of risks for RAD, controls and evaluated and prioritised appropriately contrasted with SDLC. Governance model identified showing all phases & sec tasks with appropriate justification for preferred method. Comprehensive discussion of device threats and controls identified Critical evaluation of id techniques for registration with justification linked to vulnerabilities in platform and information. Appropriate industry standard identified. Almost all security requirements identified with critical justification. Almost all TLS key points identified with critical discussion. Report structured with appropriate headings. Accurate and consistent English throughout report. Clear, concise and complete with appropriate level of detail throughout almost all report. 70% Team Presentatio n 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% 11 Weight Working With Others: Participate constructively in team by 12 Taking responsibility Showing sensitivity and provide supportive feedback to others. Meeting deadlines Timekeepin g, 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. Completes most work allocated. NB Students can be excluded from teams for not meeting these requirements. 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%