导图社区 OSG9第十五章 安全评估与测试
第十五章 安全评估与测试,CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
编辑于2023-07-18 10:04:49 广东关于GBT 35273—2020个人信息安全规范的思维导图,本标准规定了开展收集、存储、使用、共享、转让、公开披露、删除等个人信息处理活动应遵循的原则和安全要求。
CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
社区模板帮助中心,点此进入>>
关于GBT 35273—2020个人信息安全规范的思维导图,本标准规定了开展收集、存储、使用、共享、转让、公开披露、删除等个人信息处理活动应遵循的原则和安全要求。
CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
第十五章 安全评估与测试
15.1 构建安全评估和测试方案
安全评估和测试方案:是信息安全团队的基础维护活动。方案包括测试、评估和审计,旨在定期验证组织是否具有足够的安全控制措施,以及这些措施是否正常运行并有效保护信息资产
安全评估组成
安全测试
安全评估
安全审计
15.1.1 安全测试
安全测试:旨在验证某项控制措施是否正常运行
测试包括
自动化扫描
工具辅助的渗透测试
破坏安全性的手动测试
信息安全管理者(information security manager)需要考虑的因素
安全测试资源的可用性
待测控制措施所保护的系统及应用程序的重要性(criticality)
待测系统及应用程序所含信息的敏感性
实现控制措施的机制出现技术故障的可能性
及安全性的控制措施出现错误配置的可能性
系统遭受攻击的风险
控制措施配置变更的频率
技术环境下可能影响控制措施性能的其他变更
开展控制措施测试的难度及时间
测试对正常业务运营造成的影响
在分析每个因素后,安全团队设计和确认全面的评估和测试策略。该策略可能包含频繁 的自动化测试,并辅以少量的手工测试
例如每晚对信用卡处理系统自动化漏洞扫描,一年开展一次渗透测试等
安全专业人员必须仔细审查这些测试结果,以确保每个测试都是成功的
15.1.2 安全评估
安全评估:是指对系统、应用程序或其他待测环境的安全性进行全面审查。
安全评估期间,经过训练的信息安全专业人员执行风险评估,识别出可能造成危害的安全漏洞,并根据需要提出修复建议
安全评估包括
安全测试工具的使用,但不限于自动化扫描和手工渗透测试
对威胁环境、当前和未来风险、目标环境价值的细致审查。
安全评估的主要成果通常是向管理层提交的评估报告,报告包括以非技术语言描述的评估结果,并往往以提高待测环境安全性的具体建议作为结论。
评估可以由内部团队执行,也可以委托在待评估领域具备经验的第三方评估团队进行。
NIST SP 800-53A, 评估4 个组成部分
规范(specification):是与待审计系统有关的文档。规范通常包括政策、规程、要求、规格及设计
机制:是信息系统中用于满足规范的控制措施。机制可以基于硬件、软件或固件。
活动:是信息系统中的人员所采取的行动。这些行动可能包括执行备份、导出日志文件或审查账户历史记录
人员:是指执行规范、机制及活动的人员
15.1.3 安全审计
安全审计必须由独立审核员执行
审计是为了向第三方证明控制措施的有效性而进行的评估
审计员(auditor):为组织的安全控制状态提供一种客观中立的视角。
审计有三种主要类型
内部审计
内部审计由组织内部审计人员执行,通常适用于组织内部,公司内部审计部门
许多组织中,审计负责人直接向总裁、首席执行官或其他类似的角色汇报。审计负责人也可直接向组织的董事会报告。
外部审计
外部审计通常由外部审计公司执行,和其它审计公司签订合同
执行评估的审计员与组织并没有利益冲突,所以外部审计具有很高的公信力
四大审计公司:
安永(Emst&Young)
德勤(Deloitte & Touche)
普华永道(PricewaterhouseCoopers)
毕马威(KPMG)
多数投资者和理事机构成员通常认可这些公司的审计结果。
第三方审计
第三方审计是由另一个组织或以另一个组织的名义进行的审计。比如,监管机构可依据合同或法律对被监管公司进行审计
向其他组织提供服务的组织经常被要求进行第三方审计。如果被审计的组织拥有大量客 户,第三方审计将变成不小的负担
美国注册会计师协会(American Institute of Certified Public Accountants, AICPA)发布了一项旨在减轻这类负担的标准
第 18 号认证业务标准声明(the Statement on Standards for Attestation Engagements document 18, SSAE 18)提供了一项通用标准,这样服务组织只需要开展一次第三方评估而不必进行多次第三方评估
SSAE 18 和 ISAE 3402 声明通常被称为服务组织控制(SOC)审计,并以三种形式出现
SOC1 声明:评估可能影响财务报告准确性的组织控制措施。
SOC2 声明:评估组织的控制措施,这些控制措施会影响存储在系统中的信息的安全性(保密性、完整性和可用性)和隐私和安全。 SOC2 审计结果是保密的,通常仅根据保密协议对外共享-CIASP
SOC3 声明:评估组织的控制措施,这些控制措施会影响系统中存储信息的安全性(保密性、完整性和可用性)和隐私。但是, SOC3 审计结果旨在公开披露。
除了三类 SOC 评估之外,还有两种不同类型的 SOC报告
I 类报告 :这些报告提供的审计员的意见仅涉及管理层提供的描述和控制措施的设计适用性。 I 类报告仅涵盖特定时间点,而不是一段持续的时间。不妨将 1 类报告视为文件审查,其中审计员以书面形式检查,并确保管理层描述的控制是合理和适当的。
II 类报告 :这些报告进一步提供了审计员对控制措施运行有效性的意见。也就是说,审计员实际上确认了控制措施是否运行正常。 II 类报告还涵盖更长的时间段:至少六个月的运行时间。不妨将 II 类报告视为传统的审计。审计员不仅检查文档,还深入现场并验证控制功能是否正常。有实际测试
因为 II 类报告包括独立的控制措施测试,人们认为 II 类报告比 I 类报告可靠得多。 I 类 报告仅让服务组织相信这些控制措施是遵照描述实施的。
信息安全专业人员经常被要求参与内部、外部和第三方审计。信息安全专业人员通常通过访谈和书面文档的方式,向审计员提供有关安全控制措施的信息
审计标准
在进行审计或评估时,审计团队应该清楚他们在采用什么标准来评估组织
信息和相关技术控制目标(Control Objectives for Information and related Technologies,COBIT):是一种开展审计和评估的通用框架,COBIT 框架由 ISACA 负责维护
国际标准化组织(ISO):还发布了一套与信息安全相关的标准。 ISO 27001 描述了建立信息安全管理系统的标准方法,而 ISO 27002 则介绍了信息安全控制措施的更多细节
审计报告
高级管理层:执行摘要(1页纸即可)
运营、安全管理人员:详细报告
考虑语言管理层的不要技术性太强
15. 2 开展漏洞评估
漏洞评估:通常使用自动化手段检查系统是否存在这些弱点,并帮助安全专业人员制订路线图,以修复对业务构成不可接受风险的弱点
漏洞:是系统和安全控制措施中可能被威胁利用的弱点。
漏洞扫描和渗透测试:可以识别系统或应用中包含的技术漏洞,发现系统应用技术控制中的脆弱性
15.2.1 漏洞描述
安全社区需要一套通用标准,为漏洞描述和评估提供一种通用语言。 NIST 为安全社区提供安全内容自动化协议(Security Content Automation Protocol, SCAP) ,从而满足这个需求
SCAP组件
通用漏洞披露(Common Vulnerabilities and Exposures, CVE) :提供一种描述安全漏洞的命名系统
通用漏洞评分系统(Common Vulnerability Scoring System, CVSS) :提供一种描述安全漏洞严重性的标准化评分系统
用配置枚举(Common Configuration Enumeration, CCE) :提供一种系统配置问题的命名系统
通用平台枚举(Common Platform Enumeration, CPE) :提供一种操作系统、应用程序及设备的命名系统
扩展配置检查表描述格式(Extensible Configuration Checklist Description Format,XCCDF):提供一种描述安全检查表的语言
开放漏洞评估语言(Open Vulnerability and Assessment Language, OVAL):提供一种描述安全测试过程的语言
15.2.2 漏洞扫描
漏洞扫描:可自动探测系统、应用程序及网络,以查找可能被攻击者利用的漏洞
漏洞扫描主要分为四类
网络发现扫描
网络发现扫描:运用多种技术来扫描一段IP 地址,从而探测存在开放网络端口的系统
TCP SYN 扫描:向目标系统的每个端口发送一个设置 SYN 标志位的数据包。也被称为“半开放”(half-open)扫描。
TCP Connect 扫描:向远程系统的某个端口创建全连接,适用于执行扫描的用户没有运行半开放扫描所需权限的情况
TCP ACK 扫描:发送设置 ACK 标志位的数据包,表明它属于某个开放连接,这种扫描可以尝试确定防火墙规则或防火墙方法
UDP 扫描:使用 UDP 协议对远程系统开展扫描以检查存活的 UDP 服务。此类扫描不使用三次握手,因为UDP 是无连接协议
Xmas 扫描:发送设置 FIN、 PSH 及 URG 标志位的数据包。据说设置如此多标志位的数据包像“圣诞树一样亮起来“,故此得名。
Nmap
网络发现扫描最常用的工具是一款名为 nmap 的开源工具。 nmap 最早发布于 1997 年
nmap 可以提供该端口的当前状态
Open(开放):该端口在远程系统上已经开放,同时该端口上运行着可以主动接受连接请求的应用程序
Closed(关闭):该端口在远程系统上可以访问,意味若防火墙允许访问该端口,但是该端口上没有运行接受连接请求的应用程序。
Filtered(过滤):因为防火墙会干扰连接尝试, nmap无法确定该端口是开放还是关闭。
读取这些信息后,攻击者可对目标系统进行一些观察,以便进一步探测。
192.168.1.0/24 网络,包括 192.168.1.0 到 192.168.1.255范围内的所有 IP 地址,工具可以增段扫描
网络漏洞扫描
相对与网络发现扫描,网络漏洞扫描更深入。网络漏洞扫描不仅探测开放端口,还会继续探测目标系统或网络,从而确定是否存在已知漏洞
误报(false positive report) :即使系统中实际上不存在该漏洞,扫描器也会报告存在漏洞。这种情况被称作误报
漏报(false negative report):当漏洞扫描器遗漏某个漏洞,未能向系统管理员报告系统处于危险中时,这种情况更危险,被称作漏报
网络扫描器默认执行未经身份认证的扫描。即在不知悉密码或未获取授予攻击者特权的其他重要信息的情况下,网络扫描器对系统进行扫描。
常见的 TCP 端口
漏洞扫描工具
Nessus
OpenVAS
aircrack-ng 是一种常见的无线网络安全评估工具,它通过测试无线网络的加密算法和其他安全参数进行安全评估
Web 应用程序漏洞扫描
Web 漏洞扫描器:是专门检测 Web 应用程序中已知漏泪的工具
需要Web漏洞扫描场景
在初次执行 Web 应用程序漏洞扫描时扫描所有应用程序,这种做法可以检测到遗留应用程序问题,(重复扫描)
初次将任意的新应用程序移植到生产环境前执行 Web 应用程序漏洞扫描。
将代码变更部署到生产环境前扫描所有修改过的应用程序。
定期扫描所有应用程序。根据应用程序的优先级安排扫描任务
支付卡行业数据安全标准(Payment Card Industry Data Security Standard, PCI DSS):要求企业至少每年执行一次Web 应用程序漏洞扫描或安装专业的 Web 应用程序防火墙,为抵御 Web 漏洞添加额外的防护层。
数据库漏洞扫描
数据库存储一些组织最敏感的数据,容易成为攻击者牟利的目标
sqlmap 是一种常用的开源数据库漏洞扫描工具,帮助安全专业入员检测 Web 应用程序的数据库漏洞
5. 漏洞管理工作流程
组织采用漏洞管理系统,应该形成一套工作流程来管理漏洞
基本步骤
(1) 检测:漏洞的初次识别通常是漏洞扫描的结果
(2) 验证:一旦扫描器检测到漏洞,管理员应该验证漏洞,判断其是否为误报
(3) 修复:此后,应该对验证过的漏洞加以修复
工作流程方法的目标是确保组织能有条不紊地检测和修复漏洞
15.2.3 渗透测试
因为渗透测试实际上在尝试攻击系统所以比漏洞测试方法更深入
需要考虑渗透测试报告给谁看,报告需要有漏洞解决方案
高级管理层:执行摘要(1页纸即可)
运营、安全管理人员:详细报告
考虑语言管理层的不要技术性太强
渗透测试过程通常包含以下几个阶段
规划阶段: 该阶段就测试范围和参与规则达成一致,取得授权
信息收集和发现阶段: 结合人工和自动化工具来收集目标环境的信息。
攻击阶段: 尝试使用手动和自动漏桐利用工具来破坏系统安全
报告阶段 :总结渗透测试结果,并提出改进系统安全的建议。
渗透测试人员经常使用一种名为 Metasploit (MSF)的工具对目标系统实施自动化的漏洞利用。
渗透测试通常分以下三种
白盒渗透测试(White-Box Penetration Test) :向攻击者提供目标系统的详细信息。
灰盒渗透测试(Gray-Box Penetration Test) :也称为部分知识测试,有时被用与平衡白盒渗透测试和黑盒渗透测试的优缺点
黑盒渗透测试(Black-Box Penetration Test) :攻击之前不会向测试人员透露任何信息
从高级管理层获得充分授权,这点非常重要
盲测
获得授权
安全部门团队不知道
双盲测
只有极个别高级领导知道
各部门和安全团队不知道,更接近真实黑客攻击
15.2.4 合规性检查
精明的组织创建并维护合规计划,记录每项监管义务,并将其映射到满足目标的明确的安全控制措施
合规性检查验证合规计划列出的所有控制措施是否正常运行并有效满足监管要求
15.3 测试软件
软件是系统安全的核心组成部分。现代企业所使用的许多应用程序通常包含以下共同特征。
软件应用程序通常拥有操作系统、硬件和其他资源的访问特权。
软件应用程序往往处理敏感信息,包括信用卡号码、社会保险号码和专有的业务信息
许多软件应用程序依赖于存储敏感信息的数据库。
软件应用程序是现代企业的核心,执行关键业务功能。软件故障可能对业务造成严重破坏
15.3.1 代码审查与测试
在应用程序正式上线前,代码审查和测试可以发现应用程序在安全、性能、可靠性方面的缺陷,以免这些缺陷对业务运营产生负面影响。
上线前必须要做代码审查
1. 代码审查
代码审查(code review):是软件评估的基础。代码审查也被称为“同行评审" (peerreview),即除了编写代码的开发人员,其他开发人员也审查代码是否存在缺陷
代码审查过程
范根检查法(Fagan inspection)
(1) 规划
(2) 总览
(3) 准备
(4) 审查
(5) 返工
(6) 追踪
多数组织使用稍微宽松的代码审查流程
开发人员在会议上与一个或多个其他团队成员走查(walk through)代码。
高级开发人员执行手动代码审查,在将代码移植到生产环境之前签署所有代码。
在将代码移植到生产环境之前使用自动化代码审查工具检测常见的应用缺陷。
2. 静态测试
静态应用程序安全测试(static application security testing,SAST):在不运行软件的情况下,通过分析软件源代码或编译后的应用程序来评估软什的安全性,主要依靠工具
3 动态测试
动态应用程序安全测试(dynamic application security testing,DAST):在软件运行环境下检测软件的安全性
动态测试可以使用模拟事务(synthetic transaction)之类的方法验证系统的性能。模拟事务是一些脚本化的事务用例及其预期结果,实际结果与预期结果存在偏差者存在问题
4. 模糊测试
模糊测试:是一种特殊的动态测试技术,向软件提供许多不同类型的输入来测试其边界, 以发现之前未检测到的缺陷
模糊测试主要分为以下两大类
突变(mutation 或 dumb)模糊测试:从软件实际操作获取输入值,然后操纵或改变输入值来生成模糊输入,变异器,zzuf工具
预生成(智能)模糊测试:设计数据模型,并基于对软件所用数据类型的理解创建新的模糊输入
模糊测试虽然是一个重要工具,但确实有局限性。模糊测试通常不能完全覆盖程序的代码,一般仅限于检测不涉及复杂业务逻辑的简单漏洞
15.3.2 接口测试
接口测试:依据接口设计规范评估模块的性能,以确保模块在开发工作完后可以协同工作。
测试的接口分为三种类型
应用编程接口(API): 为代码模块之间的交互提供统一的方法,并以 Web 服务的形式向外发布
用户界面(UI): 包括图形用户界面(GUI)和命令行界面。UI 为终端用户提供与软件交互 的能力。接口测试应该审查所有用户界面,以验证用户界面是否正常工作
物理接口:存在于操作机械装置、逻辑控制器或其他物理设备的一些应用程序
15.3.3 误用案例测试
一些应用程序会以清晰的示例展示软件用户可能错误使用该应用程序的方式
例如,银行软件的用户可能尝试修改输入字符串来访问其他用户账户。他们也可能尝试从已透支的账户上取款,ATM取超出余额的钱
在误用案例测试中,测试人员首先列举已知误用案例,然后试图通过手工或自动化攻击的方法,利用这些误用案例来测试应用程序
15.3.4 测试覆盖率分析
测试覆盖率:
五个常见标准
分支覆盖率:在所有 if 和 else 条件下,是否已执行每个 if 语句?
条件覆盖率:在所有输入集合下,是否已测试代码中的每个逻辑?
函数覆盖率:是否已调用代码中的每个函数并返回结果?
循环覆盖率:在导致代码执行多次、一次或零次的条件下,是否已执行代码中的每个循环?
语句覆盖率:测试期间,是否已执行所有代码?
通常使用工具自动化进行
15.3.5 网站监测
被动检测
被动监测:在流量穿越网络或抵达服务器的过程中,捕获和分析发送到网站的实际网络流量
被动监测提供真实的监测数据,帮助管理员深入了解网络上正在发生的事情
真实用户监控(real user monitoring, RUM):是被动监测的一种变体,在该方法中,监测工具重新组装单个用户的活动,以追踪其与网站的交互。
综合检测(主动检测)
综合监测(或主动监测):该方法向网站发起伪造的事务活动,从而评估网站性能
综合监测可能只是简单地向站点请求一个页面来计算响应时间,也可能执行复杂的脚本来确认事 务活动的结果。
因为被动监测和综合监测可以达到不同目的,这两种技术通常相互配合使用
15.4 实施安全管理流程
除了实施评估和测试外,健全的信息安全方案还包括各种管理流程,目的是监督信息安 全计划是否有效运行
15.4.1 日志审查
SIEM 工具包利用许多设备、操作系统和应用程序提供的 syslog 功能来收集信息
管理员可通过 Windows 组策略对象(GPO)和其他机制来部署日志策略,这些机制可以在整个组织中部署和实施标准策略
日志系统还应该利用网络时间同协议(NTP)来确保向 SIEM 发送日志记录的系统和 SIEM 的时钟是同步的。这种做法保证多种来源的信息具有一致的时间轴
信息安全管理者还应定期进行日志审查,特别是对于敏感功能,以确保特权用户不会滥用其权。
15.4.2 账户管理
账户管理审查确保用户仅保留被授予的权限,且未发生未授权的修改
账户管理审查可以是信息安全管理人员或内部审计员的一项职能
通用用示例
(1) 管理人员要求系统管理员提供特权用户及其特殊权限的列表
(2) 管理人员要求特权审批机构提供特权用户及其特殊权限的列表。
(3) 然后,管理人员对这两份清单进行比较,确保只有经授权的用户能够保留对系统的 访问权限,并且每个用户的访问权限不超过其授权
组织如果没有时间执行全部流程,可以改用抽样方式
组织还可以自动执行账户审核流程的部分工作。许多身份和访问管理(Identity and Access Management,IAM)供应商可以提供账户审查工作流程,提示管理员开展审查、维护账户文档并提供审计踪迹(audit trail)来表明审计的完成。
认证=评估,在运营之前上线前完成,泰尔认证、303645莱茵认证
认可=授权,在运营之前上线前完成
15.4.3 灾难恢复和业务连续性
灾难恢复和业务连续性控制措施的定期测试可以为组织提供有效保护,使其免受业务运营中断的影响
技术架构、业务等有重大更新更新后,BIA要立即更新
15.4.4 培训和意识
培训和意识方案在培养组织员工以支持信息安全方案方面发挥着至关重要的作用
这些努力使员工了解当前的威胁,向员工提供最佳实践,从而保护信息和系统并抵御攻击。
这些方案应该从职前培训开始,为首次进入组织或担任新角色的员工提供基础知识。
组织应该全年定期开展培训和意识提升工作,提醒员工明确其责任,并让员工了解组织 运营环境和威胁形势的变化。
许多组织使用网络钓鱼模拟来评估安全意识方案的有效性
15.4.5 关键绩效和风险指标
安全管理人员还应持续监测关键绩效和风险指标
组织识别出期望跟踪的关键安全指标后,管理人员可能希望开发一个指示板,以便清晰地展示这些指标的值随着时间的变化,而且管理人员和安全团队可以定期查看。
可能包括如下内容
遗留漏洞的数量
修复漏洞耗时
漏洞/缺陷重现
被盗用账户的数量
代码移植到生产环境前的扫描过程中检测到的软件缺陷数量
重复审计的结果
尝试访问已知恶意站点的用户