智仁信息技术有限公司


We create the opportunities!



一、渗透测试安全服务介绍


1.1漏洞扫描服务


漏洞扫描是一种主动的防范措施,可以有效避免黑客攻击行为,防患于未然。通过对网络的扫描,可以了解网络的安全配置和运行的应用服务,及时发现安全漏洞,客观评估网络风险等级。

铱迅漏洞扫描系统支持主机漏洞扫描、Web漏洞扫描、弱密码扫描。采用报表的形式对扫描结果进行分析,并且提供相应的漏洞解决方案,方便管理员对主机和应用的安全进行检查和分析,及时修复漏洞。


1.2人工渗透测试


渗透测试(Penetration Test)是指安全渗透测试者尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,对目标网络/系统/主机/应用的安全性作深入的探测,发现系统最脆弱的环节的过程。

不过,经用户授权所进行的渗透测试与黑客所进行的渗透攻击测试是有一定的区别。授权所进行的渗透测试一般不会对客户的信息系统造成任何危害和损失,其目的只在于从信息系统的外部发现信息系统对外所呈现出的安全脆弱性并验证这些安全脆弱性的真实存在性,到此为止就不再进行进一步的渗透(即不进行后门植入等后续手段),并将这些所存在的脆弱性通告客户方,这是与黑客所进行的渗透测试的区别所在。


1.3渗透测试安全服务项目收益


此次渗透测试安全服务项目目的是让用户清晰了解目前主机与应用系统的脆弱性、可能造成的影响,以便采取必要的防范措施。不过渗透测试安全服务项目并不能保证发现目标系统中的“所有”弱点,通过渗透测试安全服务项目只能是减少风险,但是不一定能绝对避免风险,因此渗透测试安全服务项目不能让系统达到绝对得安全,经过安全评估服务后的系统被攻破是可能的,也是正常的。因此,“渗透测试安全服务项目”只是检测信息系统安全的一种方式,要保障系统的安全需要采取综合性的安全保障措施,才能使信息系统的安全达到较高的程度。

从渗透测试安全服务项目中,客户能够得到的收益至少有:

1)渗透测试安全服务项目帮助客户发现其主机与应用系统的安全最短板,协助客户有效地了解目前降低风险的初始任务;

2)渗透测试安全服务报告有助于客户管理者以案例形式说明目前互联网系统的安全现状,从而增强客户信息安全的认知程度;

3)信息安全是一个整体工程,渗透测试安全服务项目还有助于客户的所有成员意识到自己的岗位同样可能提高或降低风险,有助于内部安全的提升。


1.4渗透测试对现有系统的影响


由于采用可控制的、非破坏性质的渗透测试,因此不会对被评估的系统造成严重的影响。在渗透测试结束后,系统将保持正常运行状态。


二、漏洞扫描


2.1漏洞扫描遵守的原则


实施过程中需要遵守的原则包括但不限于:

(1)标准性原则:漏洞扫描方案的设计和实施应依据行业、国家、国际的相关标准进行。

(2)规范性原则:整个扫描工作过程和所有文档,应具有很好的规范性,以便于项目的跟踪和控制。

(3)可控性原则:在保证扫描质量的前提下,按计划进度执行,需要保证对漏洞扫描工作的可控性。漏洞扫描的工具、方法和过程要在双方认可的范围之内合法进行。

(4)整体性及有限性原则:漏洞扫描的内容应包括用户等各个层面,漏洞扫描的对象应包括和仅限于用户所指定的具体设备及系统,未经用户授权不得减小或扩大漏洞扫描的范围和对象。

(5)最小影响原则:漏洞扫描工作应避免影响系统和网络的正常运行,尽量不对正常运行的系统和网络构成破坏和造成停产。

(6)保密原则:漏洞扫描的过程和结果应严格保密,不能泄露扫描项目所涉及的任何打印和电子形式的有效数据和文件以及其它的网络数据。


2.2漏洞扫描实施过程


2.2.1委托受理阶段

项目经理与委托单位就漏洞扫描项目进行前期沟通,接收被测单位提交的网络状况资料,包括但不限于:网络拓补结构,网络IP配置信息,网络服务器相关资料等。前期沟通结束后,双方签署《网络安全服务协议》。


2.2.2准备阶段

项目经理组织人员依据客户提供的文档资料和调查数据,编写制定《信息系统漏洞扫描方案》。

项目经理与客户沟通评估方案,确定漏洞扫描的具体日期、漏洞扫描的具体范围、我方实施评估人员和客户方配合的人员。

项目经理协助被测单位填写《信息系统漏洞扫描用户授权书》,并通知客户做好扫描前的准备工作。

如果项目需从被测单位的办公局域网内进行,扫描全过程需有客户方配合人员在场陪同。


2.2.3实施阶段

项目经理明确项目组评估人员承担的测试项。评估完成后,项目组整理漏洞扫描数据,形成《漏洞扫描网络安全服务报告》。

实施过程中需要评估的项目包括但不限于:

(1)主机环境漏洞扫描。

(2)Web系统漏洞扫描。

(3)弱密码漏洞扫描。


实施过程中评估测试流程:

(1)扫描方案确定,开始执行扫描任务,按照客户的扫描要求配置漏洞扫描策略进行扫描。

(2)端口扫描阶段,本阶段主要是对目标对外开放的端口和服务进行扫描,从而收集相关的信息。

(3)主机漏洞扫描阶段,本阶段主要是对目标的主机环境进行安全扫描。

(4)Web漏洞扫描阶段,本阶段主要是对目标的Web系统进行安全扫描。

(5)弱密码检测阶段,本阶段主要是对目标的各种常用服务,如FTP、SQL Server、RDP远程终端服务等进行弱密码检测扫描。

(6)清除总结阶段,清除在客户系统中产生的痕迹和中间数据,然后根据以上阶段内容总结编写《漏洞扫描服务报告》。



2.3漏洞扫描的风险规避


由于漏洞扫描属于黑盒测试,因此可能对被测试目标造成不可预知的风险;此外对于性能比较敏感的测试目标,如一些实时性要求比较高的系统,由于扫描可能引起网络流量的增加,因此可能会引起被扫描目标的服务质量降低。因此需进行如下的风险规避措施:


2.3.1扫描时段选择

一般会选择在夜间或安排在业务量不大的时段进行漏洞扫描。


2.3.2扫描策略集选择

根据系统的具体情况配置合理的扫描策略。


三、人工渗透测试


3.1渗透测试的人员要求


       由于渗透测试是一项综合素质要求比较高的测试活动,因此对渗透测试人员也有着较高的要求。

首先是职业道德素质,由于渗透测试可能会涉及到被测试目标组织的机密信息,因此对人员的保密要求和职业道德素质就有着很高的要求;

其次渗透测试也是一项技术性和技巧性很高的测试活动,因此对测试人员的安全测试能力和测试经验也有很高的要求。

我们的人员的职业道德素质和保密意识有着良好的保证,同时也具备了很高的渗透测试技术能力和丰富的渗透测试经验。


3.2测试工作标准


依据如下标准实施渗透测试服务:

l 《GB/T 18336-2001 信息技术安全技术信息技术安全性评估准则》等同于《ISO 15408-1999 Common Criteria for Information Technology Security Evaluation》(CC)。

l OSSTMM - Open-Source Security Testing Methodology Manual

l ISSAF - Information Systems Security Assessment Framework

l OWASP - Open Web Application Security Project

l WASC - Web Application Security Consortium


3.3渗透测试的实施过程



3.3.1渗透测试前的准备阶段


客户书面同意

在渗透测试前,渗透测试方将取得客户的书面授权委托,保证渗透测试的合法性,这是实施渗透测试的必要条件。


渗透目标的确

在取得授权后,渗透测试方需要就详细的渗透测试范围和测试对象与客户进行商议,并书面达成一致。在进行渗透测试时应严格按照测试范围和测试对象进行,以避免测试范围的“蔓延”而伤及无辜。


渗透测试时间窗的规定

此外客户可根据其对自身系统安全状态的了解情况为渗透测试者规定一个测试时间窗,要求渗透测试者在此时间窗内完成其渗透测试工作。

具体的渗透测试时段,将在渗透测试前进行调研,确定客户互联网系统的业务忙闲时段后再进行确定,以避开业务高峰期,避免对系统性能造成影响。


先验知识的通告

虽然渗透测试是偏重于黑盒的测试,但也并非什么先验知识都不告诉渗透测试人员。客户应考虑好应该给予渗透测试方的关于被测试目标的必要先验知识并书面告知渗透测试者,以便其进行有效的渗透测试,避免测试的盲目性。

客户提供给渗透测试服务商的先验知识在标书中有一定的声明,主要是进行测试所需的互联网IP地址信息。


确定渗透测试的人员

在渗透测试准备阶段应确定好渗透测试人员的名单、渗透测试人员的详细介绍,并征得客户对这些人员可进行渗透测试的书面同意。


风险规避措施的实施

对于重要系统的的渗透测试,在测试前应先做好系统的备份和恢复准备工作以便在发生不可预知的风险后能快速恢复系统的正常运行。

此外如果渗透目标不能接受被渗透攻击出意外的风险,则可选择保守策略,搭建渗透目标的复制品,然后在进行渗透测试。

最后应确定监控方式,准备好监控环境,以便进行渗透测试时进行有效的监控,并进行良好的信息沟通,以尽快控制可能发生的风险,避免风险的扩大。



3.3.2渗透测试的进行阶段


实施渗透测试

渗透测试方将渗透测试技术一般流程和渗透测试内容实施具体的渗透测试。


渗透测试过程中的监控

按准备阶段选择的监控方式,在准备好的监控环境下对正在实施的渗透测试活动进行监控,同时监控被测试目标的工作状态。


渗透测试过程中的沟通

在渗透测试过程中,一方面渗透测试人员应主动就渗透测试的进展情况、测试活动及测试中出现的异常或非预期情况与客户项目组进行沟通,以便客户项目组及时检查测试目标的工作状态是否正常;其次客户项目组监控人员也应就被测试目标的状态情况及时与渗透测试者进行通知,以便渗透测试者决定渗透测试活动是否能继续进行。


3.3.3渗透测试后的总结阶段

在完成渗透测试后,需要对渗透测试数据进行整理汇总和分析,根据发现的安全漏洞和安全隐患指出被测目标的问题所在,然后提出相应的改进建议,并最终完成渗透测试报告的编写。


3.4可能采取的技术手段


3.4.1网络信息搜集

使用PING Sweep、DNS Sweep、SNMP Sweep、Tracert等手段对主机存活情况、DNS名、网络链路等进行信息收集。可以对目标的网络情况、拓扑情况、应用情况有一个大致的了解,为更深层次的渗透测试提供资料。


3.4.2端口扫描

通过对目标地址的TCP/UDP端口扫描,确定其所开放的服务的数量和类型,这是所有渗透测试的基础。通过端口扫描,可以基本确定一个系统的基本信息,结合安全工程师的经验可以确定其可能存在以及被利用的安全弱点,为进行深层次的渗透提供依据。


3.4.3远程溢出

这是当前出现的频率最高、威胁最严重,同时又是最容易实现的一种渗透方法,一个具有一般网络知识的入侵者就可以在很短的时间内利用现成的工具实现远程溢出攻击。对于在防火墙内的系统存在同样的风险,只要对跨接防火墙内外的一台主机攻击成功,那么通过这台主机对防火墙内的主机进行攻击就易如反掌。


3.4.4口令猜测

口令猜测也是一种出现概率很高的风险,几乎不需要任何攻击工具,利用一个简单的暴力攻击程序和一个比较完善的字典,就可以猜测口令。对一个系统账号的猜测通常包括两个方面:首先是对用户名的猜测,其次是对密码的猜测。


3.4.5本地溢出

所谓本地溢出是指在拥有了一个普通用户的账号之后,通过一段特殊的指令代码获得管理员权限的方法。使用本地溢出的前提是首先要获得一个普通用户的密码。也就是说由于导致本地溢出的一个关键条件是设置不当的密码策略。

多年的实践证明,在经过前期的口令猜测阶段获取的普通账号登录系统之后,对系统实施本地溢出攻击,就能获取不进行主动安全防御的系统的控制管理权限。


3.4.6 Web脚本及应用测试

Web脚本及应用测试专门针对Web及数据库服务器进行。根据最新的技术统计,脚本安全弱点为当前Web系统尤其存在动态内容的Web系统存在的主要比较严重的安全弱点之一。利用脚本相关弱点轻则可以获取系统其他目录的访问权限,重则将有可能取得系统的控制权限。因此对于含有动态页面的Web、数据库等系统,web脚本及应用测试将是必不可少的一个环节。在Web脚本及应用测试中,可能需要检查的部份包括:

l 检查应用系统架构、防止用户绕过系统直接修改数据库

l 检查身份认证模块,防止非法用户绕过身份认证

l 检查数据库接口模块,防止用户获取系统权限

l 检查文件接口模块,防止用户获取系统文件

l 检查其他安全威胁


3.5渗透测试的风险规避


由于渗透测试偏重于黑盒测试,因此可能对被测试目标造成不可预知的风险;此外对于性能比较敏感的测试目标,如一些实时性要求比较高的系统,由于渗透测试的某些手段可能引起网络流量的增加,因此可能会引起被测试目标的服务质量降低。因此需进行如下的风险规避措施:


3.5.1渗透测试时段选择

对网络流量影响严重的测试内容,为减轻渗透测试对网络和主机的影响,测试在会选择在夜间或安排在业务量不大的时段进行测试。


3.5.2渗透测试工具的选用

渗透测试的目的是要尽可能地发现测试目标的安全漏洞或安全隐患,因此渗透测试所使用的工具不是一般安全评估中使用的测试工具。它可以是商业性安全测试工具、可以是开源安全测试工具、可以是渗透测试者自己所编写的小工具或脚本程序、也可以是渗透测试机构自己的非公开测试工具。但对于合法的渗透测试,无论使用什么样的渗透测试工具,有一个基本的原则就是使用的渗透测试工具不会给测试目标引入病毒、蠕虫或木马等恶意程序,给目标系统造成不必要的损失或带来潜在的安全隐患。因此在渗透测试工具的选用及使用策略上应进行安全保证。

铱迅信息在此次渗透测试中使用的渗透测试工具有购买的商业测试工具、也有部分的开源测试工具(这些开源工具主要用于渗透测试前期的信息收集阶段)。对于所使用的开源测试工具,已进行了安全检测和验证使用,保证不会给客户系统引入病毒和木马等恶意程序。


3.5.3攻击策略集选择

为防止渗透测试造成网络和主机的业务中断,在渗透测试中不使用含有拒绝服务的测试策略。对缓冲区溢出类的漏洞验证,不建议在生产环境中验证,而在测试环境或备份环境中验证。


3.5.4保守策略选择

对于不能接受任何可能风险的主机系统,可选择如下保守策略:

1)复制一份目标环境,包括硬件平台,操作系统,数据库管理系统,应用软件等。

2)对目标的副本进行渗透测试。


3.5.5系统备份和恢复

为防止在渗透测试过程中出现的异常的情况,所有被测试系统均应在被测试之前作一次完整的系统备份,以便在系统发生灾难后及时恢复。

在渗透测试过程中,如果出现被评估系统没有响应或中断的情况,应当立即停止测试工作,与客户方配合人员一起分析情况,在确定原因后,及时恢复系统,并采取必要的预防措施(比如调整测试策略)之后,确保对系统无影响,并经客户方同意之后才可继续进行。


3.5.6渗透测试过程中的合理沟通保证

在渗透测试实施过程中,确定不同阶段的测试人员以及客户方的配合人员,建立直接沟通的渠道,并对测试过程中出现难题的过程保持合理沟通。


3.5.7系统监测

在评估过程中,由于渗透测试的特殊性,用户可以要求对整体测试流程进行监控。