Android移动应用安全 加固方案介绍 北京大学 软件与微电子学院 2017年3月.

Slides:



Advertisements
Similar presentations
西南政法大学图书馆 江波 重庆. 传统图书馆自动化图书馆复合图书馆数字图书馆  图书馆为图书流通服务所制定的相关规则,包 括图书流通类型、读者类型、读者可借阅图书 数量、可借阅时间、可续借时间、可续借次数、 可预约数量等。
Advertisements

哈工大计算机科学与技术学院软件基础教研室 第二部分 Android 与工程和科研 授课教师:李治军 综合楼 411 室 第 6 讲 进入 Android 内核 Lecture 6: Get Into the Android Kernels.
专业出版社数字出版的思考 中国建筑工业出版社 魏枫
當我已老 謹以此文獻給像我一樣流浪在外的子女們.
中国建筑特色 2013美国富布莱特项目 ——华文教师班暑期课 授课人:邵 英
用 Andriod手機 12年國教~有效教學策略設計 國立北門高中 林明璋 玩
中华传统文化 ——礼俗、宗法.
2015年12月14日-2015年12月20日 缩略版.
中文科 (六年級).
指導老師:羅夏美 組別:第四組 組員: 車輛二甲 蔡中銘 車輛三甲 莊鵬彥 國企二甲 陳于甄 國企二甲 詹雯晴 資傳二乙 林怡芳
北京咱爸咱妈养老投资管理有限公司大庆分公司
課程地圖 (104年入學-日間部) 校通識核心 專業課程 必修與選修 與管理模組 網路技術 App設計與應用模組 學院通識核心 學院專業核心
C语言程序设计 李伟光.
上海十进制网络信息技术有限公司 谢建平 愚人节的IPV9与 中国IPV9 RFC1606、1607解读 上海十进制网络信息技术有限公司 谢建平
走进成语天地,把握成语含义 三年级语文 张建华.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
宋词四首.
龙芯多媒体电脑教室培训 龙梦极域电子教室 江苏龙芯梦兰科技股份有限公司.
标题 主讲: 时间:.
參考資料:﹝升中全接觸﹞ 香港明愛青少年及社區服務
恒泰期货研究所2016年 期债暴跌告一段落,短期波动降低 国债期货周报
浅谈我与Android相处的点滴 一、个人自动化经验分享 二、Android基本架构了解 三、MonkeyTest指令学习
长江大学电视台大会交流发言.
≠ 週休二日為何不是兩例假,要一例一休? 勞工 公務人員 例 假 例 假 但
香港普通話研習社科技創意小學 周順強老師.
“网络问政”给九江新闻网 带来新的发展机遇 -- 九江新闻网 高立东 --.
网络教育(综合类)本学期教学工作 网络教育办公室:周学斌.
小儿营养不良 第四篇第二章第二节小儿营养不良.
MIT AppInventor.
2016年莱芜市乡村医生在岗培训 启动会.
单元 SD 5 菜鸟学飞 附件二 想学飞的职场菜鸟.
学习贯彻十七大 提出的国防和军队 建设的方针原则和任务要求
一、汽车空调基本概念 1、汽车空调发展史 我国于70年代,最早的汽车空调装置使用在长春一汽红旗轿车上。1976年,由原上海内燃机油泵厂今上海汽车空调机厂制造汽车空调,配套在上海牌轿车SH760A轿车中 。
社会工作概论 个案工作 课程培训 深圳电大 赖小乐.
网络信息安全培训 网络中心 朱焕勇
组员:张若玉 潘思羽 刘慧玲 黄佳丽 王青青 朱娇龙 陈天宇
荷福威士顿机器人科技有限公司 上海荷福集团
小说与诗歌、散文、戏剧并称为四大文学体裁。
前言.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
《战国策》:范雎说秦王学习要点 一、《战国策》题解 二、长沙马王堆汉墓简介 三、《范雎说秦王》说明 四、《范雎说秦王》语言角度分析
韩 焱 中北大学 (原华北工学院、太原机械学院)
Syslog介紹.
App Inventor 零基础Android移动应用开发
Android SDK工具 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
Android开发手册 Version 3.0 All Rights Reserved 2015 苏州触动电子科技有限公司.
Taylor & Francis Online 支持智能设备移动阅读
讲议: PXE 介绍及实现 Jarvis
第4章 Android生命周期.
ARM裸机第一部分-ARM那些你得知道的事
第2讲 移动应用开发基础知识(二) 宋婕
Android手动测试实践 ——绮珠.
嵌入式系统的Boot Loader技术 陈文智 浙江大学计算机学院 2009年5月.
两用物项和技术进出口许可证 管理与签发系统
管理信息系统 第九章 面向对象的系统开发方法.
國民大學 國民大學.
——关于机构内用户,非机构内用户,及移动端使用
第十一章 物件資料結構塑模.
目次检索 打印 下载 文字摘录 更换背景 多窗口阅读.
厂商—型号 外观设计 建议零售价格:XX元 上市时间:年 月 日 目标人群: 标准配置:一电一充、USB数据充电线、耳机、4G TF卡
金中移动抄表系统培训手册 广西金中软件有限公司 2015年8月7日.
基於需求性及實用性探討智慧型手機未來開發趨勢- 以Android智慧型手機為例
啟 基 學 校 年度校本課程 中華經典學習 目的:1. 提升品德學養,發展美善心靈,為世界大同作貢獻; 2
Fedora 8 圖形模式光碟安裝.
§4 连续型随机变量.
方格紙上畫正方形.
6.1.1 平方根.
美和科技大學資訊科技系 助理教授 美和科技大學資訊科技系 學生士
104學年度 進修學校期初工作報告.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Presentation transcript:

Android移动应用安全 加固方案介绍 北京大学 软件与微电子学院 2017年3月

主要内容 加固方案总体概况 加固方案涉及到的关键技术 2

加固方案总体概况 应用层 本加固方案根据客户的安全需求,实现了对Android平台的安全加固。 按体系结构划分,本方案主要涉及以下几个层次: 驱动层 Linux内核层 Android框架层 Android应用层 应用层 框架层 驱动层 内核层 核心库 SELinux 3

加固方案总体概况 用户接口 本方案主要特点 “安全助手”应用,利用图形界面进行精细化操作。 策略文件,类似于批处理,可以实现快速方案部署。 立足于全志Android 4.0.4解决方案,通用型强。 采用基于SELinux(来自于美国国家安全局NSA)的动态安全加固技术,安全性高。 用户界面美观易用,功能设计合理,能够在不影响性能的前提下,满足客户的安全需求。 4

加固方案关键技术 本方案关键技术可分为8项: 登录时身份认证 网络访问控制 安装时授权检查 运行时授权检查 系统升级授权检查 安全状态检测 全局外设管理 安全审计 需求分析 详细设计 关键技术 5

登录时身份认证 背景 Android终端通常有设置PIN码的需求。现有技术通常在系统启动后进行PIN码验证,容易被Root从而绕过验证。 方案 在Boot引导时进行PIN码校验,有效防止Root等非法行为。 6

登录时身份认证 技术难点 如何在系统启动之前实现PIN码验证这种界面交互操作? 如何存储正确PIN码? 在BootLoader状态,实现显示驱动和触摸屏驱动,加载FrameBuffer子系统和Input子系统,分别处理键盘显示、PIN码输入框显示和用户输入检测。 如何存储正确PIN码? PIN码格式为8位数字,以某种安全方式存储于安全TF卡中,需要专门的TF卡操作接口才能够读取,当用户输入正确PIN码时,方可进入系统。 安全TF卡中的数据经过了加密处理,其他人无法读取。 7

登录时身份认证 登录校验流程图 PIN码校验用户界面 8

网络访问控制 背景 方案 目前针对Android平台的网络攻击频发,如何从网络层面保护终端免受外部的蠕虫攻击、或者内部木马的外连请求。 现有技术通常只从应用的角度对网络进行限制,无法实现IP地址、端口级别的细粒度访问控制。 方案 采用基于iptables规则的防火墙过滤技术进行数据包的过滤,将来自外部的非法数据包拦截并丢弃,从而实现网络的访问控制。 同时实现网络层过滤和应用层过滤。网络层过滤从IP地址和端口的角度对网络访问进行控制;应用层过滤限制了终端上每个应用是否能够WIFI网络或者蜂窝网络。 9

网络访问控制 技术难点 防火墙规则编写的技术门槛较高,如何令普通用户也能实现规则配置? 我们在iptables技术的基础之上实现了脚本批处理功能,能够通过云端自动向各Android终端发送脚本指令,实现防火墙规则的自动配置,几乎可以实现傻瓜式操作。 外部攻击类型层出不穷,如何保证防火墙能够有效抵御攻击? iptables技术可以实现数据包的记录功能,通过可疑数据包上传到云端进行分析,可以有效发现新型类型的攻击,从而利用云端的脚本快速部署,实现对各Android终端防火墙的实时更新,有效抑制0Day漏洞的危害。 10

网络访问控制 网络层规则示意图 应用层规则示意图 11

安装时授权检查 背景 方案 Android平台恶意软件层出不穷,需要实现软件的授权安装,即不允许未授权的应用在终端上进行安装。 采用白名单模式对安装应用进行限制,未出现在白名单中的应用禁止安装。 12

安装时授权检查 技术难点 如何识别应用的身份? 如何实现应用安装动作的拦截? 签名标识了一个应用的发布者的身份,无法伪造,因此利用签名作为应用的身份认证机制较为安全。可以在白名单中存放签名文件。 如何实现应用安装动作的拦截? 系统应用安装――开机时完成,没有安装界面; 网络下载应用安装――通过market应用完成,没有安装界面; ADB工具安装――没有安装界面; 第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面; Android共有上述四种安装方式,分别设置钩子函数进行拦截。 13

在scanPackageL这里设置钩子函数! 安装时授权检查 Android应用安装UML序列图 在scanPackageL这里设置钩子函数! 14

运行时授权检查 背景 为了防止某些应用偷发短信、偷偷上网等问题,需要对各应用的权限进行动态管理。目前Android 4.0平台仅仅是将应用所要申请的权限在安装时显示给用户,而一般用户在安装时根本不会去仔细查看权限列表。 方案 设计了针对应用的授权管理机制,并开发应用“安全助手”作为用户界面。 在“安全助手”中可以实现对所有应用权限的查看、修改。 对权限的动作包括两种:允许和禁止。 15

运行时授权检查 技术难点 如何实现应用权限调用动作的拦截? Android系统上应用软件的权限共有130多种,通过对每一种权限的调用API处设置钩子函数,从而在运行时有效拦截权限调用。 权限描述 权限定义 读取联系人权限 android.permission.READ_CONTACTS 写入联系人权限 android.permission.WRITE_CONTACTS 读取SMS权限 android.permission.READ_SMS 监听处理收到的 SMS 权限 android.permission.RECEIVE_SMS 编辑 SMS 权限 android.permission.WRITE_SMS 发布 SMS 权限 android.permission.SEND_SMS 访问网络权限 android.permission.INTERNET 录音权限 android.permission.RECORD_AUDIO 拍照权限 android.permission.CAMERA 定位权限 android.permission.ACCESS_FINE_LOCATION 16

运行时授权检查 应用程序列表 权限的查看、修改 17

系统升级授权检查 背景 在系统更新时,为了防止用户采用非法升级包从而破坏原有系统,需要对系统升级包进行校验。现有的系统升级包校验机制与应用安装包校验机制相同,安全性得不到保障。 方案 为安全起见,方案增加了系统升级包专用的签名验证机制,只有当待安装的系统升级包同时满足“应用安装包校验”和“系统升级包签名验证”时,才能够在终端上进行安装升级,从而保证系统升级的安全性和可靠性。 18

系统升级授权检查 技术难点 如何实现更安全的系统升级包校验? 采用安全签名算法:SHA1-RSA 采用自定义的签名格式,较难被破解。 字段 含义 占用大小 字序 注释 MAGIC 固定标示,总是为: 0x58 0x44 0x4A 0x41 4BYTES 按字节写入 字符XDJA SIG_OFFSET 签名数据(SIG_BODY)的偏移位置 2BYTES 小端 以SIG_BLK的起始为偏移0 SIG_SIZE 签名数据的大小   SIG_BODY 签名数据 128BYTES 由两部分组成:签名数据、验签证书。签名数据大小为128Bytes;证书大小一般为1024Bytes左右! 验签证书 SIG_SIZE-128 TOTAL_SIZE SIG_BLK的总大小 包括TOTAL_SIZE自身占用的大小 19

安全状态检测 背景 现有Android系统一旦被Root,意味着其他应用可以随便获得系统最高权限,毫无安全性可言。因此,有必要设计一种机制检测用户或者恶意软件的Root行为。 方案 在系统启动之后,运行一个后台线程,定时(如每5分钟)对当前系统运行状态进行检测。 如果root检测呈阳性,则可以采取惩罚性措施,比如系统不能再开机。 20

安全状态检测 技术难点 如何进行Root检测? 执行root专属命令,看其执行是否成功来判断。 在内核层次,对/system/bin目录进行扫描,检测是否存在su程序,若存在su程序,则可以以很大概率判断此终端已经被Root。 实现Root的特征库,对现有Root方法进行特征收集,利用类似杀毒软件的方式对Root行为进行防控。 21

安全审计 背景 为了统一管理,Android终端上用户的一切非法操作行为及终端负载信息,有必要提交到管理后台进行统计分析。现有Android平台并无此功能。 方案 日志包括: 非法操作行为:PIN码校验失败,应用安装失败,系统更新失败,访问非法网络,应用运行发生权限异常 (SecurityException); 终端负载信息:照片,录音音频,摄像视频。 本方案需要实现日志的记录、提取和上传,分别由日志记录模块、日志提取模块和日志上传模块负责完成。 22

安全审计 日志记录 非法操作行为主要有两种:一种是系统原有认定的非法操作行为(如应用运行发生权限异常,程序意外关闭,ANR等);一种是由本方案设计的安全加固机制触发的非法操作行为(如PIN码校验失败、应用安装失败、系统更新失败、访问非法网络)。 对于前者,Android系统会自动进行记录,不需要人工干预;对于后者,我们可采用Log.e接口实现日志记录,日志级别为ERROR,下面附Android系统日志级别: Android系统的日志级别共有五级: ERROR:错误; WARN:警告; INFO:信息; DEBUG:调试信息; VERBOSE:详细信息。 23

安全审计 日志提取 由于在日志持久化后,非法操作行为已经成为文件的形式。终端负载信息本身也是文件形式。因此,日志提取本身就是文件提取。可以通过读取外部存储来获取。具体需要利用Java的File接口(需要android.permission.READ_EXTERNAL_STORAGE权限) 每种类型的日志的存储目录如下: 名称 标识符 目录 非法操作行为 log /sdcard/log_history 照片 image /sdcard/DCIM/Camera/image 视频 video /sdcard/DCIM/Camera/video 录音 sound /sdcard/MIUI/sound_recorder 24

安全审计 日志上传 日志上传由客户端和服务器端两部分实现,终端设备作为客户端向服务器端上传日志。 客户端日志上传方式,目前采用主动上传方式,即终端用户通过操作界面,实现日志上传,如图所示的“一键上传非法操作”和“一键上传终端负载”按钮。也可以增加自动上传方式,即系统以一定频率定时以后台方式上传日志信息。 25

ly veotax@pku.edu.cn 北京大学 软件与微电子学院 2017年3月 敬请批评指正,谢谢! ly veotax@pku.edu.cn 北京大学 软件与微电子学院 2017年3月