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

目录
  • (:」∠)_
  • 一、实践内容
    • 1.1 安全模型
    • 1.2 网络安全防范技术与系统
      • 1.2.1防火墙技术
      • 1.2.2防火墙部署方法
      • 1.2.3 Linux开源防火墙:netfilter/iptables
    • 1.3 网络检测技术与系统
    • 1.4 网络安全事件相应技术
  • 二、实践过程
    • 动手实践:防火墙配置
    • 动手实践:Snort
    • 实践作业
  • 三、实验总结

(:」∠)_

  • 此作业所属课程:2019-2020-2-1991&1993《网络攻防实践》
  • 本次作业要求:第六次作业 网络安全防范技术
  • 课程目标:学习网络攻防实践
  • 本次作业在哪个方面帮助我实现目标:第6章 网络安全防范技术

一、实践内容

1.1 安全模型

  • 信息安全金三角:CIA安全属性,即机密性、完整性和可用性。

  • 安全模型的作用:由信息安全领域提出,用来指导信息系统安全体系建设,以增强信息系统的安全性。

  • 理论模型方面,先后出现了

    • 针对机密性的BLP多级安全策略模型、
    • 针对完整性保护的Biba模型和Clark-Wilson模型等。
    • 由于可用性本身设计的因素很多,并没有一个被广泛接受的通用安全模型。
  • 1985年美国,国防部国家计算机安全中心(NCSC)公布可信任计算机系统评估准则**(TCSEC)
    **,又称“桔皮书”(Orange Book)。是计算机系统安全评估的第一个正式标准,具有划时代意义。重点关注了机密性。

  • 欧洲推出ITSEC,纳入完整性和可用性作为评估标准。

  • 美国联合加拿大和欧洲在TCSEC和ITSE基础上,制定了国际统一的安全评估标准,即通用准则(Common Criteria),通过了国际标准化组织ISO的认可,称ISO 15408。

  • 我国,加入WTO接受CC为信息系统产品安全评估标准,并制定了GB 18336。还制定了GB 17859《计算机信息系统安全保护等级划分标准》及配套的定级、实施指南等相关标准,为国家关键信息系统的安全防护体系建设与评估认证提供依据。

  • 动态可适应网络安全模型:基于闭环控制理论,典型模型是PDR(Protection、Detection、Response)模型以及在其基础上提出的P²DR(Policy、Protection、Detection、Response)模型等。

  • PDR安全模型:基于时间,以经典的网络安全不等式为本质基础,提出安全性可量化和可计算观点。
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第1张图片

  • P²DR模型:核心是安全策略,
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第2张图片

    • 防护机制:采用一切手段保护信息系统的机密性完整性可用性真实性和不可抵赖性。静态安全技术实现,主要由防火墙、加密、身份认证和访问控制等方法。
    • 检测机制:动态响应和加强防护的依据,是强制落实安全策略的工具。检测技术包括入侵检测和漏洞评估等。

1.2 网络安全防范技术与系统

1.2.1防火墙技术

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

  • 根据网络协议栈层次,防火墙技术可以分为:包过滤(网络层)、电路级网关(传输层)和应用层代理技术(应用层)

  • 基本功能:控制在计算机网络中不同信任程度网络域之间实施网络安全访问控制。

  • 防火墙提供的安全功能

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

    • 1、来自网络内部的安全威胁;
    • 2、通过非法外联的网络攻击;
    • 3、计算机病毒传播。
  • 技术瓶颈问题

    • 1、针对开放服务安全漏铜的渗透攻击;
    • 2、针对网络客户端程序的渗透攻击;
    • 3、基于隐蔽通道进行通行的特洛伊木马或僵尸网络。

1.2.2防火墙部署方法

  • 包过滤路由器:将带有包过滤防火墙功能的路由器作为内部网络和外部网络之间唯一的连接点,路由器在完成其数据包路由转发基本功能的同时,将依据网络管理员配置的访问控制列表,对数据包进行过滤。
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第3张图片

  • 双宿主堡垒主机:与包过滤路由器非常相似,不同的是使用应用代理网关作为双素质堡垒主机,代替包过滤路由器。垒主机具有两个网络接口,一个使用公网IP地址连接外部网络,另一个使用私有IP地址连接内部网络,两个网络接口之间并不具备路由转发功能,而仅仅由应用代理服务器程序为特定的网络应用提供代理。
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第4张图片

  • 屏蔽主机:包过滤防火墙和应用代理技术的集成部署,采用了屏蔽路由和堡垒主机双重安全设施,所有进出内部网络的数据都要经过包过滤防火墙和堡垒主机,由包过滤防火墙进行网络层的访问控制,由堡垒主机进行应用安全控制,保证了网络层和应用层的双重安全。
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第5张图片

  • 屏蔽子网:是在屏蔽主机模式的基础上进行改进的防火墙部署模式。它与屏蔽主机模式的区别在于在应用代理及对外服务器所构成网段和内部主.机之间安装了第二个包过滤防火墙,应用代理及对外服务器所处的网段也被称为DMZ(非军事区)。在这种部署模式中,内部的包过滤防火墙能够在应用代理和对外服务器被攻破之后提供对内部网络的进一步安全防护能力。
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第6张图片

1.2.3 Linux开源防火墙:netfilter/iptables

  • 工作原理

    • netfilter:是Linux内核中实现的防火墙功能模块,位于Linu的内核空间中,实现了静态包过滤和状态报文检查(动态包过滤),也支持灵活可扩展的框架,支持NAT网络地址转换等其他额外功能,并提供了多层API接口以支持第三方扩展。

    • iptables:是应用态的防火墙管理工具,工作在Linux用户空间的防火配置工具,通过命令行方式允许用户为netfilter配置各种防火墙过滤和管理规则。

    • 三个最基本的规则表:包过滤处理的filter表、用于网络地址转换处理的nat表、以及用于特殊目的数据包修改的mangle表

    • netfilter/itables的缺省规则表/链
      20199308 2019-2020-2 《网络攻防实践》第6周作业_第7张图片

    • 图中五种规则链:

      • PREROUTING规则链的规则检查点为NF_ IP PRE _ROUTING,能够对所有进入主机的数据包进行检查,通常用于源地址NAT转换处理;
      • INPUT规则链的检查点在NF_ IP_ LOCAL_ IN, 对发往本地网络协议栈、由本地进程处理的数据包进行检查,通常用于过滤本地网络服务的连接;
      • FORWARD规则链的检查点在NF_ IP_ FORWARD,对经由本地进行路由转发的数据包进行检查,在本机作为路由器使用时,对通过的网络连接进行过滤,这个Hook点也是实现防火墙包过滤最主要的位置:
      • POSTROUTING规则链的检查点在NF_ IP POST _ROUTING,对本地协议栈发出和经由路由转发的数据包进行检查和处理,通常用于目的地址NAT转换;
      • OUTPUT链的检查点在NF_JIP_LOCAL_OUT,特别针对由本地进程通过本地TCP/IP协议栈发出的数据包进行检查。可以配置本地对外访问的限制措施以及目的网络地址转换处理。
  • 主要语法
    iptables [-t table] command [match] [target]
    其中-t是配置规则所在的表,缺省表包括filter,nat,mangle,raw,command部分是告诉iptables要做什么。

    • command:
      -A --append:命令将一条规则附加到链的末尾
      -D --delete:指定匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则
      -P --polic:设置链的缺省目标操作,所有与链中任何规则都不匹配的信息包都将被强制使用此链的策略。
      -N --new-chain:用命令中所指的名称创建一个新链。
      -F --flush:如果指定链,该命令删除链中所有的规则,如果为指定链名,该命令删除所有链中所有的规则,此参数用于快速清除。
      -L --list:列出指定链中所有的规则。
    • target
      ACCEPT:当信息包与具有ACCEPT目标操作的规则完全匹配时,会被接受(允许它前往目的地),并且它将停止遍历规则链。该目标操作被指定为-j ACCEPT
      DROP:当信息包与具有DROP目标操作的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。 该目标操作被指定为-j DROP。
      REJECT: 该目标操作的工作方式与DROP目标操作类似,但与DROP不同的是,REJECT 不会在服务器和客户机上留下死套接字。另外,REJECT 将错误消息发回给数据包的发送方。该目标操作被指定为j REJECT。
      RETURN:在规则中设置的RETURN目标操作让与该规则匹配的信息包停止遍历包含该规则的链。如果链是如INPUT之类的主链,则使用该链的缺省策略处理信息包。它被指定为-jumpRETURN

1.3 网络检测技术与系统

  • 入侵检测技术:最核心的任务是信息分析,从中识别出攻击行为。
  • 技术类型:误用检测(又叫特征检测)、异常检测(检测与正常用户在统计方面的差别)。二者通常结合使用,提高入侵检测系统的整体检测性能。同时,基于这两种技术,也可以对入侵检测系统进行分类。
  • 入侵检测系统的分类
    • 基于主机的入侵检测系统(HIDS):监视主机信息;
    • 基于网络的入侵检测系统(NIDS):以监听到的网络数据包作为分析数据源。
  • 入侵防御系统IPS:也叫内嵌式IPS,即对检测到的异常行为或者与特征库匹配的行为直接进行阻断,断开访问。
  • 开源网络入侵检测系统:Snort:
    • Snort除了是一款跨平台、轻量级的网络入侵检测软件之外,还具备数据包嗅探、数据包分析与记录等多种功能,还支持内联模式,可作为网络入侵防御系统使用。
    • snort功能:数据包嗅探、数据包记录和分析以及各种入侵检测功能。
    • snort的四个主要部件:
      • 数据包嗅探:将网卡设置为混杂模式,用libpacp函数来进行数据包监听和抓包。
      • 预处理器:用于弥补检测引擎检测能力的不足。主要有TCP/IP协议栈模拟、应用层协议解码、异常检测。
      • 检测引擎:是主题模块,主要包括规则库解析、多模式匹配、规则插件。
      • 输出模块:进行各种多样化的报警和日志记录。

1.4 网络安全事件相应技术

  • 网络安全事件:指影响计算机系统和网络安全的不当行为,包括:

    • 对CIA基本属性的破坏行为
    • 侦察性攻击
    • 抵赖
    • 骚扰性攻击
    • 敲诈
    • 传播色情或非法内容
    • 通过电子方式组织的犯罪活动
    • 在线欺诈和愚弄,等等。
  • 事件响应:指针对这些事发生后,所采取的措施和行动,旨在阻止和减小事件所带来的影响。

  • 涉及的关键技术

    • 计算机取证
    • 攻击追溯与归因
    • 备份恢复
    • 灾难恢复等。

二、实践过程

虚拟机 IP
kali 192.168.200.2
Metaspitable-Linux 192.1668.200.125
SEEDUbuntu 192.168.200.9
winxpattacter 192.168.200.4

动手实践:防火墙配置

配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:

  • 过滤ICMP数据包,使得主机不接收Ping包:
  • 只允许特定IP地址(如局域网中的Linux攻击机),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机)无法访问。

过程如下:
1、过滤ICMP数据包,使得主机不接收Ping包

  • 正常在SEEDUbuntu上ping主机kali,可以ping通:
  • 在主机kali上通过 iptables -L 查看规则,发现都是默认规则:
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第8张图片
  • 执行 iptables -A INPUT -p icmp -j DROP 指令使得主机不接受icmp的数据包。其中 -A 是追加新规则于指定链的尾部, INPUT 表示数据包入口(规则), -p 用于匹配协议, -j 用于指定如何处理(ACTION)。再次查看规则,发现多了一条icmp针对任何位置不允许访问的规则:
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第9张图片
  • 再次通过SEED ping 主机kali, ping 不通了:
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第10张图片
  • 执行 iptables -F 删除刚才设置的自定义规则。
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第11张图片

2、只允许特定IP地址(如局域网中的Linux攻击机192.168.200.2),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.168.200.4)无法访问

  • 首先确认kali和winxp都可以telnet靶机Meta:
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第12张图片
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第13张图片
  • 在Meta上sudo执行 iptables -P INPUT DROP //-P代表设置缺省目标操作 设置不接受任何包的规则,kali和winxp都telnet不到Meta了:


  • 在Meta上执行 iptables -A INPUT -s 192.168.200.3 -p tcp -j ACCEPT //-s指代源地址 设置只允许kali访问请求,可以用iptables -L查看规则:
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第14张图片
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第15张图片
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第16张图片
  • 最后删除自定义,恢复原状:
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第17张图片

动手实践:Snort

使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下。

  • 从离线的pcap文件读取网络日志数据源
  • 在snort.conf中配置明文输出报警日志文件
  • 指定报警日志log目录(或缺省log目录=/var/log/snort) 。

过程如下:

  • 对之前实验中用到的 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会话,还有一些ARP包:
    20199308 2019-2020-2 《网络攻防实践》第6周作业_第18张图片
  • 此时snort会在默认目录生成一个日志文件,进入查看日志文件 vim /var/log/snort/alert ,可以看到本次攻击是使用nmap发起的。攻击主机的IP地址是 172.31.4.178 ,网络扫描的目标IP地址是 172.31.4.188 。

实践作业

分析虚拟网络攻防环境中蜜网网关的防火墙和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 规则是如何自动升级的?

过程如下:

  • 上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?

    • 数据捕获:iptables可以通过记录日志的形式来捕获网络连接信息,包括源地址,目的地址,使用的端口和进行连接的协议、长度等等;Snort对符合入侵检测特征的攻击数据包发出响应的报警信息,从而标识网络流中存在的攻击事件。
    • 数据控制:查看rc.firewall文件:
      • 执行su -提权后执行vim /etc/init.d/rc.firewall,跳转到create_chain这一行,可以看到有个方法,这里面定义了一些数据控制的逻辑。创建黑名单,白名单,以及对各种协议的处理等。
        20199308 2019-2020-2 《网络攻防实践》第6周作业_第19张图片
        20199308 2019-2020-2 《网络攻防实践》第6周作业_第20张图片
  • 获取IPTables的实际规则列表、Snort 和 Snort_inline 的实际执行参数?

    • IPTables的实际规则列表,执行iptables -t filter -L查看:
      20199308 2019-2020-2 《网络攻防实践》第6周作业_第21张图片
      20199308 2019-2020-2 《网络攻防实践》第6周作业_第22张图片
    • Snort的实际执行参数,用 vim /etc/init.d/snortd 查看snort脚本文件,默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort。
      20199308 2019-2020-2 《网络攻防实践》第6周作业_第23张图片
      20199308 2019-2020-2 《网络攻防实践》第6周作业_第24张图片
    • Snort_inline实际执行参数,执行命令 vim /etc/init.d/hw-snort_inline 打开snort_inline的脚本文件,可以看到到实际执行的参数。
      20199308 2019-2020-2 《网络攻防实践》第6周作业_第25张图片
  • 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?

    • 使用chkconfig --list命令来对linux上运行的服务进行查询:
  • Bonus:蜜网网关中的 Snort 规则是如何自动升级的?

    • snort规则通过Oinkmaster进行升级。它在/etc目录下,可以直接查看。

      20199308 2019-2020-2 《网络攻防实践》第6周作业_第26张图片
      20199308 2019-2020-2 《网络攻防实践》第6周作业_第27张图片

三、实验总结

  • 参考:
    https://www.cnblogs.com/kevingrace/p/6265113.html
    https://searchsecurity.techtarget.com.cn/11-17451/
    https://www.cnblogs.com/yangdd/p/12646400.html#autoid-2-0-0
  • roo的翻页:
    正常应该是shift+page up/down就可以了,联想有的还需要带着Fn

你可能感兴趣的:(20199308 2019-2020-2 《网络攻防实践》第6周作业)