windows入侵检测系统部署Word格式文档下载.docx
《windows入侵检测系统部署Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《windows入侵检测系统部署Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
Snort通过检测引擎、预处理器和解码引擎输出报警。
三、规则解析
Snort采取命令行方式运行。
格式为:
snort-[options]。
options中可选的参数很多,下面逐一介绍。
首先介绍-[options]的内容:
-A设置告警方式为full,fast或者none。
在full方式下,Snort将传统的告警信息格式写入告警文件,告警内容比较详细。
在fast方式下,Snort只将告警时间,告警内容,告警IP地址和端口号写入文件。
在none方式下,系统将关闭告警功能。
-a显示ARP包
-b以tcpdump的格式将数据包记入日志。
所有的数据包将以二进制格式记入名为snort.log的文件中。
这个选项提高了snort的操作速度,因为直接已二进制存储,省略了转换为文本文件的时间,通过-b选项的设置,snort可以在100Mbps的网络上正常工作。
-c使用配置文件。
这是一个规则文件。
文件内容主要控制系统哪些包需要记入日志,哪些包需要告警,哪些包可以忽略等。
-C仅抓取包中的ASCII字符
-d抓取应用层的数据包
-D在守护模式下运行Snort。
告警信息发送至/var/log/snort.alert,除非特别配置。
-e显示和记录网络层数据包头信息
-F从文件中读取BPF过滤信息。
-h设置(C类IP地址)为内部网络.当使用这个开关时,所有从外部的流量将会有一个方向箭头指向右边,所有从内部的流量将会有一个左箭头.这个选项没有太大的作用,但是可以使显示的包的信息格式比较容易察看.
-i使用网络接口文件。
-l将包信息记录到目录下。
设置日志记录的分层目录结构,按接收包的IP地址将抓取的包存储在相应的目录下。
-M向〉文件中的工作站发送WinPopup消息。
文件格式非常简单。
文件的每一行包含一个目的地址的SMB名。
-n处理完包后退出。
-N关闭日志功能。
告警功能仍然工作。
-o改变应用于包的规则的顺序。
标准的应用顺序是:
Alert->
Pass->
Log;
采用-o选项后,顺序改为:
Log,允许用户避免使用冗长的BPF命令行来过滤告警规则。
-p关闭混杂模式的嗅探(sniffing)。
这个选项在网络严重拥塞时十分有效。
-r读取tcpdump生成的文件。
Snort将读取和处理这个文件。
例如:
当你已经得到了一个Shadow文件或者tcpdump格式的文件,想处理文件包含的内容时,这个选项就很有用了。
-s将告警信息记录到系统日志。
在其他的平台下,日志文件可以出现在/var/log/secure,/var/log/messages目录里。
-S,n=v>
设置变量n的值为v。
这个选项可以用命令行的方式设置Snort规则文件中的变量。
如果要给Snort规则文件中的变量HOME_NET赋值,就可以在命令行下采用这个选项。
-v将包信息显示到终端时,采用详细模式。
这种模式存在一个问题:
它的显示速度比较慢,如果你是在IDS网络中使用Snort,最好不要采用详细模式,否则会丢失部分包信息。
-V显示版本号,并退出。
-x当收到骚扰IPX包时,显示相关信息。
-?
显示使用摘要,并退出。
Snort规则是Snort入侵检测系统的重要组成部分。
规则集是snort的攻击特库,每条规则都对应~条攻击特征,snort通过它来识别攻击行为。
每一条规包括两个部分:
规则头部(RuleHeader)和规则选项(RuleOption)。
规则头包含规则的行为、协议、源地址、目的地址、子网掩码、源和目的端口信息。
规则选项包含报警信息以及规则触发时提供给管理员的参考信息。
’
alerttcpanyany一>
202.203.112.0/24any(content:
“proxy—connection”;
msg:
“proxyuse”;
)
这条规则述信息是:
对任何访问202.203.112网段,tcp报文中含有proxy—connection的流量报警。
在这个例子中,左括号前面是规则头。
圆括号内的内容是规则选项,在规则选项中,content后面的内容为关键字,及需要匹配的字符串,msg后面的内容为规则触发时将显示的信息。
Snort的规则定义中可以没有规则体,它们只是用来更好地定义所要进行的某种处理n己录、报警、忽略等)的数据包类型。
只有当规则中的每一个元素都为真时,才能触发对应的规则动作。
在该文件中,一条规则必须在一行中,符号#是注释行.所有的ip地址和端口号都要使用数字形式,系统并不支持名字服务.一条规则的格式如下:
funcprotosrc_ip/masksrc_port_range->
dst_ip/maskdst_port_range(options)
动作协议源地址源端口目标地址目标端口(选项)
动作包括三类:
告警(alert),日志(log)和通行(pass).表明snort对包的三种处理方式.
在源/目的地址/端口中可以使用any来代表任意的地址或端口.还可以使用符号!
来表明取非运算.同时,在目的和源地址之间可以使用标识符来指明方向.
选项包括:
1.msg-------将要放入alert或log文件中的输出信息;
2.flags-------tcp协议中的标志,如SYN,ACK等等,如果是0则表明全部标志.
3.ttl-------在ip包中的ttl值,有利于识别traceroute包.
4.content----数据包的应用层,查找缓冲区溢出攻击.
5.itype-------icmp包的类型;
6.icode-------icmp包的编码;
7.minfrag----最小的分片的有效载荷大小.
8.seg---------tcp包中的顺序号;
9.ack--------tcp包中的响应号;
10.id------ip包中分片的序号;
11.logto---指定特殊的存放告警信息的文件;
12.dsize---指定特定的包的长度;
13.offset---在包中查找一定字节内容;
14.depth---在数据包中仅仅查找depth字节.
15.ipopts---查找一个特定的ip选项.
2.设计规划
系统在Windowsxp平台下,以Snort为核心和基础,在MySQL、Apache、ACID等相关组件的共同支持下组建起来。
基于Snort的入侵检测系统可以分为三部分:
网络入侵检测模块主要实现对网络数据包的实时捕获、监控和对数据进行分析以找出可能存在的入侵;
数据存储模块主要是从入侵检测系统中收集报警数据并把它存入关系数据库中,便于用户日后查询;
分析员控制台是IDS分析员的专用工作站,用来对报警日志信息进行管理和查询,它提供了很好的人机交互界面。
Snort首先利用winpcap组件捕获并分析数据,然后用output插件将数据储存在MySQL数据库中,Apache服务器在ACID等组件的帮助下使连接到服务器的用户能够通过浏览器查看数据,用户还可以在网页上应用不同的查询来分析、备份、删除数据或者显示图表。
3.实现过程描述
1、准备工作
(1)首先采用VMWareworkstation虚拟机软件安装好windowxp系统
(2)下载好snort、winpcap、mysql等工具
2、实现过程
1、安装apache,选择custom,指定安装目录C:
\apache\,如下图
直到安装完成,我们来检查一下是否安装成功
在浏览器上输入http:
//localhost/,出现如下图所示,则说明安装成功
2、安装PHH
解压缩php-5.1.6-Win32到c:
\php5目录下,
复制复制php5ts.dll文件到c:
\windows\system32目录下,
复制php.ini-dist至c:
\windows目录下面,并改名为php.ini
在c:
\apache\conf\httpd.conf文件中添加下列语句:
LoadModulephp5_mudulec:
/php5/php5apache2.dll
AddTypeapplication/x-httpd-php.php(注意空格)
如下图:
然后打php的补丁
解压缩php5apache2.dll-php5.1.x.rar到c:
\php5apache2.dll-php5.1.x目录
将c:
\php5apache2.dll-php5.1.x目录下的php5apache2.dll文件复制到c:
\php5目录下
\php5apache2.dll-php5.1.x目录下httpd.exe.manifest文件复制到c:
\apache\bin目录下
运行c:
\php5apache2.dll-php5.1.x目录下vcredist_x86.exe文件
若vcredist_x86.exe不能安装,则到微软官网下载dotnetfx.exe安装(.netframework2.0框架)
三、添加apache对gd库的支持
修改php.ini:
找到“extension=php_gd2.dll”,去掉前面的“;
”
拷贝c:
\php5\ext下的php_gd2.dll文件到c:
\windows目录下
四、测试php安装是否成功
\apache\htdocs目录下面新建test.php文件,用记事本打开,编辑内容为<
?
phpinfo();
>
重新启动apache服务,点stop再点击start,如下图
使用http:
//localhost/test.php测试是否安装成功,成功的界面如图
五、安装winpcap
按照向导提示安装即可
六、安装snort
默认安装即可,安装完成后使用下面命令测试是否安装成功
c:
\snort\bin>
snort-W(W为大写)
如下图所示:
七、安装和配置mysql
安装一路next就可以按照成功,注意设置个root的密码,如下图
然后打开MySQL的客户端
\snort\schemas目录下的create_mysql复制到C:
\ProgramFiles\MySQL\MySQLServer5.0\bin目录下
在MySQL的dos控制台中
建立snort库和snort_archive库
mysql>
createdatabasesnort;
->
createdatabasesnort_archive;
usesnort;
sourcecreate_mysql;
->
showtables;
usesnort_archive;
为mysql建立snort和acid账号,使idscenter或acid能访问mysql中与snort有关的数据库文件
使用语句:
grantusageon*.*to"
acid"
@"
localhost"
identifiedby"
acidtest"
;
snort"
snorttest"
再为snort和acid账户分配相关权限,语句:
grantselect,insert,update,delete,create,alteronsnort.*to"
grantselect,insert,update,delete,create,alteronsnort_archive.*to"
八、启用php对MySQL的支持
修改php.ini,找到"
extension=php_mysql.dll"
,去掉前面的"
"
复制c:
\php5\ext下的php_mysql.dll文件到c:
\windows下
\php5下的libmysql.dll文件到c:
\windows\system32下
九、安装adodb
解压缩adodb465.tgz到c:
\php5\adodb目录下
十、安装jpgraph
解压缩jpgraph-2.1.4.tar.gz到c:
\php5\jpgraph
十一、安装acid
解压缩acid-0.9.6b23.tar.gz到c:
\apache\htdocs\acid目录下
修改acid_conf.php为下列格式,(用写字板打开)
浏览器打开http:
//localhost/acid/acid_db_setup.php建立acid运行必须的数据库
鼠标点击createACIDAG,如下图
十二、配置snort
编辑c:
\snort\etc\snort.conf文件,用写字板打开,如下:
includeclassification.config
includereference.config
修改为
includec:
\snort\etc\classification.config
\snort\etc\reference.config
设置snort输出alert到MySQLserver
outputdatabase:
alert,mysql,host=localhostuser=rootpassword=123dbname=snortencoding=hexdetail=full
修改dynamicpreprocessordirectory/usr/local/lib/snort_dynamicpreprocessor
为dynamicpreprocessordirectoryc:
\snort\lib\snort_dynamicpreprocessor
修改dynamicengine/usr/local/lib/snort_dynamicengine/libsf_engine.so
为dynamicenginec:
\snort\lib\snort_dynamicengine\sf_engine.dll
把ipvar全部替换为var,
十三、添加规则库
解压缩rules文件到c:
\snort目录下面,覆盖原文件
14、.使用下列语句来测试
snort-c"
\snort\etc\snort.conf"
-l"
\snort\log"
-d-e-X-i1
用另一台电脑给snort服务器发送ping数据包,如下图
刷新控制台后,成功检测到ping数据包,如下图
入侵规则与检测报告
(1)ping对方的主机,利用Snort检测对本机的ping探测,在snort\log目录下将生成报警文件alert.ids:
这一条规则记录了所有到达本地主机的icmp数据包.
logicmpanyany->
192.168.1.125/24any
C:
\>
snort\bin\snort-d-c\snort\etc\snort.conf-l\snort\log-i1
RunninginIDSmode
Logdirectory=\snort\log
InitializingNetworkInterface\Device\NPF_{BA535863-9EAE-4E59-A04A-47C74D023B8B
}
--==InitializingSnort==--
InitializingOutputPlugins!
DecodingEthernetoninterface\Device\NPF_{BA535863-9EAE-4E59-A04A-47C74D023B8B
InitializingPreprocessors!
InitializingPlug-ins!
ParsingRulesfile\snort\etc\snort.conf
rpc_decodearguments:
PortstodecodeRPCon:
11132771
alert_fragments:
INACTIVE
alert_large_fragments:
ACTIVE
alert_incomplete:
alert_multiple_requests:
+++++++++++++++++++++++++++
Ruleapplicationorder:
activation->
dynamic->
alert->
pass->
log
--==InitializationComplete==--
-*>
Snort!
<
*-
Version2.0.0-ODBC-MySQL-WIN32(Build72)
ByMartinRoesch(roesch@,www.snort.org)
1.7-WIN32PortByMichaelDavis(mike@,
1.8-2.0WIN32PortByChrisReid(chris.reid@)
(2)这条告警规则显示了本地主机对其他主机的111端口的访问,并在log中显示端口影射调用('
portmappercall'
)信息:
alerttcp192.168.1.125/24any->
any111(msg:
Portmappercall"
(3)利用“nmap-sT目标主机IP地址”命令TCPconnect()扫描对方主机,以文本格式记录日志的同时,将报警信息发送到控制台屏幕(console):
这条规则发现nmap的tcp的ping扫描
alerttcpanyany->
192.168.1.125/24any(flags:
A;
ack:
0;
msg:
NMAPTCPping!
snort\bin\snort-c\snort\etc\snort.conf-l\snort\log-Aconsole-i1
http_decodearguments:
Unicodedecoding
IISalternateUnicodedecoding
IISdoubleencodingvuln
Flipbackslashtoslash
Includeadditionalwhitespaceseparators
Portstodecodehttpon:
80
(4)利用“nmap-O目标主机IP地址或名称”命令探测目标主机操作系统,以Tcpdump二进制格式记录日志的同时,将报警信息发送到控制台屏幕(console):
snort\bin\snort-c\snort\etc\snort.conf-b-l\snort\log-Aconsole-i1
InitializingNet