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

网络安全防范技术

总体结构

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589
这个作业在哪个具体方面帮助我实现目标 学习防火墙和入侵检测技术
作业正文.. 见一和二

一、实践内容

1、安全模型

  • 静态安全模型:对网络进行风险分析,制定相应的安全策略,然后采取安全技术作为防护措施,主要针对固定、静态的威胁和环境弱点。
  • 动态可适应网络安全模型基于闭环控制理论,典型模型有PDR(Protection、Detection、Response)及P^2DR(Policy、Protection、Detection、Response)
    • PDR安全模型是基于时间的动态安全模型,如果信息系统的防御机制能抵御入侵时间Pt,能超过检测机制发现入侵的时间Dt和响应机制有效应对入侵时间Rt之和,那么这个系统就安全。
    • P2DR中网络安全=根据风险分析制定安全策略P+执行安全防护策略P+实时检测D+实时响应R。安全策略是核心。
  • 防护机制通常采用静态安全技术,主要有防火墙、加密、身份认证、访问控制等。
  • 检测机制中检测技术主要有入侵检测和漏洞评估

2、网络安全防范技术与系统

防火墙概述

  • 置于不同的网络安全域中,对网络流量或访问行为实施访问控制的安全组件或设备。
  • 防火墙的功能
    • 检查控制进出网络的网络流量(流经防火墙的)
    • 防止脆弱或不安全的协议和服务
    • 防止内部网络信息的外协
    • 对网络存取和访问进行监控审计
    • 防火墙可以强化网络安全策略并集成其他安全防御机制
  • 防火墙的不足
    • 因为防火墙作为网络边界访问控制机制的先天不足
      • 无法防范网络内部的安全威胁
      • 无法防范通过非法外联的网络攻击
      • 无法防范计算机病毒传播
    • 防火墙技术方面的瓶颈
      • 针对开放服务安全漏洞的渗透攻击
      • 针对网络客户端程序的渗透攻击
      • 基于隐蔽通道进行通信的特洛伊木马或僵尸网络

防火墙技术和产品

  • 包过滤技术
    • 概念:在路由功能上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否转发该数据包,将一些不符合安全策略的数据包阻挡在网络边界处。
    • 仅根据数据包自身包含的信息进行检查过滤
  • 基于状态检测的包过滤技术
    • 概念:维护所有通过防火墙的网络连接记录,依次确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。
    • 会试图跟踪数据包在网络连接上的上下文关系,并以网络连接状态作为一个附加匹配标准
  • 代理技术
    • 允许客户端通过它与另一个网络服务进行非直接的连接。
    • 过程:客户端首先与代理服务器创建连接,接着发出一个对另外的目标服务器的文件或其他资源的连接请求,代理服务器通过与目标服务器连接或从缓存中取得请求的资源,并返回给客户端。
    • 根据工作的网络协议栈层次的不同,分为应用层代理、电路级代理和NAT代理。
  • 防火墙产品
    • 集成包过滤功能的路由器
    • 基于通用操作系统的防火墙软件产品
    • 基于安全操作系统的防火墙
    • 硬件防火墙设备
  • 防火墙部署
    • 包过滤路由器:将其作为内部和外部网络之间的唯一连接点,路由器在完成路由转发功能的同事,过滤数据包。
    • 双宿主堡垒主机:应用代理网关作为双宿主堡垒主机。
    • 屏蔽主机:屏蔽路由和堡垒主机双重安全设施。
    • 屏蔽子网:屏蔽主机基础上装了第二个包过滤防火墙

netfilter/iptables

  • netfilter组件位于Linux的内核空间,实现了静态包过滤和状态报文检查的基本防火墙功能。iptables工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为netfilter配置各种防火墙过滤和管理规则。
  • netfilter/iptables中有三个基本规则表:处理包过滤的filter、网络地址转换nat、特殊目的包修改的mangle。
  • iptables的命令的语法为:“iptables -t [table] command [match] [target]”。其中-t指定配置规则所在的表,缺省表包括filter、nat、mangle、raw等。command就是告诉iptables要做什么,比如-A就是在链末尾插入规则。[match]就是规则匹配条件,满足规则才会被触发。[target]是满足条件之后的目标操作,比如ACCEPT、DROP、REJECT等等。

其他网络防御技术

  • VPN虚拟专用网
    • 利用大规模网络上的公共网络链路代替企业内部专线构建的安全专用网络
    • 主要包括IPsec VPN,SSL VPN MPLS VPN
  • 内网安全管理
    • 分为终端安全管理、终端运维管理、终端补丁分发管理和系统日志管理
  • 内容安全管理SCM
    • 主要关注网络中传输内容的安全,深入分析传输数据包的内容
  • 统一威胁管理UTM
    • 指由硬件、软件和网络技术组成的具有专门用途的设备。
    • 将多种安全特性集成在一个硬件设备里,构成一个标准的统一管理平台

3、网络检测技术与系统

入侵检测技术

  • 入侵检测评估指标
    • 检测率:捕获到的攻击行为与全部攻击行为的比例。
    • 误报率:错误报警数目与全部报警数目的比例。
  • 入侵检测技术类型
    • 误用检测:误报率较低,只收集与特征描述相关的数据集合
    • 异常检测:能检测出未知的入侵,但误报率较高
    • 二者常结合使用
  • 入侵检测系统
    • 基于主机的入侵检测系统HIDS:监视主机信息
    • 基于网络的入侵检测系统NIDS:监听网络数据包
  • 入侵防御系统IPS
    • 也叫内嵌式入侵检测,即对检测到的异常行为或者与特征库匹配的行为直接进行阻断处理。

Snort

  • 功能:数据包嗅探、数据包记录和分析、入侵检测
  • 四个基本部分:数据包嗅探器、预处理器、检测引擎、输出模块

二、实践过程

实践一:防火墙配置

任务:配置Linux平台上的iptables,完成如下功能并测试
(1)过滤ICMP数据包,使主机不接受ping包。
(2)只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。

(1)这里我用win靶机ping kali,kali作为主机。

  • 首先用win靶机看能否ping通

  • 之后我们在kali上通过下述指令使之不接受icmp的数据包。其中-A是追加一条规则,INPUT这个规则表示数据包入口,-p用于匹配协议,-j用于指定如何处理

  • 我们再从win靶机上ping发现不通,在kali中通过iptables -L查看规则发现多了一条对icmp在任何位置都不能访问的规则

  • 之后我们通过如下指令,-D即delete删除的意思。再从win上ping kali即可ping通

  • 也可用iptables -F删除自定义规则。

(2)在这里我只允许kali(192.168.200.3)访问seedubuntu(192.168.200.4)的telnet

  • 首先我们先确定两台机器都能telnet

  • 然后使用“iptables -P INPUT DROP”指令,这时所有数据包都无法流入。

  • 再使用指令“iptables -A INPUT -p tcp -s 192.168.200.3 -j ACCEPT”,开启kali对本机的tcp服务。并用iptables -L查看规则。

  • 我们再分别去kali和win靶机查看telnet情况,可以发现kali正常,而win无法访问

  • 最后我们通过iptables -F和iptables -P INPUT ACCEPT两条指令恢复之前的状态。

实践二:Snort

任务:使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明

  • 首先安装并配置snort,有点麻烦,教程见https://blog.csdn.net/qq_38990949/article/details/85568020

  • 利用指令“snort -r listen.pacp -c /etc/snort/etc/snort.conf -K ascii”对listen.pacp进行入侵检测,这里-K ascii是为了指定输出log文件的编码为ASCII,这样打开日志文件不会乱码。

  • 从图中我们可以看到数据包大多为TCP数据包

  • 在不指定报警日志目录的时候,缺省目录为/var/log/snort。cd到这个目录,vim日志文件alert。不知道为什么我的alert是空的什么都没有。之后再试试。

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

任务:说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求

  • 上述脚本是如何实现蜜网的数据捕获和数据控制?
  • 获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
  • 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
  • Snort规则是如何自动升级的?

1、首先理清防火墙和入侵检测技术的关系。iptables负责对数据accept、reject和drop,snort主要是预警作用,不能阻拦。所以就是用snort来监控,有违反规则的行为就发出预警信息,告诉iptables,从而iptables去阻断违反规则的连接。
2、数据控制和数据捕获
通常数据控制包括两个方面,一个是防火墙对数据的控制,还有一个是IPS对异常数据的限制。我们看一下其防火墙的文件vim /etc/init.d/rc.firewall。
大致看一下文件,比如创建了三个链,分别是黑名单、白名单、防护名单(FenceList)。

还定义了很多协议数据包的处理规则如下

关于数据捕获,无论是iptables还是snort,都能够通过记录日志的形式来捕获网络连接信息,包括源ip/端口,目的ip/端口,以及进行连接的协议等。

3、iptables的实际规则列表
通过指令“iptables -t filter -L”来查看规则列表,-t是指定规则表,-L表示列表。通过shift键+Fn键+上下键来翻页。可以看到一些规则如OUTPUT、INPUT、FORWARD都已经被关闭了。


4、snort实际执行参数
执行命令“vim /etc/init.d/snortd”,snortd是snort启动的脚本文件,snort.conf是具体预警的规则设定,分析下图如,默认使用snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort等等。


5、snort_inline实际执行参数
执行命令“vim /etc/init.d/hw-snort_inline”打开snort_inline脚本
我们能看到一些默认信息

以及一些运行指令。其中的-Q,即QUEUE模式,是用于将snort_inline通过QUEUE将防护规则传给iptables。

6、防火墙、NIDS、NIPS的启动
通过指令“chkconfig --list | grep [服务]”来查询当前服务是不是开启的。
chkconfig命令主要用于检查,设置系统的各种服务。若0-6全部为off,则不自动启动。
可以看到防火墙和NIPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件。NIDS不会自动启动。

7、 Snort规则如何自动升级
在/etc目录下使用命令“vim honeywall.conf”打开honeywall配置文件,这个里面可以看到一些,如我们配置的IP地址、子网掩码等等。

我们可以看到snort规则,默认是不自动更新的。还可以看到Oinkmaster字样,这是个自动更新的软件。

我们在当前目录下打开oinkmaster.conf文件,可以看到更新文件

三、实践中遇到的问题

1、打开alert为空,有待解决。。

四、学习感悟与总结

这次实践应该算是开课以来比较顺利的一次,没出太多意外bug,整体思路比较清晰。虽然安装snort比较费劲,不过这应该算历史遗留问题。。

猜你喜欢

转载自www.cnblogs.com/hyyoooh/p/12634747.html