20199121《网络攻防实践》第六周作业

前言

问题 回答
这个作业属于那个课程 网络攻防实践
这个作业的要求在哪里 《网络攻防实践》第六周作业
学习内容 第六章 网络安全防范技术

1.知识点梳理与总结

  • TCSEC标准是计算机系统安全评估的第一个正式标准,具有划时代的意义。动态可适应网络安全模型基于闭环控制理论,典型模型是PDR模型以及在其基础上提出的P2DR模型。

  • PDR安全模型是一个基于时间的动态安全模型,以经典的网络安全不等式P>D+R为本质基础,并提出安全性可量化和可计算的观点。如果信息系统的防御机制能够抵御入侵的时间P,能够超过检测机制发现入侵的时间D.和响应机制有效应对入侵的时间R,之和,那么这个信息系统就是安全的。

  • P2DR安全模型基本描述为:网络安全=根据风险分析制定安全策略(Policy)+执行安全防护策略(Protection)+实时检测(Detection)+实时相应(Response)。

防火墙

  • 防火墙技术

    • 1)包过滤技术:在路由功能基础上扩展,通过对网络层和传输层包头信息的检查,确定是否应该转发该数据包。
    • 2)基于状态检测的包过滤技术(动态包过滤):除检查每个独立的数据包外,还会跟踪数据包在网络连接的上下文关系,以网络连接状态为附加匹配标准,以确定是否允许通信。
    • 3)代理技术:应用层代理(应用层)、电路级代理(传输层)、NAT代理(网络层)。
  • 防火墙部署方法:1)包过滤路由器 2)双宿主堡垒主机 3)屏蔽主机 4)屏蔽子网

  • 防火墙功能:1)检查控制进出网络的网络流量 2)防止脆弱或不安全的协议及服务 3)防止内部网络信息的外泄 4)对网络存取和访问进行监控审计 5)强化网络安全策略并集成其他安全防御机制

  • 防火墙的不足

    • 作为网络边界防护机制而先天无法防范的安全威胁:来自网络内部的安全威胁、通过非法外联的网络攻击、计算机病毒传播
    • 由于技术瓶颈问题目前还无法有效防范的安全威胁:针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击、基于隐蔽通道进行通信的特洛伊木马或僵尸网络

入侵检测

  • 评估入侵检测技术和系统的两个重要参数:检测率(捕获到的攻击行为与全部攻击行为之比)、误报率(误报数目与全部报警数目之比)。

  • 入侵检测技术的分类

    • 根据信息分析技术类型:误用检测(收集已知入侵行为的特征并构成特征库,对检测的信息进行特征模式匹配)、异常检测(建立系统正常模式轮廓,对检测的系统进行轮廓比较,超出阈值则报警)。
    • 根据入侵检测的检测数据来源:基于主机的入侵检测、基于网络的入侵检测。
    • 根据采用的体系结构:集中式、层级式、协作式。

2.实践

动手实践:防火墙配置

题目:配置Linux平台上的iptables,完成:
1)过滤ICMP数据包,使得主机不接收ping包
2)只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问

iptables介绍

iptables的缺省规则/表链如下

iptables命令格式如下

iptables [-t 表] -命令 匹配 操作

(1)-t 表
表选项用于指定命令应用于哪个iptables内置表。
(2)命令
命令选项用于指定iptables的执行方式,包括插入规则,删除规则和添加规则,如下所示

-P  --policy        <链名>  定义默认策略
-L  --list          <链名>  查看iptables规则列表
-A  --append        <链名>  在规则列表的最后增加1条规则
-I  --insert        <链名>  在指定的位置插入1条规则
-D  --delete        <链名>  从规则列表中删除1条规则
-R  --replace       <链名>  替换规则列表中的某条规则
-F  --flush         <链名>  删除表中所有规则
-Z  --zero          <链名>  将表中数据包计数器和流量计数器归零
-X  --delete-chain  <链名>  删除自定义链
-v  --verbose       <链名>  与-L他命令一起使用显示更多更详细的信息

(3)匹配规则
匹配选项指定数据包与规则匹配所具有的特征,包括源地址,目的地址,传输协议和端口号,如下所示

-i --in-interface    网络接口名>     指定数据包从哪个网络接口进入,
-o --out-interface   网络接口名>     指定数据包从哪个网络接口输出
-p ---proto          协议类型        指定数据包匹配的协议,如TCP、UDP和ICMP等
-s --source          源地址或子网>   指定数据包匹配的源地址
   --sport           源端口号>       指定数据包匹配的源端口号
   --dport           目的端口号>     指定数据包匹配的目的端口号
-m --match           匹配的模块      指定数据包规则所使用的过滤模块

(4)iptables规则的动作

  • REJECT
    拦阻该数据包,并返回数据包通知对方,可以返回的数据包有几个选择:ICMP port-unreachable、ICMP echo-reply 或是tcp-reset(这个数据包包会要求对方关闭联机),进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。

  • DROP
    丢弃数据包不予处理,进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。

  • REDIRECT
    将封包重新导向到另一个端口(PNAT),进行完此处理动作后,将会继续比对其它规则。这个功能可以用来实作透明代理 或用来保护web 服务器。

  • LOG
    将数据包相关信息纪录在 /var/log 中,详细位置请查阅 /etc/syslog.conf 配置文件,进行完此处理动作后,将会继续比对其它规则。

tips:如果不保存iptables的设置,那么重启之后又会恢复默认设置,就不用手动恢复啦!

实践过程

说明:Ubuntu【IP地址192.168.0.11】、kali【IP地址192。168.0.16】、winXP【IP地址192.168.0.13】

1)ubuntu过滤规则为iptables -A INPUT -p icmp -j DROP 即在INPUT链(用来处理发给本机的数据包)增加一条丢弃ICMP数据包的规则,过滤前后用命令iptables -L查看iptables规则列表

用kali ping Ubuntu,修改规则之前可以ping通,修改之后无法ping通。

2)ubuntu首先清除INPUT链下的规则,再设置过滤规则为iptables -A INPUT -p tcp -s 192.168.0.16 -j ACCEPT 即在INPUT链(用来处理发给本机的数据包)增加一条规则,只允许局域网中kali192.168.0.16的tcp数据包,过滤前后用命令iptables -L查看iptables规则列表

用kali-192.168.0.16可以对Ubuntu进行telnet连接,用winXP则连接失败。

动手实践:snort

题目:使用snort对给定pcap文件(第四周作业用到的listen.pcap)进行入侵检测,获得报警日志,并对检测出的攻击进行说明。

snort体系结构

  • Snort的结构由4大软件模块组成
    • 数据包嗅探/解码器:负责监听网络数据包,对网络进行划分;
    • 预处理器/插件:用相应的插件来检查原始数据包,从中发现原始数据的“行为”,经过预处理后才传到检测引擎;
    • 检测引擎/插件:该模块是Snort的核心模块。当数据包从预处理器送来后,检测引擎依据预先设置的规则检查数据包,一旦发现数据包中的内容和某条规则相匹配,就通知报警模块;
    • 输出模块/插件:经检测引擎检查后的Snort数据需要以某种方式输出。

实践过程

将listen.pcap放在snort文件夹下,用ls命令查看文件目录,可以看到snort.conf及listen.pcap
使用命令snort -r listen.pcap -c snort.conf -K ascii进行入侵检测并查看输出,-K ascii主要是为了指定输出log文件的编码为ASCII

使用命令cd /var/log/snort切换到日志文件目录下(该目录是报警文件的默认目录,也可以在snort.conf中指定目录),命令vi alert查看详细报警文件,发现是由nmap发起的扫描

实践作业:蜜网网关防火墙及IDS/IPS的分析

题目:分析蜜网网关ROO中防火墙和IDS/IPS配置规则,具体分析配置规则与启动项文件如下:
防火墙(netfilter+IPTables):/etc/init.d/rc.firewall
入侵检测系统(snort):/etc/init.d/hflow-snort 、 /etc/snort/snort.conf
入侵防御系统(snort_inline):/etc/init.d/hw-snort_inline、/etc/snort_inline/snort_inline.conf
分析内容:
1)上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?
2)获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数
3)蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的 ?
4)蜜网网关中的Snort规则是如何自动升级的?

实践过程

  • 蜜罐中的核心技术即为数据捕获、数据控制、数据分析。

    • 数据控制:蜜罐系统既要对系统的外出流量进行限制,又要给攻击者一定的活动自由与蜜罐网络进行交互。对于所有进入蜜罐系统的连接记录,蜜罐系统都允许进入;而对外出的连接要进行适当限制,或修改这些外出连接数据包目的地址,重定向到指定的主机,同时给攻击者造成网络数据包已正常发出的假象。
    • 数据捕获:收集蜜罐系统日志有两种方式:基于主机的信息收集方式和基于网络的信息收集方式。
    • 数据分析:把蜜罐系统所捕获到的数据记录进行分析处理,提取入侵规则,从中分析是否有新的入侵特征。
  • 数据控制机制图(上)数据捕获机制图(下)

使用命令vim /etc/init.d/rc.firewall查看防火墙文件,可以看到创建了黑名单、白名单、及协议数据包处理规则链。值得一说的是,蜜罐系统只能识别四种协议:TCP、UDP、ICMP、其他。在对数据控制时,要对各协议设置单位时间内发送包的上限,对于超出发送上限包的方式处理有三种:Drop、Reject和Replace。

  • 获取IPTables的实际规则列表

使用命令iptables -t filter -L来查看规则列表,内容较多使用shift+page up/down翻页

  • Snort和Snort_inline的实际执行参数

使用命令vim /etc/init.d/snortd 打开Snort脚本文件,可以看到一些参数选项。

使用命令`vim /etc/init.d/hw-snort_inline` 打开snort_inline的脚本文件,可以看到一些参数选项。 【此处我直接输入命令并没有找到这个文件,故先用cd命令进入/etc/init.d文件夹后再用vim命令打开文件,至于为什么前者不行,我也不知道】

-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置。

  • 防火墙、NIDS、NIPS如何启动

使用命令chkconfig --list对服务进行查询,如果从0~6全是off,那就不自动启动。可以发现NIDS是需要手动启动的,防火墙、NIPS是跟随系统启动的。

  • 蜜网网关中的Snort规则如何自动升级

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

使用oinkmaster更新snort规则。首先在snort.org注册账号得到oink code。

使用命令vi /etc/oinkmaster.conf查看oinkmaster配置文件,找到Example for Snort 2.4,删掉注释,修改url =http://www.snort.org/pub-bin/oinkmaster.cgi/你的oink code/snortrules-snapshot-2.4.tar.gz

使用命令oinkmaster -C /etc/oinkmaster.conf -o /etc/snort/rules即可将规则更新到最新版本

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

  • 问题:蜜罐主机翻页
  • 解决:shift+page up/down

4.学习感想和体会

本章的内容不多,且在之前的学习中有涉及到一些,所以实践较为轻松。针对最后一题的分析,还是有些地方不太懂,能查到的资料也很有限,希望在之后的学习过程中有机会加深此处的理解。

参考资料

posted @ 2020-04-07 18:38  poziiey  阅读(384)  评论(0编辑  收藏  举报