20199326 2019-2020-2 《网络攻防实践》第六周作业
实践内容
6.1安全模型
- 传统的安全评估和防范方法是通过对网络进行风险分析,制定相应的安全策略,然后采取一种或多种安全技术作为防护措施的,这种安全模型与流程在主要针对固定,静态的威胁和环境弱点,但忽略了网络安全的重要特性,对网络安全所面临的威胁和系统脆弱性没有做充分的估计,新的安全问题的出现需要新的安全技术和手段来解决,因此没有绝对,一成不变的安全,安全是一个相对的,动态的,不断完善的过程,需要适应变化的环境并能做出相应的调整以确保安全防护。基于这种考虑,信息安全领域进一步提出了一系列动态可适应网络安全模型。
- 动态可适应网络安全模型基于闭环控制理论,典型模型是PDR(Protection、Detection、Response)模型以及在其基础上提出的P2DR(Ploicy、protection、detection、Response)模型等
- PDR安全模型:P>D+R,如果信息系统的防御机制能够抵御入侵事件P,能够超过检测机制发现入侵的时间D和响应机制有效应对入侵时间R之和,那么这个信息系统就是安全的。
- 20世纪90年代末,ISS公司在PDR模型基础上进一步扩展出了P2DR安全模型。基本描述为:网络安全=根据风险分析制定安全策略+执行安全防护策略+实时监测+实时响应。在这个模型中,安全策略是模型的核心,所有的防护、检测、响应都是依据安全策略实施的,安全策略为安全管理提供管理方向和支持手段。如下图所示。
- 主要的检测技术包括入侵检测和漏洞评估,响应措施主要包括应急处理、备份恢复、灾难恢复。
6.2网络安全防范技术与系统
-
防火墙属于一种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。
-
防火墙技术可以分为包过滤、电路级网关和应用层代理技术
-
防火墙最基本的功能就是控制在计算机网络中不同信任程度网络域之间传送的数据流。能提供以下功能
- 检查控制进出网络的网络流量
- 防止脆弱或不安全的协议和服务
- 防止内部网络信息的外泄
- 对网络存取和访问进行监控审计
- 防火墙可以强化网络安全策略并集成其他安全防御机制
-
防火墙作为网络边界防护机制而先天无法防范的威胁
- 来自网络内部的安全威胁
- 通过非法外联的网络攻击
- 计算机病毒传播
-
由于技术瓶颈问题目前还无法有效防范的安全威胁
- 针对开放服务安全漏洞的渗透攻击
- 针对网络客户端程序的渗透攻击
- 基于隐蔽通道进行通信的特洛伊木马或僵尸网络
-
防火墙技术:
- 包过滤技术:在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络的边界处。
- 基于状态监测的包过滤技术(动态包过滤技术):维护所有通过防火墙的网络连接记录,并依此确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。
- 代理技术:代理技术是一种重要的计算机安全防护功能,允许客户端通过它与另一个网络服务进行非直接的连接。
-
VPN是利用大规模网络上的公共网络链路代替企业内部专线构建的安全专用网络,是大型跨地域企业构建内部网的常用方案。
-
IPsec协议是互联层安全协议,是为保障IP通信而提供的一系列协议族,针对数据在通过公共网络时的数据完整性、安全性和合法性等问题设计了一整套隧道、加密、认证方案。
-
SSL是套接层协议,工作在传输层之上,保障在互联网上基于Web通信的安全而提供的协议
6.3网络检测技术与系统
- 评估入侵检测技术和系统的两个重要参数是检测率和误报率
- 入侵检测可分为基于主机的HIDS和基于网络的NIDS。HIDS一般用来监视主机信息,NIDS以其监听到的网络数据包作为分析数据源
-入侵检测系统的部署分类如下图
- 入侵防御系统IPS是在入侵检测系统基础上发展出来的。与入侵检测普遍采用旁路监听方式只对入侵行为进行检测与报警不同,入侵防御采用直接在网络边界位置内联连接的方式,并在检测到入侵行为后,直接对所关联的攻击网络连接进行阻断处理。
- netfilter/iptables组合是目前Linux开源操作系统中普遍使用的防火墙技术解决方案,其中netfilter是Linux内核中实现的防火墙功能模块,iptables是应用态的防火墙管理工具。netfliter/iptables包含3个最基本的规则表,分别为用于包过滤处理的filter表、用于网络地址转换处理的nat表,以及用于特殊目的数据包修改的mangle表。在每张规则表中包含一些已缺省定义的规则链,以及可由用户自定义的规则链
实践过程
实践一
配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
1.过滤ICMP数据包,使得主机不接收Ping包
2.只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.168.200.4)无法访问。
机子 | IP地址 |
---|---|
KALI | 192.168.200.3 |
SEED UBUNTU | 192.168.200.5 |
LINUX META | 192.168.200.125 |
上面这个表格是这次用到的虚拟机。KALI和SEED当做攻击机,LINUX META当做靶机。网络环境跟上次实验一样,统统是NAT。以下实验已经确保各机器可以互相ping通。
第一个小实验是过滤ICMP数据包,使得主机不接收Ping包。
实验原理:给靶机的iptables添加丢弃所有ICMP包的包过滤规则,使得攻击机无法正常`ping`通靶机。
下面说下详细步骤
1:在KALI上输入如下命令
iptables -A INPUT -p ICMP -j DROP //-A代表增加规则,-p代表指定协议,-j代表对该规则执行的操作
2:执行完上面的命令后,试着让SEEDping
kali,发现已经ping
不通了
第二个小实验是让一个攻击机可以访问靶机的某个服务,另一个却访问不了。这里我选择了telnet服务。
实验原理:给靶机设置包过滤规则,让KALI有权访问靶机的telnet,SEED无法访问。下面说下具体步骤。
1:首先确保kali和seed可以正常telnet靶机。
2:在linux meta上设置不接收任何包的规则。命令如下。此时两个攻击机去telnet靶机发现一直处于trying状态。
iptables -P INPUT DROP //-P代表设置缺省目标操作
3:在linux meta上设置只接受kali的telnet请求策略。如下图
iptables -A INPUT -s 192.168.200.3 -p tcp -j ACCEPT //-s指代源地址
可以看到kali可以正常telnet靶机了
4:最后,清楚之前设置的规则
iptables -F //F代表flush,清楚规则
iptables -P INPUT ACCEPT
实践二
任务:使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明
在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
- 从离线的pcap文件读取网络日志数据源
- 在snort.conf中配置明文输出报警日志文件
- 指定报警日志log目录(或缺省log目录=/var/log/snort).
1.在kali上用snort对listen.pcap文件进行入侵检测。输入如下命令
snort -r listen.pcap -c /etc/snort/snort.conf -K ascii //-r代表读取,-c代表指定规则文件 -K代表指定输出log的编码格式为ascii,默认是binary
2.可以看到检测到的数据包信息,有TCP,ARP,主要是TCP
3.vim /var/log/snort/alert
可以查看到报警日志文件。文件里显示了攻击是nmap发起的
实践三
分析虚拟网络攻防环境中密网网关的防火墙和IDS/IPS配置规则,并撰写分析报告,说明密网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
具体分析配置规则与启动项文件包括:
- 防火墙(netfilter+IPTables):/etc/init.d/rc.firewall;
- 入侵检测系统(Snort):/etc/init.d/hflow-snort与/etc/snort/snort.conf;
- 入侵防御系统(Snort_inline):/etc/init.d/hflow-snort_inline与/etc/snort_inline/snort_inline.conf;
上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?
数据捕获:防火墙的记录日志,Snort的网络流
数据控制:
查看rc.firewall文件,跳转到create_chain这一行,可以看到有个方法,这里面定义了一些数据控制的逻辑。创建黑名单,白名单,以及对各种协议的处理
等。
获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数
输入iptables -t filter -L
可以看到实际规则列表,如下图。可以看到有许多规则。
通过 vim /etc/init.d/snortd
打开Snort脚本文件,可以看到监听网卡和存储配置文件的位置。
通过vim /etc/init.d/hw-snort_inline
打开snort_inline的脚本文件,可以看到到实际执行的参数。
蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
使用chkconfig -list
命令来对linux上运行的服务进行查询,可以发现NIDS的0~6都是off,说明是需要手动启动的,而防火墙和NIPS不全是off,是跟随系统启动的。
Bonus:蜜网网关中的Snort规则是如何自动升级的?
snort规则通过Oinkmaster进行升级。它在/etc
目录下,可以直接查看。
在这发现对snort.conf有定义,应该就是通过这个升级的
学习感想和体会
这次学习总体感觉对英语水平有很大的考验。外国人写的代码,哭着也要读完啊。如果代码是中文的多好,降低国人学习成本。不过外国人写代码的习惯还挺好的,都有注释,不至于摸不着头脑。这次对防火墙,入侵检测,入侵防御的基本概念,以及iptables和snort的使用有了深入的学习。
学习中遇到的问题及解决
问题:vim工具用的不太熟练,很多命令都不会
这次实验需要快速定位到某一行,就掌握了一个/内容
的的指令