An Examination of User Behavior for Re-Authentication
大多数事故(83%)属于祸起萧墙,且发生在工作时间。
几乎所有的银行金融业发生法的内部事故都会使机构蒙受经济损失: 30%的案件财务损失超过了50万美元。 许多机构的诸多方面都受到了损害。
美国特勤局国家威胁评估中心(NTAC),内部威胁研究(2004)
背景信息和启发
再认证
- 在用户的会话进行期间持续对用户进行身份验证
- 当前用户是否与验证的身份相同
- 证书、凭据被盗
- 方法
- 间接:分析操作系统和应用程序
- 系统调用、调用堆栈数据操作、程序跟踪分析
- 直接:分析有效的用户
- 命令行输入数据、按键、鼠标活动、GUI 事件
- 间接:分析操作系统和应用程序
- 处理过程
- 从每个用户收集干净的数据
- 建立每个用户正常行为的配置文件
- 使用配置文件来比较当前用户的行为与有效用户的行为
- 标记任何显着的行为差异
生物行为信息 (再)认证
- 攻击者逃避传统的 IDS
- 部署方案
- 开放环境
- 公共图书馆,网吧
- 无监督学习
- 只有来自有效用户的数据可用于分析
- 封闭环境
- 公司办公室,政府大楼
- 可以收集所有用户的数据
- 监督学习
- 开放环境
用户再认证系统的目标
- 计算机安全目标
- 设计并实现一个线上可扩展的用户再认证系统。该系统收集来自鼠标和键盘的用户输入数据,以及来自 GUI 事件的数据,并以此检测攻击者。
- 机器学习目标
- 在每名用户数据量有限的情况下,利用高维时间序列数据,设计出一个准确的分类系统,以此检测入侵者。
- 目标
- 检测内部人员冒充其他内部人员;
- 检测外部人员冒充内部人员;
- 成对检测用户;
- 在不同硬件条件下确定用户配置文件的敏感度;
- 当用户行为相似时分辨用户;
- 确定系统的可扩展性和计算效率;
- 以分别和组合的方式,确定每个数据源(例如,鼠标、按键和GUI)的强度;
- 利用数据的粒度得到综合特征空间;
- 将候选特征空间减少到一个最具预判性的子集;
- 在每个用户数据集的数据量有限的情况下,提高精度。
多模态数据分析
- 多数据来源
- 合并数据来源依照以下级别
- 数据级别
- 可能会错过特征
- 特征级别
- 分类器使用的特征被打包在一起
- 分类器级别
- 每个数据源都有单独的分类器
- 投票确定最终决策
- 数据级别
样本采集
数据集 I
- 61名志愿者
- 任务1:
- 阅读任务
- 20道关于任务的题目
- 任务2:
- 浏览一组网页
- 另一组问题
- 平均数据收集4个小时
- 平均92K个数据点,每个用户4.5MB数据
- 任务1:
数据集 II
- 一个用户,五个不同的计算机和输入输出配置
- 和数据集 I 的任务相同
数据集 III
- 73名志愿者执行相同的任务
- 和数据集 I 相比
- 没有暂停时间
- I/O 事件体积更小,也更紧密
数据处理和特征提取
- 直接配置有效的用户
- 按键
- 鼠标移动
- GUI事件
- 数据点(格式)
- 事件ID(由操作系统分配)
- 屏幕坐标 X
- 屏幕坐标 Y
- 系统时间
- 应用程序
- 不算做特征
鼠标
鼠标数据
- 所有 Windows 鼠标事件
鼠标数据层次结构
- 鼠标
- 非客户移动
- 鼠标事件
- 点击
- 单击
- 双击
- 滚轮
- 点击
- 鼠标移动
- 用户区域:菜单和工具栏下面的应用程序窗口区域
- 用户区域鼠标移动的速率
- 每秒有几百个动作
- 数据太多,没有收集全部数据
- 如果光标位置改变,则每隔100 ms记录一次
- 单击和双击
- 最不常见的鼠标事件
- 更高的精度没有帮助
- 没有记录按压持续时间
鼠标数据特征
- 鼠标事件特征
- 一个窗口 W 个数据点
- 每个鼠标事件类别和子类别的事件数量
- 从两个后续事件或由K个数据点(相同类别或子类别的事件)分隔的两个事件提取的其他特征
- 为每个用户和事件类型提供一个参数 k
- 从两个后续事件或由K个数据点(相同类别或子类别的事件)分隔的两个事件提取的其他特征
- 每个鼠标事件类别和子类别的事件数量
- 特征:以下信息的,均值,标准差,偏斜度
- 距离
- 速度 = 距离(P,Q)/时间(P,Q)
- 方位角度
- X 坐标
- Y 坐标
- N-graph 持续时间 (n取值从1到8)
- 第一个和第N个数据点之间的经过时间
- 共200个特征
- 一个窗口 W 个数据点
- 鼠标移动特征
- 非用户移动特征
- 类似于事件特征
- 计算距离,速度,角度等
- 在两个后续的非用户移动之间
- 两个非用户移动被K个数据点相隔
- 共40个特征
- 用户区域移动
- 类似于非用户移动特征
- 共40个特征
- 非用户移动特征
按键
按键数据
- Windows 中有两种按键类型
WM_KEYDOWN
WM_KEYUP
- 按键信息有唯一的 ID 表示
按键特征层次结构
- 按键
- 功能键
- 例如:F1-F12
- 控制键
- 例如:Control,Alt,Delete
- 打字键
- 子母
- 数字
- 编辑键
- 例如:Page Up/Down,Tab,方向键
- 其他
- 例如:标点,Pause/Break,PrtSc/SysRq
- 功能键
按键数据特征
- 一个窗口 W 个数据点
- 每个类别和子类别的事件数量
- 每个字母和每个数字的出现次数
- 26个字母特征,10个数字特征
- 以下信息的,均值,标准差,偏斜度
- N-graph 持续时间 (n取值从1到8)
- 共236个特征
GUI
GUI 数据
- 由138个 GUI 事件引发的数据
- 根据特征分为等级
GUI 特征层次结构
- GUI
- 空间上
- 窗口
- 滚动条、最小化、最大化、还原、移动等
- 控制
- 应用程序、进程控制、打开/关闭等
- 菜单
- 打开、选择、导航、关闭等
- 项目
- 列表、按钮等
- 窗口
- 时间上
- 图标
- 对话
- 查询
- 组合框
- 打开/关闭、选择、移动、调整大小等
- 杂项
- 通电/断电、语言更改、背景颜色更改等
- 空间上
GUI 数据特征
- 空间特征
- 一个窗口 W 个数据点
- 每个空间类别的事件数量
- 后续的空间事件或由K个数据点分隔的空间事件
- 均值,标准差,偏斜度
- 距离
- 速度
- 方位角
- X坐标
- Y坐标
- N-graph 持续时间 (n取值从1到8)
- 共200个特征
- 一个窗口 W 个数据点
- 时间特征
- 一个窗口 W 个数据点
- 每个时间类别的事件数量
- 后续的时间事件或由K个数据点分隔的时间事件
- 均值,标准差,偏斜度
- N-graph 持续时间 (n取值从1到8)
- 共240个特征
- 一个窗口 W 个数据点
特征空间总结
- 每个用户,窗口大小 W
- 尝试:100,300,500,1000
- 选择:500
- 每个用户每个子类别,频率 K
- 尝试:1,5,10,15,20
- 选择:频繁事件为8,否则为1
- 频繁程度:大于十次每秒
- 频繁事件
- 所有鼠标事件
- 鼠标移动
- 鼠标滚轮事件
- 非用户鼠标移动
- 所有 GUI 时间
- 空间+时间
- 时间
- 窗口
- 对话框
- 候选特征空间维度:956
- 分层可以提高性能
- 从较低级别的鼠标层次结构中删除特征,使得分类器的性能降低
实施方案
- 两个方案
- 一次分类一个特征向量实例
- C4.5
- 如果实例匹配正常配置文件,则服务其请求
- 否则,通知系统管理员,要求重新验证或关闭会话
- 可能导致高误报率
- 平滑
- 查看n(n介于1到11)个特征向量实例的一个窗口
- 如果m(m介于1到n)个实例匹配正常配置文件,则服务其请求
- 重叠滑动窗口
- W-s 个旧数据点, s 个新数据
- 如果 s = 50,相当于间隔5秒
- 减少发出报警时间
- 一次分类一个特征向量实例
- 假警铃率
- 警铃(bell),在没有中断的正常窗口中,连续的警报序列
- 假警铃率(false bell rate) = 假警铃数 / 警报数
- 验证
- 10-fold CV
实验
- 两两辨识
- 辨别正常用户
- 异常检测
- 检测内部人员冒充其他内部人员
- 检测看不见的用户
- 检测冒充内部人员的冒充者
- 跟踪合法用户
- 在不同的硬件设备上识别同一的合法用户
参考资料
- An examination of user behavior for re- authentication (M. Pusara's PhD thesis, 2007)
- CS 259D Lecture 4