Fork me on GitHub

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

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

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589
我在这个课程的目标是 学习并了解网络攻防的相关知识,期末有个好成绩
这个作业在哪个具体方面帮助我实现目标 了解网络安全防范技术的理论与实践
作业正文 见下

1.实践内容

安全模型

  • 传统的安全评估和防范方法:通过对网络进行风险分析,制定相应的安全策略,然后采取一种或多种安全技术作为防护措施,主要针对固定、静态的威胁和环境弱点,但忽略了网络安全的重要特征,对网络安全所面临的威胁和系统脆弱性没有充分的估计。安全是一个相对的、动态的、不断完善的过程,需要适应变化的环境并能做出相应的调整以确保安全防护。基于这种考虑,信息安全领域进一步提出了一系列动态可适应网络安全的模型。

  • 动态可适应网络安全模型:基于闭环控制理论,典型模型是PDR模型以及在其基础上提出的P2DR模型

  • PDR安全模型:基于时间的动态安全模型,以经典的网络安全不等式 Pt>Dt+Rt 为本质基础,并提出安全性可量化和可计算的观点。

  • P2DR 安全模型:基于 PDR 安全模型,安全策略是模型核心,所有的防护、检测、响应都是依据安全策略实施的。

  • 防护机制:采用一切手段保护信息系统的机密性、完整性、可用性、真实性和不可抵赖性。主要有防火墙、加密、身份认证和访问控制等方法。

  • 检测机制:是动态响应和加强防护的依据,是强制落实安全策略的工具。通过不断地检测和监控网络和系统,发现新的威胁和弱点,并通过循环反馈来及时做出有效的响应。主要检测技术包括入侵检测和漏洞评估等。

  • 响应机制:在检测到安全漏洞和入侵事件之后必须及时做出正确的响应,从而把系统调整到安全状态,对于危及安全的事件、行为、过程,及时做出处理,杜绝危害进一步扩大,使系统能够提供正常的服务。响应措施主要包括应急处理、备份恢复、灾难恢复等。

网络安全防范技术与系统

防火墙技术

  • 定义:防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。对通过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。

  • 防火墙的技术关键特性:只能对流经他的网络数据进行检查和控制,必须将防火墙部署在不同网络安全域之间的唯一通道上;不具备主动检测区分网络攻击数据与合法数据的能力,需求合理地设计安全策略规则;无法保护来自网络内部的攻击。

  • 防火墙的功能:防火墙可以在网络协议栈的各个层次上实施网络访问控制机制,对网络流量和访问进行检查和控制。最基本的功能是控制在计算机网络中不同信任程度网络域之间传送的数据流。具体可以提供一下功能:

    • 检查控制进出网络的网络流量:是防火墙最基本的功能,通过检查网络流量的包头和协议状态信息,防火墙能够依据网络管理员设置的安全策略,来做出放行或者拒绝网络流量和网络访问的行为。

    • 防止脆弱或不安全的协议和服务:防火墙可以通过过滤脆弱或不安全的服务而降低内部网络的安全风险。

    • 防止内部网络信息的外泄:通过利用防火墙对内部网络的划分,可实现内部网重点网段的隔离,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响。

    • 对网络存取和访问进行监控审计:如果所有的网络访问都经过防火墙,那么防火墙就能记录下这些访问并做出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否收到监测和攻击的详细信息。

    • 防火墙可以强化网络安全策略并集成其他安全防御机制:通过以防火墙为中心的网络边界安全方案配置,能将许多安全机制(如口令、加密、身份认证、审计等)都配置在防火墙上。

  • 不足:

    • 作为网络边界防护机制而先天无法防范的安全威胁:来自网络内部的安全威胁、通过非法外联的网络攻击和计算机病毒传播。

    • 由于技术瓶颈问题目前还无法有效防范的安全威胁:针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击和隐蔽通道进行通信的特洛伊木马或僵尸网络。

  • 防火墙技术:

    • 包过滤技术:在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否转发该数据包,将一些不符合安全策略的数据包阻挡在网络边界处。

    • 基于状态检测的包过滤技术:也称动态包过滤,维护所有通过防火墙的网络连接记录,并依此确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。尽管该技术仍然使用一组静态规则进行安全策略匹配,但除了检查每个独立的数据包之外,还会试图跟踪数据包在网络连接上的上下文关系,并以网络连接状态作为一个附加的匹配标准,以确定是否允许和拒绝通信。但是复杂度较高,容易受到拒绝服务攻击。

    • 代理技术:允许客户端通过它与另一个网络服务进行非直接的连接,也称“网络代理”。提供代理服务的计算机或其它类型的网络节点称为代理服务器。根据工作的网络协议栈层次的不同,代理技术包括应用层代理、电路级代理和NAT代理等

  • 防火墙产品:集成包过滤功能的路由器、基于通用操作系统的防火墙软件产品、基于安全操作系统的防火墙、硬件防火墙设备。

  • 防火墙部署方法

    • 包过滤路由器:将带有包过滤防火墙功能的路由器安装在内部网络和外部网络的唯一连接点上。缺点:配置不当,易受到攻击

    • 双宿主堡垒主机:与包过滤路由器的部署方法类似,使用应用代理网关作为双宿主堡垒主机代替包过滤路由器。缺点:仅支持一些网络协议,自身维护复杂

    • 屏蔽主机:相当于包过滤路由器和堡垒主机的集成部署,这种部署模式采用屏蔽路由和堡垒主机双重安全设施,所有进出内部网络的数据都要经过包过滤防火墙和堡垒主机,由包过滤防火墙进行网络层的访问控制,由堡垒主机进行应用安全控制,保证了网络层和应用层的双重安全。

    • 屏蔽子网:在屏蔽主机模式的基础上,在应用代理及对外服务器所构成网段和内部主机之间安装了第二个包过滤防火墙。

Linux开源防火墙:netfilter/iptables

  • 概念:netfilter/iptables 组合是目前Linux开源操作系统中普遍使用的防火墙技术解决方案,其中 netfilter 是Linux内核中实现的防火墙功能模块, iptables 是应用态的防火墙管理工具。

  • 原理:在netfilter/iptables防火墙系统中,netfilter 组件位于Linux的内核空间中,实现了静态包过滤和状态报文检查(即动态包过滤)基本防火墙功能。Iptables 则是工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为netfilter配置各种防火墙过滤和管理规则。netfilter/iptables包含三个最基本的规则表:用于包过滤处理的filter表、用于网络地址转换处理的nat表、用于特殊目的数据包修改的mangle表。filter包含INPUT、OUTPUT、FORWARD三条规则链。分别是发往本地、本地发出、经过本主机的转发的数据包进行过滤处理。nat表有PREROUTING、POSTROUTING、OUTPUT三条规则链。分别是:PREROUTING对未经路由选择的数据包转换其目标IP地址和目标端口、POSTROUTING对已经经过路由器的数据包进行转换源IP地址和目标端口,OUTPUT对本地数据包的目标IP地址和端口转换。mangle 表针对数据包头部信息进行特殊地修改,如设置TOS值,标记数据包,用于策略路由、网络流量整形等一些目的。

  • 命令语法:iptables的命令的语法为 iptables [-t table] command [match] [target] 。 -t 指定配置规则所在的表,缺省表包括filter、nat、mangle、raw等。 command 就是告诉iptables命令要做什么,比如 -A 就是在链表之后插入规则, -D 就是指定匹配的规则从链中删除该规则。 match 部分为规则匹配条件,满足规则的数据包才会被采取措施。 target 是满足规则之后要目标操作,比如接受数据包ACCEPT,阻塞数据包DROP等。

  • netfilter/iptables的NAT机制:包括IP伪装、透明代理、端口转发和其他形式的网络地址转换技术。NAT主要包括SNAT和DNAT。

    • IP伪装:在内部网络使用私有IP,如通过防火墙可以绑定一个外网IP,对数据包进行源IP伪装,可以使用外网IP地址。

    • SNAT机制:IP伪装就是一种SNAT机制,SNAT记住可以按照用户规则配置,改变源IP。值得注意,SNAT机制需要在POSTOUTING链中完成。

    • DNAT机制:DNAT在PREROUTING链中完成,改变目的地址。

网络检测技术与系统

入侵检测技术

入侵检测作为网络防护体系中检测环节的关机支撑技术,已经成为防火墙等网络防御技术的必要补充,能够帮助信息系统应对网络攻击和入侵,扩展了系统管理员的安全感知能力,提高了网络安全防护体系架构的完整性。

  • 入侵检测技术评估指标

    • 检测率(True Positive):指入侵检测系统捕获到的攻击行为数目和全部攻击数目之比

    • 误报率(False Positive):指入侵检测系统对正常行为的误报数目与入侵检测系统所输出的全部报警数目之比。

  • 入侵检测技术

    • 误用检测:也称特征检测,基于所有入侵行为都有可能被检测到的特征,通过收集已知入侵行为的特征并进行描述,构成攻击特征库,然后对收集信息进行特征模式匹配,所有符合特征描述的行为均被视为入侵。有较高的漏报率。

    • 异常检测:假设入侵者的行为和正常用户的行为具有差异,利用这些差异可以检测出入侵行为。有较高的误报率,通常与误用检测技术结合使用,以提高入侵检测系统的整体检测性能。

  • 入侵检测系统:从入侵检测系统的检测数据来源,可以将入侵检测系统分为:

    • 基于主机的入侵检测系统(Host-based IDS,HIDS):一般用来监视主机信息。

    • 基于网络的入侵检测系统(Network-based IDS,NIDS):监听网络数据包,分析数据源。

  • 入侵防御系统IPS:对检测到的异常行为或者与特征库匹配的行为直接进行阻断,断开访问。

开源网络入侵检测系统:Snort

  • 概述: Snort IDS(入侵检测系统)是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录IP网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。

  • Snort的四大构架:Snort的结构由4大软件模块组成

    • 数据包嗅探/解码器:负责监听网络数据包;

    • 预处理器/插件:主要有TCP/IP协议栈模拟、应用层协议解码、异常检测,检查原始数据包,经过预处理后传到检测引擎;

    • 检测引擎/插件:该模块是Snort的核心模块。当数据包从预处理器送来后,检测引擎依据预先设置的规则检查数据包,一旦发现数据包中的内容和某条规则相匹配,就通知报警模块;

    -输出模块/插件:经检测引擎检查后的Snort数据需要以某种方式输出。

2.实践过程

实践一:防火墙配置

配置Linux平台上的iptables,完成如下功能并测试

  • 过滤ICMP数据包,使主机不接受ping包。

  • 只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。

首先我们以SEED Ubuntu作为服务器,利用Kali访问SEED Ubuntu,Kali作为信任主机,win xp作为不可信任主机。IP地址如下。

机器 IP地址
Kali Linux 192.168.200.2
win xp 192.168.200.3
SEED Ubuntu 192.168.200.5
  • 过滤ICMP数据包,使主机不接受ping包
  1. 首先在SEED Ubuntu上通过iptables -L查看规则,发现都是默认规则。

  2. 通过指令iptables -A INPUT -p icmp -j DROP指令使得主机不接受icmp的数据包。指令详解:-A是追加一条规则,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理(ACTION)。

  3. 此时通过Kali ping SEED Ubuntu,发现是ping不通的,并且可以查看规则,发现多了一条icmp针对任何位置不允许访问的规则。

  1. 使用iptables -F删除自定义规则。

  • 只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。
  1. 我们确定两台机器都可以进行telnet登陆。我们想设置成为只允许Kali访问SEED Ubuntu的telnet服务,但是XP不能访问服务。输入telnet 192.168.200.5账户为seed,密码为dees


  1. 使用iptables -P INPUT DROP指令拒绝一切的数据包流入。再使用指令iptables -A INPUT -p tcp -s 192.168.200.2 -j ACCEPT 开启192.168.200.2对本机的tcp服务。我们发现Kali是可以正常访问telnet服务的,但是winxp却是无法访问的。



  1. 执行iptables -Fiptables -P INPUT ACCEPT恢复之前的状态

实践二:Snort

  • 在攻击机上用snort对第四章的pcap文件进行入侵检测,获得报警日志。
  1. 输入指令snort -r /home/kali/listen.pcap -c /etc/snort/snort.conf -K ascii对listen.pacp进行入侵检测。我们可以查看输出里检测出的数据包.

  1. 输入cd /var/log/snort进入目录,vim alert查看日志文件alert,可以发现本次攻击是使用nmap发起的。攻击主机的IP地址是 172.31.4.178 ,网络扫描的目标IP地址是 172.31.4.188

实践三:分析蜜网网关的防火墙和IDS/IPS配置规则。

  • 分析蜜网网关的防火墙和IDS/IPS配置规则。上述脚本是如何实现蜜网网关的数据的数据捕获和数据控制机制?获取IPTables的实际规则列表、snort和snort_line的实际执行参数。蜜网网关开机之后,防火墙、NIDS、NIPD如何启动?

  • 在密网网关查看防火墙的文件 vim /etc/init.d/rc.firewall

  1. 数据控制和数据捕获:通常数据控制一般包括两个方面,一个是防火墙对数据的控制,还有一个是IPS对异常数据的限制(snort_inline)。netfilter才是真正的防火墙,它是内核的一部分,所以,如果我们想要防火墙能够达到"防火"的目的,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡,经过检查后,符合放行条件的才能放行,符合阻拦条件的则需要被阻止,于是,就出现了input关卡和output关卡,而这些关卡在iptables中不被称为"关卡' ,而被称为"链"。我们可以看下如下的创建了三个链,分别是黑名单、白名单、防护名单。防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。对于属于白名单的主机,接受且不记录。对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。同时我们还能看到创建了根据不同的数据包头进行的不同的链。通过设置policy DROP,根据注释可以看出,把所有的包都丢弃,之后再设置允许通过的相关条件。

  1. IPTables的实际规则列表:通过指令iptables -L来查看规则列表。使用shift+page up/down翻页,可以看到我们以前自己配置的规则。

  1. Snort实际执行参数:通过vim /etc/init.d/snortd打开Snort脚本文件,前面部分是一些参数的选项。后面对应的就是实际运行时候的参数了。


4.Snort_inline实际执行参数:输入vim /etc/init.d/hw-snort_inline 打开snort_inline的脚本文件,可以获取Snort_inline实际执行参数。

  1. 防火墙、NIDS、NIPS启动:通过指令chkconfig --list | grep [服务]来查询当前服务是不是开启的。例如输入chkconfig --list | grep iptables来查询当前服务是不是开启的,可以看到防火墙和NIPS(snort_inline)是跟随系统启动的,NIDS是需要手动启动的。

  1. Snort规则如何自动升级:输入vim /etc/honeywall.conf打开honeywall配置文件,我们可以找到snort规则更新的地方。默认是不自动更新的。可以推断这里使用工具Oinkmaster进行了snort的自动升级。

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

  • 问题1:实践三的分析不是很懂。

  • 问题1解决方案:Google和抱大佬大腿

  • 问题2:蜜罐翻页问题

  • 问题2解决方案:shift+page up/down

4.实践总结

  • 最后一个实验有点费力,我对于代码不是很了解,不知道怎么分析。

参考资料

posted @ 2020-04-08 12:11  20199104许星霖  阅读(243)  评论(0编辑  收藏  举报