笑话网站html模板,芭乐站长统计 网站统计,wap移动建站系统,网站建设 秦皇岛公司1. 前言
孙子曰#xff1a;知彼知己者#xff0c;百战不殆#xff1b;不知彼而知己#xff0c;一胜一负#xff0c;不知彼#xff0c;不知己#xff0c;每战必殆。 摘自《 孙子兵法谋攻篇 》在2500 年前的那个波澜壮阔的春秋战国时代#xff0c;孙子兵法的这段话…1. 前言
孙子曰知彼知己者百战不殆不知彼而知己一胜一负不知彼不知己每战必殆。 摘自《 孙子兵法·谋攻篇 》在2500 年前的那个波澜壮阔的春秋战国时代孙子兵法的这段话给出了作战的三个层次。这个思想同样适用于软件的安全的攻防。
充足的防御准备与对攻击者观点的理解相结合可以更好的为软件安全带来保证仅靠充足的防御措施可以保护系统免受已知威胁但软件系统仍容易受到外部的的攻击缺乏主动防御和对攻击者视角的理解会让软件系统完全称为待宰的肉鸡。
为了构建安全的软件构建者必须确保已经保护了所有相关的潜在漏洞。然而要攻击软件攻击者通常只需要找到并利用一个暴露的漏洞。
为了识别和缓解软件中的相关漏洞开发者需要的不仅仅是良好的软件工程和分析实践、对软件安全功能的扎实掌握以及一套强大的工具。所有这些都是必要的但不是充分的。
为了有效地应对软件攻击防护者需要牢牢掌握攻击者的观点和用于利用软件系统的方法。
了解对手的运作方式对于有效的网络安全至关重要。
2. 通用攻击模式枚举与分类(Common Attack Pattern Enumeration and Classification(CAPEC))
通用攻击模式枚举与分类(Common Attack Pattern Enumeration and Classification(CAPEC)) 向我们提供了一个攻击者视角的攻击模式以帮助增强整个软件开发生命周期的安全性并支持开发人员、测试人员和教育工作者的需求。
CAPEC 以正向和建设性的方式表达攻击者的观点为各级软件开发人员提供专家级的理解和指导让他们了解他们的软件可能如何受到攻击从而使他们能够构建更安全的软件。
CAPEC 通过提供一个全面的已知攻击模式字典来帮助攻击者利用网络能力中的已知弱点。
分析师、开发人员、测试人员和教育工作者可以使用它来促进社区理解和增强防御。
常见攻击模式枚举和分类提供了一个公开可用的常见攻击模式目录帮助用户了解攻击者如何利用应用程序和其他网络功能中的弱点。
“攻击模式”是对攻击者利用网络能力的已知弱点所采用的常见属性和方法的描述。攻击模式定义了对手可能面临的挑战以及他们如何解决这些挑战。它们源自在破坏性而非建设性环境中应用的设计模式概念并产生于对特定现实世界漏洞利用示例的深入分析。
每个攻击模式都会获取有关如何设计和执行攻击的特定部分的知识并提供有关降低攻击有效性的方法的指导。攻击模式可帮助开发应用程序或管理网络功能的人员更好地了解攻击的特定元素以及如何阻止它们成功。
2.1. 节点类别
和 CWE 类似CAPEC 以树、节点的方式展示攻击模式。
图标节点类型节点描述 类别(Category)是基于某些常见特征的攻击模式的集合, 是基于效果/意图的攻击模式聚合, 聚合元攻击模式。 基于效果/意图的聚合不是可操作的攻击因此不是一种攻击行为模式, 它是基于一些常见标准的一组模式。 元攻击模式(Meta Attack Pattern)是对攻击中使用的特定方法或技术的绝对抽象的描述。 元攻击模式通常没有特定的技术或实现旨在提供对高级方法的理解。 元级别攻击模式是标准级别攻击模式的相关组的泛化。 元级攻击模式对于架构和设计级威胁建模练习特别有用。 标准攻击模式(Standard Attack Pattern)侧重于攻击中使用的特定方法或技术。它通常被视为完全执行的攻击的单个部分。标准攻击模式旨在提供足够的详细信息来了解特定技术以及它如何尝试实现预期目标。标准级别攻击模式是更抽象的元级别攻击模式的一种特定类型。 详细攻击模式(Detailed Attack Pattern)提供较低级别的详细信息通常利用特定技术并针对特定技术并表示完整的执行流程。详细的攻击模式比元攻击模式和标准攻击模式更具体并且通常需要特定的保护机制来缓解实际攻击。详细的级别攻击模式通常会利用链接在一起的许多不同的标准级别攻击模式来实现目标。
2.2. 视图
2.2.1. 攻击机制的视图CAPEC-1000
视图根据利用漏洞时经常使用的机制分层组织攻击模式。作为该视图成员的类别代表用于攻击系统的不同技术。它们并不代表攻击的后果或目标。根据不同人的观点某些攻击模式有可能与多个类别保持一致。为了解决这个问题重点放在了每个类别中呈现的攻击模式而不是有时但无一例外地使用一种技术。 本视图包含的节点
-这个视图全部攻击模式541541类别915视图011总计550567
2.2.2. 攻击域的视图CAPEC-3000
视图根据攻击域分层组织攻击模式。 本视图包含的节点
-这个视图全部攻击模式541541类别615视图011总计547567
2.2.3. 扩展视图
扩展视图用于表示映射到外部分组如前 N 个列表的映射以及表示由某些外部因素相关的条目子集。 CAPEC-333:按 WASC 威胁分类 2.0 查看 过滤条件/Attack_Pattern_Catalog/*/*[Taxonomy_Mappings/Taxonomy_Mapping[Taxonomy_NameWASC]] CAPEC-658:按 ATTCK 相关模式查看 过滤条件/Attack_Pattern_Catalog/*/*[Taxonomy_Mappings/Taxonomy_Mapping[Taxonomy_NameATTACK]] CAPEC-659:按 OWASP 相关模式查看 过滤条件/Attack_Pattern_Catalog/*/*[Taxonomy_Mappings/Taxonomy_Mapping[Taxonomy_NameOWASP Attacks]]
2.2.4. 有用的视图
已创建许多其他有用的视图。这些基于特定标准希望为特定域或用例提供见解。
CAPEC-703:按工业控制系统(ICS)模式查看CAPEC-683:按供应链风险查看CAPEC-553:按移动设备模式查看CAPEC-2000:按综合 CAPEC 词典查看CAPEC-282:按元抽象查看CAPEC-283:按标准抽象查看CAPEC-284:按详细抽象查看CAPEC-483:按已弃用的条目查看
3. 例子CAPEC-34 标题描述名称HTTP 响应拆分典型严重性高描述HTTP 响应拆分通过发送 HTTP 响应流使其被解释为两个单独的响应而不是单个响应从而导致易受攻击的 Web 服务器响应恶意构建的请求。当用户控制的输入未经验证地用作响应标头的一部分时这是可能的。攻击者可以让受害者将注入的标头解释为对第二个虚拟请求的响应从而导致显示并可能缓存构建的内容。为了在易受攻击的 Web 服务器上实现 HTTP 响应拆分攻击者 1. 标识导致任意 HTTP 标头注入的用户可控制输入。 2. 制作包含数据的恶意输入以终止原始响应并使用攻击者控制的标头启动第二个响应。 3. 使受害者向服务器发送两个请求。第一个请求由恶意构建的输入组成用作 HTTP 响应标头的一部分第二个请求是虚拟请求以便受害者将拆分响应解释为属于第二个请求。攻击先决条件用户控制的输入用作 HTTP 标头的一部分 攻击者能够在 HTTP 标头中注入自定义字符串 应用程序中的输入验证不足无法在将其用作响应标头的一部分之前检查输入的健全性典型的利用可能性中等攻击方法注入 协议操作示例 - 实例在 PHP 5 会话扩展机制中用户提供的会话 ID 在 Set-Cookie HTTP 头中发送回给用户。由于用户提供的会话 ID 的内容未经过验证因此可以将任意 HTTP 标头注入响应正文。这立即启用了 HTTP 响应拆分只需从 Set-Cookie 指令中使用的会话 ID 中终止 HTTP 响应标头即可。CVE-2006-0207 漏洞攻击者技能或所需知识高 - 攻击者需要对 HTTP 协议和 HTTP 标头有深入的了解并且必须能够构建和注入请求以引出拆分响应。所需资源无探测技术使用可用的源代码攻击者可以在将用户输入用作输出的一部分之前查看用户输入是否经过验证。这也可以通过静态代码分析工具来实现 如果源代码不可用攻击者可以尝试注入 CR-LF 序列通常在输入中编码为 %0d%0a并使用 Paros 等代理来观察响应。如果生成的注入导致无效请求则 Web 服务器还可能指示协议错误。标识 - 攻击警告唯一的标识是对 Web 日志中单个请求的多个响应。但是在没有应用程序筛选器代理或日志分析器的情况下很难注意到这一点。客户端没有标识解决方案和缓解措施为避免 HTTP 响应拆分应用程序不得依赖用户可控制的输入来构成其输出响应流的一部分。具体来说响应分裂是由于注入 CR-LF 序列和附加标头而发生的。来自用户并用作 HTTP 响应标头一部分的所有数据都必须经过严格验证以执行简单的基于字符的语义筛选以去除恶意字符序列和标头。攻击动机-后果执行未经授权的代码或命令 获取权限/代入身份上下文描述HTTP 响应拆分攻击发生在服务器脚本将用户可控制的数据嵌入 HTTP 响应标头中的位置。当脚本将此类数据嵌入重定向响应的重定向 URLHTTP 状态代码 3xx中时或者当响应设置 Cookie 时脚本将此类数据嵌入 Cookie 值或名称中时通常会发生这种情况。在第一种情况下重定向 URL 是 Location HTTP 响应标头的一部分在 Cookie 设置中Cookie 名称/值对是 Set- Cookie HTTP 响应标头的一部分。注入向量用户可控制的输入构成输出 HTTP 响应标头的一部分有效载荷编码的 HTTP 标头和数据由适当的 CR-LF 序列分隔。注入的数据必须包含合法且格式正确的 HTTP 标头以及作为 HTML 正文包含的所需脚本。激活区域应用程序中设置输出响应标头的激活区域 API 调用。负载激活冲击有效负载激活的影响在于向目标发出两个不同的 HTTP 响应第一个响应解释为对假定有效请求的响应第二个响应导致实际攻击是对攻击者发出的第二个虚拟请求的响应。CIA 影响机密性影响高 完整性影响高 可用性影响低相关弱点CWE113 - HTTP 响应拆分 - 目标 CWE74 - 注入 - 辅助 CWE697 - 比较不足 - 目标 CWE707 - 消息或数据结构执行不当 - 目标 CWE713 - OWASP 2007 年前十名 A2 类别 - 注入缺陷 - 目标安全要求所有客户端提供的输入都必须通过筛选进行验证并且所有输出都必须正确转义。安全原则不愿信任相关准则永远不要相信用户提供的输入。参考G. Hoglund 和 G. McGraw。利用软件如何破解代码。Addison-Wesley2004 年 2 月。
4. CAPEC 与 ATTCK 比较
了解对手的行为在网络安全中越来越重要。有两种方法可以组织有关对手行为的知识 – CAPEC 和 ATTCK每种方法都专注于一组特定的用例。
CAPEC 和 ATTCK 之间的相似之处、不同之处和关系以及它们在网络安全中的作用。 常见攻击模式枚举和分类Common Attack Pattern Enumeration and Classification (CAPEC) CAPEC 专注于应用程序安全并描述了攻击者用来利用网络支持功能中的已知弱点的常见属性和技术。例如SQL 注入、XSS、会话固定、点击劫持 关注应用程序安全性列举针对易受攻击系统的漏洞包括社会工程/供应链与常见弱点枚举Common Weakness Enumeration (CWE)相关 对抗性策略、技术和常识 Adversarial Tactics, Techniques Common Knowledge (ATTCK) ATTCK 专注于网络防御描述了对手生命周期中的操作阶段即漏洞利用前后例如持久性、横向移动、渗透并详细介绍了高级持续性威胁 APT 在网络内定位、妥协和操作时用于执行其目标的特定策略、技术和程序 TTP。 专注于网络防御基于威胁情报和红队研究提供对恶意行为的上下文理解支持防御选项的测试和分析
4.1. 关联
CAPEC 列举的许多攻击模式都是由 ATTCK 描述的特定技术被攻击者采用的。这样就可以对对手操作生命周期内的攻击模式进行上下文理解。CAPEC 攻击模式和相关的 ATTCK 技术在适当的时候在这两项工作之间进行交叉引用。
4.2. 使用上的差异
4.2.1. CAPEC 可用于
应用程序威胁建模开发人员培训和教育渗透测试
4.2.2. ATTCK 可用于
比较计算机网络防御功能抵御高级的持续威胁搜寻新威胁增强威胁情报对手仿真练习
5. 参考
CAPEC: https://capec.mitre.org/ATTACK: https://attack.mitre.org/