安全分析在模型驱动开发及安全关键 Java 任务模式中的应用
安全分析在模型驱动开发中的应用
在安全分析领域,对于高级安全感知组件或能力的故障表示,由于安全依赖中信息有限,通常假设最坏情况并使用“或”门。即只要支持该门的组件中有一个发生故障,该门就会输出“真”。而缓解措施是根据风险降低程度来阻止故障传播,用“与”门表示,且只有缓解措施定义中声明的故障模式才会得到缓解。
示例分析
以“Consult SFPL (System Flight Plan)”这一能力为例,ATC 控制器通过它请求飞行计划信息。该能力需满足安全目标“SO_1: 检测到和未检测到的超过 5 分钟的损坏概率每小时不超过 10⁻⁵”。此能力假设由单个组件“FDM (Flight Data Management)”支持,为实现安全目标,安全工程师为该组件分配了缓解措施“MM_1: 处理服务器在不同节点上复制”。
在模型转换方面,当前可自动构建 FMECA 和 FTA。之前的注释是转换的输入,转换后导入安全工具可得到 FTA 输出。在这个例子中,安全目标 SO_1 转换为顶级事件,“Consult SFPL”和“FDM”映射为“或”门产生的派生事件,“FDM”的“Error”和“Loss”故障模式映射为基本事件。由于“Corruption”故障模式已得到缓解,使用“与”门降低其故障概率,即只有当故障模式发生且缓解措施未能阻止其传播时,FDM 的损坏才会在系统层面显现。
当系统模型规模较小时,可手动在安全工具中创建 FTA,但随着系统模型增长或需要保持系统模型与安全分析的一致性时,自动生成安全分析的优势就会凸显。在验证过程中,使用大型安全模型进行测试,系统模型中包含 21 个