# Embedding Security Awareness in IoT Systems: A Framework for Providing Change Impact Insights
## 3 Approach
### Generate System-Call Dependency Graph (ScD Graph) and Calculate Importance Factor (IF)
The complete list of processes with their corresponding _IF_s is provided in Table 3.  
The estimated _IF_s of the processes align well with our expectations, given that the system's primary functionality is to activate the irrigation actuator upon detecting low soil moisture, while the key security requirement is to prevent DDoS attacks to ensure timely responsiveness of testbed processes. Based on our implementation knowledge, we recognize that the _DecideToTriggerActuator_ process plays a pivotal role by seamlessly connecting three layers of the IoT architecture. Deployed in the Cloud Layer, it transmits the trigger signal to both the Edge and Application layers, as illustrated in Figure 1. A failure in _DecideToTriggerActuator_ results in a breakdown of inter-layer communication, thereby disrupting the timely execution of two other critical processes: _SendTriggerToActuator_ in the Edge Layer and _ShowAnalysisResult&TriggerDecision_ in the Application Layer. Following _DecideToTriggerActuator_, the processes _TriggerActuatorToActuate_ and _GetMLModelPrediction_ are identified as the second and third most critical nodes, respectively, as listed in Table 3. The _TriggerActuatorToActuate_ process is responsible for linking the Edge and Physical layers and directly facilitating actuator activation based on low soil moisture detection. Meanwhile, _GetMLModelPrediction_ is a foundational process upon which _DecideToTriggerActuator_ depends. A failure in _GetMLModelPrediction_ cascades to disrupt _DecideToTriggerActuator_, which in turn affects _ShowAnalysisResult&TriggerDecision_, _SendTriggerToActuator_, and _TriggerActuatorToActuate_, thereby impacting all three architectural layers. Failures in either _ShowAnalysisResult&TriggerDecision_ or _SendTriggerToActuator_ compromise data transmission across two layers, undermining seamless system coordination. Other processes such as _ExecuteMLModel_, _FeedSensorDataToMLModel_, _PreprocessedSensorData_, and _ReceivedSensorData_ are confined to the Cloud Layer but are integral to the data pipeline on which _DecideToTriggerActuator_ relies. The process _SendSensorDataToCloud_ connects the Edge and Cloud layers and is primarily responsible for data collection and transmission. However, given that the architecture supports multiple edge devices transmitting data in parallel, the failure of a \begin{table}
\begin{tabular}{l l} \hline \hline
**Process Name** & **Importance Factor** \\ \hline _DecidetoTriggerActuator_ & 0.156 \\ \hline _TriggerActuatorToActuate_ & 0.094 \\ \hline _GetMLModelPrediction_ & 0.09 \\ \hline _ShowAnalysisResult&TriggerDecision_ & 0.086 \\ \hline _SendTriggerToActuator_ & 0.086 \\ \hline _ExecuteMLModel_ & 0.082 \\ \hline _FeedSensorDataToMLModel_ & 0.074 \\ \hline _PreprocessedSensorData_ & 0.066 \\ \hline _ReceivedSensorData_ & 0.057 \\ \hline _SendSensorDataToCloud_ & 0.049 \\ \hline _AggregateSensorData_ & 0.041 \\ \hline _CleaningSensorData_ & 0.033 \\ \hline _CollectSensorData_ & 0.025 \\ \hline _SendSensorDataToEdge_ & 0.016 \\ \hline _ReadSensor_ & 0.008 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: List of processes in IoT-based smart irrigation system (testbed) and their importance factors. single device does not critically impair overall testbed functionality. A similar assessment applies to the _SendSensorDataToEdge_ process. Their failure is not considered critical based on our domain knowledge and implementation experience. The list of _IF_s for each process in the systems is stored as _Process Importance_ in _GenerateAttackStatus@ConsequenceResult_ component, as illustrated in Figure 3, and is utilized by the _ExtractGoalAttributeRelation_ process during the generation of the outcome set, \(S_{\textit{sac}}\). In the final JSON report generated for any detected attack incident, the affected process along with its corresponding _IF_ is included, as shown in Figure 6. By examining a process's _IF_, we gain insight into the potential impact of uncertain changed conditions on the system's overall functionality.