SRE PF M. Heisel Introduction Why RE? Environment Security Requirements Engineering for Security using Problem Frames Conclusions Maritta Heisel paluno - The Ruhr Institute for Software Technology, University of Duisburg-Essen - Germany June 18, 2014 1/ 17 Messages SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions • If you don’t know what you’re doing, it’s hard to do it right. • No software without an environment. • Security is not an add-on. 2/ 17 Software engineering practice? SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions 3/ 17 “You guys start coding while I go find out what the customer wants.” Studies of the Standish-Group (CHAOS Research), ’94/’96/’98/’00/’02/’04/’06/’08/’10 SRE PF 60% M. Heisel 50% Introduction Why RE? 40% Environment Security 30% Conclusions 20% 10% 0% Successful Challenged Failed 1994 16% 53% 31% 1996 27% 40% 33% 1998 26% 46% 28% 2000 28% 49% 23% 2002 34% 51% 15% 2004 29% 53% 18% 2006 35% 46% 19% 2008 32% 44% 24% 2010 37% 42% 21% Imcomplete requirements are the most important reason for failed or challenged projects. 4/ 17 Requirements engineering is a necessity! SRE PF M. Heisel Introduction Why RE? Environment Security • Text may be nice, but is hard to analyze and re-use. Conclusions • Patterns are nice, because we don’t re-invent the wheel all the time. • Models are nice, because they are computer-processable. 5/ 17 Patterns: Problem Frames SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions • A pattern is a kind of template, abstracting from details, representing the essence of an artifact. • Problem frames are patterns for simple software development problems, proposed by Michael Jackson. • “A tool is needed to allow a user to create and edit a certain class of computer-processable text or graphic objects, or similar structures, so that they can be subsequently copied, printed, analysed or used in other ways. The problem is to build a machine that can act as this tool.” Workpieces Editing tool ET!E1 WP!Y2 Y4 Workpieces Party plan a c Command effects US!E3 b John & Lucy User B 6/ 17 b B E3 User effects Correct editing X Editing tool Command X Party editor a: PE!{PlanOperations} PP!{PlanStates} b: JL!{Commands} c:PP!{PlanEffects} [E1] [Y2] [E3] [Y4] Models SRE PF M. Heisel Introduction Why RE? Environment • Use modeling languages, such as UML. • Models can be checked for semantic properties, e.g., coherence to other models. Security • Models can be processed further, e.g. code generation. Conclusions • Model-driven software development is a hot topic. 7/ 17 No software without an environment SRE PF M. Heisel Introduction Why RE? Environment • We always have to take the environment in which the software will operate into account. Security Conclusions • The software is built to enhance the environment, so it has to interact with it in an appropriate way. • Depending on how the environment behaves, the software may be adequate for its purpose, or not. • Example: Ariane 5 accident 8/ 17 Example: smart grid SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions 9/ 17 Context diagram for smart grid SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions 10/ 17 Security requirements engineering SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions • Taking the enviroment into account is especially important for security. • No software is ”absolutely secure”, it just can be secure with respect to its environment. For example, it can withstand a medium strong attacker, but not the NSA. • As a consequence, domain knowledge has to be made explicit (e.g., using models). 11/ 17 Example: Attacker modeling (According to the Common Methodology for Information Technology Security Evaluation (CEM)) 12/ 17 standard, specialized, bespoke, multiple bespoke Value RQ11.4 Specialist expertise Knowledge of the TOE Window of opportunity IT hardware/software or other equipment Value RQ11.3 Attack time one day, one week, two weeks, one month, two months, three months, four months, five months, six months, more than six months one day, one week, two weeks, one month, two months, three months, four months, five months, six months, more than six months laymen, proficient, expert, multiple experts public, restricted, sensitive, critical unnecessary / unlimited, easy, moderate, difficult Value RQ11.2 Conclusions Preparation time Upper/Lower Bound Security Value Original Requirement Environment Rank Why RE? Possible Values Introduction Property (CEM) M. Heisel Quality: Security, Requirement RQ11, Alternatives RQ11.2, RQ11.3, RQ11.4 SRE PF 3 more than six months one month four months two months one month 5 more than six months one month more than six months three months one month 6 multiple experts proficient multiple experts expert proficient 1 public public public public public 2 difficult difficult difficult difficult difficult 4 multiple bespoke bespoke multiple bespoke multiple bespoke bespoke Security is not an add-on SRE PF M. Heisel Introduction Why RE? There is no pulldown menu that will let you select “Security” and then sit back and watch magic things happen. (McGraw) Environment Security Conclusions • Talking about encryption and firewalls does not help. These are solutions, but we must first describe the problems. • Therefore, we must elicit and analyse security requirements in much the same way as we do with functional requirements. • For this purpose, we must identify assets to be protected, analyze the risk for the assets and only then decide on countermeasures such as encryption or access control. 13/ 17 Problem diagram for smart grid security SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions 14/ 17 Method I SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions 1. Structure the environment in which the software will operate by setting up a context diagram. 2. Elicit security requirements. These refer to assets (e.g., meter data), and security goals, such as confidentiality, integrity, and availability. 3. Elicit domain knowledge. In particular, describe the attackers the system should be protected against. 4. Set up problem diagrams, showing what domains are affected by the requirements. 15/ 17 Method II SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions 5. Check the models for semantic integrity conditions. This can be done in a tool-supported way. 6. Analyse requirements for possible conflicts, e.g., with performance requirements or budgetary constraints. 7. Possibly weaken some of the requirements. Only after all these steps have been taken, appropriate security mechanisms, such as encryption or access control, can be chosen. 16/ 17 Conclusions SRE PF M. Heisel Introduction Why RE? Environment Security Conclusions • Without thoroughly analyzing requirements, we cannot get things right. • The environment plays a crucial role and hence must be modeled. This concerns attackers, in particular. • Security must be planned for from the beginning of system and software developement. • Security requirements (i.e., problems, not security mechanisms) must be elicited and analyzed, and balanced with other requirements. • The problem frames approach and UML modeling can support this process. 17/ 17