Security Requirements Engineering : State of the Art and Practice and Challenges

Security is a property of the system which remains dependable in the face of malice, error, or mischance [3]. In scope of information system, security consists of seven states: confidentiality, integrity, availability, authenticity, accountability, non-repudiation and reliability as defined in ISO/IEC 13335 standard [38]. Introduction of such security goals stem from potential adversaries that attempt to compromise the system. In security terminology, an attacker performs intentional unwarranted actions to break the security of a system by exploiting a vulnerability [71]. The concept of vulnerability is considered as a property of the system or its environment that in conjunction with an attack can lead to the security failure [3]. Assets are another concept in security literature defined as any thing valuable in an organization [38] and the subjects of the attacks [71]. Security requirements engineering frameworks derive security requirements using these security-specific concepts, borrowed from security engineering paradigm. In addition to protection purposes, security requirements are derived from analysis of interactions and dependencies of social actors in the organizational contexts [51, 50]. Such considerations to extract security requirements bring other related issues such as trust among actors, ownership, permission and delegation to security requirements modeling and analysis [23]. Sections 2 and 3 of this paper survey existing security-specific modeling approaches and security requirements framework. It is of interest to study how deriving security requirements based on different security concepts results in different types of security requirements and security design solutions. Existing security-specific modeling and analysis techniques consider different definitions for security requirements resulting from different factors for deriving security requirements. Surveying security-related modeling notations and security requirements frameworks reveals challenges for developing secure software systems. First, existing security requirements frameworks do not consider potential conflicts between security and other functional and non-functional requirements. In current practice, the interaction of security requirements with other design objectives and goals of stakeholders are not analyzed, if any security requirement is gathered at all. Few research contributions address security trade-off analysis explicitly which are studied in section 4. Second challenge stems from the tight relationship between architecture design and security requirements and impact of security mechanisms on other requirements. This requires the requirements engineers take the alternative security solutions into consideration to extract security requirements and resolve the security trade-offs. This requires that security requirements framework expand the analysis from the problem space to the solution space as well. Finally, a major obstacle toward secure software development is the lack of security knowledge and expertise among ordinary software developers. To fill this gap, a major portion of research and practical development in security software engineering is dedicated to develop security knowledge repositories, patterns, security taxonomies, ontologies, and knowledge bases. This paper surveys security knowledge management solutions in section 5. Finally, section 6 gives a conclusion and suggests future research proposals to tackle the