20199130 2019-2020-2《网络攻防实践》第六次作业
本次作业属于那个课程 | 《网络攻防实践》 |
---|---|
这个作业要求在哪里 | [网络安全防范技术] |
作业正文 | 下述正文 |
1. 安全模型
- 动态可适应网络安全模型基于闭环控制理论,典型模型是PDR(Protection、 Detection、Response)以及
PPDR(Policy、 Protection、Detection、Response) - PDR安全模型:以P>D+R为本质基础,P为信息系统的防御机制能够抵御入侵的时间,D为入侵时间,R为响应机制有效应对入侵的时间
- PPDR安全模型:安全策略是核心,所有的防护、检测、相应都是根据安全策略实施的。
2. 防火墙:在不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备
功能:
(1)检查控制进出网络的网络流量
(2)防止脆弱或不安全的协议和服务
(3)防止内部网络信息的外泄
(4)对网络存取和访问进行监控审计
(5)防火墙可以强化网络安全策略并集成其他安全防御机制
不足:目前防火墙技术并不能有效应对某些类型的安全威胁
(1)先天无法防范的安全威胁:来自网络内部的威胁、通过非法外联的网络攻击、计算机病毒传播
(2)由于技术瓶颈无法应对的威胁:针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击、基于隐蔽通道进行通信的特洛伊木马或僵尸网络
2.1 包过滤技术
- 最早提出和应用的防火墙技术。通过对网络层和传输层包头信息的检查,分局安全策略确定是否转发该数据包,从而阻挡其他不符合安全策略的数据包
- 通常见车的信息包括数据包的源地址、目的地址、网络协议号、网络端口号、ICMP报文类型和号码
2.2 防火墙产品
- 实现包过滤和动态包过滤技术的个人防火墙软件:windows防火墙、防火墙内核模块(eg:Linux中的Netfilter),实现应用代理技术的各类
网络服务代理程序(eg:Linux中的Squid、windows Proxy Server),实现电路级代理技术的SOCKS代理软件(SocksCap)
- WindowsXP在其操作系统中附带Windows防火墙,用户可以在控制面板中找到防火墙图标从而直接进行设置
2.3 Linux开源防火墙:netfilter/iptables
- netfilter/iptables组合是目前Linux操作系统中常用的防火墙技术解决方案,
- netfilter/iptables工作原理:netfilter位于Linux的内核空间,实现静态包过滤和状态报文检查基本防火墙功能;iptables是Linux用户空间中
的防火墙配置工具,通过命令行方式允许用户为netfilter配置各种防火墙过滤和管理规则。
-
iptables为用户提供配置netfilter规则的命令行接口,命令语法为:
-t:指定配置规则所在的表,缺省表包括filter、nat、mangle、raw等
-A或--append:将一条规则附加到链的末尾
-P或--policy:设置链的缺省目标操作,所有与链中任何规则都不匹配的信息都将被强制使用此链策略
-N或--new-chain:用所指定的名称创建一个新链
-F或--flush:若指定链名,则删除链中所有规则;若未指定链名,则删除所有链中所有规则
-L或--list:列出指定链中的所有规则
常用的一些目标及示例说明:
- ACCEPT:当信息包与具有ACCEPT目标操作的规则相匹配时,会被接受。目标操作:-j ACCEPT
- DROP:当信息包与具有DROP目标操作的规则相匹配时,会阻塞。目标操作:-j DROP
- REJECT:将错误的消息发回给数据包的发送方。目标操作:-j REJECT
- RETURN:让与该规则相匹配的信息包停止遍历包含该规则的链。-jump RETURN
3. 开源网络入侵检测系统:Snort
- 一款完了过入侵检测系统软件。
- 功能:数据包嗅探、数据包记录和分析、各种入侵检测
- Snort基本架构:(1)数据包嗅探/解码器:采用标准的libpcap函数库接口获取数据包嗅探内容,通过包解码器对嗅探到的数据包进行协议分析
(2)预处理器/插件:三种类型插件(TCP/IP协议栈模拟、应用层协议解码、异常检测)
(3)检测引擎/插件
(4)输出模块/插件
数据包嗅探/解码器:采用标准的libpcap函数库接口获取数据包嗅探内容,通过包解码器对嗅探到的数据包进行协议分析
预处理器包括三种类型插件:TCP/IP协议栈模拟、应用层协议解码、异常检测
4.实践作业
实践任务一:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙
(1)过滤ICMP数据包,使得主机不接受ping包
(2)只允许特定的IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.168.200.4)无法访问
(1)
- 在Windowsxp攻击机中ping 192.168.200.3(kali的IP地址)
- 正常ping通之后,接下来在kali中输入命令iptables -A INPUT -p icmp -j DROP来过滤ICMP数据包,-A表示接一条规则到INPUT链后
- 再回到WinAttacker机发现已经无法ping通
- 在kali中输入命令iptables -D INPUT -p icmp -j DROP取消过滤icmp数据包的规则
- 此时可以正常ping通
(2)
- 先用WinAttcker中ping 192.168.200.3(kali的IP地址),可以ping通
- 再在linux靶机metasploitable中ping 192.168.200.3,可以ping通
- 在kali中输入两行命令 iptables -P INPUT DROP (断开所有链接) 和 iptables -A INPUT -p tcp -s 192.168.200.2 -j ACCEPT(只允许IP地址为192.168.200.2的数据包链接通过)
- 之后再iptables -L,发现只有192.168.200.2的数据包是可以通过的
- 最后通过iptables -F 和 iptables -P INPUT ACCEPT 两条指令恢复原状态
实践任务三:分析蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求
- 上述脚本是如何实现蜜网的数据捕获和数据控制?
- 获取iptables的实际规则列表、Snort和Snort_inline的实际执行参数。
- 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
- Snort规则是如何自动升级的?
-
蜜网的数据捕获和数据控制
-
打开蜜罐,su - 提权之后,输入命令 vim /etc/init.d/rc.firewall
从上面可以看出,creat_chains函数中有三种:BlackList、WhiteList、FenceList,分别用来存储源地址和目的地址的黑名单、白名单、防护名单
可以看出 iptables相关的-log参数保存日志
-
查看iptables实际规则表:
-
输入命令iptables -t filter -L来查看实际规则表,其中,-t是指定规则表,-L表示列表。通过shift键+PG UP/DN进行翻页。
可以发现,一些规则如OUTPUT、INPUT、FORWARD都已经被关闭了
-
Snort实际执行参数
-
输入命令vim /etc/init.d/snortd , 其中snortd是snort启动的脚本文件,snort.conf是具体预警的规则设定
由图看出snort.conf规则
默认监听存储路径为 /var/log/snort
-
Snort_inline的实际执行参数
输入命令 vim /etc/init.d/hw-snort_inline , 打开snort_lnline脚本
-
蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动
通过输入命令chkconfig --list|grep iptables 和 chkconfig --list|grep snort 来查看当前服务是否开启
(也可以通过命令chkconfig --list 对linux上运行的服务查询)
其中,命令chkconfig用于检查,设置各种服务。如果0-6权威off,则说明不自动启动
由图可以看出,snortd全为off,所以它不会自动启动。而另外的防火墙iptables和snort_inline不是全为off,所以会跟随系统启动
实践任务二:使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明
- 之前实践涉及到的listen.pcap下载到kali中,所以直接用kali做
5. 遇到问题及解决
(1)kali未能成功安装snort,apt-get update 也不行
解决方法:正尝试在ubuntu中安装,但也有点问题。。。。。
今天又试了一下,snort还是安装不了,唉
6. 心得体会
- 实践能力有待提高。