科技行者

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

知识库

知识库 安全导航

至顶网网络频道用snort对抗IDS躲避技术

用snort对抗IDS躲避技术

  • 扫一扫
    分享文章到微信

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

随着网络攻击技术的发展,出现了IDS躲避和欺骗技术。SnortCenter是一个基于Web的snort探针和规则管理系统,用于远程修改snort探针的配置,起动、停止探针,编辑、分发snort特征码规则。

作者:51cto 2007年10月21日

关键字: IDS IPS 入侵检测 入侵防御

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

  随着网络攻击技术的发展,出现了IDS躲避和欺骗技术。某些工具软件的传播使这些技术得以广泛地用于实际的网络攻击中。其中比较典型的IDS躲避技术包括传输控制层和网络层的IDS躲避技术,如数据包分片、重叠、碎片超时等。由于操作系统之间的差异,给网络入侵检测系统检测采用这类躲避技术的网络攻击增加了难度。snort 2的出现为网络安全维护提供了良好的工具。

  snort 2的新特性

  在snort 2出现之前,由于snort本身存在的缺陷及网络入侵检测系统的先天不足,使snort在对抗使用了IDS躲避技术的网络攻击时完全处于下风。在这种背景下,以Martin Roesch为首的snort开发团队开始了snort 2的开发。snort 2采用了很多新的技术,大量代码被重写,体系结构也发生了根本性的变化。与snort-1.x(不包括snort-1.9,因为snort-1.9属于snort 2)相比,snort 2具有以下优点:

  ◆采用更高效的检测和模式匹配算法,使性能比旧版本提高了5倍以上。

  ◆具有更好的扩展性,采用插入式检测引擎,可以作为标准的网络入侵检测系统、主机入侵检测系统使用;与netfilter结合使用,可以作为网关IDS(Gateway IDS,GIDS);与nmap等系统指纹识别工具结合使用,可以作为基于目标的IDS(Target-based IDS)。

  ◆开发人员重写了协议分析代码,使snort 2具备出色的协议分析能力。

  ◆支持多种格式的特征码规则输入方式,如数据库、XML等。

  ◆把输出部分从主体代码中分离出来,由单独的程序barnyard处理snort的输出。

  除了上面所叙述的特点之外,snort 2还有一个商业入侵检测系统所不具备的优点:费用低廉。这对于预算比较紧张的企业,无疑非常具有吸引力。而且,自由软件开发人员陆续开发了众多辅助性的软件。这些软件包括图形化的管理系统、日志分析工具、检测插件、图形化的规则编写软件,以及规则自动升级软件等。对这些软件进行合理地选择、集成,可以形成一套比较完善的分布式入侵检测系统。

  分布式snort入侵检测系统

  分布式snort入侵监测系统的主要组成部分包括中央分析服务器、IDS探针和协同代理。一般情况下,一个企业的网络可以分为外部网络、企业内部网络和DMZ区等。入侵监测系统既可以部署在防火墙之外,也可以部署于防火墙之内。部署于防火墙之外,可以获得更多攻击数据,但是误报警率也高。因此一般情况下,入侵检测系统部署于防火墙之后是比较明智的。

  中央分析服务器

  中央分析服务器是整个系统的心脏和灵魂。它一般由一个数据库系统和一个Web服务器组成,为系统管理员提供交互式Web管理界面。在中央分析服务器上,管理人员可以进行远程IDS探针管理、攻击数据查询、实时监视网络攻击及深入分析,如攻击方向的迁移、识别攻击模式等。MySQL数据库、Apache服务器、SnortCenter和ACID(Analysis Console for Incident Databases)是一个不错的snort平台系统组合。

  SnortCenter是一个基于Web的snort探针和规则管理系统,用于远程修改snort探针的配置,起动、停止探针,编辑、分发snort特征码规则。如果与cron和curl结合使用,SnortCenter还可以定时为每个探针进行规则升级,自动从snort官方站点获得最新特征码规则 (http://www.snort.org/dl/signatures/snortrules-stable.tar.gz)。SnortCenter的下载地址为http://users.pandora.be/larc/download/。ACID(Analysis Console for Incident Databases)是一个基于PHP的分析引擎,用于查询、管理snort探针产生的数据库。ACID的下载地址为http://www.cert.org/kb/acid/。

  IDS探针和协同代理

  代理是向中央分析服务器报告攻击信息的软件,是分布式入侵检测系统的一个重要部件。SnortCenter Agent和普通意义上的协同代理软件有些不同,它只是一个SnortCenter进行探针管理的代理工具。通过SnortCenter Agent,SnortCenter能够起动、关闭受保护主机上的snort探针;修改探针的配置和使用的特征码规则。SnortCenter Agent是用Perl语言编写的,可以在不同的平台上使用。为了防止登录过程中账户和密码的泄漏,它使用SSL和SnortCenter之间进行通信。snort探针是真正进行入侵检测的组件,其源代码可以从http://www.snort.org获得。

  系统安装及部署

  数据库的安装和设置

  在分析服务器上,首先要建立记录snort报警和日志数据库及SnortCenter、ACID需要的数据库。在临时目录中解压缩snort的源代码,进入contrib目录,建立数据库,并进行相关的配置。代码如下:

  # mysql -u root -p

  create database snort;

  connect snort

  source create_mysql

  grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;

  grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;

  grant CREATE, INSERT, SELECT, UPDATE on snort.* to acidviewer;

  grant CREATE, INSERT, SELECT, UPDATE on snort.* to acidviewer@localhost;

  connect mysql

  set password for 'snort'@'localhost' = password('yourpassword');

  set password for 'snort'@'%' = password('yourpassword');

  flush privileges;

  安装SnortCenter

  把最新版的SnortCenter源代码解压缩,将目录里面的文件复制到Apache的DocumentRoot目录(如/usr/local/apache/htdocs)。下载SnortCenter需要的adodb(http://php.weblogs.com/adodb/),安装到SnortCenter所在的目录,然后建立SnortCenter数据库。代码如下:

  $ tar zxvf snortcenter-v0.9.6.tar.gz

  $ cp snortcenter-v0.9.6/* /usr/local/apache/htdocs/

  $ tar zxvf adodb250.tgz

  $ cp -R ./adodb /usr/local/apache/htdocs/

  $ echo "CREATE DATABASE snortcenter;" | mysql -u root -p

  完成了基本的安装之后,需要根据系统的情况手工编辑/usr/local/apache/htdocs/config.php文件,从而结束SnortCenter的配置。一般情况下需要修改的参数见表1。

  表1 /usr/local/apache/htdocs/config.php文件需要修改的参数

  

  

  完成上面的配置后,启动Apache服务器,在浏览器的地址栏输入分析中心服务器的地址,将会得到图1所示的登录画面。

  图1 SnortCenter登陆界面

  

  

  系统缺省账户是admin,密码为change。登录进入系统以后,点击admin→Create DB Tables选单,完成SnortCenter的安装,如图2所示。

  图2 创建SnortCenter数据库

  

  

  安装ACID

  ACID需要PHP支持gd,并对PHPLot(www.phplot.com)、ADODB进行支持。新版本的ACID(0.9.6b22以后版本)还需要JpGraph(http://www.aditus.nu/jpgraph/)的支持。ACID及相关软件安装到指定位置之后,编辑配置文件acid_conf.php完成其配置,参数设置如表2所示。

  

  

  另外,ACID本身缺乏必要的访问控制机制,需要设置Apache对访问ACID的用户提供验证。

  安装snort探针和SnortCenter Agent

  分别进入需要保护主机,安装snort和SnortCenter Agent。SnortCenter Agent需要SSL的支持,所需模块可以从http://www.cpan.org得到。安装代码如下:

  $ ./configure -with-mysql

  $ make

  $ make install

  $ tar -zxvf Net_SSLeay.pm.1.21.tar.gz

  $ cd Net_ SSLeay.pm.1.21

  $ perl Makefile.PL

  $ make install

  $ mkdir /opt/snortagent/

  $ cp snortcenter-agent-v0.1.6.tar.gz /opt/snortagent

  $ cd /opt/snortagent

  $ tar -zxvf snortcenter-agent-v0.1.6.tar.gz

  $ cd sensor

  $ ./setup.sh

  需要注意的问题

  系统涉及到网络中的很多主机,各个snort探针需要通过网络时间协议(Network Time Protocol)实现时间的精确同步。有关NTP服务器的配置请参考相关的文档,这里就不赘述了。

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

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

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