2024年4月16日发(作者:)
入侵检测工具Watcher
入侵检测工具Watcher
===================
参考资料 Watcher by hyperion
一、写在前面
你如何了解系统是否被攻克?在你发现系统中多了些奇怪的帐号或者某些特洛伊程序时,
一切已经太迟了。除非你的机器非常强大,否则你的机会只存在于当你在机器被扫描后、
而攻击发生前的短暂的时间段里。当然你可以用类似于tcp wrappers的程序来保证系统
连接的安全,但它并不能监测到stealth扫描或者DOS攻击,你也可以购买商业版本的入
侵监测系统——只要你不嫌贵的话,其实性价比最高的就是从互联网上获取类似的免费
的软件,安装或者改造它以适应你的需求,watcher就是这么一个家伙。
二、功能
watcher检测所有通过的信息包,并且将它认为是恶意的攻击行为记录在syslog中,当前
的watcher能够检测下列的攻击行为:
- 所有的TCP扫描
- 所有的UDP扫描
- Synflood攻击
- Teardrop攻击
- Land攻击
- Smurf攻击
- Ping of death攻击
所有的参数以及配置都是在命令行给出的,你可以配置它仅仅监视扫描行为或者仅仅监
视DOS攻击。它的监测行为是这样的:如果在短时间内有超过7个以上的端口收到信息包
(不管类型如何),那么这一事件就被当成端口扫描记录下来。UDP扫描认定的原理也一
样。当watcher在同一端口收到超过8个的syn包没有带ack或者fin位的话,就会认定是
synflood攻击事件。如果UDP的碎片包——IP包的id号是242,它就认为是teardrop攻击,
因为发布的攻击代码使用的是242的id号——这点存在不足;(。对同一端口的大量TCP
SYN包,带源地址及目标地址的,将被认为是land攻击,如果有超过5个icmp echo replies
在很短时间内出现(时间可以自定义),将记录为smurf攻击……
Watcher有三种监测模式,在默认的模式下,它仅仅监测对本台主机的攻击行为,第二种
模式可以监测在C类子网内的所有主机,第三种模式则可以监测所有能接收到信息包的主
机。当你把watcher放在外部主机上时,监测多主机特别有效,当一台主机的log文件被
破坏时,其它主机上还有记录。
由于watcher把所有的信息包都当成“攻击”,然后再进行分析,这种判断是极为粗糙的,
可能会误判,所以在代码中作者加入了一些过滤的技巧。
比如一些web server上会有漂亮的gif图片或者flash等玩意儿,而客户端这时往往会开了
多个线程来下载它,这时watcher的规则就会认为这是一次tcp scan,所以作者只好加上了
只有超过40个tcp连接才记录下的的规则——这些都是可定制的。就不详述了,你可以自行
参看下面的代码。
它的输出是非常简单的,每隔10秒它就将可能的攻击行为记录在syslog当中,同时源IP以及
目标IP甚至相关的信息比如端口号,包的数量等等也将被记录下来,如果该攻击行为的IP是
假的,那么它同时将记下MAC地址——如果攻击来自外部,地址将是你本地接收到该包的route
的地址,如果攻击来自内部的话,呵,你可以用自己的方式来"感谢"攻击者;)
三、程序参数
Watcher是用于linux系统的,通常你只需要在命令行后台运行它就可以了,它的参数如下:
Usage: watcher [参数]
-d device 将'device'设定为当前的网卡,默认为第一个non-loopback的interface
-f flood 设定接收到多少不完全的连接后才认为是flood的攻击
-h 帮助信息
-i icmplimit 设定接收到多少icmp echo replies就认为是smurf攻击
-m level 可以设定监控的机器,比如subnet为子域中的机器,或者all为所有
-p portlimit 在timeout的限制时间内有多少端口接收到信息包算是一次端口扫描
-r reporttype 如果reporttype设为dos,那么只有拒绝服务攻击会被记录,如果是scan
的话,只有扫描行为会被记录,默认则记录所有东西
-t timeout 每隔timeout的时间就记录信息包并打印出潜在的攻击行为
-w webcount 设定我们从80口接收到多少信息包才算是一次端口扫描(cgi)
希望这个小玩意能使你的系统稍微安全一些,但是得警告你的是,系统安全是多方面的,别
指望一个应用程序或者什么东西能使你绝对安全——如果你不信,迟早都得重装系统的;)
----[ 代码
<++> EX/Watcher.c
/*********************************************************************
Program: watcher
A network level monitoring tool to detect incoming packets indicative of
potential attacks.


发布评论