威胁情报 之 情报收集 - 网络篇-1

需求:
1 具备NIDS能力;
2 支持对全量数据包的存储;
3 支持快速对多个节点中的数据包进行预览、下载等操作;
针对以上的需求, 直接部署Suricata基本可以满足。主要2、3点的需求, 更加偏向溯源的方向, Suricata在这一方面稍显欠缺。
首先, Suricata在触发了告警之后只会保存攻击载荷(Payload)的数据包信息。但是, 对于一些有趣的事件, 我们很可能会需要查看整笔会话(Flow)的内容, 这个时候单独的一个告警数据包并不能起到很好的溯源效果。当然Suricata本身也提供了全数据包捕获的功能, 但因为没有Web界面的关系, 实际使用起来并不是很方便。不过我们使用Suricata的实际需求还是看重它的NIDS功能。

当然你也可以选择直接怼一个安全洋葱(Security Onion), Bro也是个很牛X NIDS。但是这样一来对于蜜罐的机器配置就有所要求了。

为了满足2、3点的需求, 我这边采用的是Moloch。Moloch本身并不具备IDS功能, 好在Moloch - 1.5增加了Suricata的插件(suricata.so), 可以直接读取Suricata的告警信息并Merge到Moloch的数据中。当然你得提前安装Sruciata。

Moloch的介绍
Moloch是一个开源,大规模,完整的数据包捕获,索引和数据库系统。 Moloch扩展了您当前的安全基础架构,以标准PCAP格式存储和索引网络流量,提供快速的索引访问。为PCAP浏览,搜索和导出提供了直观简单的Web界面。 Moloch公开了API,允许直接下载和使用PCAP数据和JSON格式的会话数据。 Moloch以标准PCAP格式存储和导出所有数据包,使您在分析工作流程中也可以使用您喜欢的PCAP摄取工具,例如: Wireshark。

Suricata的安装方法就不阐述了, 网上随便找一篇即可。这里主要说下Moloch的安装以及如何启用Sruicata插件的支持。

注: 由于我主要是部署在蜜罐环境的宿主机上, 暂不考虑性能问题。 性能相关可参考:
https://github.com/aol/moloch/wiki/Settings#Reader_pfring_Settings

宿主机环境: Ubuntu 16.04 x64

下载

https://molo.ch/#downloads

安装

dpkg -i moloch-master_ubuntu16_amd64.deb

配置

指定捕获网卡

对于情报收集我并不关注宿主机网卡的流量, 我只关注Docker上层容器的流量。所以我这里网卡选择了docker0。
这里会问你是否要安装ES, 我已经部署好了ES, 所以这里选择了NO, 接下来就是让你写你ES地址了, ES是存储SPI数据的, 你就理解成协议解析之后的数据就可以了。

root@hujulongpan:/data/moloch/bin# /data/moloch/bin/Configure
Found interfaces: br-56add4565de5;br-ab64bc2f60bc;br-bb44b4b226cc;br-ff0873fcf29d;docker0;eth0;lo;veth350673b;veth41b53b9;veth6a5150e;veth8cb7c00;veth9d411c1;vethaa368c0;vethe528737;vethf1bf361
Semicolon ';' seperated list of interfaces to monitor [eth1] docker0
Install Elasticsearch server locally for demo, must have at least 3G of memory, NOT recommended for production use (yes or no) [no] no
Elasticsearch server URL [http://localhost:9200] http://es_host:9200
Password to encrypt S2S and other things [no-default] hello_world!
Moloch - Creating configuration files
Not overwriting /data/moloch/etc/config.ini, delete and run again if update required (usually not), or edit by hand
Installing systemd start files, use systemctl
Download GEO files? (yes or no) [yes] yes
Moloch - Downloading GEO files
WARNING: timestamping does nothing in combination with -O. See the manual
for details.

启用Suricata.so插件支持

默认安装阶段不会让你选择是否启用Suricata的插件支持, 需要单独修改配置文件。vim /data/moloch/etc/config.ini

plugins=suricata.so
suricataAlertFile=/var/log/suricata/eve.json
suricataExpireMinutes=60

注: 默认会由于权限问题导致报错。

Jul 31 13:22:14 suricata.c:395 suricata_open(): ERROR - Permissions problem, can't open suricataAlertFile '/var/log/suricata/eve.json'

解决方法:

  • 添加读取权限
chmod o+r /var/log/suricata/eve.json
  • 修改用户
# User to drop privileges to. The pcapDir must be writable by this user or group below
dropUser=nobod # 指定用户

插件相关, 请戳: https://github.com/aol/moloch/wiki/Settings#Plugins

定期删除PCAP

# Delete pcap files when free space is lower then this in gigabytes OR it can be
# expressed as a percentage (ex: 5%). This does NOT delete the session records in
# the database. It is recommended this value is between 5% and 10% of the disk.
# Database deletes are done by the db.pl expire script
freeSpaceG = 5%    # 根据实际情况进行调整

bfp过滤无用数据

其实我这边已经指定抓取了Docker内部的流量, 宿主机本身的流量我是不进行抓取的. 所以基本上没有"脏"数据.

# bpf=not port 9200

Moloch Viewer Web User

/data/moloch/bin/moloch_add_user.sh admin "Admin User" THEPASSWORD --admin    # 登陆Web的密码

初始化Elasticsearch数据库

/data/moloch/db/db.pl http://ESHOST:9200 init

启动进程

systemctl start molochcapture.service    # Moloch 采集进程
systemctl start molochviewer.service      # Moloch Web进程 (溯源时候用的着)

Moloch Viewer

通过以下截图可以看出 Moloch 是一个很好的开源全流量捕获平台。
http://x.x.x.x:8005 (Web界面默认端口)

1.png

Moloch支持在同一个Web界面上对多个节点的数据包进行查看以及下载, 可以更加方便的对网络攻击进行溯源。
2.png

Moloch + Suricata的告警
3.png

Moloch 协议解析方面也比Suricata要强一些
7.png

SPI Data

4.png

可以看到SPI Data会记录同一笔会话中, 共触发了多少次告警及告警名称等信息. Moloch也帮助我们做了一层简单的聚合.
5.png

美中不足

  • Suricata输出的Payload部分并没有被集成进来。不过, 我们可以通过Moloch Viewer查询全流量数据包, 或者通过ES查询对应flow id的告警即可。


    6.png
  • 貌似Moloch暂不支持将SPI Data发送到Redis或者Kafka, 现在是直接发送到ES的, 这样流量一大就担心丢数据:(。我翻了一下Wiki并没有查到相关配置. 不知道是不是我有遗漏, 如果有知道的可以告知我一下, 感谢!

第一次写文章, 有不对的地方还请各位小伙伴及时指出。不喜勿喷, 谢谢

愿结交志趣相投的小伙伴, 微信: Canon_xuh

你可能感兴趣的:(威胁情报 之 情报收集 - 网络篇-1)