安全性测试是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。此节包括一些重要的测试建议,用来验证已创建安全的应用程序。
由于攻击者没有闯入的标准方法,因而也没有实施安全性测试的标准方法。另外,目前几乎没有可用的工具来彻底测试各个安全方面。由于应用程序中的功能错误也可代表潜在的安全性缺陷,因此在实施安全性测试以前需要实施功能测试。
有一点很重要,应注意安全性测试并不最终证明应用程序是安全的。而是只用于验证所设立对策的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。
下面提供测试应用程序安全性的一些建议。
测试缓冲区溢出缓冲区溢出是计算机历史中被利用的第一批安全错误之一。目前,缓冲区溢出继续是最危险也是最常发生的弱点之一。试图利用这种脆弱性可以导致种种问题,从损坏应用程序到攻击者在应用程序进程中插入并执行恶意代码。
将数据写入缓冲区时,开发人员向缓冲区写入的数据不能超出其所能存放的数据。如果正在写入的数据量超出已分配的缓冲区空间,将发生缓冲区溢出。当发生缓冲区溢出时,会将数据写入到可能为其他用途而分配的内存部分中。最坏的情形是缓冲区溢出包含恶意代码,该代码随后被执行。缓冲区溢出在导致安全脆弱性方面所占的百分比很大。
实施源代码安全检查根据所讨论应用程序的敏感程度,实施对应用程序源代码的安全审核可能是明智的。不要将源代码审核与代码检查相混淆。标准代码检查的目的是识别影响代码功能的一般代码缺陷。源代码安全检查的目的则是识别有意或无意的安全性缺陷。开发处理财政事务或提供公共安全的应用程序时尤其应保证进行这种检查。
验证应急计划总是存在应用程序的安全防御被突破的潜在可能,只有应急计划就位并有效才是明智的。在应用程序服务器或数据中心检测到病毒时将采取哪些步骤?安全性被越过时,必须迅速作出反应来防止进一步损坏。在应急计划投入实战以前请弄清它们是否起作用。
攻击您的应用程序测试人员习惯于攻击应用程序以试图使其失败。攻击您自己的应用程序是与其类似但目的更集中的过程。尝试攻击应用程序时,应寻找代表应用程序防御弱点的、可利用的缺陷。
文章来源于领测软件测试网 https://www.ltesting.net/