tshark
是网络分析工具wireshark
下的一个工具,主要用于命令行环境进行抓包、分析,尤其对协议深层解析时,tcpdump
难以胜任的场景中。本系列文章将整理介绍tshark
相关内容。本文将介绍与tshark
相关的开源系统。
Apache Spot
Spot简介
Apache Spot
是一个开源软件,提供流量和数据包分析的洞察力。通过透明的服务交付,可以帮助识别企业与服务提供商或在云规模运营的资源之间发生的攻击、潜在安全威胁,深入了解其网络环境及安全风险。虽然威胁情报工具有助于识别未知威胁
和攻击,但发现未知威胁仍然是一项挑战。 Apache Spot
通过大数据和科学计算学科中强大的技术,专注于检测诸如横向移动,旁道数据逃逸,内幕问题或隐身行为等事件的“深层安全问题”,使用流量和数据包分析技术暴露可疑连接和以前看不见的攻击的能力,为公司构建一个旨在支持这一战略的解决方案。
整体架构
主要功能及特点
感知Telemetry
- Flows.
- 域名解析DNS (pcaps).
- 代理Proxy.
并行采集框架Parallel Ingest Framework
- 开源解码器Open source decoders.
- 读取hadoop数据Load data in Hadoop.
- 数据转换Data transformation.
机器学习Machine Learning
- 快速过滤10亿级事件Filter billion of events to a few thousands.
- 无监督学习Unsupervised learning.
操作分析Operational Analytics
- 可视化Visualization.
- 启发式分析Attack heuristics.
- 噪音过滤Noise filter.
Spot采集架构
由上图可知,Apache Spot
在处理DNS流量时采用tshark
方案,用于协议解析数据ETL
等工作。
tshark相关源码
根据架构图,发现主要在ingest模块,查看相关源码,可以发现Spot
是如何应用tshark
的。具体代码如下:
查看源码 spot-ingest/pipelines/dns/worker.py
# build process cmd.
process_cmd = "tshark -r {0}{1} {2} > {0}{1}.csv".format(self._local_staging, file_name, self._process_opt)
再查看相关配置 spot-ingest/ingest_conf.json
"dns":{
"type":"dns",
"collector_path":"/collector_path/dns",
"local_staging":"/collector_path/dns/tmp",
"supported_files":[".pcap"],
"pkt_num":"650000",
"pcap_split_staging":"/collector_path/dns/dns_staging",
"process_opt":"-E separator=, -E header=y -E occurrence=f -T fields -e frame.time
-e frame.time_epoch -e frame.len -e ip.src -e ip.dst -e dns.resp.name
-e dns.resp.type -e dns.resp.class -e dns.flags.rcode -e dns.a 'dns.flags.response == 1'"
},
上面Dshark
命令主要为读取记录的pcap报文,按照格式输出为.csv文件,其中主要参数见上方的process_opt配置。详细介绍可参考本系列上篇文章: tshark使用示例(2),有类似命令作用解析。
尝试Demo
- 部署
docker
环境 - 抽取
docker
镜像:docker pull apachespot/spot-demo
- 启动镜像:
docker run -it -p 8889:8889 apachespot/spot-demo
- 在浏览器中打开
http://localhost:8889/files/ui/flow/suspicious.html#date=2016-07-08
参考
系列文章:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。