上一篇文章中利用Graylog自带的Geo-Location Processor对目的IP这个字段进行了富化,并且结合Grafana的Worldmap仪表盘展示地理位置相关的数据,可以观察是否有主机连接到了境外的IP,但如果有全球的业务,还是不能直观的看到这些目的IP是否为恶意,于是这一章节需要对日志中的目的IP字段进行自动化调查,通过Graylog本身开放性结合GreyNoise的API进行自动化调查。
那么GreyNoise是什么?
GreyNoise collects, analyzes, and labels data on IPs that scan the internet and saturate security tools with noise.
https://www.greynoise.io/
1.获取API KEY
Graylog通过使用GreyNoise的威胁情报,可以快速发现恶意IP地址。在使用GreyNoise的API之前需要先进行注册,登录官网点后击SIGN UP FOR FREE注册账号
注册完成后点击右上角账号名称,在弹出菜单中选择MY API KEY
点击VIEW API KEY,查看后续使用的使用API KEY信息
2.Graylog配置
登录Graylog控制台,点击System-Lookup Tables,点击Data Adapters
在页面中点击Create data adapter
在弹出窗口中选择GreyNoise Community IP Lookup
接下来对参数进行配置,Title以及Description配置成GreyNoise,API Token填写刚才获取到的API KEY,其他参数保持不变,配置完成点击Create Adapter
配置完成如下图所示,点击刚才创建的data adapter测试是否有效
输入需要调查的IP地址,如185.3[.]94.183,查询结果如下图所示,调查结果为malicious
大多数的API接口都会限制用户一段时间内访问数量,会导致当使用次数超限制之后改变自动调查失效。Graylog通过创建数据缓存来解决该问题,在调用GreyNoise接口进行调查前会先检查缓存中的数据,如果需要查询的数据已在缓存中,则会直接利用缓存数据,缓存允许根据业务以及资源设置缓存时间,以便最少程度调用GreyNoise。缓存时间越长占用的内存越多。
点击System-Lookup Tables,点击Caches
在页面中点击Create cache
在弹出窗口中Cache Type选择Node-local,in-memory cache
接下来对参数进行配置,Title以及Description配置成GreyNoise cache,Expire after access选择60minutes,配置完成点击Create Cache
配置完成如下图所示
接下来配置Lookup Tables,把刚才创建的data adapter以及cache进行关联,点击System-Lookup Tables,点击Create lookup table
在弹出窗口中Title、Description以及Name设置成GreyNoise table,Data Adapter选择GreyNoise,Cache选择GreyNoise cache,配置完点击Create Lookup Table
创建完如下图所示
接下来需要创建Pipelines,通知Graylog日志中什么字段为目的IP地址字段,需要进行自动化调查,点击System-Pipelines,点击Manage rules
在弹出窗口中点击Create Rule
把Description字段设置为GreyNoise Lookup on data_win_eventdata_destinationIp,对应的Rule source规则如下所示,使用时对目的IP字段进行替换,配置完点击Apply,再点击Save&Close
rule "GreyNoise Lookup on data_win_eventdata_destinationIp"
when
has_field("data_win_eventdata_destinationIp")
then
let ldata = lookup(
lookup_table: "GreyNoise table",
key: to_string($message.data_win_eventdata_destinationIp)
);
set_fields(
fields: ldata,
prefix: "GreyNoise_"
);
end
通过之前查看日日志目的IP地址字段为data_win_eventdata_destinationIp
配置完如下图所示
点击Manage Pipelines
点击Add new pipeline
在弹出窗口中Title以及Description都设置成GreyNoise pipeline,完成后点击Save
在弹出页面中点击Stage 0后的Edit按钮
Stage rule选择刚才创建的rule,点击Save
在Pipeline connections后点击Edit connections,选择wazuh alert这个Stream,点击Save
(上面有点笔误,需要先配置Stream,再配置Stage,Pipeline中的两步写反了)完成后如下图所示
最后点击System-Configurations,把Message Processors Configuration栏中,Pipeline Processor位置调整到Message Filter Chain下方
完成之后查看新收到的日志中已经带有GreyNoise_字段,如下图所示
这样子就完成了对于日志中目的IP地址的自动化调查,下一篇将介绍如何把防火墙日志接入,由于防火墙的流量比终端上捕捉到的流量大很多,目的IP地址的调查优势会进一步放大。欢迎订阅收看开源SOC实现(八)-pfSense防火墙日志接入。
排错过程参考链接:
https://community.graylog.org/t/stream-messages-does-not-hit-pipeline/8061