有效的应用程序安全测试

2018-03-03 20:30
网络安全和信息化 2018年7期
关键词:源代码漏洞应用程序

在软件安全问题上,我们并没有完全承认一些很明显的问题,在应对相关的漏洞时,也不可能取得什么进展。所以,2018年的第一季度,大量的新型攻击已经初露端倪。

为什么会缺乏测试过程

软件是一个主要的攻击点。这方面的证据几乎无处不在,然而我们很多人选择忽视安全测试,至少在当今运行的大多数物联网应用中是这样。由于物联网已经被证明是一个极具诱惑力的媒介,我们也会认为保障其安全是极其重要的。但事实上我们做得怎么样呢?

很多情况下,企业仅仅重视高风险的应用。但是大量的证据表明,有被认为是低风险的应用程序被攻击者用作一个攻击入点,进而危害高风险的应用程序以访问高价值的目标。

不重视或忽视大量软件的测试方法是不可行的。但是,进行草率的测试也好不了多少,而且可能产生错误的安全感。因为审计人员要求测试而进行测试也不是安全。运行测试并解决所发现的问题是一个向前发展的过程。事实上,有很多企业即使生成了大量的测试结果也没有采取应对的行动。

有效评估安全代码

很多应用程序的安全测试厂商都宣称能有效测试软件的安全性。其实,这些厂商只说了部分事实,如今的软件属性都要求多重测试,以全面评估任何应用程序的安全性。这是因为应用程序包含三个可能被发现漏洞的特定要素,其中的每个要素都必须用一个不同的方法,以保证安全测试的完整性。

自己编写的代码

虽然企业经常采用开源程序和迁移到敏捷的开发方法,但有一个问题一直存在:企业仍需要编写代码。源代码分析(静态分析)的设计目的是找到安全漏洞和所开发代码中的质量问题。

从开源中获得的代码

随着对开源代码的的使用不断增长,应用软件中来自外部源的代码数量正急剧增长。这种开源代码包含着可能成为企业软件一部分的严重漏洞。软件组成分析(SCA)可以检测在开发和使用过程中的开源和第三方的要素风险,并能够确认在企业应用程序中的开源代码所包含的潜在的许可问题。

正在运行的应用程序

将代码部署到网络上时,必须对运行时环境通过动态测试以测试漏洞。在应用程序的运行状态中的测试可以揭示静态测试分析不能检测到的问题。对于高风险的应用来说,很多企业采用道德黑客的形式,将人为因素放在在动态测试过程中,从而加速了测试步伐。

我们是不是应该有种危机感呢?以大行其道的物联网为例,其中约有80%的应用根本没有进行测试。对于剩余的接受某种测试的20%的应用,测试也可能是不完整的。而且,即使很多企业找到了问题,也没有解决。

如果企业不将优先考虑从端点和网络的安全转移到更多关注软件安全,那么问题就不可能得到根本解决。

实用举措

减少安全实践对开发过程的影响的最佳方法是,将安全的编码实践集成到安全的开发周期中,从源头上确立对构建安全代码的重视。

那么,如何推动实施有效的应用程序的安全测试?在此提供一些虽非“必杀技”却是实用的建议:

首先,对企业IT安全的优先权进行再平衡,将重点转移到软件安全性问题上。

其次,组建一个软件安全小组,由其负责构建和管理一个合理而全面的软件测试项目。

第三,利用可以使开发人员从一开始就编写安全软件的工具和项目。将安全性构建到软件中要远比设法测试软件的安全性更好。

企业确实到了应该将IT安全的重点放在正被攻击的软件身上的时候了。在明确了有效的解决问题的途径后,企业需要做出明智的决定,并坚决贯彻实施。

猜你喜欢
源代码漏洞应用程序
漏洞
基于TXL的源代码插桩技术研究
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
软件源代码非公知性司法鉴定方法探析
基于语法和语义结合的源代码精确搜索方法
三明:“两票制”堵住加价漏洞
漏洞在哪儿
揭秘龙湖产品“源代码”
高铁急救应补齐三漏洞