Graylog2进阶 打造基于Nginx日志的Web入侵检测分析系统

对于大多数互联网公司,基于日志分析的WEB入侵检测分析是不可或缺的。

那么今天我就给大家讲一讲如何用graylog的extractor来实现这一功能。

首先要找一些能够识别的带有攻击行为的关键字作为匹配的规则。

由于我不是专门搞安全的,所以在网上找了一些软waf的规则脚本。

剩下来的工作就可以交给Graylog的extractor实现了。

这次介绍一下extractor的Copy input用法。

 (1)waf规则脚本如下:

\.\./
select.+(from|limit)
(?:(union(.*?)select))
having|rongjitest
sleep\((\s*)(\d*)(\s*)\)
benchmark\((.*)\,(.*)\)
base64_decode\(
(?:from\W+information_schema\W)
(?:(?:current_)user|database|schema|connection_id)\s*\(
(?:etc\/\W*passwd)
into(\s+)+(?:dump|out)file\s*
group\s+by.+\(
xwork.MethodAccessor
(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|preg_\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\(
xwork\.MethodAccessor
(gopher|doc|php|glob|file|phar|zlib|ftp|ldap|dict|ogg|data)\:\/
java\.lang
\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\[
\<(iframe|script|body|img|layer|div|meta|style|base|object|input)
(onmouseover|onerror|onload)\=

(2)在导航栏Search中选择一条nginx日志,点击右边的小黑三角,依次选择Create extractor for field url -> Copy input

Graylog2进阶 打造基于Nginx日志的Web入侵检测分析系统

(3)在Condition中选择正则表达式匹配Only attempt extraction if field matches regular expression ,选择一条waf规则填入Field matches regular expression,在store as field中填入要保存的字段risk_url,

这个操作的主要作用就是把符合waf规则条件的url字段的值在拷贝到新的字段risk_url中,这样在做数据过滤的时候,只要判断risk_url字段不为空就能把风险请求的url过滤出来了。

Graylog2进阶 打造基于Nginx日志的Web入侵检测分析系统

(4)在Streams新建一个名为risk_url_log的stream。

Graylog2进阶 打造基于Nginx日志的Web入侵检测分析系统

Graylog2进阶 打造基于Nginx日志的Web入侵检测分析系统

(5)在我们建好的risk_url_log的stream中选择Manage RulesField填入刚才规则里创建的字段risk_url, Type选择field presence ,点击save保存。

这一步的操作主要就是告诉graylog只要字段risk_url字段是存在的,就放入risk_url这个stream中,方便我们日后查阅。

Graylog2进阶 打造基于Nginx日志的Web入侵检测分析系统

Graylog2进阶 打造基于Nginx日志的Web入侵检测分析系统

Graylog2进阶 打造基于Nginx日志的Web入侵检测分析系统

上一篇:[Tools] API Extractor Setup for Typescript


下一篇:jmeter设置全局变量踩过的坑