当前位置: 首页 > article >正文

IAST工具是如何工作的?主动和被动IAST有什么区别?

我们在做软件安全防护的实践过程中经常遇到一些问题:IAST技术是如何工作以实现安全防护的?主动和被动IAST有什么区别呢?今天我们就来进行答疑解惑。

首先我们来看下Gartner对IAST的定义:

交互式应用程序安全测试(IAST)使用结合了动态应用程序安全测试(DAST)和静态应用程序安全测试(SAST)技术的工具来提高应用程序安全测试的准确性。

IAST工具可提供类似DAST的漏洞利用和SAST的应用程序代码覆盖的能力,并且在某些情况下,允许在常规应用程序测试阶段进行安全自测。IAST工具可以独立运行,也可以作为更大的AST套件(通常是DAST) 的一部分运行。

具体来讲,IAST工具通过以下几种手段对软件进行安全检测。

获取被测信息进行实时分析

自动化安全测试的检测基础是获取被测应用程序的各种信息,基于对这些信息分析得到应用程序的安全弱点。在开发工程师、测试工程师或者自动化测试脚本进行功能测试的同时,实时分析软件安全弱点。

运用插桩技术

利用Java自身提供的Instrumentation API与JVM Tool Interface实现插桩技术,应用到产品的安全检测中。

运用污点分析技术

分析程序中由污点源引入的数据,是否能够不经过无害处理,而直接传播到污点汇聚点。

主动IAST VS 被动IAST

为解决传统DAST无法精确定位漏洞位置和传统SAST技术高误报率的问题,主动IAST需要两个主要组件:DAST组件和传感器附加到正在运行的应用程序。此外,主动IAST在脏数据处理方面表现出色,并且可以对应用测试结果进行全方位复现和验证,从而协助用户提高漏洞收敛效率

在测试阶段,如果应用程序遭到攻击,主动IAST会扫描URL并向它们发送已知攻击有效载荷的列表。然后,传感器将监测基于传入攻击有效载荷的漏洞应用程序。与传统DAST相比,该方法更加高效,用户可以更快速监测漏洞,无需等待安全扫描完成。此外,该方法还可以提供应用程序安全性(AppSec)状态的快照。

被动IAST是一种需要与应用程序一起运行的探针。主动IAST需要攻击应用程序来识别漏洞,而被动IAST通过探针在运行时持续监视应用程序的所有流量,即可识别漏洞。最重要的区别在于,用户不再需要攻击应用程序来主动查找安全漏洞。

要确保应用程序的质量和效果,需要使用各种不同的测试方法,包括手动和自动化的测试,以及在生产环境中对应用程序进行测试。这样才能够对应用程序的各个方面进行全面测试。被动IAST将应用程序的所有使用操作都转变为一种“安全测试”,使其成为一种更安全更高效的测试解决方案,避免用户为安全测试而单独部署基础设施。

被动IAST的探针以静默方式持续监视指向应用程序的所有常规流量,在运行时查找漏洞。被动IAST方法的主要优点是其成本效益高,在应用程序中发现更多的安全问题,因为它可以检测未知的漏洞而不需要安全专家或附加工具。

Agent(探针)是被动IAST的关键技术,Agent(探针)需要结合不同编程语言进行开发,通过插桩技术,在程序运行时监视应用并分析代码。Management Server即为VulHunter管理平台,主要包括Server和Agent两大组件。

主动和被动IAST各有优势,但在大多数情况下,应该选择被动IAST,因为其在AppSec程序中最具拓展性和可管理性。

如何让两者两全其美?

我们进一步探索,可以将主动IAST与被动IAST相结合,以被动IAST为主,主动IAST用于辅助验证功能,进行测试,适用范围广,可定位到漏洞代码也无脏数据产生。在测试阶段对应用程序执行安全自检,实现两种测试结果的结合,有助于确保应用程序在发布之前的安全稳定。


http://www.kler.cn/a/17338.html

相关文章:

  • 响应式网页设计--html
  • AutoCad 无界面开发
  • uniapp+vue2 设置全局变量和全局方法 (兼容h5/微信小程序)
  • 【含开题报告+文档+PPT+源码】基于Spring Boot智能综合交通出行管理平台的设计与实现
  • 深入探讨 MySQL 配置与优化:从零到生产环境的最佳实践20241112
  • Unity3D 包体裁剪与优化详解
  • 信号完整性分析基础知识之传输线和反射(三):仿真和测试反射波形
  • 开放式基金净值估算数据 API 数据接口
  • 编写服务器重启的脚本(rc.local调用版本)
  • 基于GWO灰狼优化算法的城市路径优化问题GWO-TSP(MATLAB程序)
  • 操作系统——线程调度
  • SpringBoot整合Mybatis-Plus、Jwt实现登录token设置
  • Java回收垃圾的基本过程与常用算法
  • 面试总结,4年经验
  • python语法入门到面向过程编程(二)
  • 类与对象之构造函数
  • SPSS如何进行基本统计分析之案例实训?
  • 什么是工业互联网?5G到底能在工业互联网中承担哪些重任呢?
  • Java实现添加文字水印、图片水印功能
  • java基础知识——27.动态代理
  • Linux指令大全——从零入门到实用工具
  • javaweb权限管理简单实现_javaweb管理系统项目
  • day21_IO
  • 使用 NutUI 搭建「自定义业务风格」的组件库 | 京东云技术团队
  • 【BeautifulSoup下】——05全栈开发——如桃花来
  • LeetCode:21. 合并两个有序链表