网络分析利器wireshark命令版4tshark结合ES

tshark是网络分析工具wireshark下的一个工具,主要用于命令行环境进行抓包、分析,尤其对协议深层解析时,tcpdump难以胜任的场景中。本系列文章将整理介绍tshark相关内容。本文将介绍与tshark相关的流量解决方案。 利用tshark,不仅可以对现有的pcap文件进行分析,由于可以输出其他格式,也就可以结合ES的强大搜索能力,达到对数据报文进行记录、分析处理的能力,可以实现回溯分析,结合kibana可视化工具,甚至达到实时可视化监控。 tshark + elastic stackelastic stack全家桶性能一直被诟病,后来另起炉灶,针对采集使用golang构建出一套beats,用于不同的采集场景。其中针对网络流量,开发出packetbeat。 packetbeat的优势是定制了elasticsearch的mapping、kibana一系列可视化图表,可以满足一般对tcp、dns、udp等常规报文的分析。基本达到开箱即用程度。 但packetbeat也有不足,对报文的分析采用会话分析,没有一个个报文单独分析,倾向于应用层,对网络层面分析不足(尤其是故障排查时),此外,支持的协议有限,仅常见协议与tshark的2000多种存在明显差距,当遇到不支持时,需要等待支持或手动写插件,难度极高。 离线导入elasticsearchtshark支持将pcap报文分析后生成json文件导入elasticsearch,同时支持elasticsearch的批量导入接口_bulk的格式,命令如下: tshark -r test_trace.pcap -T ek > test_trace.pcap.json之后可以将json文件通过curl导入。 curl -s -H "Content-Type: application/x-ndjson" -XPOST "localhost:9200/foo/_bulk" --data-binary "@/Users/test-elastic/test_trace.pcap.json"注: 导入时可能存在导入失败,由于_bulk接口对post的文件大小有限制,尽量不要超过15MB,最好在10MB以内。如果超过,建议使用tshark的输出条件生成多个json文件,使用curl依次导入。如果导入失败,可以在curl加-v查看提示信息。默认索引名为类似 packets-2019-04-23(报文记录的日期),可以导入后重新索引可以使用类似以下命令查看导入情况: curl 'http://127.0.0.1:9200/packets-2019-04-23/_search/?size=10&pretty=true'实时监控方案主要思路使用tshark实时抓取报文,并启用过滤策略使用tshark解析捕获的报文,提取指定的字段并写入csv文件中,或者使用json格式在下一步进行ETL writes captured wireless packets as .csv.使用filebeat持续检测csv文件,并发个logstash用于字段过滤之类(如无需过滤可以跳过logstash直接发给elastsearch)logstash对字段进行过滤,格式转化等,之后发到elasticsearch使用kibana进行数据可视化,对报文统计分析简单实现1. tshark部分tshark -a duration:600 -i phy0.mon -t ad -t ad -lT fields -E separator=, -E quote=d -e _ws.col.Time -e wlan.fc.type -e wlan.fc.type_subtype -e radiotap.dbm_antsignal -e frame.len -e radiotap.datarate > tshark.csv2. filebeat简单filebeat.yml配置文件 ...

May 1, 2019 · 2 min · jiezi

网络分析利器wireshark命令版:Apache Spot中tshark模块(3)

tshark是网络分析工具wireshark下的一个工具,主要用于命令行环境进行抓包、分析,尤其对协议深层解析时,tcpdump难以胜任的场景中。本系列文章将整理介绍tshark相关内容。本文将介绍与tshark相关的开源系统。Apache SpotSpot简介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命令就不详细介绍,可参考上篇文章: 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 参考 Apache Spot主站incubator-spot 系列文章: 网络分析利器wireshark命令版:tshark简介(1)网络分析利器wireshark命令版:tshark使用示例(2)网络分析利器wireshark命令版:Apache Spot中tshark模块(3)[网络分析利器wireshark命令版:tshark结合ES(4)] ...

April 17, 2019 · 1 min · jiezi