20199107hxx

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

这个作业属于哪个课程 《网络攻防实践》
这个作业的要求在哪里 《网络攻防实践》第6次作业
我在这个课程的目标是 学习新知识、考试拿高分
这个作业在哪个具体方面帮助我实现目标 学习网络安全防范技术
作业正文 见下文
其他参考文献 见文末

1.实践内容

安全模型

传统的安全评估和防范方法是通过对网络进行风险分析,制定相应的安全策略,然后采取一种或多种安全技术作为防护措施的。
这种安全模型与流程在主要针对固定、静态的威胁和环境弱点,但忽略了网络安全的重要特性。
安全是一个相对的、动态的、不断完善的过程,因此没有绝对的、一成不变的安全。
新的安全问题的出现需要新的安全技术和手段来解决,需要适应变化的环境并能做出相应的调整以确保安全防护。
基于这种考虑,信息安全领域提出了一系列动态可适应网络安全的模型。

典型的动态安全模型:

  • PDR
    即保护Protection、检测Detection、响应Response,是一个基于闭环控制理论的时间动态网络安全模型
    以经典的网络安全不等式\(P_t>D_t+R_t\)为本质基础,
    其中\(P_t\)代表系统为了保护安全目标设置各种保护后的防护时间;或者理解为在这样的保护方式下,黑客(入侵者)攻击安全目标所花费的时间。
    \(D_t\)代表从入侵者开始发动入侵开始,系统能够检测到入侵行为所花费的时间。
    \(R_t\)代表从发现入侵行为开始,系统能够做出足够的响应,将系统调整到正常状态的时间。
    提出安全性可量化和可计算的观点,是最早体现主动防御思想的一种网络安全模型。

  • P2DR
    也叫PPDR,在PDR多基础上加入安全策略Policy,它是PPDR安全模型的核心,描述系统哪些资源需要保护,如何实现保护。
    安全模型强调网络保护不再是简单的被动保护,而是保护、检测、响应和恢复的有机结合。因此,PDRR模型不仅包含了安全防护的概念,而且还包含了主动防御和主动防御的概念。

网络安全防范技术与系统

防火墙

防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。
从技术范畴上说,防火墙属于一-种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过的网络传输数据进行检查,
根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。

防火墙的功能

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

防火墙的不足
  • 作为网络安全边界防护机制而先天无法防范的安全威胁:
    (1)来自网络内部的安全威胁
    (2)通过非法外联的网络攻击
    (3)计算机病毒的传播

  • 由于技术瓶颈目前无法防范的安全威胁:
    (1)针对开放服务安全漏洞的渗透攻击
    (2)针对网络客户端程序的渗透攻击
    (3)隐蔽通道进行通信的特洛伊木马或僵尸网络等

防火墙技术

(1)包过滤技术
包过滤技术在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,
确定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络的边界处。
包过滤技术实现简单,非常高效,但检查内容较少且只对单个数据包检查,功能比较有限。

(2)基于状态检测的包过滤技术
相比于传统包过滤技术,这种技术也称为动态包过滤。动态包过滤技术维护所有通过防火墙的网络连接记录,
并依此确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。
尽管动态包过滤技术仍然使用一组静态规则进行安全策略匹配,但除了检查每个独立的数据包之外,还会试图跟踪数据包在网络连接上的上下文关系,
并以网络连接状态作为一个附加的匹配标准,以确定是否允许和拒绝通信,即在网络连接层次上匹配和实施防火墙规则。

(3)代理技术
代理技术(Proxy)允许客户端通过代理与网络服务进行非直接的连接,也称“网络代理”。
客户端先与代理服务器连接,代理服务器再与另一个目标服务器连接并取得资源,并返回给客户端。
包括应用层代理技术、电路级代理技术、NAT代理技术

防火墙产品

(1)集成包过滤功能对路由器
(2)基于通用操作系统对防火墙软件
(3)基于安全操作系统对防火墙
(4)硬件防火墙设备
对于普通用户,普遍接触到的是个人防火墙产品属于基于通用操作系统对防火墙软件

Linux开源防火墙netfilter/iptables

netfilter/iptables简介

在netfilter/iptables防火墙系统中,netfilter组件位于Linux的内核空间中,实现了静态包过滤和状态报文检查(动态包过滤)基本防火墙功能,
此外也支持灵活可扩展的框架,支持NAT等其他功能,并提供了多层API接口以支持第三方扩展。
Iptables则是工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为netfilter配置各种防火墙过滤和管理规则。

iptables存在“表”、“链”和“规则”三个层面,简单地说,表由链组成,链由规则组成
规则其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。
当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。

netfilter/iptables中包含三个最基本的规则表,分别为
用于包过滤处理的filter表、用于网络地址转换处理的nat表,以及用于特殊目的数据包修改的mangle表。
在每张规则表中包含一些已缺省定义的规则链,以及可由用户自定义的规则链。

INPUT、OUTPUT、FORWARD、PreRouting、PostRouting对应着netfilter在TCP/IP协议栈的5个检查点

iptables命令

iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION
-t table,是指操作的表,filter、nat、mangle或raw, 默认使用filter
COMMAND,子命令,定义对规则的管理
chain, 指定链
CRETIRIA, 匹配的条件或标准
ACTION,操作动作
具体命令非常多,详见参考文献

网络检测技术与系统

入侵检测技术

入侵可被定义为任何尝试破坏信息资源的保密性、完整性或可用性的行为。
入侵检测即为通过对计算机网络或计算机系统中若干关键点信息的收集和分析,从中发现入侵行为的安全技术。
入侵检测系统是实现入侵检测技术,专门用于入侵行为发现和处理的软件系统或硬件设备。

  • 评估指标
    检测率:系统捕获到的攻击行为与全部攻击行为数目之比
    误报率:对正常行为的误报与全部报警数目之比

  • 入侵检测技术
    (1)误用检测:收集已知攻击行为特征构成特征库,对搜集对信息进行模式匹配,符合特征库描述对即认为入侵行为
    (2)异常检测:统计正常情况下对象访问频率、操作错误次数等范围,并与当前值比较,当期值达到某一阈值,即认为有入侵发生

  • 入侵防御系统
    与入侵检测系统普遍采用旁路监听只对入侵行为进行检测与报警不同,入侵防御系统采用直接在网络边界位置内联连接的方式,
    并在检测到入侵行为后,直接对所关联的攻击网络连接进行阻断处理。

Snort

一款开源网络入侵检测系统,并有数据包嗅探、分析、记录等功能
Snort主要由以下四个部分组成:
(1)数据包嗅探/解码器(sniffer)
(2)预处理器/插件(preprocessor)
(3)检测引擎/插件(detection engine)
(4)输出模块/插件(output modules)

2.实践过程

防火墙配置

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

机器 角色 IP
Kali Linux 信任主机 192.168.200.2
SEEDUbuntu 服务器 192.168.200.6
MetaSploitable2Linux 不可信主机 192.168.200.125

任务(1)
先ping一下seed,此时可以ping通

iptables -L查看现有规则,都是默认,相当于没有

iptables -A INPUT -p icmp -j DROP其中-A即追加规则,指定INUPT链,-p icmp指定协议,-j DROP即丢弃数据包
再次用iptables -L查看,新规则已加入

此时任意主机都不能ping通seed,任务(1)完成后用iptables -F删除所有规则(反正只有刚刚的一条)

任务(2)
开始时kali、meta都能用telnet连接seed

在seed用iptables -P INPUT DROP-P为定义默认策略,拒绝一切外来数据包
再用iptables -A INPUT -p tcp -s 192.168.200.2 -j ACCEPT其中-s指定原地址(kali的IP),ACCEPT即接受数据包,即接受来自kali的tcp包,查看一下

此时kali可以用telnet连接seed,而meta不能

Snort

任务:使用Snort对给定的pcap文件进行入侵检测,并对检测出的攻击进行说明
这个任务之前学第四章网络嗅探与协议分析都时候有做过类似的
snort -r listen.pcap -c /etc/snort/snort.conf -K ascii-r指定要分析的目标文件为listen.pcap,-c指定分析的配置文件snort.conf,-K ascii指定输出日志为ASCII编码

可以看到有大量TCP包,但HTTP等应用层协议包却很少
再打开vim /var/log/snort/alert可以看到判断有nmap扫描,有双方的IP地址端口等信息

分析蜜网网关的防火墙和IDS/IPS配置规则

说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的
具体分析配置规则与启动项文件包括:

  • 防火墙(netfilter+IPTables):/etc/init.d/rc.firewall;
  • 入侵检测系统(Snort):/etc/init.d/hflow-snort与/etc/snort/snort.conf;
  • 入侵防御系统(Snort_inline):/etc/init d/hflow-snort_inline与/etc/snort_inline/snort_inline.conf。
    分析内容如下:
  • 上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?
  • 获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
  • 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
  • Bonus:蜜网网关中的Snort规则是如何自动升级的?

数据捕获和数据控制
打开蜜罐主机,su -提权,用vim /etc/init.d/rc.firewall打开防火墙配置文件(其实vi也行,但vi没有没有颜色,看着没那么舒服)
800多行,肯定不能全写,先找到一个start函数,应该是开头,可以看到一系列初始化操作,其中loadmodel是读取所需要的模型

flush是清空所有规则,default_policy是设置所有默认规则为DROP。。。等等

其中的create_chains就是重点,创建需要的链,一共创建了8条链,其中有黑名单、白名单、防护名单(FenceList)

对源地址或目的地址属于黑名单的主机,丢弃所有包
对属于白名单的主机,接受包且不记录
对属于防护名单的主机,禁止访问某些不应该被访问的主机

IPTables的实际规则列表
iptables -t filter -L指定filter表查看其规则列表,内容很多可以加上less或者more来看

Snort和Snort_inline实际执行参数
蜜罐虚拟机并没有要求的两个文件,然而
vim /etc/init.d/snortd可以看到snort运行时参数

vim /etc/init.d/hw-snort_inline可以看到Snort_inline运行时参数

防火墙、NIDS、NIPS启动
使用chkconfig --list | grep [服务]查看服务情况,防火墙和NIPS(snort_inline)是自动启动的,NIDS(snort)要手动启动

  • 蜜网网关中的Snort规则是如何自动升级的
    vim /etc/honeywall.conf查看
    能看到很多我们配过的配置,其中可以看到snort不自动升级

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

  • 问题1:书上的iptables和snort原理讲的很多,但是命令例子还是比较少,看完还是有种一知半解多感觉
  • 问题1解决方案:自己百度一些参考资料
  • 问题2:分析配置规则代码量大而且并不怎看得懂
  • 问题2解决方案:参考大佬的博客,结合注释猜测一下
  • 问题3:snort和snort_inline的配置文件找不到
  • 问题3解决方案:继续参考大佬的博客

4.实践总结

这一章的值得学习都内容很多,光是要把原理都过一遍就要花很多时间,但是实践操作相对简单,除了找不到snort和snort_inline的那两个文件,没什么会特别卡住都问题,参考班里大佬们多博客就能比较顺利地做完。

5.其他参考文献

posted on 2020-04-07 20:20  20199107hxx  阅读(318)  评论(0编辑  收藏  举报