20212820 2021-2022-2 《网络攻防实践》第五周作业

1.实践内容

一、安全防范

为了保障“信息安全金三角”的CIA属性、即机密性、完整性、可用性,信息安全领域提出了一系列安全模型。其中动态可适应网络安全模型基于闭环控制理论,典型的有PDR和P^2DR模型。

  • PDR模型:信息系统的防御机制能抵抗入侵的时间P,能超过检测机制发现的入侵的时间D和响应机制有效应对入侵的时间R之和。
  • P^2DR:基本描述为:网络安全=根据风险分析制定安全策略(policy)+执行安全防护策略(Procation)+实时监测(Detection)+实时响应(Response)。其中安全策略是核心,如下图。

 

 二、防火墙

1.防火墙技术概述

  • 防火墙:是目前最成熟的网络防御技术之一,属于一种网络上的访问控制机制,通过在不同网络域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求决定是否允许网络访问通过防火墙,达到特定网络安全域免受非法访问和破坏的目标。
  • 防火墙功能: 检查进出网络的流量;防止脆弱或不安全的协议和服务;防止内部网络信息外泄;对网络存取和访问进行监控审计;可强化网络安全策略,并集成其他网络安全防御机制。
  • 防火墙的不足: 来自网络安全内部的攻击;通过非法外联的网络攻击;计算机病毒传播。

2.防火墙技术和产品

  • 包过滤技术:通过网络层和传输层的包头信息检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络边界处。
  • 基于状态检测的包过滤技术:此技术维护所有通过防火墙的网络连接记录,并依此确定数据包是否属于一个新的连接、或是已连接的一部分,或是一个非法数据包。由于根据数据包的上下文进行检查和过滤,数据的合法性得到了更有效的保证,但对网络传输的性能影响较大。如下图所示

 

 

  • 代理技术:具体过程为客户端首先与代理服务器建立连接,接着发出一个对外部目标服务器的的文件或请求,代理服务器通过与目标服务器连接或从缓存中取得资源,并返回给客户端。网络用户便不直接与外部服务器通信。具体分为应用层代理技术、电路级代理技术和NAT代理技术。
  • 防火墙产品:集成包过滤的路由器、基于通用操作系统的防火墙软件产品、基于安全操作系统的防火墙、硬件防火墙设备。

3.Linux开源防火墙netfilter/iptables

  • 工作原理:netfilter/iptables中包含了三个最基本的规则表:包过滤处理的filter表、网络地址转换处理的nat表、以及用于特殊目的数据包修改的mangle表。相应的规则链如下图所示:

  • iptables提供了命令行接口,语法如下:
    $ iptables [-t table] command [match] [target]
    command是最重要部分,它告诉iptables命令要做些什么,以下是一些常用命令

    -A 该命令将一条规则附加到链的末尾。
    -D 指定要匹配的规则或者该规则在链中的编号。将其删除。
    -P 该命令设置链的缺省目标操作,即策略。
    -N 用命令中指定的名称创建一个新链。
    -F 如果指定链名,删除该链的所有规则;如未指定链名,删除所有链的所有规则。
    -L 列出指定链中所有规则。

Match部分为规则匹配条件,指定数据包与规则匹配所应具有的特征。通用匹配包括-s/-d源和目的地址
Target部分指定满足匹配条件之后的目标操作,即对规则匹配的数据包执行的操作。常用的目标操作为-j ACCEPT(允许数据包经过协议栈)和-j DROP(丢弃数据包)。

三、入侵检测技术

1.入侵检测概述

    • 定义:对入侵行为的检测与发现。
    • 两个重要参数是检测率和误报率。
    • 信息收集是入侵检测技术的基础。
    • 收到信息后最核心的任务是信息分析,两种基本的分析技术是梧误用检测和异常检测。
    • 入侵检测系统的部署位置如下图所示:

  •  入侵防御系统IPS,无需使用者的干预,可以在网络中“即插即用”。

2.入侵检测系统:snort

  • snort采用标准的捕获数据包的函数库libpcap,具有数据包嗅探、数据吧记录和分析、入侵检测功能。软件基本构架如图所示

  • snort实现机理:首先,将捕获的数据包经过解码器填入到链路层协议的包结构体之中,以便对高层协议解码;然后送入各种各样的预处理插件中,对数据进行检查和操作;随后检测引擎对每个包的信息进行快速模式匹配检测;对之前各个部件产生的报警/日志信息,调出相应的输出插件进行发送和记录。检测引擎与插件是snort入侵的主体模块,包含规则库解析、多模式匹配和规则插件检查三部分。

2.实践过程

一、防火墙配置

任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
i.环境配置情况
主机名 IP MAC
Metasploitable_ubuntu   192:168:11:226 00:0c:29:80:25:81
seedubuntu 192.168.11.84 00:0c:29:94:73:c9
kali  192.168.11.240 00:0c:29:49:ec:17
ii.在seedubuntu上首先使用sudo iptables -F清空规则,然后使用sudo iptables -L查看确认清空

ii.现在加入题目要求的规则,拒绝ICMP请求。输入命令格式如下sudo iptables -A INPUT -p icmp -j DROP,其中-A INPUT表示追加规则到input,-P icmp指定过滤协议,-j DROP指定对应数据包的动作。之后通过sudo iptables -L查看插入结果

 iii.接下来我们使用kali去ping seedubuntu这台机器,发现无法ping成功

 iv.在一旁使用kali的wireshark嗅探,得到如下的信息

(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.11.226),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.11.196)无法访问
i.首先我们通过命令iptables -P INPUT DROP禁止所有的input数据包,接下来通过iptables -A INPUT -p tcp -s 192.168.11.226 -j ACCEPT允许.226的机器的tcp数据包连接

  ii.接下来分别使用windowsAttacker和Metasploitable_ubuntu登录seedubuntu,结果如下:

 

二、动手实践:Snort

使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
 
Snort运行命令提示如下:
  • ①从离线的pcap文件读取网络日志数据源
  • ②在snort.conf中配置明文输出报警日志文件
  • ③指定报警日志log目录(或缺省log目录=/var/log/snort)

i.打开终端,运行命令sudo snort -c /etc/snort/snort.conf -r listen.pcap

 ii.运行命令vim /var/log/alert查看结果。可以从中找到SCAN nmap XMAS的关于nmap的报警信息。

三、分析配置规则

分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。

1.数据捕获与数据控制机制:

  数据捕获是密网的一个重要目的,包括三个层次,分别是防火墙的日志记录、eth1上的嗅探器记录的网络流多和Seek捕获的系统活动;记录的内容主要包括:数据包通过时间、包协议类型、进出的网络接口、源地址、目的地址、源端口、目的端口、包长度等。
  Roo的数据控制包含两方面,一是防火墙Iptables对连出(Outbound)的连接数的控制,另一个是网络信息防御系统Snort_inline对连出异常数据的限制,还增加了黑名单、白名单、防护名单的功能。防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。对于属于白名单的主机,接受且不记录。对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。
i.首先打开密网网关,输入vim /etc/init.d/rc.firewall查看防火墙的文件。

  可以看到roo在开机启动的过程中对iptables初始话进行的操作。首先说shell文件没有一个明确的进入点,排除掉函数定义段其他部分是顺序执行的,所以我们要倒着来看,先看最后一个函数。我们不难看出,首先代码的在820行进入程序,然后进入start函数,这个函数长度尽管十分长,但是逻辑却异常清晰。

  • 首先是create_chains函数,定义了下述程序中使用的规则。BlackListWhiteListFenceListXXXHandler。它们分别用来存储源地址和目的地址黑名单,源地址和目的地址的白名单,源地址和目的地址的防护名单,以及供下述policy使用的各种协议对应的Handler链。

  • 接下来通过default_policylocalhost_policymanagement_policy创建了不同情况下的三种代理转发模式。

  • 接下来进入start程序的正文,通过读取预定义的白名单HwFWWHITE、黑名单HwFWBLACK和防护名单HwFWFENCE,添加相关的规则.

  • 最后通过读取类似HwHPOT_PRIV_IP_FOR_NATHwHPOT_PUBLIC_IP等文件来导入其他的定义参数。

ii.数据捕获:这里分为两个部分一个是这里提到的iptables,另一个是下文提到的snort

  • iptables通过相关的 -log参数来保存相关的日志,通过命令vim /etc/init.d/rc.firewall/log可以看到相关的参数设置

  • 在下文分析snort的运行参数的过程中会提到snort的网络流纪录

2.IPTables的实际规则列表

  在网关中输入指令/sbin/iptables-L可以查看规则列表。由于我的键盘并没有pageup,所以这里使用命令/sbin/iptables -L > 1.txtvim 1.txt查看

 

 

 

3.snort实际执行参数与snort_inline的实际执行参数

i.通过vim /etc/init.d/snortd可以打开Snort脚本文件,可以分别看到一些参数的选项,包括实际运行时候的参数。学习一些snort的指令后进行分析,譬如在指定网卡接口后,如果没有其他的参数,将按照默认参数运行。如默认不开启-A模式,使用默认目录的config文件,默认使用eth0、使用二进制模式保存log文件等。

ii.翻找上文找到定义的相关参数,基本上变量名就是变量所代表的含义,会不会shell编程没什么影响。基本来说就是定义了执行操作的用户、用户组、二进制log文件位置、配置文件和默认网卡等等。

iii.使用命令vim /etc/init.d/hw-snort_inline可以看到Snort_inline运行时参数。-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置

4.防火墙、NIDS、NIPS启动方式

  使用chkconfig --list | grep [服务]查看服务情况,如果从0~6全是off,那就不自动启动。可以看到防火墙和NIPS(snort_inline)是自动启动的,NIDS要手动启动。

 

 

5.snort规则的升级方式

  使用命令vim /etc/honeywall.conf打开配置文件,找到update variables,可以看到其值为no,不自动更新。

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

问题1:蜜罐终端下使用iptables显示common on found
问题1解决方案:使用iptables命令都必须加/sbin/
问题2:kali查看文件失败
问题2解决方案:需要提权,sudo去查看就成功了

4.学习感想和体会

  本章学习了网络上的防御技术,对防火墙了解的比较多一点,对入侵检测技术的一些概念和用法还不是很清晰,主要是自己的网络基本知识较少有关。本次实践前两个做得比较简单,通过对教材学习基本能自己解决,对于第三个实践,分析的工作比较多,而且涉及到要知道固定的指令用法和结构什么的,花费了较多的时间去查找资料询问同学终于解决。

posted @ 2022-04-11 21:06  JIDIAN  阅读(285)  评论(0编辑  收藏  举报