20199122 2019-2020-2 《网络攻防实践》第六周作业
1.实践内容
1.1 安全模型
-
动态可适安全模型基于闭环控制理论,典型模型是PDR模型和P2DR模型
-
PDR模型是基于时间的动态安全模型,如果信息系统的防御机制能够抵御入侵的时间Pt,能够超过检测机制发现的入侵时间Dt和响应机制有效应对入侵时间Rt之和,即Pt>Dt+Rt,则这个系统是安全的
-
P2DR模型:网络安全=安全策略(Policy)+防护策略(Protection)+实时检测(Detection)+实时响应(Response),其中安全策略是核心。
- 防护机制通常采用:防火墙、加密、身份认证和访问控制等。
- 检测技术:入侵检测和漏洞评估等。
- 响应措施:应急处理、备份恢复、灾难恢复等。
1.2 网络安全防范技术与系统
-
防火墙在网络协议栈的各个层次上实施网络访问控制机制,对网络流量和访问进行检查和控制。防火墙的基本功能是控制在计算机网络中不同信任程度网络域之间传送的数据流。并提供以下安全功能:
- 检查控制进出网络的网络流量
- 防止脆弱或不安全的协议和服务
- 防止内部网络信息的外泄
- 对网络存取和访问进行监控审计
- 强化网络安全策略并集成其他安全防御机制
-
防护墙作为网络边界访问控制机制存在先天不足;目前防火墙技术方面存在瓶颈。
-
防火墙技术主要有包过滤技术、基于状态检测的包过滤技术、代理技术。
-
包过滤技术在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络的边界处。
通常检查的信息:数据包的源地址、目的地址、网络协议号、端口号、ICMP报文类型和号码等
-
基于状态检测的包过滤技术:维护所有通过防火墙的网络连接记录,并以此确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。
-
代理技术:允许客户端通过它与另一个网络服务进行非直接的连接。过程:
- 客户端与代理服务器创建连接
- 客户端发出一个对另外的目标服务器的文件或其他资源的连接请求
- 代理服务器通过与目标服务器连接或从缓存中取得请求的资源,返回给客户端
-
根据工作的网络协议栈层次不同,代理技术分为
-
应用层代理技术:工作在应用层,针对某一种具体的应用层网络服务提供细致而安全的网络保护,能够理解应用层协议的数据内容,进行深入全面的安全检查。常用:HTTP代理,邮件代理
-
电路级代理技术:工作在传输层,可以同时为多种不同的应用服务提供支持
-
NAT技术:工作在网络层,原理如下图,隐藏内部网络IP地址和端口
-
-
防火墙产品分为以下几类:
- 集成包过滤功能的路由器
- 基于通用操作系统的防火墙软件产品:如windows防火墙、Linux中的Squid
- 基于安全操作系统的防火墙
- 硬件防火墙设备:RISC防火墙、ASIC防火墙
-
防火墙部署方法:包过滤路由器、双宿主堡垒主机、屏蔽主机、屏蔽子网
-
linux的开源防火墙:netfilter/iptables
-
netfilter/iptables包含三个最基本的规则表:用于包过滤处理的filter表、用于网络地址转换处理的nat表、用于特殊目的数据包修改的mangle表。
-
为用户提供了配置netfilter规则的命令行接口,语法如下,-t 指定配置规则所在的表, command 是高手iptables命令要做什么
iptables [-t table] command [match] [target]
-A/--append:将一条规则附加到链的末尾 -D/--delete:通过用-D指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则 -P/--policy:设置链的缺省目标操作。即策略。 -N/--new-chain:用命令中所指定的名称创建一个新链 -F/--flush:如果指定链名,该命令删除链中所有的规则;如果未指定链名,该命令删除所有链中所有的规则。 -L/--list:列出指定链中所有的规则
-
Match部分为匹配条件,分为:
- 通用匹配:
-i/-o进入网络接口/发出网络接口;-s/-d源和目的地址;-p协议类型
- 指定协议匹配:某种上层协议特定字段的匹配条件.
--sport/-dport为TCP/UDP端口匹配设置条件
- 通用匹配:
-
Target部分:对与那些规则匹配的数据包执行的处理操作
- ACCEPT:接受
- DROP:丢弃数据包,不给回应
- REJECT:拒绝数据包通过、将错误信息发回给数据包的发送方
- RETURN:停止遍历包含该规则的链
-
netfilter实现的最基本的防火墙功能:包过滤和报文状态检查机制,主要在INPUT、OUTPUT、FORWARD检查点对网络流量进行检查与过滤。
-
netfilter/iptables的NAT机制:IP伪装、透明代理、端口转发。NAT主要包括SNAT和DNAT,SNAT改变网络连接数据包的源地址,SNAT需要在路由转发之后做,即在数据包到达网线之前处理;DNAT是指改变网络连接数据包的目的地址,需要在路由转发前做。
-
ip伪装
iptable -t nat -A POSTROUTING -i eth1 -o eth0 -j MASQUERADE
-
SNAT机制,用目标操作选项“-j SNAT”描述,“--to-source”要转换的ip地址
iptable -t nat -A POSTROUTING -i eth1 -o eth0 -j SNAT --to 1.2.3.4
-
DNAT机制,用“-j DNAT”来描述,“--to-destination”描述IP地址、IP地址的范围或端口
iptable -t nat -A POSTROUTING -i eth1 -o eth0 -j DNAT --to 1.2.3.4
-
-
-
其他网络防御技术:VPN、内网安全管理、内容安全管理SCM、统一威胁管理UTM
1.3 网络检测技术与系统
- 入侵检测:通过对计算机网络或计算机系统中若干个关键信息点的收集和分析,从中发现入侵行为
- 入侵检测技术评估指标:检测率和误报率。检测率是指入侵检测系统捕获到的攻击行为数目和全部攻击数目之比;误报率是指入侵检测系统对正常行为的误报数目与入侵检测系统所输出的全部报警数目之比。
- 信息收集是入侵检测技术的基础,核心是信息分析,包括误用检测和异常检测
- 入侵检测系统的分类
- 根据入侵系统的检测数据来源:基于主机的入侵检测系统(HIDS)和基于网络的入侵检测系统(NIDS)
- 根据入侵系统采用的信息分析技术:误用检测方法和异常检测方法
- 根据入侵系统采用的体系结构分类:集中式、层级式和协作式
- 入侵防御系统IPS,是在入侵检测系统基础上发展出来的,采用直接在网络边界位置内联连接的方式,并在检测到入侵行为后,对所关联的攻击网络连接进行阻断处理。
- 开源网络入侵检测系统:Snort
- Snort强大的功能:数据包嗅探、数据包记录和分析、各种入侵检测功能
- Snort的实现机制:
- 数据包嗅探器/解码器。利用libpcap从网卡或离线记录中捕获数据包,数据包经过解码器填入到链路层协议的包结构中,对高层次的协议进行解码
- 预处理/插件。检查数据包是否应该注意、报警或者修改某些东西。
- 检测引擎/插件。首先通过各种规则文件中定义的匹配字符串特征对每个包的信息进行快速的模式匹配检测,然后由各种检测插件对包提供额外的检测功能。主要包含规则库解析、多模式匹配以及规则插件检查。
- 输出模块/插件。对之前各个部件产生的报警/日志信息,根据用户配置,调用相应的输出插件进行发送和记录。
- Snort_inline:在snort的基础上,对匹配特征规则的数据包可以直接丢弃和阻断,以内联的模式进行配置和使用
1.4 网络安全事件响应技术
- 计算机取证:在安全事件的调查中对计算机系统进行详细检查,并对计算机犯罪的电子证据进行保护、确认、提取和归档的过程
- 攻击追溯与归因:找出真正实施网络攻击的来源,并确定出攻击者真实身份
- 备份恢复:在遭受网络安全事件之后快速恢复业务运转
2.实践过程
2.1防火墙的配置
操作任务:配置windows平台上的iptables,完成如下功能并进行测试
-
过滤ICMP数据包,使主机不接受ping包。
-
只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。
解答:
kail主机ip地址:192.168.0.113
windows xp系统的主机ip地址:192.168.0.114
seed Ubuntu主机的IP地址:192.168.0.115
- 用kali主机ping seed Ubuntu系统,可以ping通
- 在seed上查看规则,INPUT、FORWARD、OUTPUT链都为默认接受
- 通过指令
iptables -A INPUT -p icmp -j DROP
使主机不接受icmp的数据包,再用kali ping seed ,发现无法ping通,然后seed中查看规则,发现多了一条对icmp包drop的规则。最后用iptables -F删除自定义规则。
-
假设只允许kali访问seed的ftp服务
-
先验证kali和xp系统皆可访问seed的ftp服务
- seed运行指令
iptables -P INPUT DROP
拒绝一切的数据包流入,再用iptables -A INPUT -p tcp -s 192.168.0.113 -j ACCEPT
接受192.168.0.113对本机的tcp服务,发现kali可以访问seed的ftp服务,而xp不可以。
- 最后记得删除自定义规则
2.2 实践:Snort
任务:用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明,获得报警日志
- 指令
snort -r listen.pcap -c /etc/snort/snort.conf -K ascii
对pcap文件进行入侵检测,-r
:从pcap格式的文件中读取数据包,-c <cf>
使用配置文件,这会使得snort进入IDS模式,并从 中读取运行的配置信息, -K ascii
:指定输出log文件的编码为ASCII . 在snort.conf中配置明文输出报警日志文件,可以查看检测出的数据包大部分是TCP数据包
- 缺省log目录=/var/log/snort,进入该目录 用vim打开alert文件,即可查看到日志文件,是什么攻击,目的地址、源地址,目的端口和源端口等信息
2.3 分析蜜网网关的防火墙和IDS/IPS配置规则
-
说明蜜网网关是如何利用防火墙和入侵技术完成其攻击数据捕获和控制需求的
1)提供的脚本是如何实现蜜网网关的数据捕获和数据控制机制?
2)获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数
3)蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
4)Bonus:蜜网网关中的Snort规则是如何自动升级的?
-
查看防火墙的文件
/etc/init.d/rc.firewall
, 打开后不是很看得懂啊。所以,我查了一下蜜网网关的介绍,蜜网的数据控制是在防火墙的基础上增加了黑名单BlackList、白名单WhiteList、防护名单Fencelist。
- 黑名单:丢弃所有的数据包,并不做任何日志记录。
- 白名单:接受连接不做日志记录
- 防护名单:不允许访问
-
数据捕获主要包括:数据包通过时间、包协议类型、进出的网络接口、源地址、目的地址、源端口、目的端口等
-
查看iptables的实际参数,
iptables -L |less
,方便滚动查看
- 查看snortd 的实际执行参数,是一些参数的选项,假如不指定网卡,则默认eth0。然后是需要的实际执行参数
- 查看hw-snort_inline,可以看到实际运行的参数解释
- 通过
chkconfig --list | grep [服务]
可以查看当前服务是否开启,防火墙和NIPS是自动开启的,NIDS是手动开启的(1-6全为off)
vim honeywall.conf
查看配置文件。可以看到安装时配置的蜜罐ip,查找到是不自动更新
3.学习中遇到的问题及解决
- 问题1:蜜罐不会翻页,网上查到Shift+pageup/pageDown来查看,可是似乎不行
- 问题1解决方案:命令后加上管道命令:less或者more,就可以滚动看了
- 问题2:规则看不懂
- 问题2解决方案:尽力在看了
4.实践总结
- 多思考、多动手实践,有什么疑问要马上查找资料或问同学解决,免得过会就忘记了,然后还是不会
参考资料
来源:https://www.cnblogs.com/ling8/p/12642989.html