Adaptive Intrusion Detection System via Online Machine Learning
背景知识和启发
- 网络环境多样
- 攻击类型持续变化
- 充满敌意的环境
- IDS的性能很大程度上取决于所选的分类器
- 误用 IDS
- 异常 IDS
- 检测表现因环境而异
- 没有免费的午餐
- 混合 IDS
- 对冲和提升(Hedge/Boosting)
- 在线学习框架
- 选择时段 T 中表现最好的 IDS
- 持续变换攻击,一次来破坏最好的 IDS 的优势
- 结果,所有的 IDS 表现都糟糕
- IDS 的适应性
本文目标
- 新的高效的在线学习框架
- 自适应入侵检测系统(Adaptive Intrusion Detection System,A-IDS)
数据来源
- ECML-PKDD HTTP 2007
- 50,000 样本,20% 是攻击数据
- 攻击类型
- 跨站脚本攻击
- SQL 注入
- LDAP 注入
- XPATH 注入
- 路径遍历
- 执行命令
- SSI 攻击
- CSIC HTTP 2010
- 61,000 样本,41% 是攻击数据
- 流量数据
- 真实数据
- 为此论文特意开发
- 电子商务 Web 应用
- Apache 服务器
- 攻击类型
- SQL 注入
- 缓冲区溢出
- 信息收集
- CRLF 注入
- XSS
- SSI 攻击
- 参数篡改
特征
- 30个特征
- 长度
- 数量
- 最大值
- 最小值
- 头部类型
- 四类字符
- 信息熵
- 程序语言关键字
自适应入侵检测系统(A-IDS)
- 基本 IDS
- 基本分类器
- 对于基本分类器的选择不做假设
- 10-folds 交叉验证
- 损失更新(Loss Update)
- 混合更新(Mixing Update)
- Bousquet & Warmuth 算法(Bousquet & Warmuth,2002)
- 快速恢复 IDS 的性能
- 监督学习框架
- 综合基本 IDS 的结果
- 获取当前样本的真实标签
- 衡量预测值和真实值之间的损失
- 维护基本 IDS 的权重
混合算法
记号
- T,样本数量
- t,(t=1,...,T),一个时段或一个实验
- n,基本IDS数量
- i,i∈{1,2,...,n},基本 IDS 的序数
- xt,由 n 个 IDS 输出的结果构成的向量
- A-IDS 接受 xt
- xt=(xt,1,...,xt,n)
- 其中 xt,i∈{0(normal),1(attack)}
- pred(t),A-IDS 的预测
- yt, yt∈{0,1},在 t 时刻第 t 个样本的真是标签
- L,损失函数
- 对于实验 t 以及第 i 个 IDS
- Lt,i=(yt−xt,i)2
- 计算真实结果和基本 IDS 预测值的损失
- vt,A-IDS 维护的权重向量
- vt=(vt,1,vt,2,...,vt,n)
- vt,i≥0
- ∑i=1nvt,i=1
算法
- 参数
- η>0,学习率
- 0≤α≤1
- n
- 初始化
- v1=v0m=(1/n,...,1/n,...,1/n)
- For t=1→T
- 预测
- y^t=vt⋅xt
- pred(t):
- 0, 0≤y^t≤0.5
- 1, y^t≥0.5
- 损失更新(Loss Update)
- 从 n 个候选的基本 IDS 中找出最好的
- Lt,i=(yt−xt,i)2
- e−ηLt,i, a factor
- vt,im=vt,ie−ηLt,i/∑j=1nvt,je−ηLt,j
- 混合更新(Mixing Update)
- avt=t1∑q=0t−1vqm,平均权重向量
- vt+1=αavt+(1−α)vtm
实验
- 专家设置(没有混合更新)
- 单一 IDS 无法检测到所有类型
- 损失更新
- 没有混合更新
- vt1,i=vt,im
- 组合不起作用
- 表现结果等同于最好的 IDS
- 专家组合(A-IDS)
- 模拟攻击环境
- 10-folds 交叉验证
- 混合算法
- η=0.1
- α=0.001
- 平均过去的更新
- 专家扩展(A-ExIDS)
局限
- 损失更新是双刃剑
- 最好的 vt,i (Lt,i=0)控制了vt,im
- 如果 IDS 暂时表现不佳,后来表现良好,却难以恢复
- 结果
- 对 IDS 性能变化适应缓慢
- 攻击者可以持续变换攻击模式
参考资料
- Adaptive Intrusion Detection System via Online Learning, 2012
- CS 259D Session 10