20199126 2019-2020-4 《网络攻防实践》第六周作业

前言

这个作业属于哪个课程:https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589
我在这个课程的目标是:学习网络攻防技术相关知识,掌握相关技能。
这个作业在哪个具体方面帮助我实现目标 :初步学习网络安全防范技术。

1.实践内容

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

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

  • 防火墙安全功能:

    • 检查控制进出网络的网络流量
    • 防止脆弱或不安全的协议和服务
    • 防止内部网络信息的外泄
    • 对网络存取和访问进行监控审计
    • 防火墙可以强化网络安全策略并集成其他安全防御机制
  • 防火墙作为网络边界防护机制而先天无法防范的安全威胁:

    • 来自网络内部的安全威胁
    • 通过非法外联的网络攻击
    • 计算机病毒传播
  • 防火墙由于技术瓶颈问题目前还无法有效防范的安全威胁

    • 针对开放服务安全漏洞的渗透攻击
    • 针对网络客户端程序的渗透攻击
    • 基于隐蔽通道进行通信的特洛伊木马或僵尸网络
1.1.2 防火墙技术和产品
  • 包过滤技术:通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络的边界处。

  • 基于状态监测的包过滤技术:其维护所以通过防火墙的网络连接记录,并依此确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。

  • 代理技术:客户端首先与代理服务器创建连接,接着发出一个对另外的目标服务器的文件或其他资源的连接请求,代理服务器通过与目标服务器连接或从缓存中取得请求的资源,并返回给客户端。
    • 应用层代理技术:其工作在网络协议栈的应用层,针对某一种具体的应用层网络服务器提供细致而安全的网络保护,能够理解应用层协议的数据内容,并进行深入全面的安全检查,从而为网络访问提供更好的安全保障。

  • 电路级代理技术:其工作在传输层,原理与应用层代理基本相似。

  • NAT代理技术:NAT技术工作在网络层,由内部网络发往外部网络的IP数据包,使用了私有IP地址段作为其源地址,在到达NAT代理后,将会把源IP地址和源端口部分替换成代理服务器的IP地址和另一指定的源端口,同时NAT代理将维护地址转换映射列表,将转换之前的私有网段源地址和原先端口号及转换之后的源端口号之间的映射关系记录在这个列表中,以供NAT代理在接收到该网络连接的响应包时,将其目的地址和目标端口转换为私有网段地址和源端口号,并发送给私有网段中的客户端主机。

  • 防火墙产品:集成包过滤功能的路由器、基于通用操作系统的防火墙软件产品、基于安全操作系统的防火墙、硬件防火墙设备

  • 个人防火墙产品:Windows个人防火墙、天网防火墙、360安全卫士、瑞星等

  • 防火墙部署方法

    • 包过滤路由器:将带有包过滤防火墙功能的路由器作为内部网络和外部网络之间唯一的连接点,路由器在完成其数据包路由转发基本功能的同时,将依据网络管理员配置的访问控制列表,对数据包进行过滤。

  • 双宿主堡垒主机:与包过滤路由器部署不同的是使用应用代理网关作为双宿主堡垒主机,代替包过滤路由器

  • 屏蔽主机:实际是包过滤与双宿主的集成部署

  • 屏蔽子网:改进屏蔽主机的防火墙部署模式

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

  • IPtables用法:

    • 命令语法:

      $ iptables [-t table] cpmmand [match] [target]

      其中-t指定配置规则所在的表,缺省表包括filter、nat、mangle、raw等。

      command 部分是 iptables 命令的最重要部分,他告诉iptables命令要做什么,例如,插入规则、讲规则添加到链的末尾或删除规则。可以参考iptables命令使用详解

    • netfilter/iptables的NAT机制

      • IP伪装:iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j MASQUERADE使内部网络主机发出的数据包进行源IP地址伪装,使用防火墙外网IP地址。
      • SNAT机制:使用-j SNAT描述,用--to source描述要转换的IP地址。
      • DNAT机制:使用-j DNAT描述,用--to destination描述IP地址、范围或端口。
1.1.3 其他网络防御技术
  • VPN
  • 内网安全管理
  • 内容安全管理SCM
  • 统一威胁管理

1.2 网络检测技术与系统

1.2.1 入侵检测技术概述
  • 入侵检测技术评估指标:检测率和误报率

    • 检测率是指入侵检测系统捕获到的攻击行为数目和全部攻击数目之比
    • 误报率是指入侵检测系统对正常行为的误报数目与入侵检测系统所输出的全部报警数目之比。
  • 入侵检测技术

    • 误用检测:其通过收集已知入侵行为的特征并进行描述,构成攻击特征库,然后对收集信息进行特征模式匹配,所有符合特征描述的行为均被视为入侵。
    • 异常检测:假设入侵者行为与正常用户行为具有差异性,利用差异可以检测出入侵行为。
  • 入侵检测系统的分类与部署

    • 基于主机的入侵检测系统( Host-based IDS, HIDS ):HIDS一般用来监视主机信息,其数据源通常包括操作系统审计记录、系统调用序列、应用程序审计信息等
    • 基于网络的入侵检测系练(Network-based IDS, NIDS):NIDS以其监听到的网络数据包作为分析数据源。
  • 入侵防御系统IPS

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

1.2.2 Snort
  • snort特性与基本架构
    • Snort被设计成-一个跨平台、轻量级的网络入侵检测系统,用C语言编写,并采用了标准的捕获数据包函数库libpcap,具有非常好的可移植性。目前Snort 可以在包括x86、SPARC、PowerPC、Alpha等指令集平台架构.上的Linux、Windows、MAC OS,以及各种UNIX操作系统上运行。Snort具有强大的功能:数据包嗅探、数据包记录和分析,以及各种入侵检测功能。Snort在设计时采用了注重高性能、简单和灵活的原则,并采用一套源码级插件机制,作为系统扩展的手段。Snort 软件的基本架构主要由四个基本部分组成:
      • (1)数据包嗅探/解码器( sniffer);
      • (2)预处理器/插件(preprocessor);
      • (3)检测引擎/插件(detection engine);,
      • (4)输出模块/插件(output modules).
  • snort的实现机理
    • Snort中四个主要部件以及处理过程描述如下。
      • ①数据包嗅探/解码器。首先,利用libpcap从网卡或离线记录中捕获数据包,然后数据包经过解码器填入到链路层协议的包结构体中,以便对高层次的协议进行解码,如TCP/UDP层。
      • ②预处理器/插件。接着数据包被送到各种各样的预处理插件中,在检测引擎之前对数据包进行检查和操作。每个预处理插件检查数据包是否应该注意、报警或者修改某些东西。
      • ③检测引擎/插件。随后,包被送至检测引擎,检测引擎首先通过各种规则文件中定义的匹配字符电特征来对每个包的信息进行快速的模式匹配检测,然后由各种检测插件对包提供额外的检测功能。规则中每个关键字选项对应于检测引擎插件,能够提供不同的检测功能。
      • ④输出模块/插件。对之前各个部件产生的报警/日志信息,根据用户配置,调用相应的输出插件进行发送和记录。

snort的使用可以参考Snort 命令参数详解

1.3 网络安全事件响应技术

网络安全事件响应是P2DR模型中响应环节的关键技术手段。所谓网络安全事件,指的是那些影响计算机系统和网络安全的不当行为,这些行为包括传统意义上对CIA基本属性(即机密性、完整性和可用性)的破坏行为,以及侦察性攻击、抵赖、骚扰性攻击、敲诈、传播色情或非法内容、通过电子方式组织的犯罪活动、在线欺诈和愚弄等其他类型事件。事件响应是指针对这些事件发生后,所采取的措施和行动,旨在阻止和减小事件所带来的影响。

  • 网络安全事件响应组织与机构
    • 计算机安全事件响应小组(Computer Security Incident Response Team, CSIRT)
    • 计算机事件响应协调中心(CERT/CC)
    • 美国国家计算机紧急响应小组(US-CERT)
    • 中国教育和科研计算机网紧急响应组CCERT
    • 中国国家级计算机网络应急技术处理协调中心(CNCERT/CC)

2.实践过程

2.1 手动实践:防火墙配置

实践任务:配置Linux操作系统子台上的iptables, 或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192. 168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.168.200.4)无法访问。

本实验使用linux上的iptables,我们先用主机Bping一下主机A192.168.200.2,如下图:

运行正常,然后执行iptables命令iptables -A INPUT -p icmp -j DROP,如下

再用主机Bping一下主机A,得到结果

由于使用DROP,主机丢弃ICMP包并不会返回信息,所以图中显示请求过时。
进行第二步,只需要使用命令iptables -A INPUT ! -s 192.168.200.3 -p icmp -j REJECT ,如下

表示除192.168.200.3外拒绝ICMP报文
结果如下


因为此时使用了REJECT,所以metaploitable主机显示目标端口不可达
当然,此时查看iptables规则表可以看到如下

使用iptables -F可以删除规则表中内容,回归默认ACCEPT设置

2.2 手动实践:Snort

任务:使用Snort对给定pcap文件(第4章中的解码网络扫描任-一个peap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下。
●从离线的pcap文件读取网络日志数据源。
●在snort.conf中配置明文输出报警日志文件。
●指定报警日志log目录(或缺省log目录=var/log/snort) 。

使用snort命令snort -c /etc/snort/snort.conf -r listen.pcap -K ascii,即可用ascii码输出日志文件alert,如下图

使用vi打开

可以看到攻击机使用了nmap扫描工具并使用了DDOS攻击

2.3 章末实践

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

snort进行数据捕获,firewall进行数据控制,打开rc.firewall,可以看到create_chains中新建了许多规则链,包括黑名单链、白名单链、防护链等

同时有默认规则、本地规则、管理规则

防火墙开启后根据先前规则链及定义的规则函数过滤数据包

而由于snort只能进行检测而不能进行阻隔,所以通常snort检测数据包时,根据检测结果向iptables发送规则信息,在iptables中建立响应的过滤规则阻断问题数据包的输入。

上图部分iptables实际规则列表,而下图为snort参数

vim hw-snort_inline查看snort_inline实际执行参数,可以看到-c -d -D -Q -l等参数及其说明

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

上图可以看出iptables和hw-snort_inline在无网络连接的多用户命令行模式下开始启动,而snortd不会自启动

使用vim /etc/honeywall.conf查看配置文件,如下

可以看到使用Oinkmaster进行更新,参照Oinkmaster使用

3.实践总结

许多内部文件看起来复杂,其实根据其注释、按照条理还是可以明白大部分内容的。

参考资料

posted on 2020-04-06 22:20  符原  阅读(421)  评论(0编辑  收藏  举报