分享

软件安全性设计原则

 东北十三少 2022-07-04 发布于四川

以下软件安全设计原则可以指导软件开发人员开发更为安全的软件。

  1. 最小特权原则

最小特权原则是指应限定软件系统中每个主体所必须拥有的最小特权,这样可以确保当它出现故障、错误、恶意篡改时给软件系统造成的损失最小。

这里的主体可以是用户、管理员,也可以是进程、应用和其他软件系统。最小特权原则要求只给主体赋予其完成规定任务所必需的权限,并且该权限的持续时间也应该尽可能短。

例如,惠普的安全操作系统Praesidium/Virtual Vault将系统管理员权限root分成42种独立的特权,仅赋予每一应用程序正常运行所需的最小特权。因而,即便一名黑客将木马程序安装在服务器上,也无法改变网络配置或安装文件系统。

  1. 职责分离原则

职责分离原则是指分配不同的任务给不同的个体。职责分离带来清晰的模块划分,使得模块高内聚低耦合,同时也将风险分散到各个模块中去。避免因某个模块出现问题,就使得整个软件面临风险。而且由于职责分离,开发人员可以快速定位到出现问题的模块,以便进行修复。职责分离的模块也易于测试。

  1. 默认安全原则

默认安全是指需要为系统提供默认账号、权限等配置。默认安全原则使得用户不需要额外配置,就可以安全地使用软件。

在确保软件安全的同时,应考虑软件的易用性。除了默认安全原则外,还有心理可接受原则。

  1. 心理可接受原则

心理可接受原则指的是对软件系统资源的访问不应该因为采取了安全措施而变得更加困难,超出用户的心理预期。因为一旦非常难用,超出用户可接受的心理预期,用户可能选择关闭这些安全机制。安全的程序必须易于使用,且输出的信息易于理解。比如,如果一个密码被拒绝了,密码服务程序不给出拒绝原因而是简单粗暴告诉你“出错”,那可能会使得用户放弃注册。

  1. 隐私保护原则

隐私是指用户存放在软件系统中的个人信息。一个安全的软件系统,不仅在用户的使用协议中声明软件系统对于收集到的个人信息如何使用,也要采取有效措施确保用户的隐私不被泄露、窃取。

  1. 保护最薄弱环节原则

影响软件安全的因素可能不是一个两个,而是一个链条,软件的安全性由其中最弱的环节决定。

软件安全的木桶原理。

所以开发人员在进行安全性需求分析和设计时,应标识出软件系统最薄弱的部件,并采取措施消除最严重的风险。

有时软件本身并不是系统的最薄弱的环节,而管理才是系统的最薄弱环节。例如,服务中心接到用户电话,声称因为遗忘要求提供本人密码,或其他应该保密的信息。这种攻击通常很容易成功,因为服务人员通常会不加提防地把密码告诉打电话的人。

  1. 故障保护原则

一些不安全的行为可能引发系统故障,而系统出现故障,也可能引发更多的不安全行为。有些攻击者只需人为造成某种类型的故障,或者等待某类型的故障发生,就可以对软件系统实施攻击。

所以,需要通过安全测试及时发现并消除软件系统潜在的故障,减少软件系统被攻击的机会。

  1. 纵深防御原则

纵深防御原则的基本思想是:建立多重防御策略来抵御安全风险,当一层防御不够时,另一层防御将会阻止软件被进一步的破坏。纵深防御原则强调不依赖于单一的安全解决方案,而是使用多种互补的安全产品,即使一个产品失效,也不会导致整个系统遭受攻击。例如,大部分公司都使用企业级防火墙作为第一层的防御措施,对重要数据进行加密作为第二层次的防御措施。

参考书目:软件安全开发,作者:吴世忠 李斌 张晓菲 梁洪亮,出版社:机械工业出版社

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多