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

20199134 赵兴波 《网络攻防实践》第6周作业

1.实践内容

1.1安全模型

1.1.1CIA安全属性

  • 机密性
  • 完整性
  • 可用性

1.1.2典型模型

  • 静态安全模型:对网络进行风险分析,制定相应的安全策略,然后采取安全技术作为防护措施,主要针对固定、静态的威胁和环境弱点。
  • PDR安全模型:基于闭环控制理论的时间动态可适应网络安全模型,以经典的网络安全不等式P>D+R(保护、检测、响应)为本质基础,并提出安全性可量化和可计算的观点。
  • P2DR安全模型:基于PDR安全模型提出,增加了Policy分析制定安全策略,并以此为核心,所有的防护、检测、响应都是依据安全策略实施的。

1.2网络安全防范与系统

1.2.1防火墙技术概述

定义

防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备,达到保护特定网络安全域免受非法访问和破坏的安全目标。

功能

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

不足

  • 先天不足:来自网络内部的安全威胁、通过非法外联的网络攻击、计算机病毒传播
  • 技术瓶颈:针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击、基于隐蔽通道进行通信的特洛伊木马或僵尸网络。

1.2.2防火墙技术与产品

包过滤技术

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

包过滤技术示意图如下:

基于状态检测的包过滤技术

也称为动态包过滤。维护所有通过防火墙的网络连接记录,并依此确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。会试图跟踪数据包在网络连接上的上下文关系,并以网络连接状态作为一个附加的匹配标准,以确定是否允许和拒绝通信,即在网络连接层次上匹配和实施防火墙规则。
基于状态检测的包过滤技术示意图如下:

代理技术

允许客户端通过它与另一一个网络服务进行非直接的连接,也称“网络代理”。代理技术包括应用层代理、电路级代理、NAT代理等。

1.2.3Linux开源防火墙netfilter/iptables

工作原理

在nefilter/iptables防火墙系统中,netfilter组件位于Linux的内核空间中,实现了静态包过滤和状态报文检查(即动态包过滤)基本防火墙功能,此外也支持NAT网络地址转换等其他额外功能,并提供了多层API接口以支持第三方扩展,netfilter具备构建防火墙、NAT共享上网、利用NAT构建透明代理,以及构建QoS或策略路由器等安全功能。Iptables则是工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为nefilter配置各种防火墙过滤和管理规则。

netfilter/iptables中三个最基本的规则表

iptables 常用语法

使用 iptables 时,最常用的就是对规则、表进行“增删改查”。具体语法可参考iptables 详解

1.3网络检测技术与系统

1.3.1入侵检测技术概述

定义

通过对计算机网络或计算机系统中若干关键点信息的收集与分析,从中发现入侵行为的一种安全技术。

评估指标

  • 检测率
  • 误报率

技术类型

  • 特征检测
  • 异常检测

1.3.2Snort基本介绍

Snort 的基本架构如下图,主要包含四个基本部分

  • 数据包嗅探/解码器
  • 预处理器/插件
  • 检测引擎/插件
  • 输出模块/插件

Snort实现机理

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

2.实践过程

2.1防火墙配置

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

IP地址

机器 IP地址
Kali Linux 192.168.200.2
Linux MetaSploitable 192.168.200.125
SEED Ubuntu 192.168.200.4
  1. 在SEED Ubuntu上通过iptables -L查看规则。

  2. 在kali上输入指令iptables -A INPUT -p icmp -j DROP,该指令是为了使得主机不接受icmp的数据包。

3.通过Kali ping SEED Ubuntu,发现是ping不通的。

4.输入iptables -L查看规则,看到不接受icmp的数据包的规则

5.最后,使用iptables -F删除自定义规则,就可以再次ping通了。

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

  1. 分别用Kali Linux、Linux MetaSploitable对SEED Ubuntu进行telnet登陆。


2.使用iptables -P INPUT DROP指令拒绝一切的数据包流入,此时两台电脑都无法对SEED Ubuntu进行访问。


3.使用指令iptables -A INPUT -p tcp -s 192.168.200.2 -j ACCEPT使本机接受来自kali的数据包。并用iptables -L查看规则。

  1. 此时Kali可以telnet登陆,但是MetaSploitable不行。


5.执行iptables -Fiptables -P INPUT ACCEPT指令恢复之前的状态。

2.2 Snort

任务:使用Snort对给定的pcap文件进行入侵检测,并对检测出的攻击进行说明
1.利用指令snort -r listen.pacp -c /etc/snort/snort.conf -K ascii对listen.pacp进行入侵检测.

2.可以看到检测出的数据包大部分为TCP数据包。

3.在/var/log/snort/目录下可以查找到alert文件,发现这个攻击是由nmap发起的。

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

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

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

1.打开iptables配置文件,输入:vim /etc/init.d/rc.firewall

对于属于黑名单的主机,丢弃所有包

对于属于白名单的主机,接受数据包

对于属于防护名单中的,是不允许被外部访问的蜜罐主机

2.输入iptables -L可以查看实际规则列表,看到默认的规则OUTPUT、INPUT、FORWARD都已经被关闭了


3.输入vim /etc/init.d/snortd,查看snort的脚本文件,可以看到实际运行时候的参数


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

5.输入chkconfig --list | grep [服务]来查询当前服务是不是开启的,可以看到防火墙和NIPS(snort_inline)是跟随系统启动的,NIDS是需要手动启动的

6.输入vim /etc/honeywall.conf,打开honeywall配置文件,可以看到snort默认为不自动更新

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

  • 问题1:无法执行Snort指令
  • 问题1解决方案:根据错误信息,安装snort,可是安装也不成功。根据多次以来的实践经验:休息、休息、休息一下……不知道多久过去了,再次实验一下就好了。
  • 问题2:iptables 无法执行。
  • 问题2解决方案:使用su -提权。

4.实践总结

有时候一个实践能够我做好久的,碰见一些问题,经过查询或者问问同学也好解决,就是碰见一些你怎么弄,他都不给你面子的,就真的是焦头烂额,还是自己太菜了,需要学习与实践的东西还有很多。

5.参考资料

posted @ 2020-04-08 17:56  zzxb  阅读(238)  评论(0编辑  收藏  举报