《网络攻防实践》7.0

20199110 2019-2020-2 《网络攻防实践》第六周作业

1.实践内容

第六章是网络安全防范技术。包括安全模型、网络安全防范技术与系统、网络检测技术与系统、网络安全事件响应技术四方面的内容。

安全模型

动态可适应网络安全模型基于闭环控制理论。典型模型有:

  • 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)、攻击追溯与归因、备份恢复与灾难恢复等。

  • 计算机指证

是指在安全事件的调查中对计算机系统进行详细检查,并对计算机犯罪的电子证据进行保护、确认、提取和归档的过程。

  • 攻击溯源与归因

是找出真正实施网络攻击的来源,并确定出攻击者真实身份。

  • 备份恢复

是在遭受网络安全事件之后快速恢复业务运转的关键保障性技术。

2.实践过程

任务一

配置Linux操作系统平台上的iptables, 或者Windows操作系统平台上的个人防火墙, 完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定 IP 地址(如局域网中的Linux攻击机 192.168.200.3),访问主机的某一网络服务(如FTP 、 HTTP、 SMB), 而其他的lP地址(如Windows攻击机192.168.200.4)无法访间。

实操

以kali(A)为信任主机,SEEDUbuntu(B)为服务器,Metasploitable2(C)为不信任主机。其中,IP(A)为192.168.200.5,IP(B)为 192.168.200.6,IP(C)为 192.168.200.2

针对(1),有:

(I)在B上使用iptables -L查看规则,然后使用iptables -A INPUT -p icmp -j DROP(-A为追加一条规则,INPUT为数据包入口规则,-p为匹配协议,-j为指定处理)使得主机不接收icmp数据包。

(II)这时在A上ping通B,发现无法ping通。返回B中使用iptables -L查看规则,可以发现多了一条icmp针对任何位置不允许访问的规则。

(III)最后,在B中使用iptables -F删除自定义规则后,用A去pingB是可以ping通的。

针对(2),有:

(I)分别在A和C上使用telnet IP(B)进行账号密码登录。

(II)在B上使用iptables -P INPUT DROP拒绝一切数据包流入,这时A和C上均无法键入指令(这里就不配图了,脑补即可)。然后使用指令iptables -A INPUT -p tcp -s IP(A) -j ACCEPT开启IP(A)对本机TCP服务,并用iptables -L查看规则。这时我们发现A应该是可以正常访问telnet服务的,但是C仍无法访问。

(III)最后,在B中使用iptables -Fiptables -P INPUT ACCEPT进行状态恢复。

任务二

使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件)进行入侵检测, 并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。Snort运行命令提示如下:
(1)从离线的pcap文件读取网络日志数据源。
(2)在snort.conf中配置明文输出报警日志文件。
(3)指定报警日志log目录(或缺省log目录=/var/log/snort)。

实操

根据作业要求选择在A中进行下列操作。
(I)在A上使用snort -r listen.pcap -c /etc/snort/snort.conf -K ascii对listen.pacp进行入侵检测。其中,指令中-K ascii主要是为了指定输出log文件的编码为ASCII(默认为binary)。查看输出,我们可以看到检测出的数据包大部分为TCP数据包。

(II)通过vim /var/log/snort/alert打开输出的日志文件,可以发现这个攻击是nmap发起的,当然还有很多其他的信息:源地址、目的地址等。

任务三

分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,并撰写分析报告,说明蜜网网头是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。具体分析配贺规则与启动项文件包括:
(1)防火墙(netfilter+IPTables) : /etc/init.d/rc.firewall;
(2)入侵检测系统(Snort) : /etc/init.cl/hflow-snort与/etc/snort/snort.conf;
(3)入侵防御系统(Snort_inline) : /etc/init.cl/hflow-snort_inline与/etc/snort_inline/snort_ inline.conf。
分析内容如下:
(1)上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?
(2)获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
(3)蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
(4)Bonus: 蜜网网关中的Snort规则是如何自动升级的?

实操

根据作业要求选择在蜜网中进行下列操作。

针对(1),有:

数据控制一般包括防火墙对数据的控制和IPS对异常数据的限制(snort_inline),首先使用su -进行提权,然后使用vim /etc/init.d/rc.firewall查看三链:黑名单、白名单和防护名单(FenceList)。

在上述功能上,增加了:

  • 防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。
  • 对于属于白名单的主机,接受且不记录。
  • 对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。
针对(2),有:

(I) IPTables的实际规则列表:数据捕获主要包括防火墙日志记录和snort网络流记录。通过iptables -t filter -L来查看规则列表。不难发现,默认的规则入OUTPUT、INPUT、FORWARD都已经被关闭了,取而代之的是一些自定义的规则(包括之前配置Roo的一些参数也反映在规则表上)。

(II)Snort实际执行参数:通过vim /etc/init.d/snortd打开Snort脚本文件,观察第一张图可以看到一开始是一些参数的选项,第二张图对应实际运行时候的参数。在指定网卡接口后,如果没有其他参数,将按照默认参数运行。比如默认不开启-A模式,默认使用/etc/snort/snort.conf(默认目录config文件)、eth0、二进制模式保存log文件等。

(III) Snort_inline实际执行参数:通过vim /etc/init.d/hw-snort_inline打开Snort_inline脚本文件,可以观察到实际运行的参数,以及在最前面定义的参数。

针对(3),有:

通过指令chkconfig --list | grep [服务]来查询当前服务是不是开启的。chkconfig命令主要用于检查设置系统的各种服务。我们发现防火墙和NIPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件。NIDS是需要手动启动的。

针对(4),有:

使用vim /etc/honeywall.conf打开honeywall配置文件,这个里面可以看到很多东西:之前安装roo时配置的IP地址、白名单黑名单的位置、snort规则更新的地方等。我们可以看到Oinkmaster字样,通过查询,这个果然是个自动更新的软件。通过观察,我们发现自动更新是默认关闭的。使用方法可参考Oinkmaster使用方法

然后我们在当前目录下打开oinkmaster.conf文件,可以看到文件有较为详尽的注释。

3.学习中遇到的问题及解决

  • 问题1:在任务一(2)中实操时,第一次出现失联,我起初以为是实验效果。

  • 问题1解决方案:在经过排查之后发现只是因为未及时登录,实际的实验效果应该是无法键入指令,失去访问控制。

  • 问题2:在蜜罐进行指令操作时,发现无法上翻页面。这个问题在上次作业Metasploitable2中也出现过。

  • 问题2解决方案:经过百度检索,发现翻页指令为shift+pgup/pgdn

4.实践总结

本次实践以文件分析为主,联网操作为辅。同时,在观察配置文件时,由于有较为详细的注释,因此可以帮助理解代码内容。总体而言,在参考建国博客的情况下,本次实践作业较为顺遂。实践过程中,也没有出现此前桥接一类比较折腾的问题。

有一个薛定谔的问题,kali机安装第三方库时,时好时坏,很迷。

参考资料

原文地址:https://www.cnblogs.com/y1150182239/p/12618752.html