科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道创建 Snort 规则让黑客无处遁形(1)

创建 Snort 规则让黑客无处遁形(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

安全中国 Snort是一个开源的网络入侵检测系统,它是一个可以实时监视网络通信的数据包嗅探器。通过协议分析和内容搜索与匹配,Snort能够检测攻击方法,包括拒绝服务器攻击、缓冲区溢出、CGI攻击、秘密 ...

作者:论坛整理 来源:zdnet网络安全 2008年1月4日

关键字: 入侵 黑客 Snort

  • 评论
  • 分享微博
  • 分享邮件

Snort是一个开源的网络入侵检测系统,它是一个可以实时监视网络通信的数据包嗅探器。通过协议分析和内容搜索与匹配,Snort能够检测攻击方法,包括拒绝服务器攻击、缓冲区溢出、CGI攻击、秘密的端口扫描等。Snort的生命力在于其功能强大的规则。

可以认为编写Snort规则就像编写程序一样。Snort规则包括变量、关键字和函数。为什么我们需要编写规则?其原因是没有这些规则,Snort将不可能检测黑客的攻击行为。本文将讨论编写规则的问题。

先决条件:

你需要:

1.一台可以进行开发规则的机器。这些规则不应当运行在一台产生性服务器上,因为这些规则只能作为你参考的例子。

2.你还需要一台客户端计算机,并使其与运行Snort的机器相连接。

3.安装有Snort的EnGarde Secure Community 3.0.18(或以上版本)。

语法问题

其语法初看起来可能有点儿奇怪,不过本节将解释这个问题,这样您就可以开始编写自己的规则。Snort规则分为两个部分:规则的头部和规则选项。首先,规则头部包含着规则、动作、协议、源地址和目标地址、源端口、目标端口。第二部分是规则选项,它包含着一个警告消息和某数据包有关部分的信息(如果要采取某个动作的话,就应当看一些这种信息)。

例如:alert tcp any any -> 192.168.1.0/24 111 (content:"|00 01 86 a5|"; msg: "mountd access";)

上例中,圆括号之前的部分属于规则的头部,圆括号内部的属于规则选项部分。

规则动作:

规则动作描述一个数据包的“谁,在何处,什么”的问题,并指明规则被激发后,在事件中应当做什么。在编写规则时,你可以从下面的关键字中选择:

·alert –用选择的警告方法生成一个警告,然后记录这个数据包。

·log -记录这个数据包。

·pass – 忽略此数据包。

协议:

规则的下一部分是协议。一些比较流行的协议包括TCP、UDP、ICMP等,不过Snort支持许多其它的协议,并继续增加新的协议。

源IP地址

紧跟着协议的部分是IP地址。它定义了数据包来自何处。你可以用“any”这个关键字来定义所有的IP地址。你甚至可以编写一个能够匹配除你指定的IP地址之外任何地址的规则。这是通过使用“!”这个否定操作符实现的。

源端口

它说的是数据包来自哪个端口。端口号也可以使用“any”关键字。你还可以通过使用“:”定义一个范围内的端口。例如,1:1000定义了从1到1000范围内的所有端口。

方向操作符:

方向操作符“->”用于定义规则所适用的通信方向。换句话说,即指明通信进入或出自你计算机的什么地方。

目标地址

下一部分是目标地址。它定义了数据包要到何方。与源地址类似,你也可以使用“any”关键字或定义一个不会引起规则被激发的地址。

目标端口

紧随目标IP地址的部分是目标端口号,即数据包设法连接的端口号。这儿的选项与源端口相同。

规则选项

圆括号内的所有内容称为规则选项。一个比较常用的关键字是“content”,不过你还可以用其它许多关键字。关键字“content”允许用户设定规则,搜索数据包有效负荷内的特定内容,并激发一个响应。

例如:


alert tcp any any -> 192.168.1.0/24 143 (content: "|90C8 C0FF FFFF|/bin/sh";
            msg: "IMAP buffer overflow!";)
 

通过上例可以看出,我们检查了数据包是否包含了某种二进制字节(Binary Byte)码和文本。

基本格式


动作 协议 源IP地址 源端口 方向 目标地址 目标端口 ( 规则选项)
 

增加一个新规则

既然我们对要Snort规则的语法有了一个基本的了解,现在我们就可以向系统中增加一条新的规则:

首先以根用户身份登录,并转换到sysadm_r:


[test_server]# newrole -r sysadm_r
            Authenticating root.
            Password:
            [test_server]# setenforce 0
 

下一步,编辑Snort.conf文件,需要使用自己喜欢的编辑器来修改/var/chroot/snort/etc/snort.conf。我们需要包括下面的行:


include local.rules
 

这会告诉Snort,要求它使用存储在local.rules中的新规则。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章