# An Approach to Analyze Vulnerability of Information Flow in Software Architecture
## 3 Proposed Approach
### Construction Approach of Service Invocation Diagram Based on Software Architecture
#### 3.4.3 Approach for Determining Confidentiality and Integrity Levels of Services  
After constructing the service invocation diagram, we need to assign values for the confidentiality and integrity levels of services. The core element for determining the security level of a service is to determine the security level of data carried on that service, that is, to assign values for the confidentiality level and integrity level for that data information. When assigning values, we need to comprehensively consider the confidentiality and integrity levels of the data as well as the security level of services. In this paper we adopt a method for assigning values and determining levels for assets from the security area that are widely accepted [59; 60; 61] and considered practical. The equations for determining the confidentiality level and integrity level for services are as follows. \[SER_{cl}=Round1\sqrt{D_{cl}\times Sec_{l}}+1 \tag{1}\]  
Equation (1) determines confidentiality level, in which \(SER_{cl}\) represents the confidentiality level of a service, \(D_{cl}\) represents the confidentiality level of data carried on that service, which is determined by the criticality level of data confidentiality, \(Sec_{l}\) represents the security level of that service, and \(Round1\) means round up to one decimal. It is worth noting that + 1 in the equation means the confidentiality of the service is higher than that of the data. To simplify, we take 1 for value 1. \[SER_{il}=Round1\sqrt{D_{il}\times Sec_{l}} \tag{2}\]  
Equation (2) determines the integrity level for services, in which \(SER_{il}\) represents the integrity level of a service, \(D_{il}\) represents the integrity level of data carried on that service, which is determined by the criticality level of data integrity, \(Sec_{l}\) represents the security level of the service, \(Round1\) means rounding up to one decimal. The values of \(D_{cl}\) and \(D_{il}\) in Equations (1) and (2) are determined by experts according to Tables 4 and 5. As for security level of services in Equations (1) and (2), when the security of the service is compromised, the software system, the user, and the organization to which the service belongs will be impacted. Different entities will suffer from the impacts of different severity levels. In this paper, we define three severity levels: medium, critical, and extreme. As a result, the security levels impacted by objects and severity levels together can be classified into five level, {1,2,3,4,5}. Level 1 means there is almost no impact; level 2 means there are minor impacts; level 3 means there are some medium impacts; level 4 means there are some significant impacts; level 5 means there are critical impacts. Referring to [62], we propose a determination matrix for service security levels, as shown in Table 6. According to this matrix, combined with the characteristics of the software system, and under the guidance of expert experience, the security level of each service can be obtained. Finally, through Equations (1) and (2), the confidentiality and integrity levels of services can be obtained and thus a service invocation diagram based on architecture can be constructed. In the rest of the paper, we will use this model to locate vulnerabilities of information flow in software architecture. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Value** & **Criticality Level** & **Description** \\ \hline
4 & Critical & Compromising of confidentiality will cause critical losses for system or software \\ \hline
3 & Medium & Compromising of confidentiality will cause medium losses for system or software \\ \hline
2 & Minor & Not very critical; compromising of confidentiality will cause minor losses for system or software \\ \hline
1 & Low & Not crucial; compromising of confidentiality will cause only minimum losses for system or software \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Criticality level of data confidentiality.