Outside the Closed World: On Using Machine Learning for Network Intrusion Detection
背景知识和启发
- 网络入侵检测系统(Network Intrusion Detection Systems,NIDS)
- 滥用检测
- 异常检测
- 偏离正常行为
- 没有精确描述行为活动
- 1987年由Dorothy Denning(斯坦福研究所)首次提出
- 滥用探测器比异常探测器更常用
- 尽管对异常检测进行了大量研究
- 尽管异常检测适合寻找新的攻击
- 尽管机器学习在许多其他领域取得了成功
使用机器学习面临的挑战
检测离群点
|
分类 |
异常值检测 |
训练数据 |
来自两个类别中的多个样本 |
几乎来自同一个类别 |
训练质量要求 |
能够区分两种类型 |
完美的正常模型 |
- 前提:异常检测可以发现新的攻击
- 事实:相比较于发现离群点,机器学习更善于发现相似的模型
- 结论:机器学习更适合发现已知攻击的变体
- 很难创造一个“封闭”的世界
- 基本假设
- 这些假设是否成立?
犯错成本高
|
漏报成本 |
误报成本 |
产品推荐 |
低:可能错过销售机会 |
低:继续购物 |
垃圾邮件检测 |
低:在收件箱发现垃圾邮件 |
高:错过重要的电子邮件 |
入侵检测 |
高:任何可能的损失 |
高:浪费宝贵的分析时间 |
语义鸿沟,解读结果
- 网络运营商需要可行的报告
- 这个异常是什么意思?
- 异常活动 vs. 攻击
- 并入特定于站点的安全策略
- 异常检测特征和环境语义间的关系
- 本地安全策略
- 模糊的安全策略
网络流量的多样性
- 网络各个层次都有变化
- 甚至是最基本的特征:带宽,连接持续时间,应用程序组合
- 经常发生各种情况
- 从数据包级别到应用层级别
- 大规模的活动爆发
- “常态”有稳定的定义么?
- 异常 ≠ 攻击
- 一种解决方案:降低粒度
- 例如:依时刻、依天的得到的结果呈现出了可靠的模式
- 优点:更稳定
- 缺点:降低能见度
有适应能力的对手
- 攻击者有适应能力
- 机器学习算法本身可以成为攻击目标
评估困难
- 数据带来的困难
- 数据敏感性
- 缺乏适当的公开数据
- 模拟
- 匿名
- 搭建自己的数据集
- 解释结果
- “主机的 HTTP 流量与配置文件不匹配”
- 与垃圾邮件检测对比:解释余地小
- 敌对的环境
使用机器学习的建议
了解威胁模型
- 目标环境状况如何?
- 漏网的攻击带来的损失
- 攻击者的技能和资源
- 攻击者躲避监测系统带来的风险
缩小范围
- 有待检测的特定攻击是什么
- 为任务选择恰当的工具
- 机器学习不是银弹
- 常见的陷阱:从一开始就打算使用机器学习,甚至打算使用特定的机器学习工具
- 没有免费的午餐
- 不仅需要数学上的保证,也要满足特定领域的特点
- 洞察特征的意义和能力
- 示例:PYAL(Anomalous payload-based network intrusion detection, Wang-Stolfo 2004) [笔记]
- 特征:数据包有效载荷的字节频率
- 算法:检测具有异常频率模式的数据包
- 假设:攻击载荷具有不同的字节频率
- 问题:这个假设从何而来?
- 示例:Anomaly Detection of Web-based Attacks, C. Kruegel and G. Vigna 2003
- 威胁模型
- 为何用异常检测
- 数据
- 从 Web 服务器日志中,获取 CGI 的 GET 成功请求
- 特征
- 为何这些特征是相关的
- 长度:发送 shellcode 和填充造成缓冲区溢出
- 字符分布:目录遍历使用太多
.
和 /
降低成本
- 缩小范围
- 分类优于异常检测
- 依照适当的时间间隔聚合以及平均特征
- 利用附加信息的辅助,对警报进行后置处理
- 分析师提供元信息以加速检查
评估
- Working with data
- 黄金标准
- 不要将数据带给实验者,将实验带入数据
- 没有数据集是完美的
- 分离训练数据和测试数据
- 理解结果
- 手动检查误报
- 漏报比误报更难检查
- 也要包含对正确结果的分析
- 因果关系
- 要求低延迟的实时检测
- 本地环境优化
- 深入了解异常检测系统的功能
准则:深入理解问题
- 机器学习是识别特征的重要方法
- 使用这些特征构建非机器学习的检测器
- 机器学习是最后的方法
参考资料