一篇文章了解DongTai IAST

篇文章,DongTai · 浏览次数 : 62

小编点评

**洞态 IAST 简介** 洞态 IAST 是一个完全开源的 IAST 项目,使用应用程序运行时数据流进行分析从而识别可被利用的安全漏洞。洞态 IAST 提供以下主要功能: * **全面精准的应用漏洞测试** * **开源组件漏洞和风险分析** * **应用漏洞自动化验证与溯源** * **全面详细的漏洞分析和定位** * **检测能力自定义支持的检测语言:Java、Python、PHP、Go 支持** **主要优势:** * 只需业务测试(手动或自动)来触发安全测试 * 通过测试流量即可实时的进行漏洞检测 * 不会影响同时运行的其他测试活动 **类型:** * 被动式 IAST * 主动式 IAST

正文

文章转载自DongTai官网,只限个人学习使用。

简介

洞态 IAST 是一个完全开源的 IAST 项目,它使用应用程序运行时数据流进行分析从而识别可被利用的安全漏洞,再按风险优先级的提供已验证漏洞列表功能,协助开发人员实时的代码修复。

主要功能:全面精准的应用漏洞测试、开源组件漏洞和风险分析、应用漏洞自动化验证与溯源、全面详细的漏洞分析和定位、检测能力自定义

支持的检测语言:Java、Python、PHP、Go

支持的部署方式:Docker、Kubernetes / SaaS 服务

什么是IAST

简介

交互式应用安全测试(Interactive Application Security Testing)是 Gartner 在 2012 年提出的一项新的应用安全测试方案。

IAST 相当于 DAST 和 SAST 的组合,是一种相互关联的运行时安全检测技术。 它通过使用部署在 Web 应用程序上的 Agent 来监控运行时发送的流量并分析流量流以实时识别安全漏洞。

IAST 能提供更高的测试准确性,并详细的标注漏洞在应用程序代码中的确切位置,来帮助开发人员达到实时修复。

重要的事情说三遍:IAST 是一种安全测试工具而不是漏洞扫描工具,IAST 是一种安全测试工具而不是漏洞扫描工具,IAST 是一种安全测试工具而不是漏洞扫描工具。

类型

IAST 安全检测工具分成 被动式 IAST 和 主动式 IAST。

被动IAST

原理:

需要在安全测试环境中使用 Agent 对应用程序进行监控。它将利用功能测试如:输入、请求、数据库访问等来收集的数据后进行漏洞分析,因此不需要主动运行专门的攻击测试。

在这里插入图片描述

主要优势:

只需要业务测试(手动或自动)来触发安全测试,通过测试流量即可实时的进行漏洞检测,并不会影响同时运行的其他测试活动。

主动式IAST

原理:

将 DAST 解决方案(Web 扫描器)和在应用程序服务器内部的 Agent 相结合, Agent 将根据 Web 扫描器提供的功能验证现有漏洞。

在这里插入图片描述
洞态IAST属于被动式IAST

架构

洞态 IAST 由 DongTai Server 和 DongTai Agent 两种组件组成,下列会详细介绍。

DongTai Server

概述

在这里插入图片描述
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 回传给用户。

修改 Agent 设置流程

1、WebAPI 将处理来自 Web 的用户请求并将变化存储在数据库中。
2、当客户端 Web 应用程序重新启动, Agent 将通过 OpenAPI 拉取并使用变化的设置。

漏洞分析原理

在这里插入图片描述
【不信任数据采集】:首先将采集到的数据放到一个数据池子中,定义为污点池。
【不信任数据预处理】:接着从污点池里依定义的规则 hook 到函数的入参和出参。
【不信任数据传播图】:将污点池中的数据以树形结构串连起来形成传播图。
【不信任调用链查找】:最后以能够触达危险函数的链路即判定漏洞存在。

漏洞分析方法

在这里插入图片描述

DongTai Agent

概述

用于监控 Web 应用服务器的数据流。 DongTai Agent 会通过代码插桩来监控请求并不断收集数据,然后将这些数据发送到 DongTai Server。

如果在一台机器上部署了多个 Web 应用程序,需在每个 Web 应用程序服务器上安装一个 DongTai Agent。
在这里插入图片描述
从 DongTai Server 注册 DongTai Agent
按 Web 应用服务器开发语言下载和安装对应的 dongtai-core
dongtai-core 会从 server 上 pull 检测规则
最后再按检测规则采集数据,然后将数据回传至 DongTai Server

技术

DongTai Server

环境

Docker
Kubernetes
也可以不通过docker,手动部署

DongTai Agent

开发语言

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 配置

Agent 通用漏洞覆盖

漏洞等级 漏洞类型 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

与一篇文章了解DongTai IAST相似的内容:

一篇文章了解DongTai IAST

文章转载自DongTai官网,只限个人学习使用。 简介 洞态 IAST 是一个完全开源的 IAST 项目,它使用应用程序运行时数据流进行分析从而识别可被利用的安全漏洞,再按风险优先级的提供已验证漏洞列表功能,协助开发人员实时的代码修复。 主要功能:全面精准的应用漏洞测试、开源组件漏洞和风险分析、应用

[转帖]一篇文章让你了解灾备指标:RPO与RTO

RTO 和 RPO 都是企业灾难恢复(Disaster Recovery, DR)需要考虑的关键指标,这两个指标可以用来指导企业来制定合适的业务系统服务或数据的恢复方案。 RPO(Recovery Point Objective):即数据恢复点目标,主要指的是业务系统所能容忍的数据丢失量。 如果以定

【转帖】一篇文章让你了解灾备指标:RPO与RTO

RTO 和 RPO 都是企业灾难恢复(Disaster Recovery, DR)需要考虑的关键指标,这两个指标可以用来指导企业来制定合适的业务系统服务或数据的恢复方案。 RPO(Recovery Point Objective):即数据恢复点目标,主要指的是业务系统所能容忍的数据丢失量。 如果以定

乌卡时代的云成本管理:从0到1了解FinOps

在上一篇文章中,我们介绍了企业云业务的成本构成以及目前面临的成本困境,以及当前企业逐步转向 FinOps 的行业趋势,这篇文章我们将详细聊聊 FinOps,包括概念、重要性以及成熟度评价指标。 随着对云服务和供应商的使用越来越多,可能会出现复杂性和管理上的挑战,导致成本超支和其他问题。曾在2018年

[转帖]Redis 最大客户端连接数,你了解吗?

文章系转载,方便整理和归纳,源文地址:https://cloud.tencent.com/developer/article/1803944 1. 前言 上一篇文章《你的Redis集群撑得住吗?》讲了应用增加pod时,有一个应用最大连接数计算公式为:maxTotal * pod数 < Redis c

MongoDB从入门到实战之Docker快速安装MongoDB

前言 在上一篇文章中带领带同学们快速入门MongoDB这个文档型的NoSQL数据库,让大家快速的了解了MongoDB的基本概念。这一章开始我们就开始实战篇教程,为了快速把MongoDB使用起来我将会把MongoDB在Docker容器中安装起来作为开发环境使用。然后我这边MongoDB的可视化工具用的

设计模式-C#实现简单工厂模式

前言 上一篇文章写了如何使用RabbitMQ做个简单的发送邮件项目,然后评论也是比较多,也是准备去学习一下如何确保RabbitMQ的消息可靠性,但是由于时间原因,先来说说设计模式中的简单工厂模式吧! 在了解简单工厂模式之前,我们要知道C#是一款面向对象的高级程序语言。它有3大特性,封装、继承、多态。

架构与思维:再聊缓存击穿,面试是一场博弈

1 介绍 在之前的一篇文章《一次缓存雪崩的灾难复盘》中,我们比较清晰的描述了缓存雪崩、穿透、击穿的各自特征和解决方案,想详细了解的可以移步。 最近在配合HR筛选候选人,作为大厂的业务方向负责人,招人主要也是我们自己团队在用,而缓存是必不可少的面试选项之一。下面我们就来聊一聊在特定业务场景下缓存击穿和

Java反射源码学习之旅

在我刚开始了解反射这个Java特性的时候,几乎看到的每一篇文章都会有“Java反射不能频繁使用”、“反射影响性能”之类的话语,当时只是当一个结论记下了这些话,却没有深究过为什么,所以正好借此机会来探究一下Java反射的代码。

一文了解 history 和 react-router 的实现原理

>我们是[袋鼠云数栈 UED 团队](http://ued.dtstack.cn/),致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 >本文作者:[霜序](https://luckyfbb.github.io/blog) ## 前言 在[前一篇文章