20199117 2019-2020-2 《网络攻防实践》第六周作业
1.实践内容
1.1 安全模型
-
PDR安全模型:一个基于时间的动态安全模型,以经典的网络安全不等式 $$ P_t>D_t+R_t $$ 为本质基础,并提出安全性可量化和可计算的观点。
-
$$P^2DR$$ 安全模型:网络安全=根据风险分析制定安全策略(Policy)+执行安全防护策略(Protection)+实时监测(Detection)+实时响应(Response)。安全策略·是模型的中心,所有的防护、检测、响应都是依据安全策略实施的,安全策略为安全管理提供管理方向和支持手段。
-
防护机制:采用一切手段保护信息系统的机密性、完整性、可用性、真实性和不可抵赖性。
-
检测机制:动态响应和加强防护的依据,是强制落实安全策略的工具
1.2 网络安全防范技术与系统
- 网络安全防范技术对应$$P^2DR$$中的“防护”环节,设立在被保护主机与外部网络中间,是被保护主机的屏障,为主机的安全提供最基础的保护。
1.2.1 防火墙技术概述
-
防火墙:指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。从技术范畴上,属于一种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。
-
防火墙的功能:控制在计算机网络中不同信任程度网络域之间传送的数据流。
(1)检查控制进出网络的网络流量
(2)防止脆弱或不安全的协议或服务
(3)防止内部网络信息的外泄
(4)对网络存取和访问进行监控审计
(5)防火墙可以强化网络安全策略并集成其他安全防御机制
-
防火墙的不足:原因是因为防火墙作为网络边界访问控制机制的先天不足(前三项)和目前防火墙技术方面存在瓶颈(后三项)。
(1)来自网络内部的安全威胁
(2)通过非法外联的网络攻击
(3)计算机病毒传播
(4)针对开放服务安全漏洞的渗透攻击
(5)针对网络客户端程序的渗透攻击
(6)基于隐蔽通道进行通信的特洛伊木马或僵尸网络
1.2.2 防火墙技术和产品
-
包过滤技术:最早提出和应用的防火墙技术,在路由器功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络的边界处。
-
基于状态检测的包过滤技术(动态包过滤):维护所有通过防火墙的网络连接记录,并依此确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包,还会试图跟踪数据包在网络连接上的上下文关系,并以网络连接状态作为一个附加的匹配标准,以确定是否允许和拒绝通信,即在网络连接层次上匹配和实施防火墙规则。
-
代理技术(网络代理)允许客户端通过它与另一个网络服务进行非直接的连接。
- 过程:客户端首先与代理服务器创建联系,接着发出一个对另外的目标服务器的文件或其他资源的连接请求,代理服务器通过与目标服务器连接或从缓存中取得请求的资源,并返回给客户端。
- 应用层代理技术:在网络协议栈的应用层,针对某一种具体的应用层网络服务提供细致而安全的网络保护,能够理解应用层协议的数据内容,并进行深入全面的安全检查,从而为网络访问提供更好的安全保障。
- 电路级代理技术:电路级代理工作在传输层,使用电路级代理可以同时为多种不同的应用服务提供支持,而不需要为不同的服务配置不同的代理程序
- NAT代理技术:NAT技术工作在网络层,由内部网络发往外部网络的IP数据包,使用了私有IP地址段作为其源地址,在到达NAT代理后,将会把源IP地址和源端口部分替换成代理服务器的IP地址和另一指定的源端口,同时NAT代理 将维护地址转换映射列表,将转换之前的私有网段源地址和原先端口号及转换之后的源端口号之间的映射关系记录在这个列表中,以供NAT代理在接受到该网络连接的响应包时,将其目的地址和目标端口转换为私有网段地址和源端口号,并发送给私有网段中的客户端主机。
-
防火墙产品
(1)集成包过滤功能的路由器
(2)基于通用操作系统的防火墙软件产品
(3)基于安全操作系统的防火墙
(4)硬件防火墙设备 -
防火墙部署方法
(1)包过滤路由器
(2)双宿主堡垒主机
(3)屏蔽主机
(4)屏蔽子网
1.2.3 Linux开源防火墙:netfilter/iptables
- 工作原理:netfilter组件位于Linux的内核空间中,实现了静态包过滤和状态报文检查(动态包过滤)基本防火墙功能,支持一个灵活可扩展的框架,支持NAT网络地址转换等其他额外功能,并提供多层API接口以支持第三方扩展。Iptables是工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为netfilter配置各种防火墙过滤和管理规则。
-
Iptables配置netfilter规则的命令接口,命令语法为
iptables [-t table] command [match] [target] -t:配置规则所在的表 * -A/--append:该命令将一条规则附加到链的末尾 * -D/--delete:通过-D指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则 * -P/--policy:设置链的缺省目标操作,即策略。所有与链中任何规则都不匹配的信息包都将被强制使用此链的策略 * -N/--new-chain:用命令中所指定的名称创建一个新链 * -F/--flush:如果指定链名,该命令删除链中所有的规则,如果未指定链名,该命令删除所有链中所有的规则。此参数用于快速清除 * -L/--list:列出指定链中所有的规则
1.2.4 其他网络防御技术
-
VPN(虚拟专用网)
-
内网安全管理
-
内容安全管理SCM
-
统一威胁管理
1.3 网络监测技术与系统
1.3.1 入侵检测技术概述
-
入侵检测评估指标:评估入侵检测技术和系统的两个重要参数是检测率和误报率。
- 检测率:入侵检测系统捕获到的攻击行为数目和全部攻击数目之比
- 误报率:入侵检测系统对正常行为的误报数目与入侵检测系统所输出的全部报警数目之比
-
入侵检测技术
- 误用检测(特征检测)通过收集已知入侵行为的特征并进行描述,构成攻击特征库,然后对收集信息进行特征模式匹配,所有符合特征描述的行为均被视为入侵。
- 异常检测:建立起系统的正常模式轮廓,若实时获得的系统或用户的轮廓值与正常值的差异超出指定的阈值,就进行入侵报警。
-
入侵检测系统的分类与部署
- 从入侵检测系统的检测数据来源,分为基于主机的入侵检测系统和基于网络的入侵检测系统
- 从入侵检测系统所采用的信息分析技术分类,分为误用检测方法和异常检测方法
- 从入侵检测系统所采用的体系结构分类,可分为集中式、层级式和协作式
-
入侵防御系统IPS(内嵌式IDS)采用直接在网络边界位置内联的方式,并在检测到入侵行为后,直接对所关联的攻击网络连接进行阻断处理。
1.3.2 开源网络入侵检测系统:Snort
-
Snort的基本架构:数据包嗅探/解码器、预处理/插件、检测出引擎/插件、输出模块/插件
-
Snort四种主要部件及处理过程:
-
数据包嗅探/解码器 :利用libpcap从网卡或离线记录中捕获数据包,然后数据包经过解码器填入到链路层协议的包结构体中,以便对高层次的协议进行解码。
-
预处理/插件:接着数据包被送到各种各样的预处理插件中,在检测引擎之前对数据包进行检查和操作。
-
检测出引擎/插件:随后,包被送至检测引擎,检测引擎首先通过各种规则文件中定义的匹配字符串特征来对每个包的信息进行快速的模式匹配检测,然后由各种检测插件对包提供额外的检测功能。
-
输出模块/插件:对之前各个部件产生的报警/日志信息,根据用户配置,调用相应的输出插件进行发送和记录。
-
2.实践过程
2.1 防火墙配置
-
实践任务:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址,访问主机的某一网络服务,而其他的IP地址无法访问
VM IP Kali Linux 192.168.200.4 MetaSploitable 192.168.200.6 SEEDUbuntu 192.168.200.5 (1)
- 在kali中ping SEEDUbuntu,可以ping 通
- 在SEEDUbuntu中输入
iptables -L
,查看指定链中的所有规则
- 在SEEDUbuntu中输入
iptables -A INPUT -p icmp -j DROP
,-A:将一条不接受icmp数据包的规则附加到INPUT链的末尾;-p icmp:丢弃icmp数据包
- 在Kali中再次ping SEEDUbuntu,不能ping通
- 在SEEDUbuntu中输入
iptables -L
,再次查看链中的所有规则,发现多出icmp不能访问的规则
- 最后输入
iptables - F
删除设定的规则
(2)
- 在MetaSploitable和Kali中输入
telnet SEEDUbuntu的IP地址
,进行telnet登陆
- 在SEEDUbuntu中输入
iptables -P INPUT DROP
丢弃与INPUT链中任何规则都不匹配的数据包
- MetaSploitable和Kali此时都不能访问SEEDUbuntu
- 在SEEDUbuntu中输入
iptables -A INPUT -p tcp -s Kali的IP地址 -j ACCEPT
,确定来自Kali的数据包是可以接受的 - 输入
iptables -L
,查看链中的规则
- 在MetaSploitable和Kali中再次输入
telnet SEEDUbuntu的IP地址
,Kali可以进行telnet登陆,而MetaSploitable不可以
- 最后输入
iptables - F
和iptables - P INPUT ACCEPT
删除设定的规则
2.2 Snort实践
-
实践任务:使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明。
在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
- 在Kali中输入
snort -r /home/kali/listen.pcap -c /etc/snort/snort.conf -K ascii
,-r:读取listen.pcap数据包,-K ascii:输出日志文件为ascii编码。如下图,检测出的数据包中大部分是tcp
- 在Kali中输入
- 在Kali中输入
cd /var/log/snort
进入报警日志目录,输入vim alert
查看报警日志,攻击为nmap扫描,源地址为172.31.4.178,目标地址为172.31.4.188、
2.3 实践作业
- 实践任务:分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,并撰写分析报告,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。、
*如何实现蜜网网关的数据捕获和数据控制机制- 在蜜网网关中输入
su -
进行提权,输入vim /etc/init.d/rc.firewall
,打开防火墙文件,创建了黑名单、白名单、防护名单三个链。黑名单中的主机,丢弃所有的包;白名单中的主机防火墙允许通其通过并且不记录;防护名单中的主机,,防火墙禁止其访问某些不希望被访问的主机
- 在蜜网网关中输入
- 获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数
- (1)在蜜网网关中输入
iptables -t filter -L
,查看链中的规则,OUTPUT、INPUT、FORWARD都是关闭状态
- (2)输入
vim /etc/init.d/snortd
,打开snort文件,表示默认使用snort.conf文件,默认监听网卡是eth0,默认存储日志文件的路径为var/log/snort
- (3)输入
vim /etc/init.d/hw-snort_inline
,打开snort_inline的文件
- 防火墙、NIDS、NIPS启动
- 输入
chkconfig --list | grep 服务
查询当前服务是否开启,图中NDIS的6个口均为off,需要手动开启,而防火墙和NIPS的6个口并不是全部关闭的,所以是跟随系统启动的
- Bonus:蜜网网关中的Snort规则如何自动升级
- 输入
vim /etc/honeywall.conf
,打开honeywall的配置文件,说明Snort文件不自动更新,而是通过自动更新软件Oinkmaster进行更新
3.学习中遇到的问题及解决
- 问题:蜜网网关进行翻页
- 解决:shift+page up/down
4.实践总结
加深防火墙的认识,提高了动手能力和耐心。为什么虚拟机还是这么卡!!!