浅谈IAST,DAST,SAST之区别

上班还是事情多一些,下班也会事情各种,所以,没能有大段时间,就有些惰性,尽量每周一篇吧。

 

说起SDL或者DevSecOps,应该都会提及AST, 之前在一本书里看到过IAST,简单知道一些,因为昨天TT提到,所以今天做了一下功课,发现在近年安全咨询里,IAST其实被多次提及,那么就强化学习一下吧。安全的路上,真的是学无止境啊。

引子:

应用漏洞是黑客的主要目标。但是,现代应用开发的复杂性和快节奏使得安全问题的有效检测和修复变得越来越困难。我们希望通过一种工具或者服务,来解决在应用生命周期的每个阶段,解决软件中专有和第三方代码中的安全弱点和漏洞。

开发人员是抵御安全缺陷 (CWE) 和漏洞 (CVE) 的第一道防线。 开发流程实现了自动化,安全测试也应该如此。通过 DevOps 集成,将安全测试与现有的 CI、存储库和工作流工具集成并实现自动化。从而实现左移应用安全和自动化的SDLC安全。

Web应用安全测试:

主要分为3大类别。

1、DAST动态应用程序安全测试(Dynamic Application Security Testing)技术在测试或运行阶段分析应用程序的动态运行状态。它模拟黑客行为对应用程序进行动态攻击,分析应用程序的反应,从而确定该Web应用是否易受攻击。DAST是一种黑盒测试技术,是目前应用最广泛、使用最简单的一种Web应用安全测试方法。它们不能访问代码或实现细节。DAST只检查系统对潜在漏洞测试的请求和响应。换言之,DAST是外部的漏洞扫描程序。

2、SAST静态应用程序安全测试(Static Application Security Testing)技术通常在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。SAST是一种在开发阶段对源代码进行安全测试发现安全漏洞的测试方案。SAST是对应用程序源代码执行直接的白盒分析。分析是在代码的静态视图上运行的,这意味着代码在审查时没有运行。

下面这个概念IAST,要多读几遍哈。

3、IAST交互式应用程序安全测试(Interactive Application Security Testing)是2012年Gartner公司提出的一种新的应用程序安全测试方案,通过代理、VPN或者在服务端部署Agent程序,收集、监控Web应用程序运行时函数执行、数据传输,并与扫描器端进行实时交互,高效、准确的识别安全缺陷及漏洞,同时可准确确定漏洞所在的代码文件、行数、函数及参数。IAST相当于是DAST和SAST结合的一种互相关联运行时安全检测技术。IAST可以像SAST一样看到源代码,也可以像DAST一样看到应用程序运行时的执行流。 IAST不仅拥有安全测试上的能力优势,也更容易与DevOps紧密结合,帮助机构在不降低发布效率的前提下完成安全测试。

IAST的实现模式较多,常见的有代理模式 、VPN、流量镜像、插桩模式

  • 代理模式,在PC端浏览器或者移动端APP设置代理(并不需要在服务器端安装东西),通过代理拿到功能测试的流量,利用功能测试流量模拟多种漏洞检测方式对被测服务器进行安全测试。
  • 插桩模式,插桩模式是在保证目标程序原有逻辑完整的情况下,在特定的位置插入探针,在应用程序运行时,通过探针获取请求、代码数据流、代码控制流等,基于请求、代码、数据流、控制流综合分析判断漏洞。

应用场景对比:

[CI/CD  这里扫个盲,在DevOps中用到很多。CI 持续集成(Continuous Integration),可以帮助开发人员更加频繁地(有时甚至每天)将代码更改合并到共享分支或“主干”中。如果自动化测试发现新代码和现有代码之间存在冲突,CI 可以更加轻松地快速修复这些错误。CD 持续交付(Continuous Delivery),完成 CI 中构建及单元测试和集成测试的自动化流程后,持续交付可自动将已验证的代码发布到存储库。CD 持续部署(Continuous Deployment),对于一个成熟的 CI/CD 管道来说,最后的阶段是持续部署。]

最后补充一个概念RASP ,一般不和上面三个XAST混在一起比较,但是又有一定关联.so 了解一下。

RASP(Runtime application self-protection)运行时应用自我保护。这个概念也多次提到,顺带一起看看。RSAP将自身注入到应用程序中,与应用程序融为一体(可以获取到应用运行时的上下文,根据运行时上下文或者敏感操作,对攻击进行精准的识别或拦截。),实时监测、阻断攻击,使程序自身拥有自保护的能力。并且应用程序无需在编码时进行任何的修改,只需进行简单的配置即可。

RASP不但能够对应用进行基础安全防护,由于一些攻击造成的应用程序调用栈调用栈具有相似性,还能够对0day进行一定的防护。除此之外,利用RASP也能够对应用打虚拟补丁,修复官方未修复的漏洞。或者对应用的运行状态进行监控,进行日志采集。RASP运行在应用之中,只要检测点选取合理,获取到的payload已经是解码过的真实payload,可以减少由于WAF规则的不完善导致的漏报。缺陷:性能消耗,RASP带来的性能消耗在5%~10%之间。

写在最后:

AST(Application Security Test,应用安全测试)是应用程序软件安全实践的支柱之一。随着近年来安全越来越得到重视,AST们也发生着快速的迭代和变化,成为信息安全领域的当红炸子鸡。我们认为所有的软件技术和项目管理相关人员都应该对AST工具有基本的认知,并在一定程度上应用它们。怎么用,可以交给专业的安全公司。

参考文献:

一文洞悉DAST、SAST、IAST ——Web应用安全测试技术对比浅谈

Rasp技术介绍与实现(一)

应用安全测试

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些关于DASTSAST、IAST工具的信息以及如何进行对比实验。 首先,DAST(动态应用程序安全测试)工具是一种测试Web应用程序安全性的工具,它通过模拟攻击来检测应用程序中的漏洞。常见的DAST工具包括:Burp Suite、OWASP ZAP、Netsparker等。 其次,SAST(静态应用程序安全测试)工具是一种分析源代码的工具,以检测可能导致安全漏洞的代码。常见的SAST工具包括:Checkmarx、Veracode、Fortify等。 最后,IAST(交互式应用程序安全测试)工具是一种结合了DASTSAST的工具,它可以在运行时检测到应用程序中的漏洞,并同时分析源代码以确定漏洞的根本原因。常见的IAST工具包括:Contrast Security、Rapid7、Qualys等。 对于如何进行对比实验,您可以考虑以下几个方面: 1.功能比较:比较不同工具的功能和特性,如检测准确性、可扩展性、易用性等。 2.效率比较:比较不同工具在检测漏洞时的效率和速度。 3.成本比较:比较不同工具的成本和使用成本,包括购买费用、维护费用等。 4.实际应用:将不同工具应用于实际项目中,并比较它们在实际环境中的表现和效果。 需要注意的是,这些工具的适用情况和效果会因为具体的应用环境、应用程序的类型和规模、测试人员的技能等因素而有所不同,因此在进行对比实验时需要对具体情况进行分析和评估。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值