李博栋GoSSIPLoCCSSJTUAndroid传感器信息泄露隐患及其安全对策 关于LoCCS及GoSSIP ÷ LoCCS(Lab of Cryptology and Computer Security) ÷ GoSSIP(Group of Software Security In Progress) 关于我 ÷ GoSSIP成员 ü 上海交通大学计算机系在读博士研究生。 ü 研究方向: Android安全。 大纲 ÷ 1)Android传感器 ÷ 2)针对Android传感器攻击的介绍 ÷ 3)Android传感器保护方案 Android传感器 传感器定义 ÷ 什么是传感器? ü 感知信息 ü 传递信息 传感器分类 ÷ 运动传感器 ü 加速仪 ü 陀螺仪 ü 重力感应仪 ÷ 环境传感器 ü 气压计 ü 温度计 ü 光度计 ÷ 位置传感器 ü 方位传感器 ü 磁强计 传感器应用 ÷ 手机中的传感器? ü 重力感应仪:感应类的游戏 ü 磁场仪:自动导航 ü 光感仪:自动调节屏幕 ü 温度计:了解环境温度 针对Android传感器攻击的介绍 Android安全机制 ÷ Android的permission机制 传感器攻击 ÷ 位置轨迹攻击 ÷ 声音信息攻击 ÷ 输入信息攻击 ÷ 设备指纹攻击 ÷ 用户身份攻击 位置轨迹攻击 ÷ GPS × ÷ 网络定位 × ÷ 加速仪 √ 位置轨迹攻击 收集运动传感器数据 建立轨道模型 机器学习 地图匹配 输入地图数据 起始点预测 距离真实位置 200m《ACComplice: Location Inference using Accelerometers on Smartphones》 声音信息攻击 ÷ 麦克风 × ÷ 陀螺仪 √ 声音信息攻击 ü 陀螺仪或加速仪采样频率: 高达200Hz ü 人的发声频率:80-1100Hz 收集声音信号 提取特征 (MFCC,STFT) 机器学习建模 性别识别 (82%) 身份识别 (65%) 内容识别 (26%) 《Gyrophone: Recognizing Speech from Gyroscope Signals》 输入信息攻击 ÷ 运动传感器(加速仪,陀螺仪) ÷ 光度计 输入信息攻击 游戏APP,不停输入数字 将传感器数据上传服务器 特征提取 机器建模 诱导用户 输入密码 最终密码丢失! 用户很难察觉! 《PIN Skimming: Exploiting the Ambient-Light Sensor in Mobile Devices》 设备指纹攻击 ü 类似与很多其他硬件,有独特特征! ü 不同的是,不需要任何权限! ü 时间短,不到1分钟即可得到指纹。 《ExploringWays To Mitigate Sensor-Based Smartphone Fingerprinting》 用户身份识别攻击 ÷ 主要攻击是针对智能穿戴设备的,但手机上也可以实现攻击 收集用户动作行为习惯信息 特征提取 机器学习建模 模型匹配 身份识别 用户身份攻击 ü 例如,在50个人进行相同的图形解锁,从中提取3000个传感器数据样本,发现50个人都有很大区别,识别的错误率低于2.5%。 《Sensor-based User Authentication》 传感器攻击的特点 ÷ 1)加速仪,陀螺仪最常用 ü 采样频率高 ü 普及率高 ÷ 2)攻击时传感器的组合复杂灵活 ü 不需要权限 ü 多种配合更精确 传感器攻击的特点 ÷ 3)依赖大量数据及机器学习 ü 时间长,计算量大 ü 一般在服务器进行 Android传感器保护方案 传感器的保护 ÷ 挑战: ü 1)获得传感器数据途径多。 • 20多种传感器• SDK,NDK,WebView ü 2)灵活且复杂,没有统一的模式。 ü 3)难区分。 SSG ÷ SSG(Sensor Security Guard) ü Android平台上第一个针对Sensor的保护系统 ü 以API HOOK 作为基本框架 ü 针对手机所处的不同状态,提供不同的防护策略 系统框架 ÷ 2个主模块 ü SSG Manager ü Hook Module ÷ 6个子模块 ü api hook 模块(api hook section) ü 伪数据模拟器(forging data generate) ü 减采样模块(sample reduction section) ü 混淆器(obfuscation section) ü 环境感知模块(environmental perception section) ü 数据库(database dection) SSG Manager ÷ 前端:APK文件 ü 与用户交互 ü 感知手机状态,制定相应策略 Hook Module ÷ 底层模块—基于Cydia Substrate的hook框架 ü 对传感器数据进行拦截。 ü 进行相应的数据处理。 工作流程 ÷ 第一步: ü APP或Webview请求传感器数据 ü ahs会首先拦截数据。 Hook 细节 工作流程 ÷ 第二步 ü 在数据库寻找用户定制的规则 ü 如果没有,SSG Manager会与用户交互,建立新的规则 工作流程 ÷ 第三步 ü 根据规则,如果app在白名单中,SSG不会做数据处理,直接提供原始数据 ü 如果在黑名单中,则提供伪造数据 伪数据模拟器 ÷ 随机产生伪数据,但会合理限制范围,使设备看起来像静止一样 ÷ 因此不会包含任何有用的信息,同时不会造成任何APP的崩溃 工作流程 ÷ 第四步 ü 如果用户选择默认策略,SSG就会根据手机当时的状态,来提供相对应的策略。 环境感知模块 工作流程 ÷ 第五步 ü 根据策略,SSG会做相应的数据处理。 ü 最后返回处理后的数据。 防护策略 ÷ 位置轨迹及用户身份保护 ü 限制传感器数据的收集时间 ü 当设备运动时,周期性的提供伪造数据。 ü 限制后台收集数据。 ÷ 声音信息保护 ü 当手机处于通话状态时,提供伪造数据。 ü 限制传感器频率。 防护策略 ÷ 输入信息保护 ü 当手机处于输入状态时(系统软件盘弹出或处于屏幕解锁状态等),提供伪造数据。 ÷ 设备指纹保护 ü 添加混淆信息。 评估-实用性 ÷ 将SSG部署到Nexus4 Android 4.2.2 ÷ 选择30个APP ÷ 静态分析器传感器的使用情况 ÷ 动态的在真机上进行测试 ÷ 所有APP都正常运行,没有崩溃发生 评估-有效性 ÷ 输入: ü 软键盘输入文字 ü 记录手机系统原生数据及SSG的处理数据 ü 用matlab制图 评估-有效性 ÷ 打电话: ü 用手机拨打电话 ü 同样,记录手机系统原生数据及SSG的处理数据 ü 用matlab制图 评估-有效性 ÷ 运动: ü 以超过20km/h的速度行驶 • 数据收集时间未超过限制时间• 数据收集时间超过限制时间Thankyouforyourattention感谢您的关注!