一、保护了最薄弱的环节

攻击者往往设法攻击最易攻击的环节,这对于您来说可能并不奇怪。即便他们在您系统各部分上花费相同的精力,他们也更可能在系统最需要改进的部分中发现问题。这一直觉是广泛适用的,因此我们的安全性测试应侧重于测试最薄弱的部分。

如果执行一个好的风险分析,进行一次最薄弱环节的安全测试,标识出您觉得是系统最薄弱的组件应该非常容易,消除最严重的风险,是软件安全测试的重要环节。

二、是否具有纵深防御的能力

纵深防御背后的思想是:使用多重防御策略来测试软件,以至少有一层防御将会阻止完全的黑客破坏。“保护最薄弱环节”的原则适用于组件具有不重叠的安全性功能。当涉及到冗余的安全性措施时,所提供的整体保护比任意单个组件提供的保护要强得多,纵深防御 能力的测试是软件安全测试应遵循的原则。

三、是否有保护故障的措施

大量的例子出现在数字世界。经常因为需要支持不安全的旧 版软件而出现问题。例如,比方说,该软件的原始版本十分“天真”,完全没有使用加密。现在该软件想修正这一问题,但已建立了广大的用户基础。此外,该软件 已部署了许多或许在长时间内都不会升级的服务器。更新更聪明的客户机和服务器需要同未使用新协议更新的较旧的客户机进行互操作。该软件希望强迫老用户升 级,没有指望老用户会占用户基础中如此大的一部分,以至于无论如何这将真的很麻烦。怎么办呢?让客户机和服务器检查它从对方收到的第一条消息,然后从中确 定发生了什么事情。如果我们在同一段旧的软件“交谈”,那么我们就不执行加密。

遗憾的是,老谋深算的黑客可以在数据经过网络时,通过篡改数据来迫使两台新客户机都认为对方是旧客户机。更糟的是,在有了支持完全(双向)向后兼容性的同时仍无法消除该问题。

对这一问题的一种较好解决方案是从开始就采用强制升级方案进行设计;使客户机检测到服务器不再支持它。如果客户机可以安全地检索到补丁,它就升级。否则,它告诉用户他们必须手工获得一个新的副本。但是从一开始就应准备使用这一解决方案,就会得罪早期用户。测试采取的防护措施是否正确装配好,有关系统的补丁是否打上就十分的重要。

四、最小特权

最小特权原则规定:确定只授予执行操作所必需的最少访问权,并且对于该访问权只准许使用所需的最少时间。当软件给出了某些部分的访问权时,一般会出现滥用与那个访问权相关的特权的风险。例如,我们假设您出去度假并把您家的钥匙给了您的朋友,好让他来喂养您的宠 物、收集邮件等等。尽管您可能信任那位朋友,但总是存在这样的可能:您的朋友未经您同意就在您的房子里开派对或发生其它您不喜欢的事情。

一位程序员可能希望访问某种数据对象,但只需要从该对象上进行读。不过,不管出于什么原因,通常该程序员实际需要的不仅是必需的特权。通常,该程序员是在试图使编程更容易一些。如果软件设置的访问权结构不是“完全访问或根本不准访问”,那么最小特权原则会非常有效。

五、分隔

分隔背后的基本思想是如果我们将系统分成尽可能多的独立单元,那么我们可以将对系统可能造成损害的量降到最低。

通常,如果攻击者利用了代码中的缓冲区溢出,对磁盘进行原始写并胡乱修改内核所在内存中的任何数据。没有保护机制能阻止他这样做。因此,系统进行适度的分隔显得十分重要,软件要能直接支持本地磁盘上永远不能被擦去的日志文件,这意味着直到攻击者闯入时,才不能保持精确的审计信息。适度使用的分隔,将利于系统的管理,但是对每一个功能都进行分隔,那么系统将很难管理。

以上内容为大家介绍了软件安全测试需要考虑什么样的问题,本文由多测师亲自撰写,希望对大家有所帮助。https://www.duoceshi.com/xwzx-hydt/1397.html

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部