通过入侵行为分析IDS应用

IDS,即入侵检测系统其关键就在于检测能力。简单的说,设立IDS的目的就是当场检测到网络入侵事件的发生。本篇文章将通过监测恶性入侵性网页浏览行为,分析在企业安全防护中的IDS应用。

IDS就是一个网络上的系统,这个系统包含了下面三个组件:

(1)网络监测组件,用以捕捉在网络线上传递的封包。

(2)接口组件,用以决定监测中的资料传递是否属于恶意行为或恶意的使用。在网络传递时,用来比较的资料样式 (pattern),以监测恶意网络活动。

(3)响应组件,针对当时的事件予以适当的响应。这个响应可以是简单的,例如寄发一个电子邮件讯息给系统管理者,或者是复杂的,例如暂时将违规者的IP地址过滤掉,不要让他连到这个网络来。

IDS如何通过网页监测网络入侵事件

IDS系统不只必须监测各式各样,从大到小,以及各种系列的系统上的网络攻击事件,它还必须能够快速及时地的在第一时间内监测到入侵事件的发生。因此,IDS的数据库以及式样比对(pattern-matching)机制是复杂到令人难以置信的。

要使IDS能够监测通过网页的入侵事件,其中的网络监测组件就必须要能够捕捉所有通过网页通讯端口上,借着HTTP 通讯协议传递的网络资料往来。(注意,SSL的网络交通是完全绕过IDS的网络监测的,因为这些网络交换资料都是经过加密的。)式样比对组件在这里,主要是用于比较URL解析的结果,看看是否符合数据库中的恶意的HTTP回询(request)。

接下来,我介绍如何制作两个快速而简易的IDS应用软件,用来监测可疑的网页回询活动。这些解决方案的目的是在于提供系统管理者,让他们拥有一个特别针对他们网络而设计的监测/响应系统。

制作快速而简易的IDS应用软件

(1)Network Grep 工具

我们先从一个简单的网络监视程序开始,这个程序是用来监测 HTTP 通讯协议的网络资料往来。HTTP回询的特色是,它使用以下的语法:

〈HTTP-Request-Method〉 〈URL〉 HTTP/〈version〉

这个可在Packetfactory入口网站寻获的程序ngrep针对在网络上传递往来的资料,执行正则表示法(regular expression)式样比对。我们可以用以下的指令来利用ngrep拦截并显示所有纯文字形式的 HTTP 资料往来:

#ngrep-iqt“^GET|^HEAD|^TRACE|^POST|^PUT and HTTP”

以上指令中,-iqt 选项是指示ngrep不要区分资料中的大小写,并且只有显示封包中有符合式样比对的资料,以及在显示资料时加上日期以及时间的标题。(注:比对的式样,是基于 GET,HEAD,TRACE,POST,PUT,以及 HTTP 等关键词。欲知更多有关如何在ngrep使用正则表示法,你可以到http://www.packetfactory.net/Projects/Ngrep/查看相关资料。)

以上面我们建议的方式使用ngrep再加上运行越来越受欢迎的 Whisker程序,监测地址为 10.1.1.2 的IIS5.0 服务器平台,我们得到了以下的结果:

T 03:37:30.041739 10.1.1.21:2425 -> 10.1.1.2:80 [AP]
HEAD / HTTP/1.0..User-Agent: Mozilla/5.0 [en] (Win95; U)..Referer: http://10.1.1.2/..Connection: close….

T 2001/01/16 03:37:30.108630 10.1.1.21:2426 -> 10.1.1.2:80 [AP]
GET /cfdocs/ HTTP/1.0..User-Agent: Mozilla/5.0 [en] (Win95; U)..Cookie: ASPSESSIONIDGQGQGLAC=HDJNBOGBIPOCPNCKOJOPBCFD;path=
/..Referer:http://10.1.1.2/..Connection: close….

T 2001/01/16 03:37:31.842452 10.1.1.21:2427 -> 10.1.1.2:80 [AP]
GET /scripts/ HTTP/1.0..User-Agent: Mozilla/5.0 [en] (Win95; U)..Cookie: ASPSESSIONIDGQGQGLAC=HDJNBOGBIPOCPNCKOJOPBCFD;path=
/..Referer:http://10.1.1.2/..Connection: close….

T 2001/01/16 03:37:31.854206 10.1.1.21:2428 -> 10.1.1.2:80 [AP]
GET /scripts/cfcache.map HTTP/1.0..User-Agent: Mozilla/5.0 [en]
(Win95; U)..Cookie: ASPSESSIONIDGQGQGLAC=HDJNBOGBIPOCPNCKOJOPBCFD;
path=/..Referer: http://10.1.1.2/..Connection: close….

T 2001/01/16 03:37:33.644534 10.1.1.21:2429 -> 10.1.1.2:80 [AP]
GET /cfcache.map HTTP/1.0..User-Agent: Mozilla/5.0 [en] (Win95; U)..Cookie: ASPSESSIONIDGQGQGLAC=HDJNBOGBIPOCPNCKOJOPBCFD;path=
/..Referer:http://10.1.1.2/..Connection: close…. 

(2)执行式样比对

使用ngrep拦截网络资料往来很简单。然而,分析捕捉到的资料并从中抽取URL则略具难度。因为ngrep将资料输出拆成一行一行的,所以我们必须额外耗费很多精力,去重组输出的资料,并将该资料中的URL与已知的网络攻击行为模式做比对。

此时,我向大家介绍另一个用来监测网页传送的犀利工具软件了。这个软件就叫做urlsnarf,它是由Dug Song写成的dsniff工具软件套件的一部份。urlsnarf 从所拦截的网络资料传送中,捕捉所有的 HTTP 回询,并且将结果以共享日记文件格式(Common Log Format ,CLF)显示出来,这种格式就跟市面上的网页服务器,诸如Apache或者是IIS所用的格式一样。

跟当初我们用ngrep的方式一样,我们使用urlsnarf并且在 10.1.1.2 的服务器上执行Whisker,所得到的结果如下:

# urlsnarf
urlsnarf: listening on eth0
10.1.1.21 – – [16/02/2001:03:58:43 +0530] “HEAD http://10.1.1.2/ HTTP/1.0” – – “http://10.1.1.2/” “Mozilla/5.0 [en] (Win95; U)”

10.1.1.21 – – [16/02/2001:03:58:43 +0530] “GET http://10.1.1.2/cfdocs/ HTTP/1.0” – – “http://10.1.1.2/” “Mozilla/5.0 [en] (Win95; U)”

10.1.1.21 – – [16/02/2001:03:58:45 +0530] “GET http://10.1.1.2/scripts/ HTTP/1.0” – – “http://10.1.1.2/” “Mozilla/5.0 [en] (Win95; U)”

10.1.1.21 – – [16/02/2001:03:58:45 +0530] “GET http://10.1.1.2/scripts/cfcache.map HTTP/1.0” – – “http://10.1.1.2/” “Mozilla/5.0 [en] (Win95; U)”

10.1.1.21 – – [16/02/2001:03:58:48 +0530] “GET http://10.1.1.2/cfcache.map HTTP/1.0” – – “http://10.1.1.2/” “Mozilla/5.0 [en] (Win95; U)”

10.1.1.21 – – [16/02/2001:03:58:50+0530]”GET
http://10.1.1.2/cfide/Administrator/startstop.html HTTP/1.0″ – – “http://10.1.1.2/” “Mozilla/5.0 [en] (Win95; U)”

10.1.1.21 – – [16/02/2001:03:58:52 +0530] “GET http://10.1.1.2/cfappman/index.cfm HTTP/1.0” – – “http://10.1.1.2/” “Mozilla/5.0 [en] (Win95; U)”

使用urlsnarf唯一的缺点是,它现在的程序是写死的,只监听TCP通讯端口80(纯文字HTTP),3128(MS-proxy)以及8080(generic/squid proxy)。从其它通讯端口传输的HTTP协议资料则完全被忽略。要想改变这种限制,你必须在urlsnarf的原始程序代码中做一些小小的改变。然而,光是urlsnarf所提供的功能,就已经远远的超过它所给我们的限制了。

因为urlsnarf以CLF格式产生日记,我们可以将它的输出结果,转送到任何在网页服务器上使用CLF格式分析日记的日记分析软件。

监测恶性入侵性网页浏览行为

通过urlsnarf的输出,我们可以开始建立式样比对程序,以寻找网络入侵事件。在这里我利用一个简单的Perl程序来跟urlsnarf一起监测一些基本的网络入侵行为,假想体验一下在企业防护中的IDS应用。我们会把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)才被激活的。

 

【编辑推荐】

  1. 如何构建入门级IDS
  2. IDS漏洞分析与黑客入侵手法
  3. 测试评估IDS的性能指标
  4. 正确评估IDS性能的标准与步骤
  5. 企业测试IDS的四条重要标准

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/122975.html<

(0)
运维的头像运维
上一篇2025-02-22 14:28
下一篇 2025-02-22 14:29

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注