• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

信息安全原理和技术第三次实验系统安全实验

武飞扬头像
Knight_V_Schumacher
帮助3

前言

一、实验目的

1.通过实验深入理解入侵检测系统的原理和工作方式。
2.熟悉入侵检测工具 Snort 在 Windows 操作系统中的安装和配置方法。

二、实验原理

1.IDS
入侵检测系统(Intrusion Detection System,IDS)是针对计算机和网络系统资源上的恶意使用行为进行识别和响应的处理系统。它在不影响网络性能的前提下,对网络进行警戒、监控,从计算机网络的若干关键点收集信息,通过分析这些信息,查看网络中是否有违反安全策略的行为和遭到攻击的迹象,从而扩展了系统管理员的安全管理能力,提高了信息安全基础结构的完整性。通过利用入侵检测系统,可以有效的防止或减轻来自网络的威胁,它已经成为防火墙之后的又一道安全屏障,并在各种不同的环境中发挥关键作用。
(1)入侵检测系统的分类
根据采集数据源的不同,入侵监测系统可分为基于网络的入侵检测系统(NIDS)和基于主机的入侵检测系统(HIDS)。
NIDS 使用监听的方式,在网络通信的原始数据包中寻找符合网络入侵模板的数据包。NIDS 的网络分析引擎放置在需要保护的网段内,独立于被保护的机器之外,不会影响这些机器的 CPU、I/O 与磁盘等资源的使用,也不会影响业务系统的性能。NIDS 一般保护的是整个网段。
HIDS 安装在被保护的机器上,在主机系统的审计日志或系统操作中查找信息源进行智能分析和判断,例如操作系统日志、系统进程、文件访问和注册表访问等信息。由于 HIDS安装在需要保护的主机系统上,这将影响应用系统的运行效率。HIDS 对主机系统固有的日志与监视能力有很高的依赖性,它一般保护的是其所在的系统。
(2)入侵检测系统的实现技术
入侵检测系统的实现技术可以简单的分为两大类:基于特征的检测和基于异常的检测。
基于特征的检测技术主要包括模式匹配和协议分析两种检测方法。
模式匹配就是将收集到的信息与已知的网络入侵和系统误用模式知识库进行比较,以发现入侵行为。
协议分析相对于模式匹配技术是一种更新的入侵检测技术。它首先捕捉数据包,然后对数据包进行分析,包括网络协议和命令解析,在解析的代码中快速检测某个攻击特征是否存在。
基于异常的检测技术有很多,例如采用统计模型、专家系统等技术来实现。它首先要对系统的行为进行统计,获得系统正常使用时的统计性能,如访问次数、操作失败次数和延时等。统计性能被用来与网络、系统的行为进行比较,当观察值在正常值范围之外时,入侵检测系统就会判断有入侵发生。
(3)入侵检测系统的部署原则
基于主机的入侵检测系统其安装部署简单,主要安装在检测的主机系统中,而基于网络的入侵检测系统复杂很多,需要考虑部署原则,以优化性能。
2.轻量级的网络入侵检测系统 Snort
自 20 世纪最后几年来,随着 Internet 的广泛应用,各种 IDS 产品层出不穷。其中 Snort是目前应用最为广泛的一个 IDS 产品,它有如下特点:
·它是一个轻量级的网络入侵检测系统,所谓轻量级是指该软件在运行时只占用极少的网络资源,对原有网络性能影响很小。
·从数据来源上看,它是一个基于网络入侵的检测软件,即它作为嗅探器对发往同一网络上的其它主机的流量进行捕获,然后进行分析。
·它的工作采用误用检测模型,即首先建立入侵行为特征库,然后在检测过程中,将收集到的数据包和特征码进行比较,以得出是否入侵的结论。
·它是用 C 语言编写的开放源代码网络入侵检测系统。其源代码可以被自由地读取、传播和修改,任何一个程序员都可以自由地为其添加功能,修改错误、任意传播。
·它是一个跨平台软件,所支持的操作系统非常广泛,比如 Windows,Linux,SunOS等都支持。在实验中我们将在 Windows 系统上构建 Snort。
·Snort 有 3 种主要模式:信息包嗅探器、信息包记录器或成熟的入侵探测系统。
Snort 的一些功能:
·实时通信分析和信息包记录。
·包装有效载荷检查。
·协议分析和内容查询匹配。
·探测缓冲溢出、秘密端口扫描、CGI 攻击、SMB 探测、操作系统侵入尝试。
·对系统日志、指定文件、UNIX socket 或通过 Samba 的 WinPopus 进行实时报警。
在 Windows 平台上安装 Snort 所需的软件包见表 3.5。
学新通

三、实验环境

一台安装 Windows 系统的计算机,连接到本地局域网中。

四、实验内容

1.在 Windows 环境下安装 Snort。
(1)安装 Apache_2.0.46
①双击 apache_2.0.46-win32-x86-no_src.msi,安装在文件夹 C:\apache 下。安装程序会在该文件夹下自动产生一个子文件夹 apache2。
②为了避免 Apache Web 服务器的监听端口与 Windows IIS 中的 Web 服务器的 80监听端口发生冲突,这里需要将 Apache Web 服务器的监听端口进行修改。打开配置文件C:\apache\apache2\conf\httpd.conf,将其中的 Listen 80,更改为 Listen50080。如图 3.34 所示。
学新通
图 3.34 修改 apache 的监听端口
③单击“开始”按钮,选择“运行”,输入 cmd,进入命令行方式。输入下面的命令:

C:\>cd C:\apache\apache2\bin
(C:\apache\apache2\bin\>)apache -k install

或者直接输入:(C:\>)C:\apache\apache2\bin\apache -k install
(由于虚拟机上已安装,所以会提示服务已安装的错误提示。)
这是将 apache 设置为以 Windows 中的服务方式运行。如图 3.35 所示。
学新通
学新通
图 3.35 Apache 以服务方式运行
网页输入:http://localhost/检测是否搭建成功:
学新通
(2)安装 PHP
①解压缩 php-4.3.2-Win32.zip 里面的文件至 C:\php\。
② 复 制 C:\php 下 php4ts.dll 至 %systemroot%\System32 , 复 制 C:\php 下 php.ini-dist至%systemroot%\,然后修改文件名为:php.ini。
③ 添 加 gd 图 形 库 支 持 , 把 C:\php\extensions\ php_gd2.dll 拷 贝到%systemroot%\System32,在 php.ini 中添加 extension=php_gd2.dll。如果 php.ini 有该句,将此语句前面的“”注释符去掉。如图 3.36 所示
学新通
图 3.36 修改 php.ini 配置文件
④添加 Apache 对 PHP 的支持。在 C:\apache\apache2\conf\httpd.conf 中添加:LoadModule php4_module "C:/php/sapi/php4apache2.dll"

AddType application/x-httpd-php .php

如图 3.37 和图 3.38 所示。
学新通
图 3.37 修改 httpd.conf
学新通
图 3.38 修改 httpd.conf
⑤单击“开始”按钮,选择“运行”,输入 cmd 进入命令行方式,在弹出的窗口中输入下面命令:

net start apache2

这将在 Windows 中启动 Apache Web 服务。如图 3.39 所示。
学新通
图 3.39 启动 Apache Web 服务
⑥在 C:\apache\apache2\htdocs 目录下新建 test.php 测试文件,test.php 文件内容为<?phpinfo();?>
之后在服务界面(win r 输入 services.msc/右键我的电脑点击管理找到服务)重启一下apache 服务:
学新通
使用 http://127.0.0.1:50080/test.php,测试 PHP 是否安装成功,如安装成功,则在浏览器中出现 test.php 的网页。如图 3.40 所示。
学新通
图 3.40 PHP 测试页
(3)安装 snort
安装 snort-2_0_0.exe,snort 的安装路径在 C:\snort。
(4)安装配置 MySQL 数据库
①安装 Mysql 到文件夹 c:\mysql,并在配置向导处设置 root 密码为 123,并在命令行方式下进入 C:\mysql\bin,输入下面的命令:

(C:\mysql\bin>)mysqld-nt –install

或者直接输入:c:\mysql\bin\mysqld-nt –install,由于环境问题,可能是已安装以及已开启,所以不用在意已存在以及已开启的提示。
这将使 mysql 在 Windows 中以服务方式运行。如图 3.41 所示
学新通
图 3.41 MySQL 以服务方式运行
②在命令行方式下输入 net start mysql,启动 mysql 服务。如图 3.42 所示。
学新通
图 3.42 启动 MySQL 服务
③在命令行方式下进入 C:\mysql\bin,输入下面的命令:

c:\>cd c:\mysql\bin
(C:\mysql\bin>)mysql -u root -p

(也可使用:mysql>set password for "root"@"localhost" = password('123'); #允许 root 从localhost 连接,但使用上述方式即可)
这是将出现 Enter password 提示符,直接按“回车”,以 123 密码的 root 用户登录 Mysql数据库。如图 3.43 所示。
学新通
学新通
图 3.43 以 root 用户登录 MySQL 数据库
④在 Mysql 提示符后输入下面的命令:

(Mysql>)create database snort;
(Mysql>)create database snort_archive;

上面的 create 语句建立了 snort 运行必需的 snort 数据库和 snort_archive 数据库。
⑤输入 quit 命令退出 Mysql 后,在出现的提示符之后输入:

(C:\mysql\bin>)mysql -D snort -u root -p <C:\snort\contrib\create_mysql
(C:\mysql\bin>)mysql -D snort_archive -u root -p <C:\snort\contrib\create_mysql

上面两个语句表示以 root 用户身份,使用 C:\snort\contrib 目录下的 create_mysql 脚本文件,在 snort 数据库和 snort_archive 数据库中建立了 snort 运行必需的数据表。
屏幕上会出现密码输入提示,由于这里使用的是 123 密码的 root 用户,直接按“回车”即可。如图 3.44 所示。
学新通
图 3.44 分别在 snort 和 snort_archive 库中建立 snort 运行需要的数据表
⑥参照步骤③,再次以 root 用户登陆 mysql 数据库,在提示符后输入下面的语句:

(mysql>)grant usage on *.* to”acid”@”localhost”identified by “acidtest”;
(mysql>)grant usage on *.* to “snort”@”localhost”identified by “snorttest”;

注意引号容易引起错误。
上面两个语句表示在本地数据库中建立了 acid(密码为 acidtest)和 snort(密码为snorttest)两个用户,以备后面使用。如图 3.45 所示。
学新通
图 3.45 在本地数据库中创建 acid 用户和 snort 用户
⑦在 Mysql 提示符后面输入下面的语句:

(mysql>)grant select,insert,update,delete,create,alter on snort.* to “acid”@”localhost”;
(mysql>)grant select,insert on snort.* to “snort”@”localhost”;
(mysql>)grant select,insert,update,delete,create,alter on snort_archive.* to“acid”@”localhost”;

这是为新建的用户在 snort 和 snort_archive 数据库中分配权限。如图 3.46 所示。
学新通
图 3.46 分配权限
(5)安装 adodb
将 adodb453.zip 解压缩至 C:\php\adodb 目录下,即完成了 adodb 的安装。
(6)安装配置数据控制台 acid
①解压缩 acid-0.9.6b23.tar.gz 至 C:\apache\apache2\htdocs\acid 目录下。
②修改 C:\apache\apache2\htdocs\acid 下的 acid_conf.php 文件:

$DBlib_path=”C:\php\adodb”;
$DBtyp=”mysql”;
$alert_dbname=”snort”;
$alert_host=”localhost”;
$alert_port=”3306”;
$alert_user=”acid”;
$alert_password=”acidtest”;
/*Archive DB connection parameters*/
$archive_dbname=”snort_archive”;
$archive_host=”localhost”;
$archive_port=”3306”;
$archive_user=”acid”;
$archive_password=”acidtest” $ChartLib_path=”C:\php\jpgraph\src”;

③查看 http://127.0.0.1:50080/acid/acid_db_setup.php 网页,单击 create ACID AG 建立数据库,如图 3.47 所示。
学新通
图 3.47 acid_db_setup.php 网页
由于 mysql 版本超过 4.1,密码的加密验证方式改变了,所以需要先通过设置用户名的old_password 参数改变加密认证方式,否则会出如下错误:
学新通
解决方法:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('acidtest')
-> WHERE Host = 'localhost' AND User = 'acid';
mysql> FLUSH PRIVILEGES;

注意替换空格。
按照系统提示建立数据库,正常建立后出现相应的网页。如图3.48所示。
学新通
学新通
图 3.48 ACID 数据库建成后的网页
(7)安装 jpgraph 库
①解压缩 jpgraph-1.12.2.tar.gz 至 C:\php\jpgraph
②修改 C:\php\jpgraph\src 下 jpgraph.php 文件,查看是否以下句子被注释:

define('CACHE_DIR','/tmp/jpgraph_cache/')

(8)安装 winpcap
按照默认选项和默认路径安装 winpcap。Winpcap 的版本可能会影响下面启动 snort。
(9)配置并启动 snort
①打开 C:\snort\etc\snort.conf 文件,将文件中的下列语句:

include classification.config
include reference.config

修改为绝对路径:

include C:\snort\etc\classification.config
include C:\snort\etc\reference.config

②在该文件的最后加入下面的语句:

output database: alert,mysql,host=localhost user=snort password=snorttest dbname=snort encoding=hex detail=full

③命令行方式下输入下面的命令:

C:\>cd C:\snort\bin
C:\snort\bin>snort -c ”C:\snort\etc\snort.conf” -l ”C:\snort\log” -d -e -X

-X 参数用于在数据链接层记录 raw packet 数据
-d 参数记录应用层的数据
-e 参数显示/记录第二层报文头数据
-c 参数用以指定 snort 的配置文件的路径
上面的命令将启动 snort,如果 snort 正常运行,系统最后将显示相应的信息。如图 3.49所示。
学新通
图 3.49 snort 正常运行的状态
同样由于账号加密方式,snort 账号同样也需要设置 old password,否则会出现如下错误:
学新通
解决方法:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('acidtest')
-> WHERE Host = 'localhost' AND User = 'acid';
mysql> FLUSH PRIVILEGES;

注意替换空格。
④打开 http://127.0.0.1:50080/acid/acid_main.php 网页,进入 acid 分析控制台主界面。
查看上述配置是否正确。如图 3.50 所示。
学新通
图 3.50 acid 分析控制台页面
(10)完善配置文件
①打开 C:/snort/etc/snort.conf 文件,查看现有配置。
②设置 snort 的内、外网检测范围。
将 snort.conf 文件中 var HOME_NET any 语句中的 any 改为自己所在的子网地址,即将snort 监测的内网设置为本机所在的局域网。如本地 IP 为 192.168.1.10,则将 any 改为192.168.1.0/24。
并将 var EXTERNAL_NET any 语句中的 any 改为 192.168.1.0/24,即将 snort 监测的外网改为本机所在局域网以外的网络。
③设置监测包含的规则。
找到 snort.conf 文件中描述规则的部分(即最后部分都是.rules 的语句),前面加“#”表示该规则没有启用,将 local.rules 之前的“#”去掉,其余规则保持不变。如图 3.51 所示。
学新通
图 3.51 snort.conf 文件中包含的检测规则文件
在配置好 snort 的基础上,练习使用 ACID 检测控制台查看检测结果。
2.测试 snort
(1)在 c:\snort\rules\local.rules 中添加语句:

alert ip any any -> 192.168.43.0/24 any (msg:”IP Packet detected”;sid:1000000;)

在实验时将 IP Packet detected 变为姓名首拼(eg:XM),以便批改时能分辨。
即警告从任何地址任何端口发向 192.168.43.0/24(本机所在网络)的任何端口的 IP 数据包,输出信息为:IP Packet detected,并使用 snort 规则序列号 1000000 来标记。
开启 snort 在相应网卡端口:

C:\snort\bin>snort -c ”C:\snort\etc\snort.conf” -l ”C:\snort\log” -d -e -X -v -i3

-v -i3 为查看网卡接口序号 3 的 snort 记录。
本机网卡记录可使用命令查看:

C:\snort\bin>snort.exe -W

学新通
由于实验环境为虚拟机,所以选取查看网卡序号1的虚拟网卡接口。
之后使用浏览器浏览任意网页,snort 开始监听抓包:
学新通
学新通
(2)再次点击打开http://127.0.0.1:50080/acid/acid_main.php网页:
学新通
点击相应协议占比进入具体分析细节:
改过后应为:
学新通
点击相应 ID 号进入相应 ID 序号的分析:
学新通

五、思考题

1.如何实现 IDS 与防火墙的联动?
答:防火墙较多对应用在转发,内网保护(NAT),流控,过滤等方面;IDS和IPS主要是针对一些攻击情况下。在osi模型中,一般的防火墙只是能做到2-4层的保护,对于5-7层的应用的保护很一般;所以产生了IDS和IPS,而IDS(Intrusion Detection Systems),只是做些攻击的检测工作,本身并不做防护,它检测到攻击的时候,可能此时攻击已经产生灾难了,所以IDS一般都需要和一些防攻击对设备共用;为解决IDS这个问题,出现了IPS(Intrusion Prevention System),它不光对已知的攻击种类能防御,还能检测些异常协议的攻击,比较灵活。
2. IDS 与 IPS 的有区别?
答:

  1. 概念不同;IDS是英文"Intrusion Detection Systems"的缩写,中文意思是“入侵检测系统"。专业上讲就是依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。入侵防御系统(Intrusion-prevention system)是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。
  2. 系统类型划分不同;IDS按入侵检测的技术基础可分为两类:一种基于标志的入侵检测(signature-based),另一种是基于异常情况的入侵检测(anomaly-based);IPS按其用途划分为单机入侵预防系统(HIPS)和网路入侵预防系统(NIPS:Network Intrusion Prevension System)两种类型。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhekea
系列文章
更多 icon
同类精品
更多 icon
继续加载