基于pcap(或tshark)、pf_ring实现实时流量分析,使用http、syslog方式输出资产数据。
-i 流量采集网卡(例如:eth0、ens192),需必填
-s 数据接收服务器地址,需必填
-p 数据接收服务器监听端口,需必填
-t 标识流量来源,Default:localhost
-d Debug调试信息开关,off|on,Default:off
-c 缓存大小,用于过滤瞬时重复数据,Default:1024
-S 流量会话缓存大小,用于重组通讯会话,Default:1024
-T 定期重启清空内存,Default:3600
docker build -t dsolab/passets-sensor:<tag> .
# 启动
docker-compose up -d
# 停止
docker-compose down
docker-compose.yml配置文件说明:
version: "3"
services:
passets-sensor:
build:
context: ./
image: dsolab/passets-sensor:<tag>
container_name: passets-sensor
environment:
# 量采集网卡(例如:eth0、ens192),需必填
- interface=<ens192>
# 数据接收服务器地址,需必填
- ip=ServerIP
# 数据接收服务器监听端口,需必填
- port=ServerPort
# 标识流量来源,Default:localhost
- tag=localhost
# 缓存大小,用于过滤瞬时重复数据,Default:1024
- cache=1024
# stream缓存大小,用于会话配对
- session=1024
# 定期重启清空内存,Default:3600
- timeout=3600
# Debug调试信息开关,off|on,Default:off
- debug=off
# 非必填,根据http请求状态码过滤
- http_filter_code=400,404,304
# 非必填,根据http页面类型过滤
- http_filter_type=audio/,video/,image/
network_mode: host
privileged: true
restart: unless-stopped
docker run --restart=unless-stopped -d -e tag="localhost" -e interface="ens192" -e ip="ServerIP" -e port="ServerPort" -e debug="off" -e cache="1024" -e session="1024" -e timeout="3600" --privileged --net=host -it dsolab/passets-sensor:<tag> /bin/bash
HTTP OUTPUT JSON
{
# URL
"url": "http://www.dsolab.org/",
# 协议(HTTP/HTTPS)
"pro": "HTTP",
# 请求方式
"method": "GET"
# 来源标识
"tag": "dsolab",
# 服务IP
"ip": "108.x.x.136",
# 服务端口
"port": "80",
# 网站响应状态码
"code": "200",
# 网站页面类型
"type": "text/html",
# 网站server头信息
"server": "nginx/1.16.1",
# 网站响应body信息(仅-r on时返回)
"body": "<html>...</html>"
}
TCP OUTPUT JSON
{
# 协议
"pro": "TCP",
# 来源标识
"tag": "dsolab",
# 服务IP
"ip": "192.x.x.53",
# 服务端口
"port": "3306",
# TCP第一个响应报文(仅-r on时返回)
"data": "590000000a352e352e352d31302e312e32342d4d61726961444200a601000061655662665b776200fff72102003fa015000000000000000000006451474f396b345e5f40614a006d7973716c5f6e61746976655f70617373776f726400"
}
Q: 为什么无法捕获网口流量?
首先确认网口流量镜像配置正确,然后要确认网络工作模式(network_mode)是host。
Q: 深度资产信息采集,有哪些用途?
当-r on时,开启深度资产信息采集,会采集HTTP页面html数据和TCP第一个响应报文数据,数据可以用于协议识别、web应用指纹识别,如识别。但是,采集压力会上升,性能会下降。
Q:采用了哪种缓存机制?
本模块采用 LRU (最近最少使用)机制来进行数据缓存处理,以降低 logstash 的处理压力。HTTP协议、TCP协议(含HTTPS)分别独享用户定义的缓存空间。
Q:LRU算法的设计原则是什么?
如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。
深度资产信息采集
只有开启了深度资产信息采集开关,才可以采集到 HTTP 响应头、HTTP响应正文、TCP响应报文和HTTPS站点。
协议支持
-
HTTP
-
HTTPS
-
TCP
Q:是否一定需要安装pf_ring?
不需要
Q:安装pf_ring会有哪些提升?
pf_ring可以减少CPU处理从而提升数据采集能力,官方介绍文档:
Q:如何安装配置pf_ring?
pf_ring需要在宿主机上进行安装配置,参考文档:
https://github.com/DSO-Lab/passets/blob/master/docs/PF_RING_Install.md
测试pf_ring是否配置成功:
pfcount -i ens192