实践五 网络安全防范技术
1 实践内容
1.1 安全防范
为了保障"信息安全金三角"的CIA属性、即机密性、完整性、可用性,信息安全领域提出了一系列安全模型。其中动态可适应网络安全模型基于闭环控制理论,典型的有PDR和P^2DR模型。
1.1.1 PDR模型
信息系统的防御机制能抵抗入侵的时间P,能超过检测机制发现的入侵的时间D和响应机制有效应对入侵的时间R之和。
1.1.2 P^2DR模型
网络安全=根据风险分析制定安全策略(policy)+执行安全防护策略(Procation)+实时监测(Detection)+实时响应(Response)。其中安全策略是核心。
图1.1 P^2DR模型
1.2 防火墙
1.2.1概述
防火墙是目前最成熟的网络防御技术之一,属于一种网络上的访问控制机制,通过在不同网络域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求决定是否允许网络访问通过防火墙,达到特定网络安全域免受非法访问和破坏的目标。
防火墙功能有检查进出网络的流量、防止脆弱或不安全的协议和服务、防止内部网络信息外泄、对网络存取和访问进行监控审计、可强化网络安全策略和集成其他网络安全防御机制。
防火墙对于来自网络安全内部的攻击、通过非法外联的网络攻击和计算机病毒传播防御有限。
1.2.2 防火墙技术和产品
包过滤技术是通过网络层和传输层的包头信息检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络边界处。
基于状态检测的包过滤技术维护所有通过防火墙的网络连接记录,并依此确定数据包是否属于一个新的连接、或是已连接的一部分,或是一个非法数据包。由于根据数据包的上下文进行检查和过滤,数据的合法性得到了更有效的保证,但对网络传输的性能影响较大。
图1.2 基于状态检测的包过滤技术
代理技术为客户端首先与代理服务器建立连接,接着发出一个对外部目标服务器的的文件或请求,代理服务器通过与目标服务器连接或从缓存中取得资源,并返回给客户端。网络用户便不直接与外部服务器通信。具体分为应用层代理技术、电路级代理技术和NAT代理技术。
防火墙产品集成包过滤的路由器、基于通用操作系统的防火墙软件产品、基于安全操作系统的防火墙、硬件防火墙设备。
1.3 入侵检测技术
1.3.1 概述
入侵检测技术定义是对入侵行为的检测与发现。两个重要参数是检测率和误报率。信息收集是入侵检测技术的基础。收到信息后最核心的任务是信息分析,两种基本的分析技术是梧误用检测和异常检测。
入侵检测系统的部署位置如图1.3所示:
图1.3 入侵检测系统的部署位置
1.3.2 入侵检测系统:snort
snort采用标准的捕获数据包的函数库libpcap,具有数据包嗅探、数据包记录和分析、入侵检测功能。软件基本构架如图1.4所示
图1.4 snort软件基本构架
在snort运行时,首先,将捕获的数据包经过解码器填入到链路层协议的包结构体之中,以便对高层协议解码;然后送入各种各样的预处理插件中,对数据进行检查和操作;随后检测引擎对每个包的信息进行快速模式匹配检测;对之前各个部件产生的报警/日志信息,调出相应的输出插件进行发送和记录。检测引擎与插件是snort入侵的主体模块,包含规则库解析、多模式匹配和规则插件检查三部分。
2 实践过程
2.1 防火墙配置
配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试。
2.1.1 过滤ICMP数据包,使得主机不接收Ping包
(1)Linux操作系统平台上的iptables
首先,输入指令"iptables -L"查看所有规则,确认是默认的。
图2.1 所有规则
然后,用攻击机(192.168.200.4)ping靶机(192.168.200.129)。发现可以ping通。
图2.2 ping通
输入指令"iptables -A INPUT -p icmp -j DROP"使得主机不接收ICMP包。
其中各参数的意思是:
-A INPUT:将input规则添加到链尾;
-p icmp:指定icmp协议;
-j DROP:指定对应数据包进行丢弃。
然后再次查看规则:
图2.3 再次查看所有规则
可以看出第一行已经变成"anywhere"。
此时用用攻击机(192.168.200.4)ping靶机(192.168.200.129),发现已经不能ping通。
图2.4 ping失败
使用wireshark抓包,可以看到发出了很多icmp数据包。
图2.5 wireshark抓包
成功后,使用iptables -F清除所有规则。此时,用攻击机(192.168.200.4)ping靶机(192.168.200.129)成功ping通。
图2.6 再次ping通
(2)Windows操作系统平台上的个人防火墙
启动WinXPattacker,密码为"mima1234"。用kali ping WinXPattacker(192.168.200.8),可以ping通。
图2.7 ping成功
打开"控制面板"的"Windows防火墙"。
图2.8 控制面板的防火墙
在"高级"→"ICMP设置"中,把"允许传入回显请求"勾掉。
图2.9 勾掉允许传入回显请求
此时看到kali就ping不通windowsXP了。
图2.10 无法ping通
实验完毕,再调回设置,发现可以重新ping通。
图2.11 再次ping通
2.1.2 只允许特定IP地址访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问。
本节实验的各主机的IP地址如下:
A:192.168.200.4
B:192.168.200.6
C:192.168.200.7
首先给A安装FTP服务,输入指令"apt-get install vsftpd"。再输入"service vsftpd start"开启FTP服务。
图2.12 开启FTP服务
然后用B和C访问A的ftp服务均成功。
图2.13 B成功连接FTP
图2.14 C成功连接FTP
对A进行设置,输入指令"iptables -P INPUT DROP"拒绝一切数据流入。再输入指令"iptables -A INPUT -p tcp -s 192.168.200.6 -j ACCEPT"只允许B(192.168.200.6)访问主机。
设置好后,用B和C访问A,可见只有B可以成功访问。
图2.15 B再次成功连接FTP
图2.16 C连接FTP失败
输入"iptables -F"和"iptables -P INPUT ACCEPT"恢复之前的状态。
2.2 动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
输入指令"snort -c /etc/snort/snort.conf -r /home/kali/Desktop/listen.pcap -K ascii"从离线的pcap文件读取网络日志数据源。
图2.17 读取网络日志数据
通过分析结果可以看出TCP包占绝大多数。
snort会在默认目录"/var/log/snort"生成一个日志文件,输入指令"cd/var/log/snort"查看日志文件。可以看出本次攻击是用nmap发起的。攻击机IP地址是172.31.4.178,靶机IP地址是172.31.4.188,还可以看到端口号等等。
图2.18 相关信息
2.3 分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
具体分析配置规则与启动项文件包括:
防火墙(netfilter+IPTables):/etc/init.d/rc.firewall:
入侵检测系统(Snort):/etc/init.d/hflow-snort 与/etc/snort/snort.conf:
入侵防御系统(Snort_inlinc):/etc/init.d/hflow-snort_inline 与/etc/snort_inline/snort. inline.conf
2.3.1 数据捕获
数据捕获是密网的一个重要目的,包括三个层次,分别是防火墙的日志记录、eth0上的嗅探器记录的网络流多和Seek捕获的系统活动;记录的内容主要包括:数据包通过时间、包协议类型、进出的网络接口、源地址、目的地址、源端口、目的端口、包长度等。
蜜罐网关通过三种方式捕获数据:防火墙日志、网络通讯、系统活动。防火墙能够记录所有的进入和外出本网络的连接。所有进出防火墙的日志信息记录在/var /log /messages文件中。但防火墙能记录的数据是有限的,主要是报头信息,如攻击的时间、源和目的IP地址以及源和目的端口,对于入侵者的击键行为、数据包的载荷等无能为力。
打开密网网关,输入vim /etc/init.d/rc.firewall查看防火墙的文件。看到create_chains函数中新建了许多规则链,包括黑名单、白名单、防护名单等
图2.19 防火墙文件
2.3.2 控制需求
Roo的数据控制包含两方面,一是防火墙Iptables对连出(Outbound)的连接数的控制,另一个是网络信息防御系统Snort_inline对连出异常数据的限制,还增加了黑名单、白名单、防护名单的功能。防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。对于属于白名单的主机,接受且不记录。对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。
在蜜罐中,使用iptables -t filter -L命令来查看规则列表。可以看出,默认的规则例如OUTPUT、INPUT、FORWARD都已经被关闭了
图2.20 蜜罐规则列表
3.学习中遇到的问题及解决
3.1 kali的FTP服务
Kali默认没有安装FTP服务。需要先安装后再使用。
3.2 windows允许传入回显请求关
ICMP设置中允许传入回显请求前面的复选框是灰色的,默认勾选,无法取消勾选。需要关掉例外选项,允许传入回显请求前面的复选框就可以关掉了。
4 感想和体会
通过本次实验,我学习到了各种网络安全防范技术的基本原理和方法。熟悉使用Windows的防火墙和linux的iptables的配置。对ICMP数据包有了进一步的认识。学习了使用Snort对给定pcap文件进行分析,找出各种信息。对蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求也有进一步的认识。