20211918-晋伊甲-2021-2022-2《网络攻防实践》第五次作业
一、实验内容
网络安全防范技术包括安全模型、网络安全防范技术与系统、网络检测技术与系统、网络安全事件响应技术四方面的内容。
安全模型
动态可适应网络安全模型基于闭环控制理论。典型模型有:
PDR(Protection、Detection、Response)模型,PDR安全模型是一个基于时间的动态安全模型;
PPDR(Policy、Protection、Detection、Response)模型等,PPDR模型中安全策略是模型的核心。
防护机制就是采用一切手段保护信息系统的机密性、完整性、可用性、真实性和不可抵赖性。监测机制是动态响应和加强防护的依据,是强制落实安全策略的工具。
网络安全防范技术与系统
防火墙技术是目前最为成熟的网络防御技术之一。防火墙可以在网络协议的各个层次上实施网络访问控制机制,对网络流量和访问进行检查和控制
根据防火墙工作网络协议栈层次,防火墙技术可分为:
包过滤
电路级网关
代理技术(根据工作的网络协议栈层次的不同,代理技术包括应用层代理、电路级代理和NAT代理等。)
防火墙技术通常能够为网络管理员具体提供以下功能:
检查控制进出网络的网络流量
防止脆弱或不安全的协议和服务
防止内部网络信息的外泄
对网络存取和访问进行监控审计
防火墙由于属性或者技术瓶颈会产生不同程度的安全威胁,具体安全威胁如下:
防火墙先天无法防范的安全威胁
网络内部安全威胁
非法外联网络攻击
计算机病毒传播
防火墙因技术瓶颈无法防范的安全威胁
针对开放服务安全漏洞的渗透攻击
针对网络客户端程序的渗透攻击
基于隐蔽通道进行通信的特洛伊木马或僵尸网络
防火墙产品可以分为集成包过滤功能路由器、基于通用操作系统的防火墙软件产品、基于安全操作系统的防火墙、硬件防火墙设备。防火墙的部署方法有包过滤路由器、双宿主堡垒主机、屏蔽主机、屏蔽子网等。除了防火墙之外,安全业界还有其他网络防御技术,主要包括VPN、内网安全管理、内容安全管理、统一威胁管理等。
Linux开源防火墙有netfilter/iptables,netfilter是Linux内核中实现的防火墙模块,iptables则是应用态的防火墙管理工具。
网络检测技术与系统
检测是响应的前提,检测技术主要包括漏洞评估、入侵检测等。入侵检测指对入侵行为的检测与发现,与防火墙起相辅相成的作用。评估入侵检测技术和系统的两个重要参数是检测率(True Positive)和误报率(False Positive)。
根据不同分类标准,有如下分类:
从入侵检测系统的检测数据来源,可将入侵检测系统分为HIDS(Host-based IDS,基于主机入侵检测系统)和NIDS(Network-based IDS,基于网络入侵检测系统)两大类;
从入侵检测系统所采用的信息分析技术分类,可分为误用检测(特征检测)方法和异常检测方法两类;
从入侵检测系统所采用的体系结构分类,可分为集中式、层级式和协作式。
开源网络入侵检测系统Snort是一款非常著名的开源网络入侵检测系统软件。Snort主要由以下四部分组成:
数据包嗅探/解码器(sniffer)
预处理器/插件(preprocessor)
检测引擎/插件(detection engine)
输出模块/插件(output modules
网络安全事件响应技术
网络安全事件指那些影响计算机系统和网络安全的不当行为。网络安全事件响应组织与机构有CSIRT(Computer Security Incident Response Team,计算机安全事件响应小组)、CCERT(中国教育和科研计算机网紧急响应组)等。安全事件响应6阶段PDCERF方法学,即准备、检测、抑制、根除、恢复和跟踪。
网络安全事件响应过程中涉及的关键技术包括计算机取证(Computer Forensics)、攻击追溯与归因、备份恢复与灾难恢复等。
计算机指证
是指在安全事件的调查中对计算机系统进行详细检查,并对计算机犯罪的电子证据进行保护、确认、提取和归档的过程。
攻击溯源与归因
是找出真正实施网络攻击的来源,并确定出攻击者真实身份。
备份恢复
是在遭受网络安全事件之后快速恢复业务运转的关键保障性技术。
二、实验过程
- 防火墙配置
任务要求:配置Linux操作系统平台上的iptables和Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
以kali为信任主机,SEEDUbuntu 为服务器,Metasploitable2为不信任主机。其中,IP kali为192.168.200.4,IP(SEEDUbuntu)为 192.168.200.7,IP(Metasploitable2)为 192.168.200.123。
首先使用kali ping seedUbuntu如图所示
在SEEDUbuntu上使用 iptables -L查看规则,使用iptables -A INPUT -p icmp -j DROP
使得主机不接受icmp数据包,使kali再次ping ubuntu如图所示
我们发现此时icmp数据包不再接收。
返回Seedununtu使用 iptables -查看规则,可以发现icmp多了一条对任何位置都不允许访问的规则
最后,在seedUbuntu中使用iptables -F删除自定义规则,重新ping是可以成功的。
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
在kali上使用telnet 192.168.200.7(seedUbnuntu的IP)进行账号密码登录
这时 kali 和UBUNTU靶机都无法键入指令
然后使用指令 iptables -A INPUT -p tcp -s IP(A) -j ACCEPT开启kali对 seedUbuntu的TCP服务,并用iptables -L查看规则。这时我们发现Kali 是可以正常访问telnet服务,但是ubuntu靶机仍然无法访问。
在seedUbuntu中使用iptables -F和 iptables -P INPUT ACCEPT进行状态恢复
Windows下的设置:
1.在“开始”-“运行”输入“secpol.msc”回车即打开“本地安全设置”页面
依次执行如下操作:右键点击IP安全策略->选择管理IP筛选器和筛选器操作->在管理IP筛选器列表中建立一个过滤规则:ICMP_ANY_IN,源地址选任意IP,目标地址选本机
切换到管理过滤器操作,增加一个名为Deny的操作,操作类型为 阻止(block),这样我们就有了一个关注所有进入ICMP报文的策略和丢弃所有报文的过滤操作
右键点击ip安全策略->创建ip安全策略 ->下一步:名称:禁止ping;--下一步:取消激活默认响应规则->完成 ->禁止ping属性->添加(勾选,使用添加向导)->下一步直至“身份验证方法”->选第三项,输入共享字串->下一步:在ip筛选器列表里选ping->下一步到完成
至此,一条禁止别人ping 自己的ip地址的策略就部署完毕。
打开kali 进行ping命令发现超时,说明试验成功
2. 只允许特定IP地址 (如FTP、HTTP、SMB),而其他的IP地址无法访问
思路:
第一步:打开两个windows系统的telnet服务,为了测试远程访问控制,记录修改前可以远程访问的状态。
第二步:通过之前的安全策略步骤,关闭TCP协议下的3389端口,让特定的IP地址不能远程访问控制,并记录结果。
打开windows telnet服务,首先在[运行]中输入"services.msc",确定后出现[服务管理器]
在双击后出现的[属性对话框]中[启动类型]改为[自动]或[手动];
启动Telnet服务:在[属性对话框]中的[服务状态]项中点击[启动];
在[运行]中输入"cmd",确定后在光标提示符输入"net start telnet"回车,当屏幕显示"Telnet服务正在启动...Telnet 服务已经启动成功。"后,说明Telnet服务已经在你本机启动了。
开始进行修改前的远程访问控制:运行mstsc,连接另一台windows
关闭远程访问控制,在win2kserver里面进行本地安全策略设置如图
测试远程连接,无响应,试验成功
- 二、动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
使用kali 输入命令 snort -r listen.pcap -c /etc/snort/snort.conf -K ascii 对listen.pacp 进行入侵检测。其中,指令中-K ascii主要是为了指定输出log文件的编码为ASCII(默认的是binary)。查看输出,我们可以看到检测出的数据包大部分为TCP数据包
先通过 cd /var/log/snort 切换到snort目录 通过ls查看已有的日志文件,通过vi snort.alert.fast 打开输出的日志文件,可以发现 攻击机使用了nmap扫描工具,并且使用了DDOS攻击
- 三、分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
具体分析配置规则与启动项文件包括:
防火墙(nefilter+IlPTables) : /etc/init.d/rc.firewall;
入侵检测系统(Snort) : /etc/init.d/hflow_snort 与/etc/snort/snort.conf;
入侵防御系统(Snort_ inline) : /etc/init./hflow-snort. inline 与/etc/snot. _inline/snort_inline.conf。
分析内容如下。
1.上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?
实际操作;
数据控制一般包括防火墙对数据的控制和IPS对异常数据的限制(snort_inline),首先使用su -进行提权,然后使用vim /etc/init.d/rc.firewall查看三链:黑名单、白名单和防护名单(FenceList)
2.获取IPTables的实际规则列表、Snort 和Snort_inline 的实际执行参数。
IPTables的实际规则列表:数据捕获主要包括防火墙日志记录和snort网络流记录。通过iptables -t filter -L来查看规则列表。默认的规则OUTPUT、INPUT、FORWARD都已经被关闭。
Snort实际执行参数:通过vim /etc/init.d/snortd打开Snort脚本文件,观察第一张图可以看到一开始是一些参数的选项,第二张图对应实际运行时候的参数。在指定网卡接口后,如果没有其他参数,将按照默认参数运行。比如默认不开启-A模式,默认使用/etc/snort/snort.conf(默认目录config文件)、eth0、二进制模式保存log文件等。
Snort_inline实际执行参数:通过vim /etc/init.d/hw-snort_inline打开Snort_inline脚本文件,可以观察到实际运行的参数,以及在最前面定义的参数
3.蜜网网关开机之后,防火墙、NIDS、NIPS 是如何启动的?
过指令chkconfig --list | grep[服务]来查询当前服务是不是开启的。chkconfig命令主要用于检查设置系统的各种服务。我们发现防火墙和NIPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件。NIDS是需要手动启动的。
4.Bonus: 蜜网网关中的Snort规则是如何自动升级的?
使用vim /etc/honeywall.conf查看配置文件,如下
可以看到使用Oinkmaster进行更新,参照Oinkmaster使用
三、学习中遇到的问题及解决
在刚开始这次的实验时有很多新的知识是之前所没有遇到的,做起来感觉难度很大,但是在与同学讨论之后这些问题都可以得到很多好的解决。
四、学习感想和体会
通过这次实验我掌握了很多很实用的网络攻防技巧,对以后的工作实践都会有很大的帮助。