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

前提是你 提交于 2020-04-06 12:56:03

一.概况

本次作业属于哪门课 网络攻防实践
作业要求 网络安全防护技术
收获 对于网络安全防护有了更深的认识,以前考计算机网络技术三级的时候书上介绍过一些防护措施,现在通过重复学习和动手实践更加深了记忆和知识点的掌握

二、本周知识点总结

1.几种常用的安全模型(在网络安全与保密技术课上老师让整理过)

1.1.IATF

IATF 是由美国国家安全局组织专家编写的一个全面描述信息安全保障体系的框架,它提出了信息保障时代信息基础设施的全套安全需求。IATF创造性的地方在于,它首次提出了信息保障依赖于人、技术和操作来共同实现组织职能/业务运作的思想,对技术/信息基础设施的管理也离不开这三个要素。

IATF规划的信息保障体系包含三个要素:

  • 人(People): 人是信息体系的主体,是信息系统的拥有者、管理者和使用者。
  • 技术(Technology):技术是实现信息保障的重要手段,信息保障体系所应具备的各项安全服务就是通过技术机制来实现的。
  • 操作(Operation):或者叫运行,它构成了安全保障的主动防御体系。

1.2.PPDR

功能特性:

  • Policy(安全策略)  :PPDR安全模型的核心,描述系统哪些资源需要保护,如何实现保护。
  • Protection(防护)  :加密机制、数字签名机制、访问控制机制、认证机制、信息隐藏、防火墙技术等。
  • Detection(检测)   :入侵检测、系统脆弱性机制、数据完整性机制、攻击性检测等。
  • Response(响应)   :应急策略、应急机制、应急手段、入侵过程分析、安全状态评估等。

时间特性:

  • 攻击时间Pt  :黑客从开始入侵到侵入系统的时间(对系统是保护时间)。高水平入侵和安全薄弱系统使Pt缩短。
  • 检测时间Dt   :黑客发动入侵到系统能够检测到入侵行为所花费的时间。适当的防护措施可以缩短Dt。
  • 响应时间Rt  :从检测到系统漏洞或监控到非法攻击到系统做出响应(如切换、报警、跟踪、反击等)的时间。
  • 系统暴露时间Et=Dt+Rt-Pt :系统处于不安全状态的时间。系统的检测时间和响应时间越长,或系统的保护时间越短,则系统暴露时间越长,就越不安全。    
    如果Et小于等于0,那么基于PPDR模型,认为系统安全。要达到安全的目标需要尽可能增大保护时间,尽量减少检测时间和响应时间。

1.3.OODA

OODA循环又被称包以德循环,包以德循环的发明人是美国空军上校约翰·博依德(John Boyd),又被称为“疯狂的博依德”,凭借他战斗机飞行员的经验和对能量机动性的研究,发明了这一理论。尽管博依德循环的发明纯粹是军事目的,但是这一理论同样能够应用于残酷的商战。最初,他运用OODA循环来阐述的是空战中克敌制胜的战术,但是,在他职业生涯的最后几年,他把OODA循环阐发为一种战略,一种让敌人心理瘫痪的战略。
OODA循环分为观察Observe-调整Orient-决策Decide-行动Act四个阶段,我们按这四个阶段来描述它在网络安全运营平台建设中的具体应用。

  • 观察Observe阶段 : 在网络安全中,对自己的观察包括资产管理、漏洞管理,对敌人的观察包括各种威胁分析与检测技术应用,对环境的观察包括整体网络安全态势感知与可视化。
  • 调整Orient阶段 : 对应到网络安全中,战斗策略的调整是事前防御措施,包括定时漏洞扫描、打补丁、安全配置基线、黑白名单调整等;后方情报中心相当于威胁情报平台(TIP),包括多源威胁情报数据聚合、威胁情报多系统共享、威胁情报数据更新、威胁情报预警等;后方指挥中心相当于优化实时安全分析引擎(雷达),包括新增安全分析场景、调整安全规则与机器学习算法等。
  • 决策Decide阶段 : 战斗中的决策包括敌我识别、智能决策,对应网络安全的安全调查分析、安全处置建议。安全调查分析包括事件分析与回溯、攻击链还原、攻击溯源场景化;安全处置建议包括告警/风险优先级、攻击行为预测、解决方案建议等。
  • 行动Act阶段 : 在网络安全中,火力控制系统是指安全设备联动,如SIEM与FW、IPS联动;信息通讯系统是指安全预警通报系统,包括信息预警通报(短信、邮件等)、安全运营平台与工单系统对接等。协同作战是指安全应急处置,包括应急处理、系统恢复等。

2.防火墙技术

2.1.信息技术中防火墙的定义

指置于不同网络安全域之间,对网络流量和访问行为实施访问控制的一种安全设备或者软件。

2.2.防火墙分类

软件防火墙、硬件防火墙。
无论是软件防火墙还是硬件防火墙,共同点都是必须在网络安全域外界流量到达内部之前进行管控,即必须把防火墙部署在进入核心网络的入口。

2.3.防火墙的功能

防火墙可以在网络协议栈的各个协议层次实施网络访问控制,根据其工作的网络协议栈层次,可分为包过滤(网络层)、电路级网关(传输层)和应用层代理技术(应用层)。

  • 检查控制进出网络的数据流量:根据管理者预设的网络安全策略来决定对哪些数据包进行放行,哪些进行丢弃。
  • 防止脆弱或不安全的协议和服务
  • 防止内部网络信息的泄露
  • 对网络存取和访问进行监控审计
  • 防火墙可以强化网络安全策略并集成其他安全防御机制

2.4.防火墙的缺陷

  • 防火墙并不能防范来自网络内部的威胁
  • 防火墙不能清除病毒
  • 防火墙本身的安全问题容易被攻击者利用
  • 防火墙对于无线网络攻击防范无力:本周看了360无线电安全天马团队在2018年4月的HITB(欧洲顶级信息安全会议HACK IN THE BOX)大会上展示的Ghost Tunnel攻击方法的文章,这种攻击被称作隐蔽的信道攻击,攻击者能够对一台带无线网卡或者蓝牙的不联网电脑进行攻击,其利用了802.11协议中WLAN的连接机制进行攻击。利用HID设备对目标主机植入病毒,攻击者伪造AP进行主动发送Beacon信标帧标识自己的存在,病毒控制目标主机网卡进行被动扫描,发送Probe Request帧,攻击者收到后发出携带自己命令的Probe Response帧,目标主机上的病毒程序接受数据帧后进行拆分,提取攻击者的命令在目标主机上执行。这种攻击方法利用了WLAN连接三个阶段的扫描和请求响应阶段,而并没有建立真正的连接,所以即使在设备上显示wifi未连接也同样能够进行攻击,甚至能够向目标主机发送文件。

    网友提供的病毒源码和攻击端使用的源码地址:https://github.com/MRdoulestar/yunsle_ghost_tunnel

其中使用C/C++来写目标主机的病毒程序,调用了windows的Native API 来对网卡进行控制,攻击端使用python进行开发,运行在linux中,首先要把无线网卡设置为监听模式,其次安装scapy库才能够运行,在linux中执行apt-get install python-scapy,再执行攻击程序,当捕捉到病毒控制的目标主机网卡发来Probe Request帧,可向控制台输入命令,格式为 "cmd /c [命令]",例如"cmd /c notepad"发送打开计算器的命令,然后将该命令封装到Probe Response帧发出,病毒收到后拆解数据帧,提取命令并执行。

恰好有一块高中时买来破解wifi密码的无线网卡,所以对这种攻击方式进行了一个实践,其中一台电脑虚拟机中运行linux,挂载无线网卡,修改无线网卡名称为wlan0,开启监听模式,安装scapy库,执行攻击程序;另一台电脑在不连接任何网络的情况下执行病毒程序,攻击程序收到了病毒控制的主机发来的wlan请求帧,然后我们可以输入如打开记事本、计算器等命令,然后发现病毒所在的主机上执行了我们发送的指令,而其全程并未连接网络,很难发现这种攻击方式,防火墙也无能为力。

  • 我的无线网卡,放在窗外风吹雨打,定向天线烂的不成样子
  • 背面来张
  • 攻击机伪造AP,并监听Probe Request请求
  • 病毒运行,注意观察右下角,wifi是未连接状态
  • 捕捉到请求帧,输入命令打开计算器
  • 观察目标主机,病毒控制主机打开了计算器,注意右下角,wifi是未连接状态

3.VPN技术

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

4.入侵检测技术与系统IDS

4.1.入侵检测的概念

入侵检测就是对入侵行为的检测与发现,入侵检测技术是网络防护体系中的重要一环,已成为防火墙技术的补充。

4.2.入侵者分类

  • 外部渗透者;
  • 假冒者;
  • 违法者;
  • 秘密用户

4.3.入侵检测系统的性能指标

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

4.4.入侵检测技术

  • 误用检测
  • 异常检测

5.入侵防御系统IPS

入侵防御系统是在入侵检测系统的基础上发展而来的,与入侵检测系统采用旁路监听的方式只对入侵行为进行检测的方式不同,入侵防御系统采用直接在网络边界位置内联连接的方式,并在检测到入侵行为后采取阻断措施,侧重于极低的误报率和更高的处理性能。减小对正常访问的性能影响。

三、实践内容

1.防火墙配置

本次配置的是windows上的防火墙,要求是:1.过滤icmp数据包,不接收ping包;2.只允许特定的IP地址访问主机的某一服务,其他主机不允许访问。
实践步骤:

  • 首先打开windows主机防火墙配置,“控制面板-系统和安全-Windows防火墙”
  • 然后点击“高级设置-入站规则-新建规则”
  • 选择自定义
  • 如下图,过滤规则中协议类型选择icmp——v4,然后在自定义里设置icmp特定类型为回显请求,即ping。
  • 根据实践要求,要阻止ping,所以设置操作为当满足以上设置时阻止连接。
  • 设置完成以后,我这里还未启用防火墙,首先用linux来ping一下windows主机,是能够ping通的
  • 接下来启动windows防火墙,再进行ping测试,可以发现此时已经无法ping通了,使用wireshark抓包进行查看,linux一直在向windows主机发出回显请求,由于开启了防火墙,此时windows并未回复任何信息。

  • 实践要求中的第二项,设置防火墙规则为允许特定主机访问某项服务,其他主机不予权限访问。
  • 同样设置防火墙入站规则,新建规则,本次设定为只允许特定主机访问telnet服务,因此在防火墙策略里设置协议为tcp协议,端口选择23号,
  • 设置允许访问的远程ip,并将防火墙策略设置为允许连接

  • 设置完成后启动防火墙,在安全策略中留下的ip为linux主机ip地址,此时用linux主机对windows主机进行telnet登录,可以正常登录
  • 使用虚拟机中另外一台主机进行telnet连接,连接失败,设置的防火墙策略生效。

2.动手实践 snort

由于我电脑装的vm版本过低,无法使用Vmtool,因此我先把上次的listen.pcap文件使用sftp从物理机发送到虚拟机上。
然后使用snort对其进行分析,执行指令为snort -c /etc/snort/snort.conf -r listen.pcap,-c 表示选择snort配置文件,-r表示读取tcpdump文件进行分析

通过分析可以看到大部分数据流为tcp会话,仅仅有小部分为UDP会话,此时snort会在默认目录生成一个日志文件,其在snort.conf文件中配置过 alert信息,所以会在日志里生成警报信息。此时打开日志文件查看警报,执行命令为:/var/log/snort# vim snort.log.xxxx,此时发现一个问题,打开的日志文件全是乱码,无法查看有效信息,猜想应该是编码问题,经过查询资料得知需要在snort输出日志文件时需要在后面加上-K ascii,即使用ascii编码输出日志文件,用vim打开查看时才能正常显示。


由于执行过多次,生成了很多日志文件,分析时间,其中alert为本次执行生成的日志文件,打开查看


如上图所示,可以从数据包分析出攻击者使用了nmap工具进行了扫描,并尝试了DDOS攻击。

3.综合实践 分析蜜网网关的防火墙和IDS/IPS配置规则

任务说明:分析蜜网网关中的snort和iptanles是如何联动进行防御的

  • 上述脚本是如何实现蜜网的数据捕获和数据控制?
  • 获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
  • 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
  • Snort规则是如何自动升级的?
    分析:(1).首先要明确在蜜网网关中iptanles和snort各自的功能是什么,iptables主要负责对数据的放行(accept)、拒绝(reject)、丢弃(drop)规则制定,而Snort的主要作用是对整个网络起到预警作用,但是其并不能阻断攻击,所以必须要依靠防火墙来阻断攻击。通俗来讲就是snort制定一系列复杂的监控规则,一旦发现有违反snort规则的网络行为就发出预警信息,并通过一定机制将预警信息传送给iptanles,iptables使用这些预警信息生成安全策略,阻断违反snort规则的网络连接。关于iptables与snort联动的详细信息可以看这篇文章
    (2).iptables是如何实现数据控制的?
    首先可以打开iptables配置文件vim /etc/init.d/rc.firewall,分析防火墙配置文件如下图

    文件中使用了全局变量,即使用了$的变量,-n表示使输出中的IP地址和端口以数值的形式显示,而不是默认的名字,比如主机名、网络名、程序名,-e暂未找到其含义,-N表示根据用户指定的名字创建新链,总的来说就是创建两条规则链,即白名单和黑名单规则链。

    分析上图,规则跟创建黑白名单一样,创建一个叫做Fencelist的链和一个叫做FenceLogDrop的链,根据其注释信息了解到Fencelist即入侵防御系统中不允许被外部访问的蜜罐主机,Fencelogdrop不太理解啥意思。

    除此之外,iptanles中还创建了很多协议数据包的处理规则链,见上图,由于规则众多,不一一分析。

    iptables中的默认策略和本地策略,-P表示为链设置默认的target(可用的是DROP和ACCEPT),这个target称作策略,默认策略中无论是入站、出站还是路由转发,全部丢弃,本地安全策略则是进站和出站都为允许,因为是在本地通信,故不存在路由转发。
    (3).数据捕获机制
    无论是iptables还是snort,都能够通过记录日志的形式来捕获网络连接信息,其中至少包括源ip,目的ip,以及使用的端口和进行连接的协议等;此外,snort_inline是一个通过Snort修改而得的工具,它是把Snort透过libpcap撷取封包,改由透过iptables撷取封包,其用意主要是可以完全的监看到所有的封包,而会因为效能因素有丢封包的现象.并基于Snort规则的判断由iptables 决定封包是否丢弃,转向,修改或通过。
    (4).查看iptanles规则列表
    执行命令iptables -t [指定规则表] -L,其中指定规则表使用filter表,-L表示列表,奇怪的是,执行此命令,在蜜网网关中提示无此命令,查询资料也未能解决

    (5).查看snort执行参数
    执行命令vim /etc/init.d/snortd,snortd是snort启动的脚本文件,而snort.conf是具体预警的规则设定,分析下图中的snortd脚本,默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort。


    (6).查看snort_inline执行参数
    执行命令vim /etc/init.d/hw-snort_inline打开snort_inline的脚本文件,前面的几项大致同snort差不多,我们分析一些不一样的地方,如下图所示,snort_inline必须要求先安装QUEUE模块才能够运行,这里QUEUE模块的作用在于snort_inline和iptables通信,即将snort_inline通过QUEUE模块将防护规则传递给iptables,iptables根据防护规则执行安全策略,这也是为何snort是入侵检测系统,而snort_inline是入侵防御系统的原因。

    同时可以使用vim打开rc.firewall进行分析,使用/QUEUE进行检索信息,如下图,iptables启用了对于QUEUE传递信息的支持

    iptables对于QUEUE消息的处理,还有很多,这里仅分析了一个片段

    (7).防火墙、NIDS、NIPS是如何启动的?
    使用chkconfig -list命令来对linux上运行的服务进行查询,但是我在蜜网网关上执行此命令,仍然是提示无此命令,实践失败

    (8). Snort规则如何自动升级
    如果使用Snort,就可能发现有些默认规则没有用。你可能还发现需要的一些规则默认没有激活,而你可能需要修改一些规则。因为Snort需要像杀毒软件一样定期更新规则,每次下载新规则的时候都手动创建所有的变更不太实际。还有有一个免费的工具,叫做Oinkmaster,用于更新snort规则库,在蜜网网关中我们并不知道使用了哪个工具进行更新snort规则,首先从免费的开始,通过文档搜索,发现有一个名为Oinkmaster.conf的文件,可以断定为使用了该工具进行更新,打开看一下如下

    这里应该是更新的文件类型

    发现了snort.conf这个规则文件,可以断定使用了免费的工具Oinkmaster进行了snort规则的更新。

四、疑难

我的蜜网网关系统大部分在其他linux上能执行的指令都无法执行,提示无此命令,我看其他同学的蜜网系统无此问题,查阅百度也无结果。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!