思维导图:
1.7 攻击面与攻击树
-
攻击面: 描述计算机和网络系统面对的安全威胁和攻击。
- 定义: 攻击面是由系统中可访问和可利用的漏洞所组成。
- 常见攻击面:
- 向外部Web及其他服务器开放的端口和相应代码。
- 防火墙内部的服务。
- 处理入站数据、电子邮件、XML文件、Office文档及特定数据交换格式的代码。
- 接口、SQL和Web表单。
- 容易受到社交工程攻击的员工。
- 攻击面分类:
- 网络攻击面: 涉及网络协议的漏洞,如拒绝服务攻击和入侵攻击。
- 软件攻击面: 涉及应用程序、工具包或操作系统代码,如Web服务器软件。
- 人类攻击面: 由系统或外部人员引起的漏洞,如社交工程、人为错误和被信任的内部人员。
- 攻击面的价值: 攻击面分析可以帮助开发者和安全分析师确定系统中哪些部分需要加强安全。设计者可以减小攻击面以增加攻击者的难度。此外,攻击面还可以为设置测试、加强安全和修改应用提供优先级。
-
攻击树: 可以理解为一个工具,用于表示和分析潜在攻击的多个路径。
-
设计准则:
- 最小共同机制准则
- 心理接受度准则
- 隔离准则
- 密封准则
- 模块化准则
- 分层准则
- 最小意外准则
-
图1.3: 描述深度防御与攻击面如何相互补充以减少安全风险。
1.7.2 攻击树
定义:
攻击树是一个数据结构,通过分支化、层次化来描述可能的利用安全漏洞的技术集合。它从顶部的攻击目标开始,逐渐分支出各种可能的攻击手段和方法。
核心概念:
- 根节点:攻击的主要目标,即造成安全事件。
- 子节点:具体的攻击手段或方法,可以进一步细分为更具体的子目标。
- 叶子节点:具体的攻击方式。
- 与节点 (AND-node):所有子目标都必须完成以实现该节点的目标。
- 或节点 (OR-node):只需要完成一个子目标即可实现该节点的目标。
- 每条分支可以赋予特定的值来表示攻击的难度、成本等属性。
用途:
- 利用攻击树可以更有效地组织和使用关于攻击模式的信息。
- 通过攻击树,安全分析师可以结构化地记录和归档安全攻击,从而揭示关键漏洞。
- 攻击树还可以指导防御策略的设计和选择。
案例:网上银行认证程序的攻击树
- 主要目标:攻击用户的账户。
- 攻击策略:
- 攻击用户凭据:通过获取用户的PIN、令牌等进行攻击。
- 信道(嗅探):监听UT和IBS间的通信,模拟合法用户。
- 命令注入:监听通信,模拟合法用户访问银行系统。
- 用户凭据猜测:通过暴力方法猜测用户名和密码。
- 安全策略违规:如银行员工使用弱的访问控制和日志机制。
- 利用已被认证的会话:诱使用户使用预设的会话ID连接IBS。
总结:攻击树提供了一个直观、结构化的方式来表示攻击的目标和手段。通过攻击树,组织可以更好地理解潜在的威胁和风险,从而采取适当的防护措施。