源代码审查(测试)、渗透测试

简而言之:源代码审查

源代码安全性分析(源代码审查)是检查Web APP源代码,以查找在初始开发阶段忽略的错误。Pentester启动一个代码分析器,逐行扫描Web APP的代码。一旦在测试环境中部署的分析器发现漏洞,测试人员就会手动检查它们以消除误报。

测试者在源代码审查上花费的时间因编程语言和APP的大小而异。例如,1000行代码可能需要0.5到2个小时来分析。

检测到漏洞

源代码审查的优势在于能够识别以下漏洞:

  • 加密错误。这些包括弱加密算法,以及具有弱实现的强加密算法(例如,不安全的密钥存储)。

  • 所有SQL注入案例,XSS(跨站点脚本)漏洞。

  • 缓冲区溢出(将更多数据放入缓冲区而不是它可以处理)。

  • 比赛条件(同时执行两项或多项操作)。

此外,如果渗透测试允许发现易受攻击的网页,则源代码审查使测试人员能够在根级别找到漏洞(以检测功能中的错误或在多个网页中使用的模块)。这节省了一个测试者的时间和一个客户的钱。

 

简而言之:渗透测试

渗透测试是指测试人员攻击Web APP以发现APP中的漏洞的过程。该过程比源代码审查更耗时,因为它包括几个阶段。首先,pentester通过一组用户测试对目标APP进行侦察,并运行Web扫描程序以查找入口点。之后,他或她利用漏洞尝试将权限升级到管理级别。

根据Web APP的复杂程度,该过程可能需要20到400小时。

渗透测试的优势

仅通过渗透测试可以发现一些漏洞:

  • 搜索引擎索引。APP的本地搜索引擎可以显示测试者敏感数据,例如护照或驾驶执照的副本。

  • 错误配置导致的漏洞。这些是通过互联网提供内部服务和文档,使用“admin”和“user”等默认凭据的情况。

  • 弱身份验证,例如,弱密码或CAPTCHA,密码重用。

  • 当特定信息可供更广泛的用户使用时,基于角色的访问中的逻辑错误。

此外,安全标准还要求渗透测试。例如,遵守健康保险流通与责任法案(HIPAA)包括双因素身份验证,自动注销和电子保护健康信息(EPHI)的紧急访问。

渗透测试的主要优势在于它基于风险。在侦察阶段,测试人员通过Web APP了解客户的业务。它有助于识别高优先级风险并构建特定于业务的测试用例。例如,如果目标APP是本地搜索引擎网站,则测试人员将优先考虑导致针对XSS漏洞的数据挖掘攻击的漏洞。

 

有效的组合

源代码审查检查Web APP代码的质量。反过来,渗透测试揭示了Web APP逻辑的问题。源代码审查+由不同的测试人员完成的渗透测试是一种有效的组合,涵盖了大多数Web APP漏洞。

对于企业Web APP,投资安全性比尝试修复安全漏洞更为明智。如果您优先考虑业务中的安全性,则需要进行代码审查和测试。

 

参考文章

三款主流静态源代码安全检测工具比较

Checkmarx CxSAST (源代码测试、扫描)

常见性能测试问题分析(一)

软件流程规范---常见安全问题

你可能感兴趣的:(Web前端,渗透测试,安全,源代码审查)