文章转载自DongTai官网,只限个人学习使用。
洞态 IAST 是一个完全开源的 IAST 项目,它使用应用程序运行时数据流进行分析从而识别可被利用的安全漏洞,再按风险优先级的提供已验证漏洞列表功能,协助开发人员实时的代码修复。
主要功能:全面精准的应用漏洞测试、开源组件漏洞和风险分析、应用漏洞自动化验证与溯源、全面详细的漏洞分析和定位、检测能力自定义
支持的检测语言:Java、Python、PHP、Go
支持的部署方式:Docker、Kubernetes / SaaS 服务
交互式应用安全测试(Interactive Application Security Testing)是 Gartner 在 2012 年提出的一项新的应用安全测试方案。
IAST 相当于 DAST 和 SAST 的组合,是一种相互关联的运行时安全检测技术。 它通过使用部署在 Web 应用程序上的 Agent 来监控运行时发送的流量并分析流量流以实时识别安全漏洞。
IAST 能提供更高的测试准确性,并详细的标注漏洞在应用程序代码中的确切位置,来帮助开发人员达到实时修复。
重要的事情说三遍:IAST 是一种安全测试工具而不是漏洞扫描工具,IAST 是一种安全测试工具而不是漏洞扫描工具,IAST 是一种安全测试工具而不是漏洞扫描工具。
IAST 安全检测工具分成 被动式 IAST 和 主动式 IAST。
原理:
需要在安全测试环境中使用 Agent 对应用程序进行监控。它将利用功能测试如:输入、请求、数据库访问等来收集的数据后进行漏洞分析,因此不需要主动运行专门的攻击测试。
主要优势:
只需要业务测试(手动或自动)来触发安全测试,通过测试流量即可实时的进行漏洞检测,并不会影响同时运行的其他测试活动。
原理:
将 DAST 解决方案(Web 扫描器)和在应用程序服务器内部的 Agent 相结合, Agent 将根据 Web 扫描器提供的功能验证现有漏洞。
洞态IAST属于被动式IAST
洞态 IAST 由 DongTai Server 和 DongTai Agent 两种组件组成,下列会详细介绍。
DongTai Server 架构的主要组成部分,提供了用户管理界面,使用 DongTai Agent 收集的数据去分析、识别漏洞并生成漏洞报告。同时,它也提供漏洞通知、Web-API、项目管理、自定义漏洞规则等功能。
Web: 管理界面,供用户管理用户组、Web 应用检测项目、漏洞报告、 Agent 、自定义漏洞规则等。
Server: 涵盖了 WebAPI 和 OpenAPI
WebAPI: 用于处理和响应来自用户的请求。
OpenAPI: 将 Agent 端收集到的数据存储至数据库中,同时也通过监视心跳等返回的数据来监控 Agent 的可用性。
Database: 存储数据。
Engine Task: 将分析任务分配给 Engine。
Engine: 通过漏洞规则分析收集到的数据以识别漏洞, 当检测到漏洞,会将漏洞详细信息存储在数据库中,并触发通知组件通报用户。
Notification: 通报用户的第三方 API。
1、 在常规的操作中,Web 应用程序会收到来自用户的 HTTP 请求。
2、 插桩在 Web 应用程序的 Agent 将监控和收集来自流量的数据,然后通过 OpenAPI 将数据发送到洞态 IAST Server 端。
3、当 OpenAPI 收到数据,它会将数据存入数据库并触发 Engine。
4、Engine 开始分析和识别漏洞。
5、当漏洞被识别用户将收到通报。
1、WebAPI 将处理来自 Web 的用户请求。
2、WebAPI 将响应结果通过 Web 回传给用户。
1、WebAPI 将处理来自 Web 的用户请求并将变化存储在数据库中。
2、当客户端 Web 应用程序重新启动, Agent 将通过 OpenAPI 拉取并使用变化的设置。
【不信任数据采集】:首先将采集到的数据放到一个数据池子中,定义为污点池。
【不信任数据预处理】:接着从污点池里依定义的规则 hook 到函数的入参和出参。
【不信任数据传播图】:将污点池中的数据以树形结构串连起来形成传播图。
【不信任调用链查找】:最后以能够触达危险函数的链路即判定漏洞存在。
用于监控 Web 应用服务器的数据流。 DongTai Agent 会通过代码插桩来监控请求并不断收集数据,然后将这些数据发送到 DongTai Server。
如果在一台机器上部署了多个 Web 应用程序,需在每个 Web 应用程序服务器上安装一个 DongTai Agent。
从 DongTai Server 注册 DongTai Agent
按 Web 应用服务器开发语言下载和安装对应的 dongtai-core
dongtai-core 会从 server 上 pull 检测规则
最后再按检测规则采集数据,然后将数据回传至 DongTai Server
Docker
Kubernetes
也可以不通过docker,手动部署
Java
Python
PHP (测试版)
Go (测试版)
漏洞等级 | 漏洞类型 |
---|---|
高危漏洞 | 注入类型(EL表达式、HQL、JNI、LDAP、NoSQL、SMTP、Sql、Xpath、反射、命令执行)、服务器端请求伪造、不安全的 XML Decode、路径穿越、 不安全的JSON反序列化 |
中危漏洞 | 反射型 XSS、XXE |
低危漏洞 | Cookie 未设置 Secure、Header 头注入、Regular Expression DoS、弱随机数算法、弱哈希算法、弱加密算法、不安全的 readline、不安全的重定向、 不安全的转发、 点击劫持 |
提示信息 | 缺少 Content-Security-Policy 响应头、缺少 X-Content-Type-Options 响应头、缺少 X-XSS-Protection 响应头、不正确的 Strict-Transport-Security 配置 |
漏洞等级 | 漏洞类型 | Java | Python | PHP | Go |
---|---|---|---|---|---|
高危 | SQL 注入 | ✅ | ✅ | ✅ | ✅ |
HQL 注入 | ✅ | ||||
JNI 注入 | ✅ | ||||
LDAP 注入 | ✅ | ✅ | |||
NoSql 注入 | ✅ | ✅ | |||
SMTP 注入 | ✅ | ||||
XPath 注入 | ✅ | ||||
反射注入 | ✅ | ||||
表达式注入 | ✅ | ||||
OGNL 注入 | ✅ | ||||
JNDI 注入 | ✅ | ||||
命令执行 | ✅ | ✅ | ✅ | ✅ | |
不安全的反序列化 | ✅ | ✅ | ✅ | ||
服务器端请求伪造(SSRF) | ✅ | ✅ | ✅ | ||
路径穿越 | ✅ | ✅ | ✅ | ✅ | |
代码执行 | ✅ | ✅ | |||
硬编码检测 | ✅ | ||||
敏感信息泄漏 | ✅ | ✅ | ✅ | ||
文件包含 | ✅ | ||||
中危 | XXE | ✅ | ✅ | ||
反射型 XSS | ✅ | ✅ | ✅ | ✅ | |
不安全的 XML Decode | ✅ | ||||
Header 头注入 | ✅ | ✅ | |||
低危 | 点击劫持 | ✅ | ✅ | ||
正则 DoS | ✅ | ✅ | |||
CORS Misconfiguration | ✅ | ✅ | |||
数据明文传输 | ✅ | ✅ | |||
弱加密算法 | ✅ | ✅ | |||
弱哈希算法 | ✅ | ||||
弱随机数算法 | ✅ | ||||
不安全的 Readline | ✅ | ||||
不安全的 Readline | ✅ | ||||
提示 | Cookie 未设置 Secure | ✅ |
以上就是DongTai IAST的介绍。
官网地址:https://doc.dongtai.io/docs/introduction