开源HIDS-OSSEC使用实例:监测CC攻击


发布人:admin分类:网络安全浏览量:32发布时间:2017-12-12

OSSEC作为一款流行的开源HIDS在FreeBuf上已经有不少文章了,虽然ossec已经内置了一些规则,但要真正满足实际的需求还是远远不够的。这里以一个实例,具体讲解一下如何自己制定一条规则,来加深对ossec的理解。

思路

假设我们有这样一个需求,要对指定的某个动态页面进行监测(本文例子为/phpinfo.php),通过一段时间内的单个ip访问频率判断是否存在cc行为。

通过ossec处理该需求的思路:

1.监控web服务器web日志文件读取日志。
2.针对/phpinfo.php该页面建立一条rule,规则为每当检测到/phpinfo.php被访问到一次,则触发一次。
3.再新建一条rule,规则为一定时间内同一个ip触发我们刚才建立的rule达到一定次数,则触发本条规则(本文为方便验证,暂设为每分钟10次)。

思路已经有了,我们再看看怎么实现。我使用的环境为一台ossec server+webui(centos),一台装了ossec agent(centos)的Apache server,具体部署方法可以百度或者站内搜索,这方面的资料很多就不赘述了。

如何配置

首先我们要将Apache server的access访问日志添加到ossec日志源中。修改ossec agent端的配置文件ossec.conf,加入如下配置:

<localfile>
  <location>/var/log/httpd/access_log</location>
  <log_format>apache</log_format>
</localfile>

<location>标签中的内容为需要监控的日志文件路径,这里填access日志的实际路径,<log_format>标签则是日志的类型格式,这里用到的是Apache。其它支持的格式可以参考官方文档http://ossec-docs.readthedocs.org/en/latest/syntax/head_ossec_config.localfile.html

完成之后,我们先不着急建立新的规则,而是先看一下Apache日志在ossec中是怎么解析的。首先访问一下/phpinfo.php,从accesslog中找到这条访问日志。然后我们要用到{ossec路径}/bin/ossec-logtest这个工具来测试一下,结果如下图:

日志包含的字段已经解析了出来,并且匹配中了id为31108的rule。我们看看31108是个什么样的规则(在规则文件rules/web_rules.xml中):

  <rule id="31108" level="0">
    <if_sid>31100</if_sid>
    <id>^2|^3</id>
    <compiled_rule>is_simple_http_request</compiled_rule>
    <description>Ignored URLs (simple queries).</description>
   </rule>

这条规则意思为,若日志的响应代码为2xx或者3xx,则匹配该规则。我们可以在新建的规则中用到这条rule,帮我们过滤掉403、404页面。

在web_rules.xml规则文件中添加如下rule:

  <rule id="31170" level="3">
    <if_sid>31108</if_sid>
    <url>^/phpinfo.php</url>
    <description>target url </description>
  </rule>

这条rule意思是匹配了31108rule的日志中url包含/phpinfo.php的话,则匹配该rule,<url>标签中可用"|"分隔添加多个路径。

进行测试

我们再用ossec-logtest工具测试一下:

我们新添加的规则已经匹配成功。不过这里level值实际用的时候要改成0,不然一直报警会很烦的(ossec默认不会对level 3以下的rule报警)。

继续添加下一条规则,也是判断cc攻击的规则:

  <rule id="31171" level="10" frequency="10" timeframe="60">
    <if_matched_sid>31170</if_matched_sid>
    <same_source_ip />
    <description>cc attacks </description>
    <group>DDOS</group>
  </rule>

当同一ip在60秒内触发id为31170的rule 10次的时候,触发本规则(标签的具体描述请参考:http://ossec-docs.readthedocs.org/en/latest/syntax/head_rules.html)。

最后,依次重启ossec server端和agent端的服务,使规则生效。反复刷新/phpinfo.php页面,可看到实际的报警效果:

至此新建规则的工作已完成,只需按照自己的需要略微修改即可。今后的文章中我会进一步讲到利用ossec的active-response功能对cc攻击进行阻断。

* 作者:plane636,文章属FreeBuf黑客与极客(Freebuf.COM)原创奖励计划,


被黑站点统计 - 文章版权1、本主题所有言论和图片纯属会员个人意见,与本文章立场无关
2、本站所有主题由该文章作者发表,该文章作者与被黑站点统计享有文章相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和被黑站点统计的同意
4、文章作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、被黑站点统计管理员有权不事先通知发贴者而删除本文

免责声明

本站主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据.本站所有工作人员均不参与黑站,挂马或赢利性行为,所有数据均为网民提供,提交者不一定是黑站人,所有提交采取不记名,先提交先审核的方式,如有任何疑问请及时与我们联系.

admin  的文章


微信公众号

微信公众号


Copyright © 2012-2022被黑网站统计系统All Rights Reserved
页面总访问量:21272376(PV) 页面执行时间:60.77(MS)
  • xml
  • 网站地图