网络安全等级保护测试评估技术指南
1 范围
本标准面向等级保护测评人员、系统和网络管理员,及其他负责系统安全技术的技术人员,规定了信息系统安全等级测评过程中现场测评阶段涉及的相关技术。
本标准适用于测评机构、信息系统的主管部门及运营使用单位对重要信息系统的安全等级测评,为信息系统的安全等级测评工作的技术规范性提供方法依据。管理者也可以利用本标准提供的信息,促进与信息系统安全等级保护测试评估相关的技术决策过程。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB 17859-1999 计算机信息系统安全保护等级划分准则
GB/T 20271-2006 信息安全技术 信息系统安全通用技术要求
GB/T 22239-2008 信息安全技术 信息系统安全等级保护基本要求
GB/T 25069-2010 信息安全技术 术语
3 术语和定义
GB/T 17859-1999、GB/T 20271-2006、GB/T 22239-2008和GB/T 25069-2010界定的以及下列术语和定义适用于本文件。
3.1 测评对象 testing object
等级保护测评实施的对象,即测评过程中涉及到的信息系统、制度文档、网络基础设施及其安全配置和相关人员等。
3.2 网络嗅探 network sniffer
一种监视网络通信、解码协议,并对关注的信息头部和有效载荷进行检查的被动技术,同时也是一种目标识别和分析技术。
3.3 规则集 rule set
一种用于比较网络流量或系统活动以决定响应措施(如发送或拒绝一个数据包,创建一个告警,或允许一个系统事件)的规则的集合。
3.4 检查技术 review technology
被动地检查系统、应用程序、网络、政策和策略以发现安全漏洞的过程,通常包括:文档检查、日志检查、规则集检查、系统配置检查和文件完整性检查。
3.5 文件完整性检查 file integrity checking
通过建立文件校验数据库,计算、存储每一个保留文件的校验,将已存储的校验重新计算以比较当前值和存储值,从而识别文件是否被修改。
4 等级测评过程与方法概述
4.1 规划阶段
本阶段是开展等级测评工作的前提和基础,是整个等级测评过程有效性的保证。本阶段的主要任务是掌握被测系统的详细情况,收集执行评估所必需的信息,如系统数据(待等级评估的资产)、威胁数据(资产的利益威胁)和用于减少这些威胁的安全控制要求,并制定评估方法准备测试工具,为编制测评方案做好准备。同时为等级保护测试评估设立项目管理计划,制定项目目的和目标、范围、要求、团队的角色和责任,限制性、成功要素、假设条件、资源、时间和交付结果。
4.2 方案编制阶段
本阶段是开展等级测评工作的关键活动,为现场测评提供最基本的文档和指导方案。本阶段的主要任务是确定与被测信息系统相适应的测评对象、测评指标及测评内容等,并根据需要重用或开发测评指导书,形成测评方案。
4.3 测评执行阶段
本阶段是开展等级测评工作的核心阶段。本阶段的主要任务是按照测评方案的总体要求,采用各类等级测评技术,分步实施所有测评项目,以了解系统的真实保护情况,获取足够证据,发现系统存在的安全问题与漏洞;并通过分析已发现的问题和漏洞,确定根源,制定风险减缓建议。
等级测评是确认主机、网络、应用、数据等评估对象满足特定安全目标的有效性的过程,通常采用访谈、检查和测试三种测评方法:
a) 访谈是指测评人员通过引导信息系统有关人员(个人/群体)有目的的(有针对性的)进行交流、讨论等活动,实现理解、释明或获得证据以证明信息系统安全等级保护措施是否有效的一种方法;
b) 检查是指测评人员通过对测评对象(如制度文档、各类设备、安全配置等)进行观察、查验或分析等活动,使之便于理解、达到释明或获得证据以证明信息系统安全等级保护措施是否有效的一种方法;
c) 测试是指测评人员使用预定的方法/工具使测评对象产生特定的行为,通过查看、分析这些行为的结果,并与预期的结果进行比对,获取证据以证明信息系统安全等级保护措施是否有效的一种方法。
4.4 分析与报告编制阶段
本阶段是总结被测系统整体安全保护能力的综合评价阶段。本阶段的主要任务是根据现场测评结果和GB/T 22239-2008的有关要求,找出整个系统的安全保护现状与相应等级的保护要求之间的差距,并分析这些差距导致被测系统面临的风险,从而给出等级测评结论,形成测评报告文本。
5 等级等级测评技术概述
5.1 等级测评技术分类
目前有许多技术性安全测试和检验技术可用于信息系统安全等级保护评估,这些技术主要可分成以下三类:
a) 检查技术:被动地检查系统、应用软件、网络、策略和规程,并发现安全漏洞的检验技术。在后文中也叫被动型测试技术。通常采用手动方式,主要包括文档检查,日志检查,规则集检查,系统配置检查和文件完整性检查等。
b) 目标识别和分析技术:主动识别系统、端口、服务以及潜在安全性漏洞的测试技术。在后文中也叫主动型测试技术。这些技术可以手动执行,但一般使用自动化的工具,主要包括网络发现、网络端口和服务的识别、漏洞扫描、无线扫描和应用安全检查等。
c) 目标漏洞验证技术:验证漏洞存在性的测试技术。这些技术可以手动执行或使用自动化的工具,主要包括口令破解、渗透测试、远程访问测试等。
5.2 等级测评技术选择
当选择和确定用于等级测评活动的技术时,应考虑的因素主要包括评估目标,可以获取信息以支持这些目标的技术种类,测试技术的风险,以及在每一个种类当中所使用的适当的技术,技术评估的角度(例如,内部与外部),以使得相应的技术可供选择。
在某些情况下,应考虑是否对生产系统或相同配置的非生产系统进行测试,或在业余时间限制使用某些技术以尽量减少对操作的影响。
6 等级测评技术实现
6.1 检查技术
6.1.1 文档检查
文档检查应确定策略和规程在技术上覆盖以下方面:
a) 被测方应为等级测评的评估者提供适当的文档,为系统的安全态势提供基础,确保检查的全面性;
b) 检查对象应包括安全策略、体系结构和要求、标准作业程序、系统安全计划和授权许可、系统间互联的谅解和协议备忘录、以及事件响应计划,确保技术的准确性和完整性;
c) 应发现可能导致遗漏或不恰当地实施安全控制措施的缺陷和弱点;
d) 评估者应验证被测系统的文档是否与系统等级保护标准法规相符合,查找有缺陷或已过时的策略;
e) 文档检查的结果应可用于调整其他的测试技术,例如,当口令管理策略规定了最小口令长度和复杂度要求的时候,该信息应可用于配置口令破解工具,以提高口令破解效率。
6.1.2 日志检查
应对信息系统中的以下日志信息进行检查:
a) 认证服务器或系统日志,包括成功的或失败的认证尝试;
b) 系统日志,包括系统和服务的启动、关闭信息,未授权软件的安装,文件访问,安全策略变更,账户变更(例如账户创建和删除、账户权限分配)以及权限使用;
c) 入侵检测和预防系统日志,包括恶意行为和不恰当使用;
d) 防火墙和路由器日志,包括影响内部设备的出站连接(如僵尸程序、木马、间谍软件等);
e) 防火墙日志,包括未授权连接的尝试和不恰当使用;
f) 应用日志,包括未授权的连接尝试、账号变更、权限使用,以及应用程序或数据库的使用信息等;
g) 防病毒日志,包括升级失败、软件过期等其他事件;
h) 安全日志,尤其是补丁管理、IDS和入侵防御系统(IPS)产品,应记录已知漏洞的服务和应用信息。
6.1.3 规则集检查
规则集检查对象应包括如防火墙、IDS/IPS等网络设备以及部署在操作系统或主机集群中软件的访问控制列表、规则集,以及重要信息系统中数据库、操作系统和应用系统的强制访问控制机制,具体包括:
a) 访问控制列表
-
每一条规则都应是有效的(例如,因临时需求而设定的规则,在不需要的时候应立刻移除);
-
应只允许策略授权的流量通过,其他所有的流量默认禁止。
b) 规则集
-
每一个规则都应是有效的;
-
规则应实施最小权限访问,例如限定可信的IP地址或端口;
-
特定规则应在通用规则之前被触发;
-
任何不必要的开放端口应关闭,以增强周边安全;
-
规则集不应允许流量避开其他安全防御。
c) 强制访问控制机制
-
强制访问控制策略应具有一致性,系统中各个安全子集应具有一致的主、客体标记和相同的访问规则;
-
以文件形式存储和操作的用户数据,在操作系统的支持下,应实现文件级粒度的强制访问控制;
-
以数据库形式存储和操作的用户数据,在数据库管理系统的支持下,应实现表/记录、字段级粒度的强制访问控制;
-
检查强制访问控制的范围,应限定在已定义的主体与客体。
6.1.4 系统配置检查
系统配置检查应能标识安全配置控制的弱点,其检查内容应包括:
a) 未依据安全策略进行加固或配置;
b) 发现不必要的服务和应用;
c) 发现不当的用户帐号和口令设置;
d) 发现不正确的日志和备份设置;
e) 安全配置文件,应包括操作系统的安全策略设置和安全配置文件(如UNIX的inet.d文件);
f) 重要信息系统中主、客体的敏感标记:
-
应包括由系统安全员创建的用户敏感标记、客体(如数据)敏感标记;
-
实施相同强制访问控制安全策略的主、客体,应以相同的敏感信息进行标记;
-
检查标记的范围,应扩展到系统中的所有主体与客体;
-
实施相同强制访问控制安全策略的各个场地的主、客体,应以相同的敏感信息进行标记,保证系统中标记的一致性。
6.1.5 文件完整性检查
实施文件完整性检查时应采取以下技术措施:
a) 应由一个已知安全的系统创建参考数据库,用于系统文件的比对;
b) 参考数据库应采用离线存储,防止攻击者通过修改数据库来破坏系统并隐藏踪迹;
c) 校验数据库应通过补丁和其他升级更新文件保持最新状态;
d) 应采用强密码校验等手段,保证校验数据库所存储的数据的完整性。
6.2 目标识别和分析技术
6.2.1 网络嗅探
实施网络嗅探应遵循以下原则:
a) 应对以下内容进行网络发现:
-
监控网络流量,记录活动主机的IP地址,并报告正在使用的端口、在网络中发现的操作系统信息;
-
识别主机之间的联系,包括哪些主机相互通信,其通信的频率和所产生的流量的协议类型;
-
通过自动化工具向常用的端口号发送多种类型的网络数据包(如ICMP pings),分析网络主机的响应,并与特定操作系统和网络服务的数据包的已知特征相比较,识别主机、所运行的操作系统、端口及端口的状态;
-
通过防火墙和入侵检测系统等网络设备进行网络发现时,若扫描安全性较弱的系统时,评估者应谨慎选择扫描类型,防止引起系统故障。
b) 应在以下测评需求中采用网络嗅探:
-
捕捉和重放网络流量;
-
实施被动的网络发现(例如,在网络中识别活动设备);
-
识别操作系统、应用程序、服务和协议,包括不安全协议(如telnet)和未授权协议(如P2P文件共享);
-
识别未授权和不恰当的行为,例如敏感信息的非加密传输;
-
收集信息(例如未加密的用户名和口令)。
c) 应在以下位置部署网络嗅探器,包括:
-
网络边界处,用以评估进出网络的流量;
-
防火墙后端,用以评估准确过滤流量的规则集;
-
IDS/IPS后端,用以确定签名是否被触发并得到适当的响应;
-
关键系统和应用程序前端,用以评估活动;
-
具体网段上,用以验证加密协议的有效性。
6.2.2 网络端口和服务识别
实施网络端口和服务识别应遵循以下原则:
a) 应对主机及潜在的漏洞服务进行识别,并用于确定渗透性测试的目标。
b) 应优先推荐使用外部扫描,以在内部测试之前和期间,对日志进行检查、比对;
c) 在执行外部扫描时,应使用含分离、复制、重叠、乱序和定时技术的工具,并利用工具改变数据包,让数据包融入正常流量中,使数据包避开IDS/IPS检测的同时穿越防火墙;
d) 应尽量减少扫描软件对网络运行的干扰,如选择端口扫描的时间。
6.2.3 漏洞扫描
实施漏洞扫描应遵循以下原则:
a) 应检查主机应用程序的使用和安全策略的兼容性;
b) 应提供渗透性测试的目标的相关信息;
c) 应提供关于如何减少被发现漏洞的相关信息;
d) 应识别主机的OS和应用的错误配置与漏洞(包括网络可利用的和本地可利用的);
e) 应识别漏洞的风险等级;
f) 使用漏洞扫描设备时应限制使用DoS攻击测试,以降低测试对扫描对象产生的风险。
6.2.4 无线扫描
6.2.4.1 扫描规划
在规划无线安全评估时,应考虑下列因素:
a) 被扫描设备的位置和范围。物理位置如果接近公共区域,如街道、公众场所,或位于繁忙的中心城区,可能增加无线威胁的风险;
b) 使用无线技术进行数据传输的系统安全等级和数据重要性;
c) 扫描环境中无线设备连接和断开的频繁程度以及该无线设备的常用通信方式(如偶然性活动和经常性活动);
d) 可参考利用系统中已有的无线入侵检测和防御系统中所收集的信息。
6.2.4.2 扫描工具
实施无线扫描的扫描工具应遵循以下原则:
a) 应使用安装配置无线分析软件的移动设备,如笔记本电脑、手持设备或专业设备;
b) 应允许评估者为具体扫描进行设备配置,以找出与该被测系统的无线安全配置要求的偏差;
c) 应适当配置扫描工具的扫描间隔时间,既能捕获数据包,又能有效地扫描每个频段;
d) 应允许用户导入平面图或地图,以协助定位被发现设备的物理位置;
e) 应能捕获其天线范围内正在传送的无线流量。就所发现的无线设备而言,大多数工具可提供几个关键属性,包括服务集标识符(SSID)、设备类型、频道、媒体访问控制(MAC)地址、信号强度及传送包的数目;
f) 应能够对捕获的数据包进行分析,从而确定是否有任何操作上的异常或威胁;
g) 扫描工具应能对系统中的无线设备进行渗透测试,提供攻击脚本调用功能。
6.2.4.3 蓝牙扫描
实施蓝牙扫描过程中,应遵循:
a) 在确定测试类型的范围时,应考虑对范围的限制;
b) 机构应扫描部署的支持蓝牙的所有基础设施,如蓝牙接入点;
c) 机构应根据其既定的策略和过程对无赖接入点进行处理。
6.3 目标漏洞验证技术
6.3.1 密码破解
实施密码破解应遵循:
a) 采用字典攻击方法生成哈希,
b) 采用混合攻击方法生成哈希,以字典攻击的方法为基础,在字典中增加数字、符号字符等,如使用字符和数字来代替字母,在单词的词首或词尾上添加字符;
c) 采用彩虹表的方法,使用预先计算好的哈希值查找表。
6.3.2 渗透测试
渗透性测试应遵循以下原则:
a) 应侧重于找出在应用程序、系统或网络中设计并实施的缺陷;
b) 应充分考虑并模拟内部攻击、外部攻击;
c) 尽可能采用远程访问测试方法;
d) 如果内部和外部测试都要执行,则应优先进行外部测试;
e) 应在评估者达到当其他行为会造成损害的时间点时即停止渗透测试;
f) 通过渗透测试的攻击阶段,应能确认以下几类漏洞的存在:
-
配置错误。安全设置的配置错误,特别是不安全的默认设置,通常很容易被利用;
-
内核缺陷。内核代码是操作系统的核心,执行该系统的整体安全模型——因此置于整个系统中内核的任何安全漏洞都是危险的;
-
缓冲区溢出。当程序不能充分检查适当长度的输入时会发生缓冲区溢出的程序。如果发生这种情况,则任意代码都可以被导入到系统中并有权执行——往往是在管理层上——正在运行的程序;
-
缺少足够的输入验证。许多应用程序不能完全验证他们从用户中接收到的输入。例如,一个在数据库查询中嵌入了用户值的Web应用程序。如果用户输入的是SQL命令而不是或其他所要求的值,那么Web应用程序将不过滤SQL命令,查询可能会以该用户所请求的恶意修改的方式运行,造成SQL注入式攻击;
-
符号链接。符号链接(symlink)是一个文件指向另一个文件的链接。操作系统包括可以改变一个文件授予权限的程序。如果这些程序运行带有权限限制,用户可以创建符号策略以欺骗这些程序修改或列出关键系统文件;
-
文件描述符攻击。文件描述符在系统中大量使用,用于记录文件名所代替的文件。文件描述符的具体类型有暗示用途。当特权程序分配一个不恰当的文件描述符,它暴露该文件以示妥协;
-
竞争条件。竞争条件可以发生在一个程序或进程已进入特权模式下的时候。用户可以利用特权升级的优势定时进行一次攻击,而该程序或进程仍然在特权模式下;
-
不正确的文件和目录权限。文件和目录的权限控制分配给用户和进程的访问。弱的权限可能允许多种类型的攻击,包括密码文件的阅读和书写或其他有可信度的远程主机的名单。
6.3.3 远程访问测试技术
远程访问测试应遵循以下原则:
a) 发现除终端服务器、VPN、SSH、远程桌面应用、拨号调制解调器之外是否存在其他的应防止的接入方式;
b) 发现未授权的远程访问服务。评估者可通过端口扫描定位经常用于进行远程访问的公开的端口,通过查看运行的进程和安装的应用来手工检测远程访问服务;
c) 检测规则集来查找非法的远程访问路径。评估者应检测远程访问规则集,如在VPN网关的规则集,查看其是否存在漏洞或错误的配置,从而导致非授权的访问;
d) 测试远程访问认证机制。评估者应在访问前确认是否需要获得认证授权。评估者可尝试默认的账户和密码或暴力攻击(使用社会工程学的方法重设密码来进行访问),或尝试通过self-service服务认证程序来重设密码从而获得访问权限;
e) 监视远程访问通信。评估者可以通过网络嗅探器监视远程访问通信。如果通信没有被保护,那么评估者可能利用这些数据作为远程访问的认证信息,或者将这些数据作为远程访问用户发送或接收的数据;
f) 主动或入侵性远程访问测试,应放在尽量减少对远程访问系统产生干扰的时间段进行。