威胁情报 之 情报收集 - 网络篇-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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容