Abstract

Current research on software vulnerability analysis mostly focus on source codes or executable programs. But these methods can only be applied after software is completely developed when source codes are available. This may lead to high costs and tremendous difficulties in software revision. On the other hand, as an important product of software design phase, architecture can depict not only the static structure of software, but also the information flow due to interaction of components. Architecture is crucial in determining the quality of software. As a result, by locating the architecture-level information flow that violates security policies, vulnerabilities can be found and fixed in the early phase of software development cycle when revision is easier with lower cost. In this paper, an approach for analyzing information flow vulnerability in software architecture is proposed. First, the concept of information flow vulnerability in software architecture is elaborated. Corresponding security policies are proposed. Then, a method for constructing service invocation diagrams based on graph theory is proposed, which can depict information flow in software architecture. Moreover, an algorithm for vulnerability determination is designed to locate architecture-level vulnerabilities. Finally, a case study is provided, which verifies the effectiveness and feasibility of the proposed methods.

Highlights

  • Due to the increasing complexity of software systems, designers tend to focus on the design and implementation of functional requirements

  • Vulnerability of information flow in software architecture is errors resulting from the violation of corresponding security policies during the flow and propagation of information in components, interactions between components and the topology formed from those interactions

  • From the results of the vulnerability analysis of information flow in architecture under the goal of confidentiality conducted in the case, it can be seen that the vulnerability was S7 → S0, which violated the first security policy of information flow under this goal

Read more

Summary

Introduction

Due to the increasing complexity of software systems, designers tend to focus on the design and implementation of functional requirements. Analyzing and evaluating software architecture during the design phase has been proved to be an effective way to find potential problems in the early stages of software life cycle, reduce costs and assure software quality [12] Guided by this idea, some researchers have conducted research on architecture-level security analysis and design [13,14,15,16,17,18,19]. By conducting vulnerability analysis for software architectures that only focus on functional requirements but neglect non-functional requirements, and locating the information flow and propagation that violates security policies at design phase, can help find and fix these problems and prevent these vulnerabilities from residing until later phases. Locating the architecture-level information flow and propagation that violate security policies enables us to fix these vulnerabilities as early as possible, avoiding the possibility for them to reside until later phases of software development cycle.

Software Vulnerability
Vulnerability Analysis on Architecture Level
Static Vulnerability Analysis of Source Code and Executable Programs
Architecture Analysis Based on Graph Theory
Information Flow Control
Assumptions and Framework of the Proposed Method
Vulnerability of Information Flow in Software Architecture
Graphic example of under
Security Policies of Information Flow in Architecture
Security Policies of Information Flow under the Goals of Confidentiality
Security Policies of Information Flow under the Goals of Integrity
Determination and Representation of Service Invocation Elements
Operation
Definition and Construction Approach for Service Invocation Diagram
Approach for Determining Confidentiality and Integrity Levels of Services
Algorithm for Detemining Vulnerability of Information Flow in Architecture
Purpose
Introduction of the Object System
Design and Environment
Service
Result
Output
Results Analysis and Discussion
Comparison with Other Methods
Design phase
Threats to Validity
Conclusions and Future Work
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