安全测试


安全测试

安全测试一般围绕被保护的资产,通过代码和程序的分析来确定威胁或漏洞的严重程度,以及被利用的可能性和影响,来评估特定威胁或漏洞对企业造成负面影响的风险。除了综合的安全性风险评估之外,安全性测试一般有几种类型:

安全测试类型

1.漏洞扫描:由工具自动对代码进行静态分析,以识别软件组件中是否存在已知的漏洞。
2.渗透测试:在安全条件下模拟黑客对应用程序/软件/系统或网络进行网络攻击的过程。渗透测试可以发现未知漏洞,如zero-day威胁和商业逻辑漏洞,目前人们应用越来越多的渗透测试工具来完成测试任务。
3.应用程序的安全测试:针对web/Android/IOS移动APP等特定的应用进行测试,包括收集这类应用程序的相关信息,发现系统漏洞或缺陷。
4.API安全测试:识别API和网络服务中的漏洞(如API注入/XML注入等)。API特别容易受到中间人攻击等威胁,如窃听API通信并窃取数据或凭证。
5.配置扫描:一般根据研究机构或合规标准制定的最佳实践列表来检查系统,识别软件/网络和其他计算系统的错误配置的过程。
6.安全审计:根据定义的法规和合规标准/安全要求来审查代码或架构,分析安全漏洞,评估硬件配置/操作系统和组织实践的安全状况。

安全性测试工具分类

1.动态应用安全测试:(DAST)
一般指在测试或运行阶段,使用黑盒方法以发现漏洞的过程,如模拟黑客行为对应用程序进行动态攻击,分析应用程序的反应或动态运行状态,从而确定该应用是否易受攻击,如监测诸如内存损坏/不安全的服务器配置/跨站脚本攻击/用户权限问题/恶意SQL注入和其他关键漏洞等缺陷
如开源的Zed Attack Proxy(ZAP)
优势是可进行逻辑漏洞检测;不分语言和框架,漏洞好复现;
劣势则为漏洞检出率和第三方框架检测效果较差,漏洞详细度较低,使用时入侵性较高,风险程度高。
2.静态应用安全测试:(SAST)
主要通过分析应用的源代码或其编译版本的语法/结构/过程/接口等来发现程序代码存在的安全漏洞
如Klocwork/ Helix QAC/ HCL AppScan等,以及国内的腾讯xcheck/WuKong等
优势是漏洞 检出率和覆盖率高;使用时侵入性小。风险程度低;
劣势是漏洞检测误报高,耗时久
3.交互式应用安全测试(IAST)
通过代理/VPN或者在服务端部署Agent程序,收集/监控应用程序运行时函数执行/数据传输/并与扫描端进行实时交互,高效/准确的识别安全缺陷及漏洞,同时可准确确定漏洞所在的代码文件/行数/函数及参数,如CodeDx,Checkmark CxlAST等。
IAST相当于DAST和SAST结合的一种互相关联运营时的安全检测技术。
优势是漏洞检测误报率低,检测速度快,漏洞详细度高;
劣势是漏洞检测覆盖度较难以保证,支持的语言和框架被严格限制。
4.软件成分分析(SCA)
通过分析软件包含的一些信息和特征来实现对该软件的识别/管理/追踪的安全检测技术,如Synopsys Black Duck、RedRocket-SCA等
SCA理论上看是一种通用的分析方法,可对任何编程语言对象进行分析,关注的对象是从文件内容,以及文件与文件之间的关联关系以及彼此组合成目标的过程细节,从而获得应用程序的画像-组件名称+版本号,进而关联出存在的已知漏洞清单。
在这里插入图片描述

更多推荐