20221915 2022-2023-2 《网络攻防实践》实践五报告
1.实践内容
1.1 安全模型
为了保障被称为信息安全“金三角”的机密性、完整性、可用性三大安全属性,信息安全领域提出了一系列的安全模型来指导信息系统安全体系建设,以增强信息系统的安全性。
1.1.1 PDR模型
PDR安全模型是一个基于时间的动态安全模型,以经典的网络安全不等式 P t > D t + R t P_t>D_t+R_t Pt>Dt+Rt 为本质基础,并提出安全性可量化和可计算的观点。如果信息系统的防御机制能够抵御入侵的时间 P t P_t Pt ,能够超过检测机制发现入侵的时间 D t D_t Dt 和响应机制有效应对入侵的时间R之和,那么这个信息系统就是安全的。
1.1.2 P 2 D R P^2DR P2DR模型
20世纪90年代末RSS公司在PDR模型的基础上进一步扩展出 P 2 D R P^2DR P2DR安全模型,基本描述为:网络安全=根据风险分析制定安全策略(Policy)+执行安全防护策略(Protection)+实时检测(Detection)+实时响应(Response)。
1.2 网络安全防范技术与系统
1.2.1 防火墙技术概述
防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。从技术范畴上说,防火墙属于一种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。
1.2.2 防火墙
- 功能
- 检查控制进出网络的网络流量
- 防止脆弱或不安全的协议和服务
- 防止内部网络信息的外泄
- 对网络存取和访问进行监控审计
- 防火墙可以强化网络安全策略并集成其他安全防御机制
- 不足
- 来自网络内部的安全威胁
- 通过非法外联的网络攻击
- 计算机病毒传播
- 针对开放服务安全漏洞的渗透攻走
- 针对网络客户端程序的渗透攻击
- 基于隐蔽通道进行通信的特洛伊木马或僵尸网络
- 一种特殊的防火墙
Linux开源防火墙:netfilter/iptables
netfilter/iptables组合是目前Linux开源操作系统中普遍使用的防火墙技术解决方案,其中netfilter是Linux内核中实现的防火墙功能模块,iptables则是应用态的防火墙管理工具。
1.2.3 代理技术
代理技术:也称“网络代理”。它能让客户端通过它与另一个网络服务进行非直接的连接,有利于保障网络安全,防止网络攻击。提供这项服务的设备叫做代理服务器。
1.2.4 其它网络防御技术
除了防火墙之外,安全业界在多年技术发展中也提出了多种其他的网络防御技术,主要包括VPN、内网安全管理、内容安全管理、统一威胁管理等,也形成了多样化的网络防御产品和设备,同防火墙一起,共同维护网络层面的安全性。
1.3 网络检测技术与系统
1.3.1 入侵检测技术概述
入侵检测,顾名思义,就是对入侵行为的检测与发现。在网络攻防技术领域,一次入侵可被定义为任何尝试破坏信息资源的保密性、完整性或可用性的行为。入侵检测即为通过对计算机网络或计算机系统中若干关键点信息的收集和分析,从中发现入侵行为的一种安全技术。
1.3.2 入侵者分类
- 外部渗透者(External Penetrator):攻破系统的外部边界访问控制机制,渗透进入系统内部的攻击者;
- 假冒者(masquerader):未经授权使用计算机系统或突破访问控制机制冒用合法用户账户的攻击者;
- 违法者(misfeasor)):进行了越权操作的合法用户
- 秘密用户(clandestine user):对系统具有完全控制能力,并使用此能力绕过访问控制、规避安全审计,从而破坏系统的逻辑控制的内部用户。
1.3.3 入侵检测技术评估指标
评估入侵检测技术和系统的两个重要参数是:
- 检测率(True Positive)
- 误报率(False Positve)。
1.3.4 误用检测
误用检测基于如下假设:所有的入侵行为都有可被检测到的特征。误用检测通过收集已知入侵行为的特征并进行描述,构成攻击特征库,然后对收集信息进行特征模式匹配,所有符合特征描述的行为均被视为入侵。
1.3.5 异常检测
异常检测则基于这样的假设:入侵者的行为与正常用户的行为具有差异性,利用这些差异可以检测出入侵行为。异常检测方法是建立起系统的正常模式轮廓,若实时获得的系统或用户的轮廓值与正常值的差异超出指定的阙值,就进行入侵报警。
1.3.6 开源网络入侵检测系统:Snort
Snort是一款非常著名的开源网络入侵检测系统软件,它被设计成一个跨平台、轻量级的网络入侵检测系统,用C语言编写,并采用了标准的捕获数据包,函数库Iibp%p,具有非常好的可移植性。
Snort软件的基本架构主要由四个基本部分组成:
- 数据包嗅探/解码器(sniffer)
- 预处理器/插件(preprocessor)
- 检测引擎/插件(detection engine)
- 输出模块/插件(output modules)
1.4 网络安全事件响应技术
1.4.1 网络安全事件响应
网络安全事件响应是PPDR模型中响应环节的关键技术手段。事件响应是指针对网络安全事件发生后,所采取的措施和行动,旨在阻止和减小事件所带来的影响。随着安全事件本质变得越发的多样化,事件响应已经成为网络与信息安全模型的必要组成部分,成功的事件响应需要有丰富经验的人员基础,充分的组织与计划,及成熟的方法论指导。
1.4.2 网络安全事件响应组织与机构
计算机安全事件响应小组(Computer Security Incident ResponseTeam,CSRT)是进行网络安全事件应急响应和处理的专业团队。CSRT组织一般的职能包括:对计算机系统和网络安全事件的处理提供技术支持和指导,安全漏洞或隐患信息的通告、分析,事件统计分析报告,以及安全事件处理相关的培训等。
1.4.3 网络安全事件响应方法和技术概述
安全事件响应不仅仅是一个技术问题,它还涉及政策、组织架构,资源、流程、人际沟通与交流、技术基础等多方面因素,成功的事件响应需要大量的组织和计划,从信息安全政策中有关政策开始,一直到实现这个政策,除此之外,计划还包括其他一些必需的组成部分,如设计合理的事件响应结构,规划好所需资源,编制事件响应流程,与其他组织建立合作关系,设计合适的衡量指标等。
1.4.4 网络安全事件响应和技术概述
安全事件响应的6阶段,即准备、检测、抑制、根除、恢复和跟踪。网络安全事件响应过程中涉及的关键技术包括计算机取证、攻击追溯与归因、备份恢复与灾难恢复等。
1.5 总结
上述内容介绍了防御者在面对网络攻击威胁时,可选择的防御、检测与响应技术,而这些技术往往需要在安全模型与理论的指导下,进行综合的部署和应用才能构建起一套有效的网络安全防范体系。
- 防火墙技术提供了一套在网络边界位置的基本访问控制机制,来阻断未经授权的网络访问,Linux系统中提供的netfilter/iptables解决方案,可以帮助网络管理员在自己的网络中快速实施防火墙边界保护。
- 入侵检测技术则支持在网络与系统上对攻击行为进行发现与报警,帮助管理员快速地对攻击进行响应,开源的Sot软件为管理员提供了一个非常有力的入侵检测方案选择。
- 为有效应对网络攻击,管理员还需要建立起一套有效的安全事件响应机制,并掌握一些基础的响应技术,包括计算机取证、攻击追溯与归因、备份恢复与灾难恢复等。
2.实践过程
2.1 防火墙配置(IP地址仅供参考,以实际为准)
任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试: (1)
过滤ICMP数据包,使得主机不接收Ping包; (2)
只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.
168.200.4)无法访问
首先以SEED Ubuntu作为服务器,利用Kali访问SEED Ubuntu,Kali作为信任主机,Linux MetaSploitable作为不可信任主机。IP地址如下。
虚拟机 | IP地址 |
---|---|
Kali Linux | 192.168.200.6 |
Linux MetaSploitable | 192.168.200.3 |
SEED Ubuntu | 192.168.200.4 |
1.SEED Ubuntu中输入su root
提权,密码为seedubuntu
2. 再通过iptables -L
查看规则,发现都是默认规则。
3. 通过命令iptables -A INPUT -p icmp -j DROP
使主机不接受icmp的数据包。
指令详解:
-A
是追加一条规则,INPUT
表示数据包入口(规则),-p
用于匹配协议,-j
用于指定如何处理(ACTION)。
-
此时通过Kali ping SEED Ubuntu,发现是ping不通的,并且可以查看规则,发现多了一条icmp针对任何位置不允许访问的规则。
-
最后使用
iptables -F
删除自定义规则,完成过滤ICMP数据包实践。
下面开始第二个实践,只允许Kali访问SEED Ubuntu的telnet服务。
-
首先,我们确定Linux和Kali都可以进行telnet登陆。
-
接下来使用
iptables -P INPUT DROP
指令拒绝一切的数据包流入(修改的是默认规则-P
),此时应该两台电脑都无法进行访问。 -
使用指令
iptables -A INPUT -p tcp -s 192.168.200.6 -j ACCEPT
开启192.168.200.6对本机的tcp服务。并用iptables -L
查看规则。
-
此时我们发现Kali是可以正常访问telnet服务的,但是MetaSploitable却是无法访问的。
-
最后在SEED Ubuntu中通过执行
iptables -F
和iptables -P INPUT ACCEPT
两条指令恢复之前的状态。
2.2 动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在学习通中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下: ① 从离线的pcap文件读取网络日志数据源 ② 在snort.conf中配置明文输出报警日志文件 ③
指定报警日志log目录(或缺省log目录=/var/log/snort)
首先利用指令snort -r listen.pacp -c /etc/snort/snort.conf -K ascii对listen.pacp
进行入侵检测
-K ascii
主要是为了指定输出log文件的编码为ASCII(默认为binary)
查看输出,看到检测出的数据包大部分为TCP数据包。
在/var/log/snort/目录下查找到alert文件,即输出的日志文件,通过vim打开可以发现这个攻击是nmap发起的,当然还有很多其他的信息,譬如源地址、目的地址等。
2.3 分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
- 数据控制:包括两方面,防火墙对数据的控制,IPS对异常数据的限制(snort_inline)。大致在上面的功能之上,增加了:
- 防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。
- 对于属于白名单的主机,接受且不记录。
- 对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。
- 数据捕获:数据捕获包括:防火墙的日志记录(记录的信息如目的地址/端口、源地址/端口、协议、长度等。)Snort记录的网络流。
- IPTables的实际规则列表:通过指令
iptables -t filter -L
来查看规则列表。默认规则如OUTPUT等都关闭了,换为一些自定义的规则。
- **Snort实际执行参数:**通过vim snortd打开Snort脚本文件,图一为参数选项。图二为实际运行时的参数。当在指定网卡接口后,若无其他参数,将按默认参数运行。如默认不开启-A模式,使用默认目录的config文件(/etc/snort/snort.conf),默认使用eth0、使用二进制模式保存log文件等。
- Snort_inline实际执行参数:
通过vim hw-snort_inline
打开Snort_inline脚本文件,可以观察到实际运行参数,以及在最前面定义的参数。将前面的变量带入这个运行指令应该为(-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置):
snort-inline -D -c /etc/snort_inline/snort_inline.conf -Q -l [系统时间命名] -t [目录]
6. ** 防火墙、NIDS、NIPS启动:**
通过指令chkconfig --list | grep [服务]来查询当前服务是不是开启的。chkconfig命令主要用于检查,设置系统的各种服务。发现防火墙和NIPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件。NIDS需要手动启动。
7. Snort规则如何自动升级:
在/etc目录下使用指令vim honeywall.conf打开honeywall配置文件。同样可以找到snort规则更新的地方。默认是不自动更新的。
3.学习中遇到的问题及解决
此次实验中最大的问题就是snort安装不通顺,在同学们的积极帮助后解决问题。
4.实践总结
实验过程中应该更认真耐心,遇到问题要正确对待并细心解决,不要存在畏难情绪。
参考资料
- iptables详解
- iptables命令详解和举例
- Oinkmaster使用方法
- 《网络攻防技术实践》