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

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

一.实践内容

安全模型

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

网络安全防范技术与系统

1.防火墙技术及产品

  • 定义:防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备,达到保护特定网络安全域免受非法访问和破坏的安全目标。
  • 功能:
    • 检查控制进出网络的流量。
    • 防止脆弱或不安全的协议和服务。
    • 防止内部网络信息的外泄。
    • 对网络存取和访问进行监控审计。
    • 强化网络安全策略并集成其他安全防御机制。
  • 不足:
    • 先天:无法防范包括来自网络内部的安全威胁、通过非法外联的网络攻击和计算机病毒传播的传播。
    • 技术瓶颈:无法防范包括针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击和隐蔽通道进行通信的特洛伊木马或僵尸网络。
  • 技术:
    • 包过滤技术:在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包(简单、安全功能有限)。
    • 基于状态检测的包过滤技术:也称动态包过滤。除了使用静态规则进行安全进行安全策略匹配,还进行数据包的网络连接的上下文关系探测,来确定是否允许通信。这种技术相比较传统的包过滤技术安全性更高,数据合法性得到了更有效的保障(对网络性能有一定的影响)。
    • 代理技术:允许客户端通过代理与网络服务进行非直接的连接,也称“网络代理”。主要是客户端与代理服务器连接,代理服务器再与目标服务器连接。代理技术包括应用层代理(工作在应用层)、电路级代理(工作在传输层)和NAT代理(工作在网络层)等。
  • 部署方法:
    • 包过滤路由器:带有包过滤防火墙功能的路由器。
    • 双宿主堡垒主机:应用代理网关作为双宿主堡垒主机。
    • 屏蔽主机:堡垒主机和包过滤的结合。
    • 屏蔽子网:在屏蔽主机的基础上增加第二道包过滤路由器。

2.Linux开源防火墙netfilter/iptables介绍

  • 介绍:netfilter是Linux内核中实现的防火墙功能,iptables则是应用态的防火墙管理工具。

  • 工作原理iptables中有三个基本规则表:处理包过滤的filter、网络地址转换nat、特殊目的包修改的mangle。filter包含INPUT、OUTPUT、FORWARD三条规则链。分别是发往本地、本地发出、经过本主机的转发的数据包处理的规则。nat表有PREROUTING、POSTROUTING、OUTPUT三条规则链。分别是:对未经路由选择的数据包转换IP地址和目标端口、对已经经过陆幽轩的数据包进行转换IP地址和目标端口,OUTPUT规则链的本地数据包的IP地址和端口转换。

  • iptables的命令的语法为:iptables -t [table] command [match] [target]。-t指定规则所在的表,缺省表包括gilter、nat、mangle、raw(在我网上找的例子之中都没有填,直接使用缺省)。cammand就是告诉iptables要做什么,比如-A就是在链表之后插入规则。match则是规则,满足规则的数据包才会被采取措施。target是满足规则之后要做什么,比如放行数据包ACCEPT。

netfilter/iptables的NAT机制

  • IP伪装:在内部网络使用私有IP,而通过防火墙可以绑定一个外部IP,对数据包进行源IP伪装。

  • SNAT机制:SNAT记住可以按照用户制定的规则,将源IP灵活的变成各种IP,IP伪装是一种SNAT机制。值得注意,SNAT机制需要在POSTOUTING链中完成,这样才能让路由、包过滤在源IP改变之前做完。
    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.254.2的意思是将发出的源IP改为192.168.254.2。

  • DNAT机制:DNAT在PREROUTING链中完成,需要用到-i.iptables -t nat -A PEROUTING -i eth1 -j DNAT --to 192.168.254.128将目的地址转换为192.168.254.128.

网络检测技术与系统

1.入侵检测技术

  • 评估指标:检测率(系统捕获到的攻击行为与全部攻击行为比值)和误报率(对正常行为的误报数与全部报警数的比值)。
  • 技术类型:特征检测(匹配特征库)、异常检测(检测与正常用户在统计方面的差别)。二者通常结合使用,提高入侵检测系统的整体检测性能。同时,基于这两种技术,也可以对入侵检测系统进行分类。
  • 入侵防御系统:也叫内嵌式入侵检测,即对检测到的异常行为或者与特征库匹配的行为直接进行阻断,断开访问。

2.开源网络入侵检测系统snort基本介绍

  • 简介:Snort是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录IP网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配,可以检测各种不同的攻击方式,对攻击进行实时报警等。其基本框架如图:
  • 四个主要部件:
    • 数据包嗅探:将网卡设置为混杂模式,用libpacp函数来进行数据包监听和抓包。
    • 预处理器:用于弥补检测引擎检测能力的不足。主要有TCP/IP协议栈模拟、应用层协议解码、异常检测。
    • 检测引擎:是主题模块,主要包括规则库解析、多模式匹配、规则插件。
    • 输出模块:进行各种多样化的报警和日志记录。
  • 主要功能:
    • 嗅探模式(从网络上读取数据包,常用命令snort -dev)
    • 数据包记录模式(把数据包记录到硬盘上,常用命令snort -b)
    • 网络入侵检测模式(载入规则库才能工作,Snort并不记录所有捕获的包,而是将包与规则对比,仅当包与某个规则匹配的时候,才会记录日志或产生报警)

3.VPN技术

  • VPN即虚拟专用网,指利用大规模公共网络搭建虚拟链路来代替物理链路进行私密通信的技术,VPN主要采用隧道技术、加密技术、密钥管理和交换技术、身份认证技术等。
  • 常见的VPN分类有:IPSec VPN;SSL VPN;MPLS VPN

网络安全事件响应技术

  • 计算机取证:在安全事件的调查中对计算机系统进行详细检查,并对计算机犯罪的电子证据进行保护、确认、提取和归档的过程
  • 攻击追溯与归因:找出真正实施网络攻击的来源,并确定出攻击者真实身份
  • 备份恢复:在遭受网络安全事件之后快速恢复业务运转

二.实践过程

实践:防火墙配置

  • 实践任务:配置Linux操作系统平台,上的iptables,或者Windows操作系统平台上的个人防火墙

任务一

  • 过滤ICMP数据包,使得主机不接收Ping包;
    1.环境配置情况
    Kali:192.168.200.2
    Seed:192.168.200.4
    Windxp:192.168.200.3
    2.过滤ICMP数据包,使得主机不接受Ping包;
    先在SEED上 ping 主机kali,发现在正常状态下可以 ping 通

    3.在主机kali上通过 iptables -L 查看规则,发现都是默认规则。

    4.执行 iptables -A INPUT -p icmp -j DROP 指令使得主机不接受icmp的数据包。其中 -A 是追加新规则于指定链的尾部, INPUT 表示数据包入口(规则), -p 用于匹配协议, -j 用于指定如何处理(ACTION)。再次查看规则,发现多了一条icmp针对任何位置不允许访问的规则。

    5.再次通过SEED ping 主机kali,发现 ping 不通了。

    6.使用 iptables -F 删除自定义规则。

任务二

  • 只允许特定IP地址(如局域网中的Linux攻击机),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机)无法访问。
    1.使用命令iptables -A INPUT ! -s 192.168.200.4 -p icmp -j REJECT ,表示除192.168.200.4外拒绝ICMP报文。

    2.此时使用Seed和Winxp来ping Kali,结果如下。


    3.可以看到只有Seed可以ping通,此时查看iptables规则表,最后使用iptables -F可以删除规则表中内容,回归默认ACCEPT设置。

实践:Snort

  • 实践任务:使用Snort对给定的pcap文件进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机上使用Snort,对给给定的pcap文件进行入侵检测,获得报警日志。
  • Snort运行命令提示如下:
    • 从离线的pcap文件读取网络日志数据源;
    • 在snort.conf中配置明文输出报警日志文件;
    • 指定报警日志log目录(或缺省log目录=/var/log/snort)。
      1.使用之前实验的 listen.pcap,利用指令 snort -r /home/kali/listen.pcap -c /etc/snort/snort.conf -K ascii 对 listen.pacp 进行入侵检测, 其中 -c 表示选择snort配置文件, -r 表示从pcap格式的文件中读取数据包,-K ascii 是用来指定输出日志文件的为ASCII编码。然后可以查看输出里检测出的数据包,可以看到大部分数据流为tcp会话,此时snort会在默认目录生成一个日志文件。


      2.进入报警日志目录 cd /var/log/snort , 查看日志文件 vim alert,可以发现本次攻击是使用nmap发起的。攻击主机的IP地址是 172.31.4.178 ,网络扫描的目标IP地址是 172.31.4.188 。

实践:分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则

  • 说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。具体分析配置规则与启动项文件包括:
    ●防火墙(nefilter+IlPTables) : /etc/init.d/rc.firewall;:
    ●入侵检测系统(Snort) : /etc/init.d/hflow_snort 与/etc/snort/snort.conf;
    ●入侵防御系统(Snort_ inline) : /etc/init./hflow-snort. inline 与/etc/snot. _inline/snort_inline.conf。
  • 分析内容如下:
    ●上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?
    ●获取IPTables的实际规则列表、Snort 和Snort_inline 的实际执行参数。
    ●蜜网网关开机之后,防火墙、NIDS、NIPS 是如何启动的?
    ●Bonus: 蜜网网关中的Snort规则是如何自动升级的?
    1.查看防火墙的文件: vim /etc/init.d/rc.firewall


    可以看到create_chains中新建了许多规则链,包括黑名单链、白名单链、防护链等。
    2.运行iptables -L可以查看实际规则列表(这里我的笔记本里面没有翻页键,所以不知道怎么往上看。。。。)

    因此我借用其他同学的图片:


    可以看到默认的规则入INPUT、FORWARD、OUTPUT都已经被关闭了。
    3.获取Snort实际执行参数: vim /etc/init.d/snortd 打开Snort脚本文件,可以看到些参数的选项:默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort。


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

    6.密网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
    使用chkconfig --list | grep [服务]来查看服务开启,0~6分别表示关机、单用户模式、无网络连接的多用户命令行模式、有网络连接的多用户命令行模式、不可用、带图形界面的多用户模式、重新启动七个执行等级下开启或关闭。


    可以发现NIDS的0~6都是off,说明是需要手动启动的,而防火墙和NIPS不全是off,是跟随系统启动的。
    7.蜜网网关中的Snort规则是如何自动升级的?
    使用vim /etc/honeywall.conf查看配置文件:

    可以推断这里使用工具Oinkmaster进行了snort的自动升级。

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

  • 问题:由于电脑设计问题,没法完全查看网关中打开的文件内容。
  • 解决:利用其他同学的博客参看所需要的关键内容。

四.实践总结

本次实验难度不大,但对阅读水平要求较高,因此日后我需要加强计算机英文的学习。

参考资料

posted @ 2020-04-06 23:27  20199306—胡一鸣  阅读(413)  评论(0编辑  收藏  举报