浅析网络入侵监测系统-IDS的应用
4、监测恶性入侵性网页浏览行为
通过urlsnarf的输出,我们可以开始建立式样比对程序,以寻找网络入侵事件。在这里我利用一个简单的Perl程序来跟urlsnarf一起监测一些基本的网络入侵行为。我们会把urlsnarf的执行结果转传给这个式样比对程序,通过式样比对的方法监测网络入侵行为。
式样比对程序的第一步是,定义一连串入侵性的URL查询。为了简单起见,我们只列出某些URL如下:
%cgis = ("/msadc/msadcs.dll" => "mdac",
"/msadc/Samples/selector/showcode.asp" => "showcode",
"/cgi-bin/guestbook.cgi" => "guestbook",
"/cgi-bin/test-cgi" => "test-cgi",
"/cgi-bin/finger" => "finger",
"/cfdocs/expelval/exprcalc.cfm" => "exprcalc",
"/cgi-bin/phf" => "phf",
"/scripts/samples/search/webhits.exe" => "webhits",
"/scripts/iisadmin/ism.dll" => "ism",
"/scripts/tools/newdsn.exe" => "newdsn",
"/scripts/perl.exe" => "perl_exe",
"/scripts/proxy/w3proxy.dll" => "w3proxy"
);
我们使用了%cg集中储存所有我们需要的恶意URL查询式样。在这里,我们也可以从一个含有这些“特征”的档案,动态建立这个查询式样库。 注意,以上的URL本身并无害;然而,它们通常被黑客利用来做恶意的网页攻击的基础。(例如:msdacs.dll就可以被用来破坏 MDAC/RDS)。
下一步,是设定容忍的最低程度,即:如果某个访客查询某个URL超过三次的话,这个访客的IP地址就会被列在黑名单中。在我们的程序里,定义如下:
$threshold = 3;
下一段重要的程序代码,是一个以while叙述开始的循环,这个循环会从urlsnarf读取每一个CLF纪录,并且做分析。为了避免谈到太多Perl程序语言的细节,有关 while 循环的说明就像以下这样:
while(〈 〉) {
# # parse incoming log line
# $logline = $_;
# # pick out the IP,timestamp andURLfrom theCLFline
# $logline =~ /(S+).+?([.+]).+?(".+?").+/;
# $ip = $1;
# $time = $2;
# $url = $3;
# # select the resource from the URL
# $url =~ /w+s+.*//.+?(/.*)s+.*/;
# $resource = $1;
# check if there is a match with theURL
变量$resource的值为URL回询中的resource字符串。例如,如果URL为 http://10.1.1.2/msadc/msadcs.dll,那么 resource 字符串的值就是 /msadcs/msadcs.dll。
接着是,寻找我们的URL“特征”库,看看所查询的URL字符串是否符合其中的一个特征。如果式样符合,我们找出这个查询出处的IP地址, 然后将它的访客指数加一。如果访客观存在指数超过了我们的容忍底线,那么我们将这个IP地址标为黑客地址。
下面是式样比对部分的程序代码:
# check if there is a match with the URL
if($cgis{$resource} ne "") {
push(@{ $offender_list{$ip} }, $cgis{$resource});
# check if the threshold count is crossed
if($offence_count{$ip}++ > $threshold) {
# response to intrusion detected
print STDERR "** $ip " . join(" ",@{ $offender_list{$ip} }) . "n";
} }
将这个程序取名为pattern_match.pl。开始使用urlsnarf以及 pattern_match.pl,urlsnarf 以及pattern_match.pl 得出来的结果应该是如下所示:
#urlsnarf| pattern_match.pl
一个Whisker扫描范例,执行urlsnarf以及pattern_match.pl,监测地址为 10.1.1.2 的IIS5.0 服务器平台,我们得到了以下的结果:
** 10.1.1.21 webhits ism showcode newdsn
** 10.1.1.21 webhits ism showcode newdsn mdac
** 10.1.1.21 webhits ism showcode newdsn mdac w3proxy
** 10.1.1.21 webhits ism showcode newdsn mdac w3proxy perl_exe
这些结果告诉我们,来自IP地址 10.1.1.21 的访客为恶意访客,并且也列出了一连串针对 10.1.1.2 的相关可疑的URL回询。黑客回报系统是在“特征 URL”已经被查询三次了以后,第四次类似的查询又发生(newdsn)才被激活的。
5、小结
在这里,我向大家介绍了如何利用IDS系统监测以网页为媒介的网络入侵活动以及示范如何让各式各样的工具以及script在很短的时间内组织起来,以形成功能强大的工具。但由于本人的知识及经验有限,难免存在不足之处,希望大家验给予指正,谢谢!在以后在篇章中,我将会大家介绍网络入侵监测软件如何抵挡黑客们使用的IDS躲避技术。(完)