首页 理论教育 软件安全威胁建模优化方案

软件安全威胁建模优化方案

时间:2023-06-09 理论教育 版权反馈
【摘要】:软件在设计阶段达到的安全性能,将是软件整个生命周期的基础。一般采用安全威胁建模的方法,在软件设计阶段加入安全因素。安全威胁建模的过程一般如下。另外,对安全威胁进行分类后,可以画出威胁树,其目的是对软件可能受到的安全威胁进行表达。如果软件无法通过技术解决某种安全威胁,则可以告知用户,如提醒用户要杀毒等。图3-2 针对用户密码安全的威胁树进行的修改

软件安全威胁建模优化方案

软件在设计阶段达到的安全性能,将是软件整个生命周期的基础。如果在设计阶段没有考虑某些安全问题,那么在编码时就几乎不被考虑。这些隐患将可能成为致命的缺陷,在后期爆发出来。所以,安全问题应该从设计阶段就开始考虑,设计要尽可能完善。

传统的软件设计过程中,将工作的重点一般放在软件功能的设计上,没有仔细考虑到安全问题。因此,在软件设计阶段,针对安全问题,应该明确安全方面有哪些目标需要达到、软件可能遇到的攻击和安全隐患等。

一般采用安全威胁建模的方法,在软件设计阶段加入安全因素。安全威胁建模除了和设计阶段的其他建模工作类似外,更加关心安全问题,是一种比较好的安全问题的表达方法。

如前所述,分析系统中可能存在的安全威胁,可能是一件比较繁琐的工作,因为很多安全威胁是不可预见的。但是,在设计阶段尽可能多地将安全威胁考虑到,在编写代码前修改方案,代价比较小。安全威胁建模的过程一般如下。

(1)在项目组中成立一个安全小组

在此过程中,项目组应该成立一个有信息安全方面的专业人员参加的安全小组,安全小组全程参与项目的开发过程。

(2)分解系统需求

本过程中,可按照需求规格说明书和设计文档中的内容,站在安全角度,分析系统在安全方面的需求。当然,传统的软件工程中的一些工具也可以使用,如数据流图(Data Flow Diagram,DFD)、统一建模语言(Unified Modeling Language,UML)等。

(3)确定系统可能面临哪些威胁

系统可能遇到的安全威胁有很多种,在这里可以首先将安全威胁进行分类,如系统缓冲区溢出、身份欺骗、篡改数据、抵赖、信息泄露、拒绝服务、权限提升等。由于同类的安全问题可以用类似的方法解决,因此该过程可以减小后期工作量。

另外,对安全威胁进行分类后,可以画出威胁树,其目的是对软件可能受到的安全威胁进行表达。

图3-1是一个针对用户密码安全问题画出的威胁树。

978-7-111-39843-1-Chapter03-2.jpg(www.xing528.com)

图3-1 针对用户密码安全的威胁树

(4)选择应付安全威胁或者缓和安全威胁的方法

针对不同的安全问题,可以选择应付安全威胁或者缓和安全威胁的方法。一般来说,可以应付或缓和安全威胁的方法有很多,但是考虑到实施的成本,根据安全威胁可能的危害程度,还是要有所选择。在面对安全威胁时,可以采用的方法有:

●不进行任何处理。一般不建议采用此方法。

●告知用户。如果软件无法通过技术解决某种安全威胁,则可以告知用户,如提醒用户要杀毒等。

●排除问题。在软件中采用某种技术来避免出现安全问题。

●修补问题。某些问题如果无法预见和解决,则可以提供修补接口,待出现问题之后进行扩展。不过此方案的代价是比较大的,对软件的设计提出了较高的要求。

(5)确定最终技术

在各种备选的方案中,确定最终选用的技术。一般可以将最终选用的技术,直接在威胁树中描述或者用图表画出来。图3-2就是针对用户密码安全的威胁树进行的修改。

978-7-111-39843-1-Chapter03-3.jpg

图3-2 针对用户密码安全的威胁树进行的修改

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈