PAYL: Anomalous Payload-based Network Intrusion Detection
背景信息和本文目标
- 现有的 IDS 失败于
- 检测通过网络传播的 0-day 蠕虫或病毒代码的第一次出现
- 签名失效
- 缓慢隐蔽的蠕虫病毒传播能避免在网络中爆发,或被检测
- 需要基于载荷的检测
数据
- 1999 DARPA IDS 数据集
- CUCS 数据集
- 数据单元
- 全部数据包
- 数据包的前 100 字节
- 数据包的最后 100 字节
- 全部链接数据
- 链接的前 1000 字节
特征
PAYL
- 设计标准和运行目标
- 无需人工敢于
- 普遍适用于任意系统和服务
- 增量更新以适应不断变化或漂移的环境
- 低 FP
- 在高带宽的环境下,进行低延迟,高效的实时操作
给定长度的 n-Gram 载荷模型
- 数据流集簇
- 度量:n-gram 的频率
- 给定数据包长度 L,频率 = 出现的次数 /(L−n+1)
- 使用 n=1,即 256 个 ASCII 字符
- i,观测到的长度 bin
- j,端口号
- Mij,字节频率的均值和标准差
简化的 Mahalanobis 距离
- 简化
- 简单的假设:字节频率独立相关
- 用1范数代替2范数
- 附加平滑系数 = 0.001
- 避免标准差为零,和无限的距离
- 避免相同的频率
- 反映抽样训练数据的可信度
- x,新观测样本的特征向量
- y,训练数据集的平均特征向量
- σ,标准差
- d(x,y)=∑i=0n−1∣xi−yi∣/(σ+α)
- 直观的解释
- 把观测样本依长度分入 bin 后做正规化处理,并把结果相加
- 对于每一个维度(长度 bin i)
- 计算样本和中心点的曼哈顿距离
- 用平滑过的标准差做正规化处理
- 相加求和
增量学习
- 能够适应概念漂移
- 均值和方差使用流数据衡量方法
- x=x+(xN+1−x)/(N+1)
- 存储 xi2 的平均值, 256个元素的数组
通过聚类缩小模型大小
- 细粒度模型问题
- 解决方案
- 对于在训练数据中未观测到的包长度
无监督学习
- 假设:攻击很少,且攻击的载荷与正常通信流量差异很大
- 消除训练数据噪声
- 将学到的模型应用于训练数据
- 删除异常训练样本
- 更新模型
Z串
- 特征分布符合 Zipf 定律
- 来自不同网站的异常载荷的Z串能够互相匹配
局限性
- 唯独诅咒
- 无用的特征
- 对入侵者
- 无重点范围
- 容易被模拟攻击(混合攻击)攻破
参考资料
- Anomalous payload-based network intrusion detection, Wang-Stolfo 2004
- Advanced Polymorphic Worms: Evading IDS by Blending in with Normal Traffic
- CS 259D Session 12