导图社区 安全评估测试思维导图
这是一篇关于安全评估测试的思维导图,包含构建安全评估与测试方案、开展漏洞评估、测试软件、实施安全管理流程等。
编辑于2024-02-22 13:34:35安全评估测试
构建安全评估与测试方案
安全测试
安全测试资源的可用性
待测控制措施所保护的系统及应用程序的重要性 (criticality)
待测系统及应用程序所含信息的敏感性
实现控制措施的机制出现技术故障的可能性
危及安全性的控制措施出现错误配置的可能性
系统遭受攻击的风险
控制措施配置变更的频率
技术环境下可能影响控制措施性能的其他变更
开展控制措施测试的难度及时间
测试对正常业务运营造成的影响
安全测试旨在验证某项控制措施是否正常运行。这些测试包括自动化扫描、工具辅助的 渗透测试、破坏安全性的手动测试。安全测试应该定期实施,并关注保护组织的每个关键安全措施。
安全评估
安全评估是指对系统、应用程序或其他待测环境的安全性进行全面审查。在安全评估期 间,经过训练的信息安全专业人员执行风险评估,识别出可能造成危害的安全漏洞,并根据 需要提出修复建议。
根据 NIST SP 800-53A, 评估包括 4 个组成部分
规范 (specification)是与待审计系统有关的文档。规范通常包括政策、规程、要求、规格及设计。
机制是信息系统中用于满足规范的控制措施。机制可以基千硬件、软件或固件。
活动是信息系统中的人员所采取的行动。这些行动可能包括执行备份、导出日志文件或审查账户历史记录。
人员是指执行规范、机制及活动的人员
安全审计
审计是为了向第三方证明控制措 施的有效性而进行的评估。在评估这些控制措施的有效性时,负责设计、实施和监控控制措 施的组织员工之间存在潜在的利益冲突。
内部审计
内部审计由组织内部审计人员执行,通常适用千组织内部。内部审计人员在执行审计时 通常完全独立千所评估的职能。在许多组织中,审计负责人直接向总裁、首席执行官或其他 类似的角色汇报。审计负责人也可直接向组织的董事会报告。
外部审计
外部审计通常由外部审计公司执行。因为执行评估的审计员与组织并没有利益冲突,所 以外部审计具有很高的公信力
四大审计公司
安永(Emst&Young)
德勤(Deloitte&Touche)
普华永道(PricewaterhouseCoopers)
毕马威 (KPMG)
第三方审计
第三方审计是由另一个组织或以另一个组织的名义进行的审计。比如,监管机构可依据 合同或法律对被监管公司进行审计。在第三方审计的情况下,执行审计的组织通常挑选审核 员,并设计审计范围。
服务组织控制 (SOC)审计
SOC 1声明
评估可能影响财务报告准确性的组织控制措施。
SOC2 声明
评估组织的控制措施,这些控制措施会影响存储在系统中的信息的安全性(保密性、完整性和可用性)和隐私。 SOC2 审计结果是保密的,通常仅根据保密协议对外共享。
SOC3 声明
评估组织的控制措施,这些控制措施会影响系统中存储信息的安全性(保密 性、完整性和可用性)和隐私。但是, SOC3 审计结果旨在公开披露。
I 类报告
这些报告提供的审计员的意见仅涉及管理层提供的描述和控制措施的设计适 用性。 I类报告仅涵盖特定时间点,而不是一段持续的时间。不妨将 1 类报告视为文件审查, 其中审计员以书面形式检查,并确保管理层描述的控制是合理和适当的。
II 类报告
这些报告进一步提供了审计员对控制措施运行有效性的意见。也就是说,审 计员实际上确认了控制措施是否运行正常。 II 类报告还涵盖更长的时间段:至少六个月的运 行时间。不妨将 II类报告视为传统的审计。审计员不仅检查文档,还深入现场并验证控制功 能是否正常。
审计标准
COBIT
信息和相关技术控制目标(Control Objectives for Information and related Technologies, COBIT)是一种开展审计和评估的通用框架。
COBIT框架巾 ISACA负责维护。
开展漏洞评估
SCAP
安全社区需要一套通用标准,为漏洞描述和评估提供一种通用语言。 NIST 为安全社区提 供安全内容自动化协议(Security Content Automation Protocol, SCAP),从而满足这个需求。 SCAP 为社区的讨论提供通用框架,也促进不同安全系统之间交互的自动化。
CVE
通用漏洞披露(CommonVulnerabilities and Exposures, CVE):提供一种描述安全漏洞 的命名系统。
CVSS
通用漏洞评分系统(CommonVulnerabilityScoringSystem, CVSS):提供一种描述安全 漏间严重性的标准化评分系统。
CCE
通用配置枚举(CommonConfiguration Enumeration, CCE):提供一种系统配置问题的 命名系统。
CPE
通用平台枚举(Common Platform Enumeration, CPE):提供一种操作系统、应用程序 及设备的命名系统。
XCCDF
可扩展配置检查表描述格式(Extensible Configuration Checklist Description Format, XCCDF) :提供一种描述安全检查表的语言。
OVAL
开放漏洞评估语言(OpenVulnerabilityandAssessmentLanguage, OVAL):提供一种描 述安全测试过程的语言。
漏洞扫描
漏洞扫描可自动探测系统、应用程序及网络,以查找可能被攻击者利用的漏洞。漏洞扫 描工具可提供快速点击式测试,不需要人工干预即可执行繁杂的泥试任务。
网络发现扫描
TCPSYN 扫描
目标系统的每个端口发送一个设置 SYN 标志位的数据包。这个数据 包表示请求创建一个新 TCP连接。如果扫描器接收到设置 SYN和 ACK标志位的响应数据包, 这种情况表明目标系统已经进入TCP三次握手的第二阶段,也说明这个端口是开放的。 TCP SYN 扫描也被称为“半开放 ”(half-open)扫描。
TCP Connect 扫描
向远程系统的某个端口创建全连接。这种扫描类型适用于执行扫描的用户没有运行半开放扫描所需的权限。大多数其他类型的扫描需要发送原生数据包的能力,扫描用户可能因为操作系统的限制而无法发送构造的原生数据包
TCP ACK 扫描
发送设置 ACK 标志位的数据包,表明它属千某个开放连接。这种扫 描可以尝试确定防火墙规则或防火墙方法。
UDP 扫描
使用 UDP 协议对远程系统开展扫描以检查存活的 UDP 服务。此类扫描不 使用三次握手,因为 UDP 是无连接协议。
Xmas扫描
发送设置FIN、 PSH及URG标志位的数据包。据说设置如此多标志位的数 据包像“圣诞树一样亮起来“,故此得名。
网络漏洞扫描
Web应用程序漏洞扫描
数据库漏洞扫描
漏洞管理工作流程
检测
漏洞的初次识别通常是漏洞扫描的结果。
验证
一旦扫描器检测到漏洞,管理员应该验证漏洞,判断其是否为误报。
修复
此后,应该对验证过的漏洞加以修复。漏洞修复可能包括:采用供应商提供的补丁,修改设备配置,执行规避漏洞的折中方法,安装 Web 应用程序防火墙,以及采取阻 止漏洞利用的其他控制措施。
组织采用漏洞管理系统,应该形成一套工作流程来管理漏洞
渗透测试
阶段
规划阶段
该阶段就测试范围和参与规则达成一致。规划阶段是极其重要的阶段,确 保测试团队和管理人员对测试性质达成共识,同时明确测试是经过授权的。
信息收集和发现阶段
结合人工和自动化工具来收集目标环境的信息。此阶段涉及执 行基本的侦察来确定系统功能(如访问系统上托管的网站),以及执行网络发现扫描来 识别系统的开放端口。
攻击阶段
尝试使用手动和自动漏桐利用工具来破坏系统安全。此阶段是渗透测试超 越漏洞扫描的地方,因为漏洞扫描不会尝试实际利用检测到的漏洞。
报告阶段
总结渗透测试结果,并提出改进系统安全的建议。
测试类型
白盒渗透测试(White-Box Penetration Test)
向攻击者提供目标系统的详细信息。这种测 试通常可以绕过攻击之前的许多侦察步骤,从而缩短攻击时间,提升发现安全漏洞的可能性。
灰盒渗透测试(Gray-Box Penetration Test)
也称为部分知识测试,有时被用千平衡白盒 渗透测试和黑盒渗透测试的优缺点。当需要黑盒测试结果,但由千成本或时间受限,需要一些知识来完成测试时,常使用这种测试方式。
黑盒渗透测试(Black-BoxPenetration Test)
攻击之前不会向测试人员透露任何信息。这种测试模拟外部攻击者,在攻击之前试图获取有关业务和技术环境的信息。
开展渗透测试的组织应该小心谨慎,确保己了解测试本身的危害。渗透测试试图利用漏 洞,因此可能中断系统访问或损坏系统存储的数据。在启动测试前,需要在测试规划期佪明确指出参与规则,并从高级管理层获得充分授权,这点非常重要。
合规性检查
合规性检查是被监管公司安全渊试和评估计划的重要组成部分。合规性检查验证合规计 划列出的所有控制措施是否正常运行并有效满足监管要求。定期执行合规性检查,可以确保 组织合规计划的正常运转,并避免不可预见的监管问题。
漏洞评估是信息安全专业人员手中最重要的测试工具之一。漏洞扫描和渗透测试可以识 别系统或应用中包含的技术漏洞,从而让安全专业人员发现系统或应用的技术控制措施中的 脆弱性。漏洞是系统和安全控制措施中可能被威胁利用的弱点。漏洞评估通常使用自动化手 段检查系统是否存在这些弱点,并帮助安全专业人员制订路线图,以修复对业务构成不可接 受风险的弱点。
测试软件
代码审查与测试
代码审查
(code review)是软件评估的基础。代码审查也被称为“同行评审" (peerreview),即除了编写代码的开发人员,其他开发人员也审查代码是否存在缺陷。代码审查可以决定是允许将应用程序移植到生产环境,还是将其退回给原开发人员重写
Fagan inspection(范根检查法)
规划
总览
准备
审查
返工
追踪
静态测试
静态应用程序安全测试(SAST)在不运行软件的情况下,通过分析软件源代码或编译后的应用程序来评估软什的安全性。静态分析往往涉及自动化检测二具,月千检测常见的软件缺陷,如缓冲区溢出。在成熟的开发环境中,软件开发人员被授权使用静态分析工具,并将其运用于软件设计、构建及测试过程中。
动态测试
动态应用程序安全测试(DAST)在软件运行环境下检测软件的安全性。如果组织部署他人开发的软件,动态应用程序安全测试是唯一选择,因为测试人员无法接知到软件的底层源代码。动态测试的常见示例是使用 Web 应用程序扫描工具来检测 Web 应用程序是否存在跨站脚本、SQL 注入或其他漏洞。在生产环境中,动态测试务必小心开展,以避免服务的意外中断。
模糊测试
模糊测试是一种特殊的动态测试技术,向软件提供许多不同类型的输入来测试其边界,以发现之前未检测到的缺陷。模糊测试向软件提供无效的输入,例如随机产生的或特殊构造的输入,从而触发已知的软件漏洞。模糊测试人员监测软件的性能,观察软件是否崩溃、是否出现缓冲区溢出或其他不可取和I或不可预知的结果。
接口测试
应用编程接口 (API):
为代码模块之间的交互提供统一的方法,并以 Web 服务的形式向外发布。开发人员对 API 进行测试,以确保 API 实施了所有安全要求。
用户界面(UI)
为代码模块之间的交互提供统一的方法,并以 Web 服务的形式向 外发布。开发人员对 API 进行测试,以确保 API 实施了所有安全要求。
物理接口
存在于操作机械装置、逻辑控制器或其他物理设备的一些应用程序。软件测 试人员应该谨慎测试物理接口,因为如果物理接口失效,可能导致一些潜在危害。
子主题
接口测试是复杂软件系统开发的重要组成部分。大多数情况下,多个开发团队负责复杂应用程序的不同部分,这些部分必须协同起来才能实现业务目标。这些独立开发的模块需要通过定义清晰的接口进行交互,从而使每个团队可以独立开发。接口测试依据接口设计规范评估模块的性能,以确保模块在开发工作完后可以协同工作。
误用案例测试
在误用案例测试中,测试人员首先列举已知误用案例,然后试图通过手工或自动化攻击的方法,利用这些误用案例来测试应用程序。
测试覆盖率分析
网站监测
被动监测
在流量穿越网络或抵达服务器的过程中,捕获和分析发送到网站的实际网络 流量。被动监测提供真实的监测数据,帮助管理员深入了解网络上正在发生的事情。真实用户监控(real user monitoring, RUM)是被动监测的一种变体,在该方法中,监测工具重新组装单个用户的活动,以追踪其与网站的交互。
综合监测
该方法向网站发起伪造的事务活动,从而评估网站性能。综合监测可能只是简单地向站点请求一个页面来计算响应时间,也可能执行复杂的脚本来确认事务活动的结果。
实施安全管理流程
日志审查
SIEM(安全信息和事件管理)
设备日志
操作系统日志
应用程序syslog
账户管理
管理人员要求系统管理员提供特权用户及其特殊权限的列表。管理人员可以在检索 此列表时监测管理员,以避免篡改。
管理人员要求特权审批机构提供特权用户及其特殊权限的列表。
管理人员对这两份清单进行比较,确保只有经授权的用户能够保留对系统的 访问权限,并且每个用户的访问权限不超过其授权。
灾难恢复和业务连续性
一致性的备份方案是上述工作中极其重要的组成部分。管理人员应定期检查备份结果,确保流程可有效地运行并满足组织的数据保护需求。这个过程可能涉及审查日志、审查哈希值或请求系统或文件的实际恢复。对灾难恢复和业务连续性控制措施的定期测试可以为组织提供有效保护,使其免受业务运营中断的影响。
培训和意识·
培训和意识方案在培养组织员工以支持信息安全方案方面发挥着至关重要的作用。这些努力使员工了解当前的威胁,向员工提供最佳实践,从而保护信息和系统并抵御攻击。
这些方案应该从职前培训开始,为首次进入组织或担任新角色的员工提供基础知识。这 种培训应根据个人的角色量身定制,为他们提供履行安全职责所需的具体、可操作的信息。
组织应该全年定期开展培训和意识提升工作,提醒员工明确其责任,并让员工了解组织运营环境和威胁形势的变化。
许多组织使用网络钓鱼模拟来评估安全意识方案的有效性。这些模拟使用虚假的网络钓鱼消息来确认用户是否容易受到网络钓鱼攻击。员工单击链接或以其他方式响应模拟攻击后,将被重定向到培训资源,因此,该方法有助千员工更好地识别可疑活动。
关键绩效和风险指标
遗留漏洞的数量
修复漏洞耗时
漏洞/缺陷重现
被盗用账户的数量
在代码移植到生产环境前的扫描过程中检测到的软件缺陷数量
重复审计的结果
尝试访问已知恶意站点的用户