荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: cycker (I hate F very much), 信区: Linux
标  题: SNORT FAQ v1.7.5zz
发信站: 荔园晨风BBS站 (Sat Aug 30 11:43:21 2003), 站内信件



问:snort显示"BACKDOOR SIGNATURE..."之类的信息,难道我的系统中有特洛伊木
马?
问:什么是"CGI Null Byte attacks"?
问:从哪里我可以得到更多关于IDS的资料和课程信息?
问:我如何才能把日志记录到多个数据库?
问:所有这些"ICMP destination unreachable"报警是什么?
问:在编译snort时,为什么会出现引用丢失的信息?
问:为什么在编译snort时,会遇到有关yylex和lex_init的错误信息?
问:使用-r命令开关读取tcpdump二进制格式日志文件有什么用处?
问:我怎么才能让snort同时记录报文的包头和数据?
问:snort会完整地记录产生报警的数据包吗?
问:为什么对于pass规则处理的数据包snort还会产生报警?
问:snort会重装TCP数据流吗?
问:为什么SMB无法工作?
问:我的系统既没有以太网卡也没有和另外的系统连接,我怎么才能测试snort呢

问:从哪里可以得到更多帮助?
问:我怎样才能把snort日志信息转换成HTML格式?
问:在ACID中,为什么某些报警的IP为未知?
问:使用ACID删除一个报警记录时,为什么会出现"error deleting alert"信息?

问:为什么使用lynx会造成ACID崩溃?
问:可以设置ACID报警的优先权吗?
问:当执行长操作(例如:删除大量的报警记录)时,ACID连接超时。
问:为什么snort会报告"Packet loss statistics are unavailable under
Linux"信息?
问:SYNFIN扫描是什么意思?
问:"SMB Name Wildcard"是什么意思?
问:命令行和规则文件哪个的优先权高?
问:/var/log/snort目录已经非常大了,怎么办?
问:可以使用snort在防火墙中加入ipfilter/ipfw规则吗?
问:我如何才能让snort运行在多个网络接口上?
问:我得到"snort [pid] uses obsolete (PF_INET, SOCK_PACKET)"警告信息,是
怎么回事?
问:如果网络接口的IP地址是动态分配的,我能够使用snort吗?
问:snort无法运行,并显示"can not create file",而我还有大量的硬盘空间,
这是怎么回事?
问:当我启动snort时,出现有关规则文件的错误信息,为什么?
问:snort发出太多的"IIS Unicode attack detected"或者"CGI Null Byte
attack detected"误报警,如何避免?
问:snort不能把信息记录到数据库,为什么?
问:数据库不能记录portscan的信息,为什么?
问:snort不能向syslog记录信息,为何?

问:snort显示"BACKDOOR SIGNATURE..."之类的信息,难道我的系统中有特洛伊木
马?
答:如果你正在复制检查报文的数据负载,snort就会进行这种报警。这些规则造
成的误报警率非常高,因为它们只是基于对端口号的检查。

问:什么是"CGI Null Byte attacks"?
答:这是http预处理器的一部分,最基本的情况下,如果http解码例程在一个
http请求中发现一个%00,snort就会发出这些报警信息。有时候,站点使用url编
码的二进制数据cookie,或者你正在扫描443号端口和获得一个SSL加密的报文,都
可能造成类似的误报警。如果你记录了引起报警的报文,可以检查引起报警的字符
串,判断是否是误报警。还有unicode报警也受这种误报警的干扰。只有检查引起
报警的报文负载才能确定你是否真的遭到了攻击。

问:从哪里我可以得到更多关于IDS的资料和课程信息?
答:sans研究中心有关于IDS的课程。这里有几本可以参考的教材:

Network Intrusion Detection An Analyst's Handbook
作者:Stephen Northcutt
ISBN 0735708681
中文译本叫作<<网络入侵检测分析员手册>>
人民邮电出版社
ISBN7-115-08372-X/TP.1511

TCP/IP Illustrated, Volume 1 The Protocols
作者:W. Richard Stevens
ISBN 0201633469
国内也有中文译本<>
机械工业出版社
还有影印版
清华大学出版社

问:我如何才能把日志记录到多个数据库?
答:你可以使用多个输出插件建立冗余输出。例如:

多个数据库插件实例: output database: log, mysql, dbname=snort
host=localhost user=xyz
output database: log, mysql, dbname=snort host=remote.loghost.com
user=xyz

远程数据库和本地tcpdump格式: output database: log, mysql,
dbname=snort host=remote.loghost.com user=xyz
output log_tcpdump: /var/log/snort.tcpdump

接着,你可以使用snort使用tcpdump格式的二进制日志文件重新建立数据库。

问:所有这些"ICMP destination unreachable"报警是什么?
答:这都是连接失败的ICMP不可达数据包的前4个字节。

问:在编译snort时,为什么会出现引用丢失的信息?
答:你必须使用--install-incl选项编译libpcap。

问:为什么在编译snort时,会遇到有关yylex和lex_init的错误信息?
答:你需要安装lex和yacc工具,对应的GNU软件是flex和bison。

问:使用-r命令开关读取tcpdump二进制格式日志文件有什么用处?
答:和一个snort规则文件配合使用,tcpdump数据能够帮助你分析恶意内容、端口
扫描或者其它snort能够检测的东西。snort只能一解码的格式简单地显示报文内容
,更加容易进行分析。

问:我怎么才能让snort同时记录报文的包头和数据?
答:使用-d命令选项。

问:snort会完整地记录产生报警的数据包吗?
答:是的。它们被记录在以源主机IP命名的目录下。

问:为什么对于pass规则处理的数据包snort还会产生报警?
答:规则行为的默认处理顺序是报警优先,pass次之,log最后。可以使用-o命令
选项改变这个顺序。

问:snort会重装TCP数据流吗?
答:是的,这种功能在snort1.7版还出于测试阶段。

问:为什么SMB无法工作?
答:在执行./configure脚本时,要包括--enable-smbalerts选项。

问:我的系统既没有以太网卡也没有和另外的系统连接,我怎么才能测试snort呢

答:你只能使用dummy设备了:

modprobe -a dummy (内核应该支持dummy设备)
ifconfig dummy0 192.168.0.1
ifconfig dummy0:0 192.168.0.2
telnet 192.168.0.3 12345

注意:两个IP地址应该在同一个接口,不能是dummy1或者dummy2等,而且你试图访
问的不能是其中任意一个IP地址。然后以嗅探器模式启动snort监听这个IP地址段
。(HOMEDIR=192.168.0.0/16)

问:从哪里可以得到更多帮助?
答:http://lists.sourceforge.net/mailman/listinfo/snort-users

问:我怎样才能把snort日志信息转换成HTML格式?
答1:使用SnortSnarf。

http://www.silicondefense.com/snortsnarf/

答2:如果你想把日志记录到一个数据库,你可以使用ACID。

http://www.silicondefense.com/snortsnarf/

问:在ACID中,为什么某些报警的IP为未知?
答:当某条规则触发一个报警,snort数据库输出插件只记录报文的数据信息。所
以,因为由portscan和mini-fragmen预处理模块产生的报警没有响应规则,因此不
能记录报文信息。由于这个原因ACID不能显示任何报文级(例如:IP)的信息。

问:使用ACID删除一个报警记录时,为什么会出现"error deleting alert"信息?

答:主要是数据库用户的权限设置不当造成的。用户除了需要INSERT、SELECT权限
外,还要DELETE权限。

可以通过在数据库中插入一条记录,然后删除来确定权限是否正确:

以ACID使用的凭证(用户名、密码等)登录MySQL数据库。 %mysql -u username
-p password

在event表中插入一条测试记录。 mysql> INSERT INTO event (sid, cid,
signature, timestamp) VALUES (1,1000000, "test", "0");
(这里假设ID=1000000以前没有用过)

删除新插入的记录 mysql> DELETE FROM event WHERE sid=1 AND cid=10000000;

如果无法删除,那么就是权限有问题。以MySql的root用户重新登录,使用GRANT命
令赋予ACID用户DELETE权限:
GRANT DELETE on snort.* to acid@localhost
(这里假设我的报警数据库是snort,用户名是acid,主机是本地主机,实际使用时
,需要你根据自己的实际情况决定)

问:为什么使用lynx会造成ACID崩溃?
答:这是一个广为人知的问题了。lynx会破坏URL之后的一些表单参数。使用
Netscape、Opera或者IE没有这个问题。

问:可以设置ACID报警的优先权吗?
答:不行。

问:当执行长操作(例如:删除大量的报警记录)时,ACID连接超时。
答:PHP有一组内部变量限制脚本的执行时间。用来阻止一些写的不好的代码无限
制地执行。可以修改php.ini文件的max_execution_time变量改变超时的时间限制


问:为什么snort会报告"Packet loss statistics are unavailable under
Linux"信息?
答:Linux系统的IP协议栈不能报告包丢失状态,2.4内核会有所改观。BSD系统支
持这项功能。

问:SYNFIN扫描是什么意思?
答:顾名思义,就是把扫描数据包的SYN和FIN标志全部打开。

问:"SMB Name Wildcard"是什么意思?
Whitehats IDS177指定的一种从外部网络流入本地网络的报文。允许netbios报文
经过公共网络通常不太安全。

问:命令行和规则文件哪个的优先权高?
答:命令行。

问:/var/log/snort目录已经非常大了,怎么办?
答:使用如下脚本归档、清理:

问:可以使用snort在防火墙中加入ipfilter/ipfw规则吗?
答:可以。需要额外的软件--Guardian,它在源代码的contrib/目录下。但是,这
很危险,除非你确实知道你做了什么,否则最好不要使用。

Guardian是一个perl脚本。snort检测到攻击后,可以通过它使ipchains拒绝后面
的攻击。

Guardian的主页在:
http://www.chaotic.org/~astevens/Guardian/index.html
你也可以使用它的镜像:
http://www.cyberwizards.com/~midnite/Guardian/index.html

警告:运行外部程序会造成系统性能上的损失,你还应该看一看Christopher
Cramer关于这个问题的论述:


对于这个想法以前已经有过讨论,但是我认为这是一个馊主意,攻击者可以通过它
实现对系统的拒绝服务攻击。他们可以发送一些伪造地址的触发跋文,诱使snort
启动这项功能,达到拒绝服务攻击的目的。

因为我不想进入你的系统,但是可以通过这种方式让你不得安宁,而且我勿需担心
反馈的数据。我所做的只不过是在包头加入一些要让你阻塞的IP地址,然后发出,
如此而已。但是,你一觉醒来,就会发现已经被踢出这个世界了。

问:我如何才能让snort运行在多个网络接口上?
答:如果你使用的系统版本不是linux 2.1.x/2.2.x或者更高,那么只好在每个接
口上运行一个snort实例了。对于linux 2.1.x/2.2.x以及更高版本,S. Krahmer为
libpcap库打了补丁,你可以把接口名字设置为any。这样,snort就能够处理来自
与所有网络接口的报文了。

问:我得到"snort [pid] uses obsolete (PF_INET, SOCK_PACKET)"警告信息,是
怎么回事?
答:这是由旧版本的libpcap和新版本的Linux内核造成的。这应该不是什么大问题
,因为新内核也支持SOCK_PACKET套接字类型。为了避免出现这种信息,你需要升
级libpcaphttp://www.tcpdump.org)。

问:如果网络接口的IP地址是动态分配的,我能够使用snort吗?
答:可以。对于snort1.7以及以后的版本可以使用_ADDRESS变量。这个变量的值一
致被设置为运行snort的网络接口地址/掩码。如果接口关闭然后重新打开(IP地址
被重新分配),你需要重新启动snort。对于早期的版本,有些脚本可以实现这种功
能。

问:snort无法运行,并显示"can not create file",而我还有大量的硬盘空间,
这是怎么回事?
答:可能是磁盘没有用过的inode数量不足,导致你不能在分区上建立更多的文件
。删除一些文件就可以了。

问:当我启动snort时,出现有关规则文件的错误信息,为什么? 下面是经常出现
的错误信息:
ERROR somefile.rules:yy => Port value missing in rule!
ERROR somefile.rules:yy => Bad port number: "(msg:"blah"
ERROR somefile.rules:yy => Couldn't resolve hostname blah
我该怎么办?

答:somefile.rules文件是发生语法错误的规则文件,yy是错误规则的行号。主要
有下面几种可能:

规则的端口值没有定义,端口号无效,或者是主机名错误。
更常见的情况是,规则是正确的,但是某个变量没有声明。
问:snort发出太多的"IIS Unicode attack detected"或者"CGI Null Byte
attack detected"误报警,如何避免?
答:这些信息是由http_decode预处理模块造成的。在规则文件中加入下面一行可
以避免出现这些信息:

preprocessor http_decode: 80 8080 -unicode -cginull
问:snort不能把信息记录到数据库,为什么?
答1:配置文件中没有设置数据库输出插件。

答2:你的数据库版本太旧。

答3:命令行选项覆盖了配置文件的设置,主要是-A或者-s选项造成的。注意:如
果你也想把信息记录到syslog中,需要在配置文件中进行配置,而不要使用命令行


答4:数据库配置不当。要确定snort使用的用户名有正确的权限,数据库已经运行


问:数据库不能记录portscan的信息,为什么?
答:把输出特性由log改为alert,portscan插件只能调用以alert注册的输出插件
,而不是以log注册的。

output database: alert, mysql, user=snort dbname=snort host=localhost

问:snort不能向syslog记录信息,为何?
答1:命令行选项把配置文件覆盖了。通常是-A造成的。

答2:有可能记录到别的地方了。先检查syslog配置是否正确。


来源:Linuxaid

--

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.26.220]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店