【学习笔记】网络安全设计权威指南(四)
第13章 检测基本原理
13.1 检测的角色
1、组织无法抵御看不到的事物。
2、检测必不可少,因为防御无法做到完美。
3、因为有诸多原因导致攻击者成功攻陷一个只能预防的系统,所以不仅要了解预防能力中的攻击点,考虑如何覆盖整个攻击空间也非常重要。
攻击检测的第一步时简单尝试可利用已有的能力和工具看到什么,主要是查看系统审计日志。但是系统日志也成为限制陷阱,无法看到系统以上层级和以下层级的攻击。
13.2 检测系统如何工作
包括七层: 底层是特征选择和特征提取。
(1)特征选择:需要考虑基本问题是一次攻击如何变现。
入侵检测始于精确的特征选择。
(2)特征提取:关于在何处进行监测的问题取决于特征本质以及特征处于哪个抽象层。
修改系统以实现对特征监测的行为称为系统探测仪化。
第二层涉及攻击相关的事件。
(3)事件选择:通过分析数据流结果,确定在事件选择层上,特征流的哪些事件与攻击相关。
(4)事件检测:从提取的特征中检测处这些事件并报告给下一个更高的层。
第三层涉及真正攻击。
(5)攻击检测:一旦证据达到确定的报警阈值,则攻击会被报告到下一个更高的层。
(6)攻击分级:分类分级是从攻击检测层接收攻击报告。自动化攻击分类非常困难,需要运营人员辅助。
(7)攻击警报:一个攻击警报是从系统到人员的报告留存,预示着有足够的攻击信号确保人员展开调查和执行可能的干预。
13.10 探针的运行性能特征
每一个探针,即监测一个选定特征的装置,具有由一组性能指标组成的性能特征,包括:
(1)在各种配置和设置条件下完成数据收集任务需要消耗的资源。
(2)在一系列系统负荷下(高度使用的各种类型和层级的系统资源,如计算资源、存储
和网络带宽),特别是当接近于这些资源的极限时需要消耗的资源。
(3)在各种攻击负载下(在一个系统中发生不同类型和数量的攻击)所消耗的资源。
(4)各种系统负载下的典型输出。
(5)针对各类攻击的健壮性。
(6)潜在的失效模式以及在这些模式下发生了什么
(7)如何恢复一个失效探针,在该过程中丢失了哪些数据和功能。
特征化探针非常有必要,当资源受限时,期望部分服务失效而非整个系统。当探针失效就需要知道探针如何失效以及怎样从失效中恢复。
13.11 小结
(1)检测是对预防的补充,聚焦于那些不容易预防的攻击。
(2)检测始于良好的特征选择,得益于七层架构。
(3)特征选择是研究攻击空间中所有攻击的显现地方。
(4)攻击与特征的映射关系为多对一和一对多。
(5)特征提取通过使用探针收集数据流实现。
(6)探针可从多个特征中收集数据流。
(7)事件是提取出的特征流中的数据序列,只有部分与攻击相关。
(8)事件检测发生在遇到一个与攻击有关的事件时。
(9)狡猾的攻击需要关联多个事件,一个事件很少能给出确凿证据。
(10)攻击检测是一种二元攻击分类方法,要么是攻击,要么不是。
(11)检测通常要求对特定的攻击分级,据此准备正确的防御响应。
(12)攻击检测和分级会产生警报,通知人类运营人员采取进一步行动。
(13)警报需要区分优先级,因为警报数量超出了运营人员的处理能力。
(14)探针根据系统负载、攻击载荷和失效模式等方面的不同而表现出不同性能。
(15)特征化探针的性能对于创建一个可靠的检测系统必不可少的。
第14章 检测系统
14.1 检测系统的类型: 基于签名型和异常检测型
14.1.1 基于签名(Signature-Based)
仅限于检测事先已发现的攻击,包括以前在其他地方观察到的,可识别的,可捕获的,可能由第三方实验室分析完成的或者被评估过的。整个独一无二的部分称为攻击签名,通常包括一个静态特征。攻击签名串有时称为静态攻击签名。
缺点:并非所有计算机都能接收和使用攻击签名的软件,并未所有安装了这种软件的计算机都会按要求频繁更新;另一个缺点是一开始就得能检测到攻击。
恶意代码开发者针对签名技术,创建了隐身技术和快速变异技术。
自修改代码能够重写自身部分的代码,以适应不断变化的环境。
14.1.2 异常检测
异常检测模式必须设置告警阈值,说明需要报告的偏离程度。
基于异常的系统还存在其他几个问题:
(1)真值困境(True):攻击可能在训练期已经进入系统,这个问题毫无办法。
(2)场景变换(Shift):训练只能代表系统运营的一种模式。大的模式的改变使得训练数据完全失效。
(3)偏转(Drift):运营模式的转变,业务系统随着组织的变化而变化,检测系统正常行为指标自然会偏转。
(4)攻击者制约(Conditioning):在一段时间内,阈值参数可调整以降低假报警率,这将冒着假阴性漏报率升高的风险。此外,攻击者可利用系统事件反馈刚好达到和勉强超过阈值。运营团队在一无所获时很可能增加告警阈值,攻击者以这种方式,可以制约异常检测系统。使得当准备好进行检测时,检测不到攻击,实现潜伏(Insidious)。
网络安全运营团队必须小心攻击者的制约。
(5)资源占用(Resource Hogging):
| 分层体系 | 基于签名模式 | 异常检测模式 |
| 攻击报警 | 立即报告攻击分级和攻击的存在,作为临时措施可能采取一些自动隔离行动 | 攻击警报基于攻击信号的强弱,于偏离正常行为的程序和先验经验有关,其中偏离值时最可靠的攻击检测 |
| 攻击分级 | 除非多个攻击变量包含相同的独一无二的标识字符串,否则分级是即时的 | 不易确定,可将攻击范围缩小到某一类 |
| 攻击检测 | 找到独一无二的标识字符串 | 与正常行为的偏离值超过由运营人员设定的阈值时 |
| 事件检测 | 从相关数据流中搜索唯一标识 | 偏离正常行为的事件 |
| 事件选择 | 通过对攻击实例的鉴别分析发现攻击的签名 | 策略正常行为于其他事件之间的差异 |
| 特征提取 | 基于攻击 | 基于攻击 |
| 特征选择 | 基于攻击 | 基于攻击 |
| 优点 | 缺点 | |
| 基于签名 | 快速、清晰、明确、假阳性低及攻击前可免疫 | 需要牺牲零号病人目标,延迟免疫,对新的和模糊的攻击视而不见。签名列表会逐渐变大 |
| 异常检测 | 可检测到新的和模糊的攻击,可抵御零号病人攻击 | 资源占用、分类器模糊和不确定、假阳性高、业务场景偏转和变换对判定影响大 |
14.2.4 攻击检测: 误报破坏信任。
为了标识攻击检测器的性能特征,可将真阳性率(True positive rate)与误报率(False positive rate)绘制为ROC(Receiver Operating Characteristic,接收器运行特征)曲线。

一个完美的分类器能够提供100%的真阳性。
上图意味着1000个事件中如果100个是实际的攻击事件,那个100个攻击中可正确检出80个(80%),900个良性事件中错误标记为攻击的由360个(40%)。为得到额外的10%攻击检测而产生90%真阳性,必须接受高达80%的误报。所以ROC曲线是检测器性能的关键度量。
14.3 检测应面向覆盖攻击空间。
14.4 检测失效:
与预防技术一样,检测技术也会由于多种原因无法检测到攻击,例如:
(1)底层攻击探针无法探测到攻击(探针失效)
(2)攻击信号淹没在正常系统活动的噪声中(在本底噪声之下)
(3)攻击信号低于检测算法的告警國值(低于告警阈值)
(4)入侵检测系统没有部署在攻击发生的系统区域(不当的放置)
(5)检测系统的一个或多个关键部件自然失效(自然失效)
(6)检测系统的一个或多个关键部件遭到成功攻击(成功的攻击)
(7)攻击检测组件阻塞了探针数据(阻塞探针输入)
(8)攻击报告遭到阻塞,无法发送(阻塞报告输出) 。
14.4.1 了解敌对者知道的系统检测盲点
14.4.3 提高告警阈值可节约时间,但会忽略关键攻击
14.4.4 准备好同时应对来自于内部和外部的攻击
探针网格设计应最大化逃逸难度。
14.4.6 检测系统和系统的组件,都容易受到攻击。
第15章 检测策略
15.1 检测的深度和广度尤为重要。
| 网络拓展 | 攻击空间 | |
| 深度 | 多种探针,用于检测边界和内核之间的特定攻击(内核涵盖最有价值的数据和服务信息) | 每次攻击有多种类型的探针检测 |
| 广度 | 在所有组织系统的飞地都部署探针 | 整合所有探针,覆盖整个网络攻击空间 |
作为首要打击目标的检测系统必须坚实耐用,在入侵的每一步都能对攻击发起挑战。
攻击者会在检测间隙中找到可行的攻击方法。
由于探针的成本可能过高,对于完全均匀的深度布局可能不太实用,但具有一定的深度是必不可少的。
15.2 将攻击者置于防御者的预设战场
设计网络空间有利于防御者。网络安全专家可以通过一系列激励措施操纵攻击者,引导攻击者进入系统覆盖良好的预设区域,抑制攻击者进入检测覆盖薄弱的区域。
抑制措施可能涵盖更严格、更有防御性的安全控制,如身份验证和系统授权。
将敌对者逼迫到对防御者有利的位置。
15.3 攻击流行因素
15.4 蜜罐检测: 蜜罐是发现攻击方法的宝贵工具。
蜜罐的另一种变体是生成伪数据。如果攻击者公开了这些数据,则会向防御者证明发生了泄露。
15.5 细化检测
15.5.1 除非另有证据,一般将攻击警报视为真正的攻击。
15.6 增强攻击信号,降低本地噪声
| 层面 | 正常通信 | 攻防交互 |
| 发送者(攻击者) | 打算向接收者发送消息的实体 | 攻击者尝试对系统和系统状态产生负面影响,从而无意中向防御者发送活动信号 |
| 接收者(防御者) | 打算从发送者接收消息的实体 | 防御者尝试在非常大的状态空间内发现攻击者信号,该状态空间会持续受到正常系统活动的影响 |
| 关系 | 合作 | 对立 |
| 途径 | 数据或网络电话 | 系统状态空间 |
| 噪声 | 随机 | 后台系统流量,攻击者可在一定程度上对其进行塑造 |
| 编码 | 使用多余的重复内容消除随机噪声 | 攻击者调整活动,对状态空间的影响最小,并跌入噪声层以下,避免与防御者通信 |
降低本地噪声,放大攻击信号,降低告警阈值。
15.6.1 减低本地噪音 将不同的目标系统活动划入独立的受控子网
基于虚拟机和VPN技术,实现了处理和网络流量的分离。
15.6.2 增强攻击信号
(1)如果系统具备多个已知漏洞,系统及时更新了发布的最新补丁,那么攻击者不得不进行额外的侦察、检测和测试,这些活动创建指纹,增强了攻击流的整体攻击信号。
(2)通过加固,系统只使用服务的基本要素和服务目标系统所需的断开,则攻击者对端口的检测量会显得非常突出。
(3)防御者还可使用过滤功能,来增强攻击信号。Miuse Case比如网络协议中使用“Reserved”字段被不适当的使用;被盗数据传输到远端,网络流量异常。
15.6.3 减低告警阈值
15.7 总结如下
(1)从“网络拓展”和“攻击空间”两个维度定义深度和广度检测。
(2)网络空间可以(应该)为防御者的利益而设计。
(3)将敌对者集中到检测系统更强、更深的区域。
(4)攻击流行因素可为一对多的攻击带来好处:发现攻击-> 分析攻击->发布补丁或者缓解措施。
(5)可通过告警调查,获得关于攻击本质的更多信息。
(6)可采用过滤等技术增强攻击信号。
(7)可通过虚拟化和网络分离等流程降低本底噪声。
第16章 威慑和对抗性风险
16.1 威慑的要求
威慑需要检测(能可靠检测到攻击)、归属(可将攻击可靠地归属于攻击者 Attack Attribution)和后果(潜在后果验证)。
防御者必须最大化敌对者暴漏的风险。
查找重用的编码模式与n-gram分析有关,通过查看重用的语句和序列能够关联到作者身份和其他类似的应用场景。
每种攻击手段都有相应的安全对策。
归属通常是概率问题,而不是确定性问题。
16.2 所有攻击者都有风险阈值
攻击者的风险永远不会为零。
攻击者的风险容忍度与以下相关:
(1)攻击暴露的可能性(检测概率)。
(2)攻击得到适当归属的可能性(归属概率)。
(3)让敌对者付出代价的能力。
(4)让敌对者付出代价的概率。
(5)对防御者施加的后果报复的能力(报复能力)。
(6)实际进行报复的概率(报复概率)。
(7)个别领导者喜欢冒险的程度。
不同攻击者在不同情况下具有不同的风险容忍度。所有攻击者在超出一定程度的风险后
都不愿冒险,这个风险程度称为风险阈值(Risk Threshold)。
16.3 系统设计可改变攻击者的风险
16.3.1 检测概率
检测概率与以下因素有关:
(1)防御系统内部署的检测系统的功能
(2)防御者正确运营的能力
(3)检测深度和广度的完成度
(4)系统补丁安装的及时程度
(5)无补丁的已知漏洞的多少
(6)防御者系统的独特程度
16.4 不确定性和欺骗
16.4.1 不确定性 攻击者的不确定性是防御者的朋友
防御者通过不公开其产品选择的细节以及配置和运营细节,来增大不确定性;具有最少开放端口且经过强化的防火墙也能增加不确定性。
16.4.2 欺骗
对每个因素进行欺骗,从而造成不确定和不正确的估算。
16.5 什么情况下检测和威慑无效
检测-恢复方法背后的理论指出攻击是一个多步骤过程,需要花费大量时间执行,则越早检测约能恢复。
对于一包一杀的攻击,无法做太多事情减轻损坏。
16.6总结如下:
(1)威慑需要可靠的检测、归属和有意义的后果。
(2)敌对者使用风险阈值指导其攻击行动。
(3)防御者可通过增加敌对者暴露和归属的概率,以及通过施加选项并确保使用使新对者付出高昂代价,来增加敌对者的风险。
(4)防御者可通过提高不确定性增加敌对者的风险。
(5)在公开战争等情况下,威慑作用很小。
(6)在攻击损害不可逆且未检测到的情况下,检测-恢复模型无法为系统的防御增加价值。
更多推荐
所有评论(0)