构建一个安全的软件系统时,可能遇到的风险及解决方案(未完)
来源:互联网 发布:awm和m200性能数据 编辑:程序博客网 时间:2024/05/20 03:37
随着汽车工业的发展,汽车早以不是那个由一堆零件组成的大机器,而是由机械和电子器件构成的整体系统。并且,这个系统还在随着用户的需求与自身发展的需要随时进化中。由于汽车是一个需要高度安全的系统,并且,这个系统和外界还有着直接或间接的联系(如,各种各样的外设与网络连接),这都造成了新的安全挑战。因此,问题在于如何设计和验证一个由那些不大可能经过安全认证的组件构成的系统是可靠的,及经过严格的工程化设计的。
车载系统风险的分级主要从以下几个方面来考虑:
1. 问题发生的可能性;
2. 问题发生后可能造成的危害;
3. 问题发生后,驾驶者能够控制车辆的可能性。
对系统安全的破坏除了由组件自身造成之外,也可以发生的组件之间,尤其在这些组件共享单核CPU及内存子系统时。
下表整理了一些常见的问题源:
如何建立一个可靠的系统?
所有的技术都有局限与缺点。幸运的是,设计仅仅是防线中的一条。规格化设计与静态分析也可以用于项目开发的合适阶段。就如同ISO 26262中指出的那样,采用相互隔离的组件技术可以使系统达到特定的安全标准。
故障,错误和失败
自相矛盾的是,安全系统的基本设计原则是认识与接受其系统存在故障的可能性。现代软件系统由于其复杂性,使得证明其无故障是不可能的;也就是说,测试到所有的路径与状态。汽车系统也是如此。
而采用隔离技术设计的系统,可以避免故障的传递。
因此,一个可靠系统不仅仅要使用符合安全规格的组件,而且还要隔离有安全要求的组件,避免故障传递到其它组件,引起整个系统的失败。当前使用的技术有虚拟化与微内核系统。
虚拟化
开发者可以选择俩种虚拟化技术:类型1,不同的客户OS运行于虚拟层之上;类型2,客户OS运行在另一个OS之中。
类型1的虚拟化中,俩个不同的OS可以运行在虚拟层之上,每一个都有一个独立的环境。一个OS可以运行安全相关的组件,而另一个可以做其它任何事情,如多媒体或3D导航之类的。每个OS运行时,都含像是只有当前唯一一个OS正在运行中。
评估虚拟化时需要考虑的一些事情
可见性
性能
复杂度
粒度
长期成本
隔离与可靠性
OS结构
对干扰的防护
阻止资源占用
阻止时间占用
阻止非法内存访问
阻止数据破坏
阻止无用消息
阻止死锁
总结
- 构建一个安全的软件系统时,可能遇到的风险及解决方案(未完)
- 并发请求导致的业务处理安全风险及解决方案
- 并发请求导致的业务处理安全风险及解决方案
- 百度提示”该网站可能因黑客侵入而存在安全风险”的3种解决方案
- Android游戏可能遇到的3个问题及解决方案
- Android游戏可能遇到的3个问题及解决方案
- Latex写文章可能遇到的问题及解决方案
- 一个软件构建系统的设想
- IT系统风险管理体系的构建思路
- IT系统风险管理体系的构建思路
- 关于流复制中可能遇到的问题及解决方案(一)捕获阶段。
- 关于流复制中可能遇到的问题及解决方案(二)传播阶段。
- 分享一个copyfile使用时遇到的问题及解决方案
- 手机支付宝面临的风险和应对(V)---手机支付宝安全设计方法论(未完待续)
- 手机支付宝面临的风险和应对(VIII)---手机支付宝安全渗透测试(未完待续)
- 手机支付宝面临的风险和应对(VI)---智能终端安全生态体系(未完待续)
- 手机支付宝面临的风险和应对(XI)---手机支付宝已有安全机制(未完待续)
- opencv: 安装 & 可能遇到的问题 & 解决方案
- 链表总结——单链表的头指针、头结点与首元结点
- dos命令行
- C++namespace命名空间
- iOS开发用到的强大的开源工具
- 程序员保值的五个关键点
- 构建一个安全的软件系统时,可能遇到的风险及解决方案(未完)
- 人脸识别核心算法
- AVIOContext
- LINUX eclipse 运行报错问题
- Windows 64 + Matlab 64 MEX混合编程初步
- 数据备份的时间策略
- cocosStudio中如何获取每个部件对象
- MySQL入门(二)
- eclipse内存不足以及增加tomcat运行内存