基于沙盒技术的企业移动应用安全平台设计

本文始发于博客: https://zhaomenghuan.github.i...

前言

移动互联网的飞速发展, 改变了企业传统的业务模式, 提高了工作效率. 但同时也给企业的数据安全带来了巨大的挑战, 我们面对各种攻击的可能性会大 大增加, 面临潜在的风险:

  • 移动设备中的不安全应用程序会危及到企业网络的安全;
  • 移动设备可能在不安全的网络(如公共 WiFi 热 点)中使用, 容易造成恶意软件感染和数据泄漏;
  • 越狱或获取 Root 权限移动设备会带更多风险;
  • 移动设备被盗, 在未经授权的情况下访问公司的网络或者泄漏敏感数据。

企业移动应用安全平台由四部分功能组成, 安装在手机上的 安全容器安全加固 SDK, Web 管理门户通信代理, 各部分的功能及其相互间的关系如下所示:

clipboard.png

Android 安全架构

Android 系统采用分层的体系结构,分别为: Applications(核心应用程序)、Application Framework(开发框架包)、Libraries(系统运行库或者是 c/c++ 核心库)、Hardware Abstraction Layer(硬件抽象层)、Linux Kernel(Linux 内核)。

Android 系统采用分层的系统架构进行设计,每层都有其严格的安全规范和强健的安全架构。Android 的主要安全机制在内核层和系统框架层。在系统框架层,Android 则采用了权限机制、签名机制和沙箱机制,来保护系统的安全,隔离不同进程之间的资源访问,授权访问系统资源和服务,禁止非授权访问的发生。

权限机制是 Android 系统框架层提供的,是对应用访问公共资源和服务进行强制访问的安全策略。应用如果要使用公共资源和服务,必须要在配置文件中声明需要使用对应资源的权限,否则将无法得到授权,致使不能使用其资源,但是权限机制采用的全部肯定和全部否定的方式,把最终的确定权交给了用户,用户在不具备相关的安全知识的情况下是很难做出合适的判断的。

签名机制是应用中包含一个采用非对称加密方式存储的数字证书,由于私钥在开发人员手中,所以数字证书能够保证开发人员对其应用的合法拥有权。虽然 Android 系统提供了签名机制来保护开发人员的合法拥有权,但是并没有提供验证应用是否被恶意的二次重打包,这使得应用被注入一些恶意的代码,来获取非法的收益或达成恶意的目的。

沙箱虽然提供了进程隔离的机制,保证运行时应用的进程空间不会被恶意的修改,但是沙箱并没有在运行时验证是否运行环境是否安全,是否系统的关键函数的地址发生了改变,一旦系统的在进入沙箱前就已经被恶意修改,沙箱中的应用也将受到恶意的威胁。

目前基于容器的 Android 加固方案和沙箱技术免安装应用的管理,本质上都是基于 Android 系统插件化的技术,APK 沙箱需要解决以下几个问题:

VirtualApp 沙箱原理

VirtualApp 是一个开源的 Android App 虚拟化引擎,允许在其中创建虚拟空间,并在这个虚拟空间中运行其他应用。Android 应用隔离是基于 Linux 系统的多用户机制实现的,即每个应用在安装时被分配了不同的 Linux 用户 uid/gid。而在 VirtualApp 中,client 应用(通过 VirtualApp 安装的应用)与 host 应用(即 VirtualApp 本身)是具有相同用户 uid 的。

因此,VirtualApp 在运行时,包含以下三部分:

  • Main Process,进程名 io.virtualapp,主要负责 VirtualApp 用户界面及应用管理
  • VA Server Process,进程名 io.virtualapp:x,主要负责系统服务的代理,是通过 Content Provider 启动的
  • Client App Process,进程名 io.virtualapp:p[0-…],作为将来运行 client 应用的进程,当 client 应用启动后,其进程名会更新为 client 应用的包名

下面是在 VirtualApp 中运行应用后通过 ps 命令得到的结果:

各列参数意义:

  • USER: 进程当前用户;
  • PID: Process ID,进程 ID;
  • PPID: Process Parent ID,进程的父进程 ID;
  • VSIZE: Virtual Size,进程的虚拟内存大小;
  • RSS: Resident Set Size,实际驻留"在内存中"的内存大小;
  • WCHAN: 休眠进程在内核中的地址;
  • PC: Program Counter;
  • NAME: 进程名.

可以看到,以上进程,均是以 VirtualApp 的用户 uid 运行的。因此,Android 应用隔离此时不再适用,我们可以对 client 应用进行 hook 而无需 root 权限。

VirtualApp 源码结构

1. java/android: 覆盖了系统的隐藏类

content/pm/PackageParser: 主要对应 android.content.pm.PackageParser,主要作用是解析 APK;

location/LocationRequest: 对应于 android.location.LocationRequest,该类是一个可持久化的 Parcelable,主要作用是设置 LocationManagerService 的参数。

2. com.lody.virtual: 框架的主体代码

client: 运行在客户端的代码,指加载到 VA 中的子程序在被 VA 代理(hook)之后,所运行的代码;

server: server 端代码,VA 伪造了一套 framework 层系统 service 的代码,他在一个独立的服务中记录管理组件的各种 Recorder,其逻辑其实与系统原生的相近,通过 Binder 与 client 端的 ipc 包中的 VXXXXManager 通讯。诸如 AMS(VAMS),PMS(VPMS);

remote: 一些可序列化 Model,继承于 Parcelable;

os: 处理系统环境,如多用户;

helper: 框架工具类。

3. mirror:系统 framework 的镜像

实现了与 framework 层相对应的结构,封装了反射获取系统隐藏字段和方法的,便于直接调用获取或者赋值以及调用方法。

MAM 发展的现状

移动应用程序管理(MAM)背后的想法是我们将安全策略应用于单个应用程序而不是整个设备。这意味着各种应用程序可以应用独特的策略,并且无论设备的管理状态如何,它们都将受到保护和管理。基本的应用程序管理功能通常包括身份验证,VPN,加密和远程擦除。应用程序还连接到可以控制身份验证,发出远程擦除命令或使用 IT 创建的策略控制应用程序的服务器。

前言部分我们我们知道沙箱技术主要用于企业应用管理的安全容器(安全桌面),MAM 中最关键的技术就是 APP Wrapping 和 Secure Container 部分,它把一个移动设备划分出两个工作区,从而实现个人空间与企业工作空间的隔离。这些关键技术通俗理解就是 iOS、Android,WinPhone 上的应用虚拟化,它没有一个标准接口可遵循,完全靠各 MAM 厂商自己的技术功力来实现。

  • APP Wrapping (封装或者打包) —— 透过对应用封装打包或通过集成 SDK 方法,控制服务和安全管理,对于应用的分发,访问和策略管理至关重要。
  • Secure container (容器或沙盒) —— 应用级别的竖井,加密存储和传输状态的数据,对消息和应用数据提供隔离保护,设备其他部分无法访问。

参考

  • APK 沙箱技术在平台型 App 中 的架构实战
  • VirtualApp 沙盒基本原理
  • Android 双开沙箱 VirtualApp 源码分析
  • 各大 EMM 厂商功能比较 第二部分 MAM & Container 比较
weixin_33816300
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于J2EE 的粮油企业移动管理平台系统的研究与实现
12-18
这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!这是一篇毕业论文!
企业源代码安全,首选SDC
weixin_34080903的博客
09-15 201
看到很多软件公司,开发人员都备份了一份项目源代码,被拿回家,造成泄密。深信达SDC盒专为解决这个需求而开发。 1)所有涉密文件,涉密程序都全透明管控加密。不区分文件格式和软件类型。 2)外来PC,接入网络(插入网线,获得IP)后,成为孤岛,无法访问公司内任何一个涉密计算机。 3)客户端允许涉加密盘,员工开发的数据,只能保存到本地加密盘中或者服务器上。 4)允许正常非...
箱(安全软件)
01-01
箱:安全软件。 制造一个虚拟环境来运行软件,虚拟环境停止后,一切运行痕迹消失。
JAVA 2平台安全技术-结构,API设计和实现
10-21
并在此基础上,详细描述了Java 2平台中新增加的许多安全结构方面的措施,同时对Java安全性的实施提出了使用指导,描绘了如何定制、扩展和精化安全结构以及成功实现的技术细节。本书为建立安全、有效、强大和可移植的...
Java 2平台安全技术-结构,API设计和实现
09-15
5.4 移植基于JDK1.1的安全管理器 97 5.4.1 JDK1.1安全管理器类 97 5.4.2 使JDK1.1安全管理器 适应JDK1.2 98 5.4.3 为JDK1.2而改进JDK1.1 安全管理器 100 第6章 对象的安全 106 6.1 安全异常 106 6.2 域和方法 107 ...
深信服移动应用管理EMM产品彩页.pdf
10-13
该解决方案可以实现设备管理、数据安全应用管理和安全管控等功能,保护企业数据,提高移动应用体验,提高员工满意度。 在基础移动办公阶段,深信服EMM企业移动管理解决方案可以 实现设备管理,保障数据安全,保护...
移动应用安全技术
Android系统攻城狮
03-02 6412
前言 移动互联网的飞速发展, 改变了企业传统的业务模式, 提高了工作效率. 但同时也给企业的数据安全带来了巨大的挑战, 我们面对各种攻击的可能性会大 大增加, 面临潜在的风险: 移动设备中的不安全应用程序会危及到企业网络的安全移动设备可能在不安全的网络(如公共 WiFi 热 点)中使用, 容易造成恶意软件感染和数据泄漏; 越狱或获取 Root 权限移动设备会带更多风险; 移动设备被盗...
Android 双开箱 VirtualApp 源码分析(一)
热门推荐
ganyao939543405的博客
07-26 3万+
最近发现了一个非常好的开源项目,基本实现了一个 Android 上的箱环境,不过应用场景最多的还是应用双开。 VA github: https://github.com/asLody/VirtualApp VA 的源码注释: https://github.com/ganyao114/VA_Doc 第一章主要是分析一下项目的整体结构。包结构android.content主要是 PackageP
Android--支付宝箱集成(详细图解)
qq_43337254的博客
01-25 5123
目录效果图关于官方的Demo进入开发者平台下载他的箱版支付宝下载官方给的SDK导入官方给的Demo导入SDK修改APPID、PID、TARGET_IDRSA2_PRIVATE问题也就是这个箱的公钥和私钥最后加入这条语句EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);在onCreate()方法里面效果图的代码activity布局文件MainActivity文件有两处改动 效果图 关于官方的Demo 这里我们先跑一个官方给的demo试试 进入开发者平台 应用 创建一
浅析Android箱模型
ljheee的博客
11-16 2万+
一、Android沿用Linux权限模型       箱,对使用者来说可以理解为一种安全环境,对恶意访问者来说是一种限制。       在Android系统中,应用(通常)都在一个独立的箱中运行,即每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik经过优化,允许在有限的内存中同时高效地运行多个虚拟机的实例,并且每一个Dalvik应用作为
技术漫谈
zhulinu的专栏
10-23 1万+
不知道说法对不对,可以参考。 箱其实就是一个硬盘过滤文件驱动,具体来说,就是你把要写的东西写到了硬盘上,但实际上并没有写到硬盘,而是到了一个转存处,读取内容需要判断是箱开启之前就存在的内容还是开箱之后写入的内容,要分别从不同的地方读取内容,重启之后把转存的地方清零。关键词是bitmap,就是一小块一小块的扇区,bitmap每一位对应磁盘上的一个扇区,N位就有N个扇区,这个位如果为0,就认为
盒(箱)测试
沉觞的博客
06-22 1万+
盒(箱)测试盒的概念盒环境盒测试 盒的概念 有时盒也叫箱,英文sandbox。在计算机领域指一种虚拟技术,且多用于计算机安全技术。其原理是通过重定向技术,把程序生成和修改的文件定向到自身文件夹中。当某个程序试图发挥作用时,安全软件可以先让它在盒中运行,如果含有恶意行为,则禁止程序的进一步运行,而这不会对系统造成任何危害。 盒是在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授予应用程序的代码访问权限。 盒环境 盒环境又称测试环境和开发环境,是提供给开发者开发和测试用的环境。
应用
卓越之路
03-21 2414
应用盒概念保护机制受影响模块共享文件 概念 Android 平台利用基于用户的 Linux 保护机制来识别和隔离应用资源,可将不同的应用分离开,并保护应用和系统免受恶意应用的攻击。为此,Android 会为每个 Android 应用分配一个独一无二的用户 ID (UID),并在自己的进程中运行。 Android 会使用此 UID 设置一个内核级应用盒。内核会在进程级别利用标准的 Linux 机...
移动应用安全架构设计
张平的专栏
10-25 1660
好久没写博客了,跳槽后专向项目管理,负责渠道系统,近期会推出 渠道系统 应用安全架构类文章,敬请期待~~
windows命令帮助大全
xiansibao的博客
06-13 520
用法: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]串行端口: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或。- 必须在验证登录的域中的所有服务器上运行 Net Logon 服务。/UNILOG+:文件 :: 以 UNICODE 方式将状态输出到日志文件(附加到现有日志中)。
Ollama在MacOS、Linux本地部署千问大模型及实现WEB UI访问
最新发布
派大夏的博客
06-14 586
阿里通义千问发布了Qwen2,提供了0.5B~72B的量级模型,在​​Ollama官网​​可以搜索qwen2查看,本文提供了Ollama的下载(在线/离线安装)、Ollama运行模型、使用WebUI连接模型以及页面简单配置。总体还是比较简单的,更高阶的玩法,看小伙伴的反馈,后面更新比如自定义智能体、训练等。
深入探讨虚拟盒在安全领域的应用
05-26
虚拟盒在安全领域的应用非常广泛。它能够提供一种安全环境,使得用户可以在该环境下运行应用程序,并且不会对系统产生任何损害。在虚拟盒中,所有应用程序的行为都是被限制的,这可以有效地防止恶意程序的运行。...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 单射、双射与满射 292698
  • 解决莫名其妙出现connection closed的错误 22391
  • 如何关闭win7的ps/2兼容鼠标(触屏版) 18715
  • 【docker】查看docker容器或镜像的详细信息命令,查看docker中正在运行的容器的挂载位置... 13620
  • html实现鼠标悬停变成手型实现方式 12074

最新评论

  • 硬盘变RAW:文件或目录损坏且无法读取/此卷不包含可识别的文件系统等无法访问错误可直接修复...

    川大核工实验室: 方案4亲测有效(因为往TF卡里一直写内容干超了导致的无法读取)

  • 注册表-各种功能-隐藏IE、隐藏硬盘、禁用硬件

    2301_79931381: 大佬您微信多少

  • 如何关闭win7的ps/2兼容鼠标(触屏版)

    2301_79377595: 我终于关掉触摸板了,谢谢大神表情包

  • 如何关闭win7的ps/2兼容鼠标(触屏版)

    2301_79377595: 我找到的方法基本上就是把下边的文本放到记事本里,改成reg文件,双击,然后以后在文件上右键就有获得trustedinstaller权限的选项了——这段没看懂

  • IC开短路测试(open_short_test),编程器测试接触不良、开短路

    像阵风: 请问导通电流为什么是100-500uA 大于500会怎么样

大家在看

  • 服务器远程桌面经常连接不上,造成远程桌面连接不上的原因都有哪些
  • 最新下载:Paragon NTFS for Mac 15【软件附加安装教程】 764
  • 湿敏传感器的种类和原理
  • 测试远程桌面端口是否打开,进行测试远程桌面端口是否打开的步骤
  • 声波传感器的种类

最新文章

  • MVC笔记 MVC注意事项及优化
  • iOS 什么是函数式编程
  • C项目实践之通讯录管理案例
2019年399篇
2018年628篇
2017年930篇
2016年563篇
2015年434篇
2014年316篇
2013年323篇
2012年246篇
2011年206篇
2010年154篇
2009年124篇
2008年88篇
2007年71篇
2006年36篇
2005年28篇
2004年8篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码张家界关键词按天收费永新模板制作公司武汉建设网站价格朔州网站优化软件价格西安网站搭建报价重庆推广网站多少钱黄山建设网站公司德宏阿里店铺运营多少钱荆门百度网站优化排名公司扬州高端网站设计哪家好庆阳SEO按效果付费价格松原设计公司网站推荐济南外贸网站制作深圳百度网站优化公司伊春网站建设设计报价邢台百度标王报价白银优秀网站设计巢湖高端网站设计多少钱宝鸡seo网站推广多少钱泰安企业网站制作推荐张北网站改版公司台州网站搜索优化巴中网站推广系统哪家好南通SEO按天收费报价黔东南网页制作价格钦州百姓网标王推广公司铁岭设计公司网站价格铜川营销网站多少钱扬州企业网站建设价格喀什seo优化报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化