兰长亮
长春市博鸿科技服务有限责任公司 吉林长春 130000
没有网络安全,就没有国家安全,没有信息化,就没有现代化,习在2018 年全国网络安全和信息化工作会议上说。因此,安全是发展的前提,发展是安全的保障。没有网络安全,信息社会将在黑暗中毁灭。基于此,我国网络安全等级保护工作得以高效开展。等级保护测评是网络安全等级保护的重要环节,受诸多因素影响,传统等级保护测评的效率性较差,并且测试结果不够准确,这使得网络信息的隐患逐渐加大。渗透测试是等级保护测评中的新要求,其能在手动控制或自动设备的支持下,对网络系统的安全性进行全方位、多层次、立体化的评估,确保网络信息的安全性。文章分析了渗透测试在网络安全等级保护评估中的应用。渗透测试安全评估是网络信息系统安全评估的重要手段。在准确控制信息系统抵御网络入侵能力的基础上,可以规避网络风险,实现信息安全保障。从国家网络安全的角度,分析了渗透测试在网络安全等级保护评估中的应用价值,探讨了渗透测试的应用原则和测试程序,并提出了渗透测试过程中的风险控制策略。提高渗透测试的应用水平,保证国家网络安全等级保护测试的效率和质量,同时实现国家信息网络安全的有效保障[1]。
在1994 年的时候,国务院颁布国务院令第147 号《中华人民共和国计算机信息系统安全保护条例》,建立中国计算机信息系统,经过20 多年的发展,实施安全水平保护制度,等级保护制度不断发展成熟,有力地保障了国家信息安全。2017 年6 月1 日生效的《中华人民共和国网络安全法》明确规定,国家实行网络安全等级保护制度,将网络安全等级保护制度升级为法律规定的网络安全等级保护制度,已成为国家网络安全的基本制度、基本战略和基本方法,促进信息化的健康发展,网络安全等级保护工作是国家安全、社会秩序和公共利益的根本保障,主要包括分级、归档、安全建设整顿、分级评估和监督检查五个阶段,分级评估是其中最重要的部分[2]。为了推进网络安全等级保护工作,公安部于2009 年发布了《信息系统安全等级评估报告模板(试行);公信安号1487》,进一步规范了等级测评活动并要求按照统一的格式编制等级测评报告(以下简称“09 版测评报告模板”)。由于09 版测评报告模板采用定性风险分析方式,信息系统等级测评结论定性为符合、基本符合和不符合3 类,并未对测评结论进行定量判定,不能很好地区分出不同信息系统间安全防护能力的差异。为此,国内许多专家、学者针对信息系统安全等级测评开展了相应的研究。2015 年,公安部再次发布《信息安全等级保护测评报告模版(2015 版)》(以下简称“15版测评报告模板”),增加了定量计算相关内容。15 版测评报告模板采用定性和定量相结合的风险分析方式,规定了单个测评项符合程度得分为0-5 分,其中符合为5 分,不符合为0 分,部分符合为1-4 分,并给出了信息系统综合得分计算公式,分为以下两种计算方式:
(1)当信息系统等级评价结论基本一致时,
其中,p 为总测评项数,不包括不适用的控制点和试题;l 为安全问题数。15 版测评报告模板虽然在测评过程中引入了定量计算,在一定程度上量化了信息系统等级测评结论,有助于系统管理者比较直观地掌握信息系统的安全防护水平,但也存在两个缺点:(1)综合得分是在信息系统等级测评结论明确后计算得出的,也就是说等级测评结论并不是依据综合得分的量化度量得出的;(2)综合得分计算公式涉及要求项的得分和其权重两个因素,且要求项得分采用0-5 分制,使得综合得分计算的工作量巨大,需要借助专门的测评工具才能完成。针对15 版测评报告模板存在的缺点,本文提出了一种新的等级测评综合得分算法。首先,规定单个测评项符合程度得分取值为0 分、0.5 分和1 分,其中符合得1 分,部分符合得0.5 分,不符合得0 分;其次,汇总所有不符合、部分符合测评项得分和其权重的计算结果,最后对计算结果进行归一化处理后形成信息系统等级测评综合得分。该综合得分算法大幅度地降低了计算工作量,解决了缺点(2);同时根据综合得分确定信息系统的等级测评结论,解决了缺点(1)。
2017 年6 月1 日,《中华人民共和国网络安全法》正式实施,明确要求在中国运行的信息系统实行分级保护制度,使等级保护制度成为国家的基本制度,并在等级保护的基本要求上升到法律层面,但没有相应的技术标准明确信息系统的“反渗透”能力,然而,对于3 级或以上的信息系统,从基本要求的安全技术、系统抵御大规模恶意攻击的能力、发现和防御非法入侵的能力、抵御恶意代码攻击的能力、应对安全事件的紧急反应能力和监控能力等方面来说,都是不可或缺的。信息系统必须经过公正的第三方安全测试,才能上网。基于上述限制,若受测试的资讯系统没有进行渗透测试,渗透测试便不能符合等级保护的要求。一方面,它可以检查和验证被测信息系统的安全漏洞,并提供切实可行的维修建议,有助于提高等级保护评估的质量[3]。
实际检测中测试人员会站在网络攻击者的角度,然后在工具及手工方式的支撑下,对网络信息进行全要素分析;网络系统主机、网络环境、应用过程、数据库等都是其检测的主要内容。通过分析这些测试要素的检测结果,测试人员可以有效的发现网络系统运行中的薄弱环节,并进行控制管理。网络安全等级保护渗透测试中,测试授权和测试监督是渗透测试的两个基本要求;即测试人员的所有检测行为必须由用户进行书面授权,同时进行测试全过程的监督管理。从检查过程来看,渗透测试授权和监督的根本目的在于系统性、全面性、真实性的发现信息系统中的薄弱环节,并对系统的可用性进行验证,同时防止后续渗透操作的发生;以此来保证网络信息系统应用的安全性、规范性。渗透测试是基于业界公布或测试人员掌握的有关保安漏洞的资料,利用攻击者的心态,透过工具或人工探测目标的应用程式、主机、网络、数据库及其他保安,发现系统中最脆弱的部分,所有测试活动必须在用户明确的书面授权和监督下进行,以及进行授权渗透测试的目的是真正和全面地发现信息系统中的漏洞并验证它们的可用性,不进一步进行渗透操作,如后门,因此一般不会对信息系统造成损害或损失。
一般而言,渗透测试包括四个阶段:报告、资料检测、测试实施、测试准备,如图1 所示。
每个环节的有关工作概述如下:
(1)在测试准备阶段,在取得测试单位的书面授权后,测试渗透测试将会开始实施。与单位沟通实施范围、方法、工具、时间、人员等具体方案,沟通可能存在的测试风险,并获得单位批准,整个测试过程处于单位的监督和控制之下。前期准备过程中,获取测试目标所在单位的书面授权是测试人员准备的首要内容。当获取书面授权后,可根据具体的测试对象进行方法设计,做好测试人员、事件、工具和范围的合理规划,同时规范化的进行测试方案编制,并与网络系统所述单位进行沟通,确保测试过程切实可行和风险最小。最后,和目标单位建立渗透测试联动管控小组,准备进行网络系统测试全过程的监督管理,进而为网络系统渗透测试奠定良好基础。
(2)在信息检测渗透测试阶段,根据指定的测试范围收集与信息系统有关的信息,可以使用商业或开放源码的安全评估工具,如webinspect、appscan、nessus、nmap 等进行收集,并对检测到的端口、服务、ip、dns、操作系统等信息进行整理,为测试实施的下一阶段提供支持[4]。
(3)在测试实施阶段,渗透测试仪对检测到的信息进行分析,并通过制定渗透策略、编写攻击代码和研究旁路机制进行测试。
实施路径主要包括内网和外网两种:①测试信息系统的目的是为了避免防火墙等设备的安全防护措施。如果在这个阶段成功,它可以获得普通用户的许可,然后通过提高权限等操作,获得系统对受控服务器的最高许可,作为对其他目标进行进一步渗透测试的跳板②外部网络测试直接通过互联网进行,信息系统的渗透测试、操作过程和内部网络测试相似。渗透测试实施是网络系统安全等级检查的核心环节。该阶段,测试人员会在前期分析结果的基础上,进行网络渗透策略编制,然后利用攻击代码、研究机制等方式,对网络系统的内网和外网进行检测。就内网检测而言,避开以防火墙为代表的安全防护措施是渗透测试的主要目的;该环节如能成功,则测试人员可以获得一定操作权限,并在已控制服务器的支持下,对其它目标进行渗透测试,最终结合实际的测试结果对网络系统所述单位内网的安全性进行评估。而在外网检查中,其测试流程与内网测试具有相似性,所不同的是,其对信息系统的检测主要是在互联网设备的支撑下完成的。
(4)在报告准备阶段,推行机构会分析测试结果及编制系统渗透测试,主要包括具体测试结果、缺陷评估及修正建议[5]。为实现渗透测试检测结果的清晰化显示,当网络安全等级渗透测试完成后,测试人员应进行渗透策测试报告的严格编制。通常,渗透测试报告包含了测试结果、漏洞结果评估和整改建议三个方面。需注意的是,测试结果、和漏洞结果评估的过程需具有充分、全面、准确;同时整改意见要具有一定的科学性和可行性,继而更好的满足等级保护要求,确保被测试系统安全、稳定运行。
渗透测试是动态的,测试过程仍然可能影响应用程序、主机、网络等的正常运行。为了避免测试过程对业务运作的影响,需要实施以下风险规避策略:
(1)双方签署渗透检测委托书,制定并审核双方批准的渗透检测方案
(2)时间策略选择合适的测试时间,如夜间或低流量时间进行测试,以尽量减少测试过程对业务的影响,同时留出时间进行风险消除。
(3)对于需要高实时性能的核心业务系统的攻击策略选择,不建议进行深度测试,如ddos 类测试,测试人员可以分析推测的结果,而无需验证危险的操作。
(4)系统备份和恢复在实施测试之前,被测系统需要做一个完整的备份,当出现问题时可以及时恢复,为核心业务系统建议备份系统渗透测试
(5)当被测系统中断,响应缓慢时,应及时停止测试工作,并配合被测单元进行故障处理。故障处理完毕后,单元可以授权进行剩余的测试
(6)沟通策略双方建立利益相关者联系清单,识别接口,及时沟通测试过程中的问题,确保有效沟通[6]。
在渗透测试过程中,测试人员在技术上已经足够成熟,可以使用操作系统自己的网络应用程序、诊断工具、开源软件和商业软件,以及自己的安全扫描工具,安全性和可控性高,可以根据测试人员的实际需求进行有针对性的测试。然而,安全工具本身是一把双刃剑,有必要针对系统中可能出现的问题提出相应的对策,以确保渗透测试过程中的受控状态。(1)System-ownedtools 表1 列出了测试人员将使用(但不限于)下列命令进行测试的常见系统所有的网络应用程序、管理和诊断工具。
表1 系统自有工具表
(2)其他测试工具。表2 列出了渗透测试中常用的网络扫描工具、网络管理软件等。
表2 其他测试工具表
本文以某单位的三级系统为例,说明如何进行渗透测试评估,以验证该信息系统的整体安全水平。
渗透测试小组会根据资讯系统的规模和实际运作情况,制定详细的渗透测试计划,包括制定合理的渗透测试计划、选择合适的测试方法,以及准备充足的测试工具,分析测试过程可能会带来风险,并采取相应的规避风险的方法[7]。
渗透测试人员使用各种系统或工具来收集信息,包括系统扫描工具nmap、openvas、burpsuit 等等。扫描后发现系统在端口80,139,445,3389,47001 等处是开放的。针对这些服务从系统级和web 级进行分析,发现系统存在文件共享、远程访问、sql注入、xml 注入等漏洞,为下一步漏洞利用提供了基础,根据测试方法、测试内容和信息收集阶段可能存在的风险,制定了应急处理策略,如表3 所示。
表3 信息收集风险控制表
根据获得的漏洞信息,结合信息系统的特点和异构性,确定漏洞,并利用渗透测试策略获得的信息,找出高风险漏洞,尝试直接利用高风险漏洞,验证可以用以下文件共享漏洞的例子来描述测试过程。第一步制定渗透测试策略:(1)目标:获取被测系统服务器的控制权限;(2)实施途径:系统漏洞扫描→服务漏洞→漏洞利用→获取远程→建立用户→远程桌面;(3)说明:如果访问远程shell 的权限很低,那么建立一个用户权后第二步使用不同的漏洞扫描工具来确认扫描的漏洞,结果证实系统服务器熟悉漏洞扫描工具nmap 和nessus,ms08-067。如果服务器接收到一个自定义rpc 请求,该漏洞可能允许远程执行代码。在确定第三步漏洞后,使用漏洞利用工具实现溢出以成功访问shell 控制界面,执行“whoami”命令,查看“用户和用户组”,显示为“管理员”用户组,并指示您拥有系统管理员权限。第4 步获得系统的顶部控制权,通过shell 创建一个后门帐户,后续使用后门帐户可以远程登录系统,使整个过程完成这一步获得用户的许可。此外,在测试执行阶段,测试人员使用在前一阶段收集到的信息,通过工具或手动测试的方式测试单元的信息系统,如表4 所示。
表4 测试实施风险控制表
渗透测试完成后,测试人员安排工作内容和成果,根据发现的安全漏洞和安全风险提出系统存在的问题,并提出相应的纠正建议,形成“渗透测试报告”。
2016 年美国东海岸地区遭受了分布式拒绝服务的攻击,这使得美国超过1/2 的网络系统陷入瘫痪,造成了严重的社会经济损失;又如2017 年的WannaCry 勒索病毒,事故的全球近150 个国家的教育、交通、医疗、能源事业发展受阻。由此可见,进行国家网络保护极为重要。2017 年6 月,我国在《中华人民共和国网络安全法》中对国家网络安全进行规范。在该管理条例中,其将网络信息系统划分为不同等级,并且对第三级别和以上的信息系统进行抗渗透能力约束和规定,要求其具备较高标准的非法入侵检测和防御能力,同时网络系统具备抵抗恶意代码的攻击能力,并能对网络安全事件进行应急响应。网络安全控制实践中,所有的网络信息系统需进行安全性能测试,然后再上线投入使用。网络安全等级保护测评过程中,渗透测试的应用具有以下功能:其一,渗透测试能对网络系统的安全属性进行评估,并检查出系统的安全漏洞,然后针对性的进行修复控制。其二,从等级保护测试结果来看,其能实现网络系统安全影响因素的全面评估,提升等级保护测评质量。故而在信息时代下,进行网络系统安全性的渗透测试势在必行[8]。
实际检测中测试人员会站在网络攻击者的角度,然后在工具及手工方式的支撑下,对网络信息进行全要素分析;网络系统主机、网络环境、应用过程、数据库等都是其检测的主要内容。通过分析这些测试要素的检测结果,测试人员可以有效的发现网络系统运行中的薄弱环节,并进行控制管理。网络安全等级保护渗透测试中,测试授权和测试监督是渗透测试的两个基本要求;即测试人员的所有检测行为必须由用户进行书面授权,同时进行测试全过程的监督管理。从检查过程来看,渗透测试授权和监督的根本目的在于系统性、全面性、真实性的发现信息系统中的薄弱环节,并对系统的可用性进行验证,同时防止后续渗透操作的发生;以此来保证网络信息系统应用的安全性、规范性。
测试准备、信息探测、测试实施、报告编制是网络安全等级保护渗透测试的四个基本流程。网络安全管理中,只有规范化的进行这四个层面的全面控制,才能有效的提升渗透测试的准确性,确保网络系统应用安全与质量。
(1)渗透测试准备阶段控制前期准备过程中,获取测试目标所在单位的书面授权是测试人员准备的首要内容。当获取书面授权后,可根据具体的测试对象进行方法设计,做好测试人员、事件、工具和范围的合理规划,同时规范化的进行测试方案编制,并与网络系统所述单位进行沟通,确保测试过程切实可行和风险最小。最后,和目标单位建立渗透测试联动管控小组,准备进行网络系统测试全过程的监督管理,进而为网络系统渗透测试奠定良好基础。
(2)网络系统的信息探测网络信息系统开始渗透测试时,应在《中华人民共和国网络安全法》等文件的支持下,对信息系统的相关信息进行收集。通常情况下,商业或者开源的安全评估工具是网络系统信息收集的主要方式,同时其收集的对象包含Webinspect、APP-scan、Nessus、Nmap 等内容。当测试人员获取这些信息后,应结合其实际情况,对目标系统端口、服务、IP、DNS、OS 等信息进行整理,为下一节段的测试做好准备。
(3)网络系统渗透测试实施渗透测试实施是网络系统安全等级检查的核心环节。该阶段,测试人员会在前期分析结果的基础上,进行网络渗透策略编制,然后利用攻击代码、研究机制等方式,对网络系统的内网和外网进行检测。就内网检测而言,避开以防火墙为代表的安全防护措施是渗透测试的主要目的;该环节如能成功,则测试人员可以获得一定操作权限,并在已控制服务器的支持下,对其它目标进行渗透测试,最终结合实际的测试结果对网络系统所述单位内网的安全性进行评估。而在外网检查中,其测试流程与内网测试具有相似性,所不同的是,其对信息系统的检测主要是在互联网设备的支撑下完成的[9]。
(4)渗透测试报告编制为实现渗透测试检测结果的清晰化显示,当网络安全等级渗透测试完成后,测试人员应进行渗透策测试报告的严格编制。通常,渗透测试报告包含了测试结果、漏洞结果评估和整改建议三个方面。需注意的是,测试结果、和漏洞结果评估的过程需具有充分、全面、准确;同时整改意见要具有一定的科学性和可行性,继而更好的满足等级保护要求,确保被测试系统安全、稳定运行。
现阶段,渗透测试在网络安全等级保护测评中的应用愈发广泛,并且测试过程的设备使用也逐渐多样。就系统自有工具而言,其包含了ping、ftp、telnet、echo 等多个类型;而非系统自有的其他工具包含了nmap、nc、Nessus、Burpsuit 等工具。在一定程度上,测试工具及方法的使用会对网络系统的运行造成一定影响,加大设备运行的风险性。故而在渗透测试过程中,应注重渗透风险的有效评估和规避。渗透测试风险控制内容具体包括:其一,应确保渗透测试的评审方案获得双方认可,确保网络安全等级测试的合法性。其二,测试过程中应注重测试时间和范围的严格控制,同时测试人员应和被测单位建立高效化的沟通机制,避免渗透测试对目标单位的业务开展造成影响。其三,通常,为避免测试潜在风险发生,应减少核心业务系统的渗透测试数量,避免发生业务系统损伤[10]。
该组网络系统的渗透测试模拟黑客成功取得伺服器的最高控制权,以及取得后端资料库数据资料系统层面的漏洞,主要是由于软件开发过程的缺陷,一般需要密切追踪软件供应商的保安警报,及时更新系统修补程式。实践过程中只有充分认识到网络安全等级保护中渗透测试的必要性,并在掌握其测试原理的基础行,规范化的进行测试过程管理,并做好测试风险防控,才能利于提升渗透测试的应用水平,实现国家信息网络安全的有效保证。因此,建议用户建立漏洞预警和更新机制,定期扫描日常安全维护中的关键系统漏洞,并根据安全保证更新补丁,在级别保护程序中实施渗透测试,及时发现信息系统的安全风险,采取良好的预防措施,更好地满足级别保护的要求,以确保被测信息系统的安全和稳定运行。