网络安全风险评估之脆弱性识别
一次性进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:16004488
微信公众号:计算机与网络安全
ID:Computer-network
一、脆弱性概述
脆弱性也可称为弱点或漏洞,是资产或资产组中存在的可能被威胁利用造成损害的薄弱环节。脆弱性一旦被威胁成功利用就可能对资产造成损害。脆弱性可能存在于物理环境、组织、过程、人员、管理、配置、硬件、软件和信息等各个方面。
脆弱性是与资产紧密相连的,是其固有的属性,客观存在是绝对的,但存在脆弱性不一定就绝对造成安全事件。如果没有被相应的威胁利用,单纯的脆弱性本身不会对资产造成伤害。从这点而言,脆弱性又是相对的。与“脆弱性”相对的概念是“坚固性”,这两者在一定条件下也会相互转化,所以脆弱性一方面是资产的固有属性,但另一方面其显性的程度会随着资产的变化而变化,如果资产足够强健,严重的威胁也不会导致安全事件的发生并造成损失。网络与信息系统的防御者总是不停地与攻击者赛跑,力争在被威胁利用之前弥补自身的脆弱性。
脆弱性可以从技术和管理2个方面来理解。技术层面的脆弱性主要与资产本身的属性有关,最典型的就是操作系统和应用软件的漏洞;管理层面的脆弱性则包括安全管理体系不完备和管理制度体系没有得到有效的贯彻执行。
(一)脆弱性的相关要素
脆弱性是风险评估的重要元素。风险评估围绕着资产、威胁、脆弱性和安全措施这些基本要素展开,在对基本要素的评估过程中,需要充分考虑业务战略、资产价值、安全需求、安全事件、残余风险等与基本要素相关的各类属性。这些基本要素及其相关属性之中,与脆弱性直接相关并具有重要影响的包括资产、威胁、安全需求以及风险本身。这5个要素之间的关系如下图所示。具体包括资产的脆弱性可能暴露资产的价值,资产具有的脆弱性越多则风险越大,脆弱性是未被满足的安全需求,威胁利用脆弱性危害资产。
脆弱性的相关要素
(二)信息系统的脆弱性
从整体上看,信息系统在设计、实现、应用和控制过程中存在的一切可能被攻击者利用从而造成安全危害的缺陷都是脆弱性。信息系统遭受损失最根本的原因在于其本身存在的脆弱性。信息系统的脆弱性主要来源于以下4个方面。
1、网络与信息系统的软硬件安全漏洞
由于网络与信息系统在硬件、软件、协议设计与实现等过程中以及系统安全策略上都不可避免存在缺陷和瑕疵,从而造成了攻击者可以利用它们实施攻击。如编程过程中由于疏忽而导致逻辑错误;数据处理比数值计算更容易发生逻辑错误;软件模块的复杂调用关系给软件维护带来困难;不同种类的软硬件设备、同种设备的不同版本,甚至不同设备构成的不同系统之间的相互协调都存在不同的安全问题。利用这些安全漏洞,攻击者获得网络与信息系统的额外权限,窃取机密信息或损害完整性、可用性。
2、网络结构的复杂性与自组织性
由于互联网最初被设计为一个开放的接入模型,时至今日,互联网已经成为全球最大的复杂系统,数以亿计的网络节点和网络链路导致其结构根本无法探明,网络连接结构也随时发生动态变化,导致各种脆弱因素因为网络连接而错综复杂地关联在一起。病毒、木马及网络蠕虫等恶意代码在互联网的传播具有明显的分岔、混沌等非线性复杂动力学行为特征。这些因素都给互联网环境下的脆弱性分析带来了极大的困难。
3、用户网络行为的复杂性
互联网的不同部分有不同的所有者,具有不同的经济动机,但他们通过合作提供端到端的全面服务。互联网跨越了不同的地域、民族、习俗、法律和公约。网络在设计之初是无法周全考虑到人们日后的复杂行为,当前掌握网络知识的人数迅速增长,使大量人员了解网络系统脆弱性甚至拥有了实施网络攻击的技能。网络系统广泛采用标准协议,攻击者更容易获得系统或网络漏洞,攻击代价降低。因此,一些网络的既定构件在新的用户行为下成为了新的脆弱性,从而导致网络安全防范工作陷入到“道高一尺,魔高一丈”的循环对抗中。
4、安全措施本身带来的脆弱性
脆弱性与时间紧密相关。随着时间的推移,旧的脆弱性会不断得到修补或纠正,新的脆弱性会不断出现。网络中的软硬件设备可能在尚未完善时就投入使用,为了弥补系统中原始的脆弱性而采用的各种控制措施往往会带来新的脆弱性。一些新增加的安全措施本身也不安全,由此带来了新的安全问题。
(三)脆弱性识别
脆弱性识别指分析和度量可能被威胁利用的资产薄弱点的过程,是风险评估中的重要环节。脆弱性识别以资产为核心,针对每一项需要保护的资产,识别可能被威胁利用的弱点,并对脆弱性的严重程度进行评估,进行定性或定量的赋值。脆弱性识别的依据可以是国际或国家安全标准,也可以是行业规范、应用流程的安全要求。评估者应从安全策略和安全需求的角度出发,综合考虑、判断资产的脆弱性及其严重程度。信息系统所采用的协议、应用流程的完备与否、与其他网络的互联等也应考虑在内。
脆弱性识别的数据应来自于资产的所有者、使用者以及相关业务领域和软硬件方面的专业人员等。脆弱性识别所采用的方法主要有问卷调查、访谈、工具检测、人工核查、文档查阅和渗透性测试等。
二、脆弱性识别
脆弱性识别分为脆弱性发现、脆弱性分类、脆弱性验证和脆弱性赋值4个部分。下面分别阐述其具体含义和方法。
(一)脆弱性发现
脆弱性识别工作首先要根据每一个具体的资产来寻找其脆弱性。如在评估过程中,针对某个单位信息系统所采用的Web服务器、数据服务器等,通过脆弱性发现工具来寻找其脆弱性。脆弱性发现工具不但可以提高评估效率,更重要的是能够集中应用安全领域的专家知识。
脆弱性发现工具主要用于对信息系统的主要部件(如操作系统、数据库管理系统、应用软件、网络设备等)的脆弱性进行分析,又称为安全扫描器、漏洞扫描器等。国内外一些安全厂商或专业机构提供了用于脆弱性发现的专业设备,另外也可使用一些流行的脆弱性发现工具。需注意的是,这些软件本身带有诸多攻击性测试功能,如果使用不当,在评估信息系统安全隐患的同时,也可能给系统带来新的风险。如Nessus是一个功能比较齐全而又易于使用的远程扫描软件,主要功能是对指定网络进行安全扫描,找出网络中存在的脆弱性。Nessus被设计为Client/Server模式,客户端用来配置管理服务器端,服务器端负责进行安全扫描,采用了plug-in(插件式)设计,允许用户加入特定功能的插件,有效提升了软件的扩展性。
目前,常见的脆弱性发现工具分为以下2种类型。
1、基于主机的扫描分析
基于主机的扫描分析是在目标系统上安装漏洞扫描工具,对本地文件内容、系统设置以及其他同安全规则抵触的对象进行扫描分析。通常基于主机服务器的三层体系结构,包括扫描控制台、扫描管理器和扫描代理。每个目标主机都安装扫描代理,向扫描管理器进行注册,扫描控制台通过管理器下发扫描指令和回收扫描结果。基于主机的扫描分析的优势是可以更加准确地发现系统漏洞,能够访问目标系统的所有文件与进程,网络性能影响小;劣势是扫描效率较低,远程渗透能力较弱等。
2、基于网络的扫描分析
基于网络的扫描分析是向目标系统发送特殊构造的数据分组,通过查看对方的反应以及应答形式和内容,判断目标系统是否存在已知的脆弱性。基于网络的扫描分析的优势是通用性强、安装方便、扫描效率高;劣势是不能检查不恰当的本地安全策略,影响网络的性能。
在条件允许的情况下,评估人员可以使用不同的脆弱性发现工具对同一对象(特别是那些对组织业务战略起到核心作用的信息资产)进行扫描并对比其结果。不同工具的设计思想有所不同,或者在扫描结果输出方面有差异,这些差异有助于评估人员从不同的角度来发现系统存在的安全隐患。
评估过程中不能满足于发现操作系统(特别是Windows系统)的脆弱性,还应重点关注各种设备。国际权威组织发布的脆弱性信息(如CVE)中,也包括了大量网络设备、存储设备、安全设备所存在的脆弱性信息。评估人员需要根据资产的实际情况(设备型号、软件版本等)来核查资产是否存在相应的脆弱性。
总之,脆弱性发现是风险评估工作中对技术要求最高的部分,需要评估人员逐步积累测评经验,并站在系统工程的角度来综合考虑。因此,建立一支技术过硬、保障有力的信息安全测评队伍对于国家信息安全保障体系具有重要作用。
(二)脆弱性分类
完成脆弱性发现工作后,需要对这些脆弱性进行分类。在现代的网络与信息系统中,脆弱性存在于信息环境资产、公用信息载体资产和专用信息及信息载体资产中,也可以将脆弱性分为技术和管理2个方面。其中,技术脆弱性涉及物理环境层、设备和系统层、网络层、业务/应用层等各个层面的安全问题;管理脆弱性又可分为技术管理脆弱性和组织管理脆弱性两类,前者与具体技术活动相关,后者与管理环境相关。对不同的评估对象,其脆弱性识别的具体要求应参照相应的技术或管理标准实施。下表给出了一种针对脆弱性的分类方法。
脆弱性分类
(三)脆弱性验证
脆弱性发现工具的输出结果是否完全可信?是否代表被测系统真正存在这些脆弱性?这些都需要进行验证。脆弱性验证是指在发现脆弱性之后,为了核实其真实性和客观存在性,通过在线或仿真环境,重现该脆弱性被发现和被利用的过程。
1、脆弱性的在线验证
由于在测评工作中,被测评的对象往往是在线运行的关键系统,所以脆弱性验证工作要考虑到尽量不影响被测系统的正常运行。测评人员可以选择避开系统的业务高峰期进行脆弱性验证(如夜晚、周末或假期)。同时要注意开展脆弱性验证工作之前要做好各种应急预案,特别是牵涉到核心业务数据的时候,要有备份和应急恢复的方案。
2、脆弱性的仿真验证
对于业务连续性要求极高的机构(如金融、电力等),测评人员可以选择仿真验证的方式。仿真度越高,验证结果就越可靠。可以选择那些对组织的业务既关键,同时又比较容易实现的仿真方案,如操作系统、数据库管理系统的漏洞仿真测试。仿真验证的好处是不会影响实际的被测系统,测评工作可以开展得更为全面和深入。
为了更好地验证脆弱性以及脆弱性被利用后造成损害的程度,在获得用户授权的情况下,可以考虑在可控范围内通过真实模拟攻击者使用的工具、技术和方法,对被测系统展开渗透性测试。渗透性测试工具是常用的脆弱性验证工具,它根据脆弱性发现工具的扫描结果进行模拟攻击测试,判断脆弱性被攻击者利用的可能性。这类工具通常包括特殊功能的软件、脚本、恶意代码等。渗透性测试工具在使用中应尽量避免对被测系统带来的影响。
需要指出的是,对待脆弱性要持有客观的态度,并不是所有(包括已验证的)脆弱性都需要加以重点关注,并不是所有漏洞都需要打上补丁。有的时候安装补丁程序尽管修补了设备或软件的漏洞,但随之而来的是整个系统运行效率的急剧下降,这就需要在测评过程中采用系统工程的思想来解决实际问题。此外,有不少脆弱性可以通过系统整体的防御能力来予以化解,所以在处理这些实际问题的时候,需要测评人员根据实际情况予以全局考虑。
(四)脆弱性赋值
为了科学地把握脆弱性严重程度的大小,要对脆弱性的严重程度进行赋值。赋值时应该综合考虑以下3个方面。
1、脆弱性对资产的暴露程度
所谓脆弱性对资产的暴露程度,可以从技术和管理2个方面来理解。如在技术层面,某应用服务器存在弱口令漏洞,一旦猜解破译就能轻松地控制这台设备,因此弱口令对该服务器的暴露程度就很高,或管理体系中存在的“结构脆弱性”,这一脆弱性如果不及时加以弥补,会给整个系统带来高危风险。所以一旦在评估过程中发现这类问题,就应该给予高度重视。事实上,国家有关测评标准中对一些关键的脆弱性采用“一票否决制”来说明其重要程度。
2、脆弱性被利用的难易程度
这是指要成功利用该脆弱性,攻击者所需要具备的技术实力以及所需要花费的资源成本。在互联网快速发展的今天,诸多技术和工具软件均可以在网络上获得,但这并非意味着该脆弱性被利用的门槛就一定非常低。事实上,在一个管理制度非常完善的组织内部,即使外部威胁很严峻,也能够有效防御各种来自互联网的威胁。例如,目前,通过存储介质和电子邮件进行木马、蠕虫等病毒的传播非常普遍,但是如果一个单位对核心设备、终端的USB端口以及电子邮件内容进行了有效监控和管理,就能很大程度上避免由此带来的损失。在这种情况下,即使该脆弱性非常容易被利用,但给予它的赋值也可适当降低。
3、脆弱性的流行程度
根据漏洞数据库(如CVE)的信息,有些脆弱性是目前公认的“高危漏洞”,这类漏洞一旦被利用会给系统带来严重影响。因此,评估人员发现此类脆弱性时,应当向评估单位及时说明,并建议尽快进行处理。如核心服务器操作系统存在的缓冲区溢出漏洞,既可以通过及时下载补丁的方式,也可以通过调整外围安全防护设备的访问控制策略(如封闭利用该漏洞的通信端口)等方式予以解决。但在解决之前,应当对该脆弱性严重程度赋予较高的等级,以引起相关人员的重视。
与威胁赋值一样,下面给出一种针对脆弱性严重程度的赋值,如下表所示。
脆弱性严重程度赋值
三、脆弱性识别案例分析
下面以A公司的生产系统为例,介绍脆弱性识别过程。
(一)系统介绍
该生产系统由生产监控系统和运营实时监测系统组成。系统通过网络收集各站点的实时生产数据,对其进行分析、监控和调度,调配各生产一线的成品输出,使各区域的供应能力保持在合理的水平上。该系统的业务数据主要包括成品质量数据、生产现场状态数据、各区域消费数据等。该系统在获取各监测数据的同时,通过Web方式发布主要的监测数据。具体网络拓扑如下图所示。
A公司生产系统网络拓扑
该系统是一个专用网络,网络中仅运行生产系统,无其他业务。机房位于办公楼底楼,由旧机房改造而成。整个网络结构由核心区、互联网接入区、站点接入区、运维区和 DMZ区构成。该系统边界上部署了2台防火墙设备,连接至互联网和外联单位。各站点通过ATM连路由器接入中心网络。各区域网络连接和业务部署情况如下。
1、核心区
该区域部署有生产系统的数据服务器、应用服务器,服务器直接连入核心交换机;互联网接入区和站点接入区分别通过防火墙和路由器接入该区域。
2、互联网接入区
部署对互联网以及外联单位的接入业务,该区域部署有Juniper防火墙和ASA防火墙各一台。
3、运维区
部署运维管理终端设备接入。运维终端部署为特定网段,通过一台交换机连接到核心交换机。
4、站点接入区
部署各站点的接入业务。各站点通过ATM链路接入到Cisco路由器,再连接到核心交换机,该接入路由器还配备了一台冷备机。
5、DMZ区
部署该生产系统对外数据交换业务。此区域部署了对外进行数据交互的服务器群,所有服务器通过一台交换机接入到Juniper防火墙。
该系统由A公司委托B公司开发建设,由A公司信息中心负责系统和机房环境维护,A公司事业部使用该系统进行生产调度控制。该系统是A公司信息化的一期建设项目,公司尚未建立完善的信息安全管理体系,目前,公司成立了安全生产委员会负责安全生产相关的组织工作,由信息中心具体负责信息安全管理工作,并直接向安全生产委员会报告。
(二)资产识别
从该生产系统的业务功能和安全需求出发,对系统内的资产进行识别,系统内资产包括硬件资产、数据资产、制度资产、人员资产、物理环境资产等。其中,硬件资产清单如下表所示。
硬件资产清单
数据资产清单如下表所示。
数据资产清单
制度资产清单如下表所示。
制度资产清单
人员资产清单如下表所示。
人员资产清单
物理环境资产清单如下表所示。
物理环境资产清单
通过上述对A公司生产系统的资产调查和分析得知,A公司生产系统中包含32件资产,该系统属于中等规模系统,网络拓扑结构和边界较为清晰,业务流程规范。但该系统属于新建系统,为A公司信息化一期工程,A公司缺少信息系统安全建设和运维经验,因此在安全配置和安全管理方面经验不足,系统存在潜在脆弱性的可能性较大。下面围绕系统的资产,结合前面介绍的脆弱性识别和赋值的方法,分析得出A公司生产系统的技术脆弱性和管理脆弱性。
(三)技术脆弱性识别及赋值
系统的技术脆弱性主要存在于系统的物理环境、网络结构、系统软件、应用系统等方面。
1、物理环境脆弱性
A公司机房是由旧机房改造而成,位于办公楼底楼,基础条件不太好。A公司考虑到机房重建成本较大,选择通过机房改造和加固的方法使机房达到一定的安全防护级别,满足稳定、可靠和安全的要求。通过现场核查,发现A公司机房改造后满足了温湿度控制、防盗窃、防静电等要求,但在防水、防火、电力供应、电磁防护等方面还存在不足,具体的物理环境脆弱性评估结果如下表所示。
机房及其物理环境脆弱性评估结果
2、网络结构脆弱性
A公司生产系统网络结构可以划分为通信载体、安全防护载体、信息终端及存储设备等。通信载体主要指网络各部分进行通信和数据交换的网络设备,包括路由器和交换机等。安全防护载体主要指对系统中各种设备以及通信数据信息进行保护的各种安全设备,包括防火墙、入侵防范、物理隔离、信息过滤、安全审计等产品。信息终端则是进行信息交互的各种主客体,包括各种服务器、终端等。经过评估分析,A公司网络结构方面的脆弱性主要表现在鉴别信息未加密传输、缺乏网络资源控制机制、缺乏地址绑定机制等,具体如下表所示。
网络结构脆弱性评估结果
3、系统软件和应用系统脆弱性
使用脆弱性发现工具对A公司生产系统进行扫描,发现了针对操作系统、数据库管理系统等系统软件和 Web 应用服务系统的脆弱性,存在于系统中的 SQL Server(资产编号ASSET_01)、Web DB(资产编号ASSET_03)、App Web(资ver(资产编号ASSET_01)、Web DB(资产编号ASSET_03)、App Web(资产编号ASSET_04)、App Server (资产编号ASSET_02)、Anti Server(资产编号ASSET_06)。下表列出了系统软件和应用系统的脆弱性。
系统软件和应用系统脆弱性评估结果
(四)管理脆弱性识别及赋值
系统的管理脆弱性主要存在于安全管理制度、安全管理机构、人员安全管理、系统建设管理和系统运维管理等方面。
1、管理制度脆弱性
A公司生产系统是该公司信息化的一期项目,该公司信息化管理工作尚不完善,信息安全管理工作存在较严重的缺失。该公司根据实际业务需要成立了安全生产委员会,负责生产安全管理工作,其中,包括了信息安全管理工作。安全生产委员会组织建设了一批安全管理相关的规章制度,如《IT机房安全管理规定》对机房基础设施管理、人员和设备进出管理、工作人员值守等方面进行了指导性的规定;《网络安全管理制度》和《系统安全管理制度》对系统中的线路、网络设备、安全设备、服务器、终端等制定了统一的管理要求,但是该管理要求粒度较粗,无法对实际操作进行指导,还需进一步根据设备类型和品牌型号制定详细的操作手册;《安全生产管理制度——公司信息系统安全使用规定》规定了便携式和移动式设备的接入管理方法,但缺少系统外联的管理规定。
除制度和详细操作规程的缺失外,该系统还存在安全管理制度不适用,无法满足实际操作需求,缺少相应的策略说明和技术支撑,造成安全管理制度执行难的情况。因此,该系统管理制度的脆弱性评估结果如下表所示。
管理制度脆弱性评估结果
2、人员管理脆弱性
人员管理脆弱性主要体现在对人员的录用、在岗管理、离岗管理、培训、考核、访问控制等方面。A公司与生产系统相关的人员包括信息中心工作人员、事业部工作人员以及安全生产委员会成员。A公司在人员管理方面建立了较为完善的管理体系,包括严谨的录用前审查、签订劳动合同、在岗期间的岗位技能培训、较为明确的岗位分工以及离岗管理措施。但是,A公司在信息安全相关的人员管理中仍存在一些疏漏,主要表现在:关键岗位人员未签署岗位安全协议;未设立专职的安全管理员,安全管理岗位由网络管理员兼任;未定期对员工进行安全教育和基础知识培训,员工信息安全意识不强等。
人员管理脆弱性的评估结果如下表所示。
人员管理脆弱性评估结果
(五)脆弱性验证
下面从已识别的脆弱性中挑选部分内容进行仿真实验,以帮助了解脆弱性被成功利用后的危害。
1、“Apache Struts 远程命令执行”漏洞仿真实验(CVE 2013-2251)
(1)仿真实验案例描述
根据扫描结果,生产系统中的Web数据发布应用服务器App Web存在“Apache Struts 远程命令执行”漏洞,该服务器操作系统为Windows 2008 Server,安装有JDK 1.8和Apache Tomcat 8.21。本实验针对Apache Struts框架多个远程命令执行的漏洞,搭建仿真平台,进行仿真渗透测试,验证该漏洞被利用后对系统造成的影响。
(2)仿真实验平台描述
用一台安装有Windows 2008 Server操作系统的PC模拟存在漏洞的服务器(以下简称“被攻击机”),与安装Linux操作系统的攻击机配置在同一子网中。被攻击机IP地址设置为192.168.90.27,攻击机IP地址设置为192.168.90.26,仿真实验平台网络环境如下图所示。
“Apache Struts多个远程命令执行”漏洞仿真实验测试平台
(3)仿真实验预期结果描述
“Apache Struts 远程命令执行”漏洞被成功利用后,攻击机可以向被攻击机发送木马程序,并获取被攻击机控制权。
(4)仿真实验步骤
在被攻击机上安装有JDK 1.8和Apache Tomcat 8.21,搭建使用Struts 2.3.15版本框架的Tomcat网站,使用默认配置,网站访问端口选择8080。
在攻击机上打开命令窗口,测试是否与被攻击机联通,如下图所示。
攻击机与被攻击机网络联通
使用攻击机尝试访问http://192.168.90.27:8080,如下图所示。
被攻击机Web服务已开启
在攻击机利用CVE 2013-2251漏洞,使用metasploit工具发起http请求,并利用http向被攻击机放置木马程序,如下图所示。
向被攻击机放置木马程序
激活木马程序,在攻击机控制被攻击机,可查看被攻击机桌面,如下图所示。
控制被攻击机桌面
上述攻击利用目标系统的CVE 2013-2251漏洞,通过http提交特殊URL将木马程序上传至被攻击主机,并获取被攻击主机的控制权。
通过仿真实验,说明使用Struts 2.3.15版本框架的Tomcat网站是一个不安全的架构,攻击者很容易利用CVE 2013-2251漏洞执行任意代码。该Web数据发布应用服务器App Web服务器是生产系统的数据发布平台,一旦被攻击将造成数据发布功能不可用,严重的可能被攻击者利用发布不良信息,造成恶劣影响。
2、共享文件夹匿名可写(OSVDB 2013-2251)
(1)仿真实验案例描述
被攻击机搭建CIFS共享文件夹,存在共享文件夹匿名可写漏洞。
(2)实验平台描述
用一台安装有Ubuntu操作系统的PC模拟存在漏洞的服务器,与安装Linux操作系统的攻击机配置在同一子网中。被攻击机IP地址设置为192.168.0.187,攻击机IP地址设置为192.168.0.188,仿真实验平台网络环境如下图所示。
“共享文件夹匿名可写”漏洞仿真实验测试平台
被攻击机上安装samba服务,使用默认安装,配置共享文件夹可读写,配置完后可访问被攻击机的共享目录,如下图所示。
被攻击机共享文件夹
(3)仿真实验预期结果描述
攻击机利用“共享文件夹匿名可写”漏洞,通过向被攻击机共享文件夹写入链接文件,可获取被攻击机任意目录的访问权限。
(4)仿真实验步骤
攻击机通过攻击工具metasploit,使用CIFS协议在被攻击机的共享文件夹中创建链接文件,链接指向被攻击机根目录,如下图所示。
在被攻击机共享文件夹中创建链接文件
攻击机可通过访问共享文件夹中的链接文件,跳转至被攻击机根目录,从而获取被攻击机所有文件的访问权限,如下图所示。
获取被攻击机根目录浏览权限
上述攻击利用目标系统的OSVDB62145漏洞,通过攻击工具metasploit在被攻击机的共享文件夹中创建链接文件,通过链接文件跳转至被攻击机根目录,从而获取其他目录的访问权限。
通过仿真实验,说明攻击者很容易利用该漏洞通过写入链接文件或其他木马文件,以获取被攻击机其他文件目录的访问权限或被攻击机的控制权。如果被攻击的主机是信息系统中的重要服务器,则会对整个系统造成非常严重的后果。
3、“Linux Bash远程可执行”漏洞仿真实验(CVE 2014-6271)
(1)仿真实验案例描述
根据扫描结果,生产系统中的Web数据发布应用服务器App Web存在“Linux Bash远程可执行”漏洞,该服务器操作系统为Cent OS 6.5,该操作系统中GNUbash版本低于4.3。本实验针对Linux Bash远程可执行的漏洞,搭建仿真平台,进行仿真渗透测试,验证该漏洞被利用后对系统造成的影响。
(2)仿真实验平台描述
用一台安装有Cent OS 6.5操作系统的PC模拟存在漏洞的服务器,与安装Linux操作系统的攻击机配置在同一子网中。被攻击机IP地址设置为192.168.90.27,攻击机IP地址设置为192.168.90.26,仿真实验平台网络环境如下图所示。
“Apache Struts 多个远程命令执行”漏洞仿真实验测试平台
(3)仿真实验预期结果描述
“Linux Bash远程可执行”漏洞被成功利用后,攻击机可以使用http向被攻击机写入任意文件。
(4)仿真实验步骤
在被攻击机上安装Apache Tomcat,搭建http服务器,使用默认配置。
在攻击机上打开命令窗口,测试是否与被攻击机联通,如下图所示。
攻击机与被攻击机网络联通
查看被攻击机“/tmp”文件夹中有3个文件,如下图所示。
被攻击机“/tmp”文件夹
在攻击机利用CVE-2014-6271漏洞,使用metasploit工具发起http请求,http请求头部构造特殊语句触发漏洞,在被攻击机“/tmp”中写入文件“aa”,如下图所示。
构造特殊http请求语句,向被攻击机中写入文件
查看被攻击机“/tmp”文件夹,已成功写入文件“aa”,如下图所示。
文件写入成功
上述攻击利用目标系统的CVE-2014-6271漏洞,通过http请求构造特殊语句触发漏洞,将文件上传至被攻击主机。
通过仿真实验,说明攻击者可以利用CVE-2014-6271漏洞执行任意代码,向目标主机上传任意文件。由于存在该漏洞的服务器是该生产系统的重要服务器,一旦被攻击将导致服务器完整性被破坏,甚至可能被攻击者利用植入恶意程序窃取数据或攻击系统其他服务器,威胁整个系统的安全。
(六)脆弱性识别输出报告
根据上述资产识别、脆弱性识别、脆弱性赋值和脆弱性验证的工作结果,编制脆弱性识别报告。
四、结语
本文给出了脆弱性和脆弱性识别的概念,阐述了脆弱性的相关要素,介绍了针对脆弱性的发现、分类、验证和赋值方法,并分析了针对某公司业务系统的脆弱性识别案例。在实际的脆弱性识别工作中,需要根据业务系统的资产状况,结合评估人员的经验和有关的统计数据和外部参考数据,进行综合判断,以明确资产存在的各类脆弱性和严重级别。
微信公众号:计算机与网络安全
ID:Computer-network
【推荐书籍】