基于Android重打包的应用程序安全策略加固系统设计

基于Android重打包的应用程序安全策略加固系统设计
基于Android重打包的应用程序安全策略加固系统设计

2014年第01期技术研究doi:10.3969/j.issn.1671-1122.2014.01.010

基于Android重打包的应用程序安全策略

加固系统设计

李宇翔1,2,林柏钢1,2

(1.福州大学数学与计算机科学学院,福建福州350108;2.网络系统信息安全福建省高校重点实验室,福建福州350108)

摘要:随着移动互联网快速发展,智能手机面临着严峻的安全威胁。由于Android权限划分的粗粒度以及权限授权一次性的约束,对于应用申请的权限,用户要么全部接受,要么拒绝安装,对于安装

后应用可疑行为束手无策。为此文章设计了利用重打包注入安全防护代码的加固系统,不仅提供应用动

态权限管理机制,还提供权限划分细粒度的安全策略,从源头上遏制恶意代码行为,用户也可根据需求

定制策略,满足不同安全需求的安全加固应用。

关键词:Android安全;重打包;动态权限管理;细粒度策略;应用加固

中图分类号:TP309文献标识码:A文章编号:1671-1122(2014)01-0043-05

RepackagingAndroidApplications forEnforcingSecurity Policy

LIYu-xiang1,2,LIN Bo-gang1,2

(1.College of Mathematics and Computer Science in Fuzhou University,Fuzhou Fujian 350108,China;2.Key Lab of

Information Security of Network System in Fujian Province,Fuzhou Fujian350108,China)

Abstract:WiththerapiddevelopmentofmobileInternet,smartphonesarefacingserioussecuritythreats.Due

tothecoarse-graineddivisionofpermissionandpermissionauthorizedonlyonetimeonAndroid,usershaveeither

acceptallpermissionsatinstalltime,orelse can’t installanAppatall.Forsuspiciousbehavior,usersareevenmore

helplessafterapplicationsinstalled.ThispaperdesignsasystemthatusingtheAndroidrepackagingtechnology,

whichinjectsthesecuritycodetotheapplication.It’s notonlyprovidesthedynamicpermissionmanagementbutalso

providesthe?https://www.360docs.net/doc/708893262.html,erscanalsocustomize

strategy to meet the differentsecurity need.

Keywords:Androidsecurity;repackagingtechnology;dynamicpermissionsmanagement;?ne-grainedpolicy;

reinforceAndroid apps

0引言

随着移动互联网的快速发展和广泛普及,移动终端正朝着智能化的方向不断迈进。移动平台攻击与APT攻击技术结合的趋势日益明显,移动平台正面临着严峻的安全挑战。工业和信息化部电信研究院公布的《移动互联网白皮书(2013)》中显示,2012年底,Androi d已经占到增量市场86.4%,在国内移动智能终端操作系统格局中显现绝对优势[1]。伴随着

Android的快速普及以及其自身的开源优势,该平台成为恶意代码泛滥的重灾区,带来了不可忽视的安全问题。本文所论述的安全防护技术的研究重点面向Android平台,从Android系统的安全机制来看,其主要依赖沙箱和权限控制[2-4]。通过沙箱技术实现应用程序间的相互隔离,而权限控制则旨在允许或限制应用程序访问受限的API或者系统资源。然而Android权限的管理机制存在以下问题[5]:1)用户能够在应用程序安装过程中审阅请求权限并加以评估,但用户最终要么

全部接受,要么就不能安装应用程序;2)用户权限授权是一次性的,只在安装时有效,对于安装后的应用,Android系统并不支持动态的权限管理机制;3)Android权限划分粒度不够细化,普通用户根据其安装时的权限提示,难以区分恶意程序与正常应用,埋下严重的安全隐患。

收稿日期:2013-10-21

基金项目:福建省科技厅重点资助项目[2012H0025]、福建省安全课题资助项目[822711]

作者简介:李宇翔(1990-),男,广西,硕士研究生,主要研究方向:移动智能终端安全;林柏钢(1953-),男,福建,教授,博士生导师,主要研究方向:网络与信息安全、编码与密码。

43

技术研究2014年第01期

1系统设计

1.1 设计目标

上传A P P进行解包、安全代码注入、重新打包等过程,完

成对APP的安全策略加固。

3)加固APP安装到手机后,可以利用手机端监控模块

对加固APP进行监控管理,包括权限策略定制、日志查看等。

4)在加固APP的运行过程中,一旦触发可疑行为,加

固A P P便会与手机端监控模块进行通信,由手机端监控

模块对其行为进行决策,并将该行为的具体信息通知用户,

同时进行日志记录以便日后审计以及定制策略。

本文系统主要根据Android重打包技术注入安全防护

代码,旨在消除Android系统权限划分的粗粒度以及权限

授权一次性所产生的安全隐患。通过细粒度的安全防护策

略完成对应用程序的安全加固,使其具有以下主要特点:

1)提供对应用权限的动态管理。对于安装后的应用,用

户可以根据需要动态地限制或启用该应用的某些权限,以达

到对程序某些功能的启用与屏蔽,尽可能降低隐私泄露的风险。

2)拥有细粒度的安全防护策略。系统结合恶意代码常

用的技术手段,对常见恶意行为进行更细粒度的划分,使

得用户可以根据多样化的安全策略完成应用程序不同级别

的安全防护。

2关键技术

2.1 细粒度权限控制

由于权限机制的存在,在一定程度上使得Androi d应

用程序所申请的权限与行为具有很大的关联特性,因此权

限成为Android安全研究人员分析可疑程序行为的切入点。

3)根据需求定制所需安全策略。用户可以根据需求或

日志所记录的软件行为,进行所需策略的定制,拥有更为

本文根据应用在AndroidManifest.xml文件中所声明的常用

权限,结合恶意代码恶意行为常用的权限特征[7,8],将权限自主的策略控制权,满足不同用户不同的安全需求。

4)从源头上遏制恶意代码[6]。该系统利用重打包技术策略划分为5大类,作为安全策略实施的凭据。图2展示

了本文系统对权限策略的分类。

注入安全加固代码,使其能从源头上遏制恶意代码的可疑

行为,对恶意行为拥有较高的拦截效率。

5)适用于任何设备。该系统无需Root,无需修改系统

内核,可广泛适用于任何Androi d设备,加固技术也更易推广。

1.2 系统框架

该系统主要分为3个模块:安全加固模块、手机监控

模块和服务端重打包模块,各个模块相互协调构成整个安

全策略加固系统。系统框架如图1所示。

图2权限策略分类

2.2 安全加固模块

安全加固模块是本文系统的核心模块,主要包括恶意

代码的分析、应用程序可疑行为的监控等。该安全模块的

策略主要根据现有恶意代码行为分析而设计。本文事先人

工分析了一些恶意代码的典型恶意行为作为定制策略的基

础,结合恶意代码所申请的应用权限,制作出如表1所示

的权限函数映射表。

图1系统整体框架

1.3 系统流程表1权限函数映射

该系统按运行平台可划分为服务端的重打包模块以及

手机端的手机监控模块。两大模块可利用网络或者USB数

据线进行通信,完成A P P的上传加固以及加固APP的下

载安装功能。该系统执行流程主要分为以下4个步骤:

1)若需要加固APP,则通过USB或者网络上传到服

务端重打包模块。

2)服务端执行用Pyt hon语言编写的重打包模块,对

44

2014年第01期

技 术 研 究

该模块针对每个调用函数都进行了二次封装,每次封 装都结合了各种行为的主要特征,完成对特定行为的判断。 下面主要介绍该模块对两个指定函数的封装。

1)quer y 封装

String 是加固应用程序包名,Integer 是加固应用 权限状态集合,各权限状态对应于Integer 各比特位状 况(0或1)。

2)推荐策略

短信查看、通讯录查看等操作是通过query 函数查询 共享数据获取数据信息的,数据的不同在于URI 的不同。 常用的关键URI 字符串开头如下:

通讯录: 该模块主要方便用户定制权限控制,提高用户体验。 推荐策略主要根据第三方软件平台所发布的各类软件, 对其权限分布进行统计。用户根据下载的应用类别(办 公商务类、壁纸主题类、聊天通讯类、生活地图类、网 络邮件类、影音图像类、游戏类、阅读学习类等),告知 系统使用何种策略,系统根据指定类别帮助用户设定权 限控制方案。

content://c o n t a c t s

content://c o m .android.contacts c o n t e n t ://i c c /a n d 短消息: 3)日志记录

content://sms 对于刚安装的应用,用户不了解相关各权限功能,不 能马上对其进行有效的安全策略定制。手机监控模块能够 对其可疑行为进行日志记录,用户便可随时根据其行为日 志,准确地实施安全策略,满足用户的需求。

4)与加固应用交互

content://mms 通话记录:

CallLog.Calls.CONTENT_URI

加固代码中关于query 函数的二次封装就是对关键URI 进行匹配,以判断目前所触发的行为是何种隐私数据查询。

2)registerReceiver 封装

每当加固代码被触发,它便通过Local Socket 与手机监 控模块进行通信,传递一些策略数据(如何种权限触发), 并附带传递内容。随后,手机监控模块查询内存中存储的 权限策略,返回决策信息,同时开辟新线程对其行为进行 通知以及日志记录。整体流程如图3所示。

Android 动态注册广播接收者具有比静态注册广播接 收者更高的优先级,加上可以指定最高优先级,该函数将 是恶意代码最常见的行为特征。该函数原型如下:

IntentregisterReceiver( BroadcastReceiverreceiver, I n t e n t F i l t e r f i l t e r )。

在动态注册中,IntentFilter 为需要接收的广播行为。 以下为可疑广播行为:

android.intent.action.PHONE_STATE (获取电话状态, 常用来截获电话信息)

android.provider.Telephony.SMS_RECEIVED (系统接收 到短信时触发)

加固代码中关于regi st erRecei ver 函数的封装正是对这 两个广播行为进行监听,一旦应用动态注册相应广播接收 者,即可判断可疑行为发生。

图3交互决策流程图

2.4 服务端重打包模块 2.4.1 重打包架构

服务端模块主要利用重打包技术完成安全代码的注 入。如何快速准确地完成安全代码的注入、重打包后程序 能否稳定运行等将是该模块考虑的核心[9]

。该模块流程主

要包括对A P K 各个文件的解析、smali 语法的快速分析 以及Dalvik 字节码的注入等[10,11]

。具体流程如下:

2.3 手机监控模块

1)权限控制

该子模块采用SQLi te 存储之前配置的权限策略,在内存 中采用hashmap 数据结构对其进行存储。数据结构原型如下:

HashMappolicyMap

45

技术研究2014年第01期

1)使用Apkt ool对A P K进行解包。1)与应用市场合作

2)对Andr oi dMani f e s t.x ml进行解析,解析的内容包括可以考虑与运营商或者第三方软件市场合作。部分应

用在由该系统加固后上架,用户通过订阅业务或由软件市

场获取应用时,可以根据需要下载加固的应用。

2)云中部署

申请权限、组件以及IntentAction。

3)根据解析出来的权限匹配权限函数映射表,确定

待修改的Dalvik字节码。

4)根据s m a l i语法对Dal vi k字节码进行修改,并导入

加固代码。

可以在手机客户端上增加一个下载应用的模块,每

当用户浏览软件市场并希望下载应用程序时,用户可以

选择将应用程序发送至云服务,然后对其进行加固并下

载至用户手机。

5)使用Apkt ool工具对其进行重新编译,生成未签名

的A P K。

6)使用j ar si gner对生成的APK进行签名。

3系统测试

7)使用z i p a l ign对签名后的APK进行字节对齐处理。

2.4.2 安全代码注入

3.1 测试环境

测试环境为Google提供的Android2.3模拟器和真机该模块关键技术在于分析smali语法并修改Dalvik字

节码。该系统中加固代码位于repackagi ng/func/中,该包包

含各种安全策略类,每个类中的监控函数均被声明为st at ic。

修改样例如下:Landroid/content/ContentResolver;->query。在

查询短信、通讯录的时候,原程序将会调用该函数(根据

传递的URI,判断操作的是短信还是通讯录)。调用语句为:

in vo ke-vi rt ual/r an ge{p0..p5},Landroi d/c o nt e nt/Co nt e nt Resol v e r;-

>query(Landroid/net/Uri;[L j a v a/l a n g/S t r i n g;L j av a/l a ng/S t r in g;[L j ava/

l a n g/St ri ng;Lj a v a/l a n g/St ri ng;)Landroi d/dat abase/Cursor;

invoke-vi rt ual指明调用的是实例函数,{p0..p5}为函数参

数。其中,p0为Landroi d/cont ent/Cont ent Resol ver;实例对象引用。

经过加固打包后,原代码修改为如下代码:

H U A W EIC8812Android4.0.3,并使用ADT与DDMS进行

开发调试。

3.2 测试内容

本系统测试内容包括重打包功能模块、手机端权限控

制模块、日志记录模块和加固应用交互策略实施,测试样

例为仿真木马MyTroj an.apk,其涵盖各种可疑权限。这里我

们与360卫士(3.9及以前版本)拦截效果进行对比。

3.2.1 重打包模块测试

经过测试,打包前后样例MyTrojan.apk的文件大小比

对如表2所示。加固前后应用程序在大小上发生轻微的改

变,因此不必担心经过加固的应用会对用户造成额外流量

或存储空间上的负担。

invoke-st at i c/range{p0..p5},Lrepackagi ng/func/Pri vacyPol i c y;-

>query(Landroi d/cont ent/Cont ent Resol ver;Landroi d/net/Uri;[Lj ava/

l an g/S t r i n g;L j a v a/l a n g/S t r i n g;[L j a v a/l ang/S t r ing;L j a v a/l a n g/S t r i n g;)

Landroid/databa se/Cur sor;

表2打包前后对比

invoke-static指明调用静态函数,因此不需要传递类实

例对象引用,修改后程序将直接可以调用repackagi ng/func/代

码包中的PrivacyPolicy策略类对查询行为进行处理。由于加

固代码在封装原函数时多了一个函数参数,p0变成了第一个

函数参数的引用(对应原来Landroid/content/ContentResolver;

实例对象引用)。这么做的目的在于尽可能减小原来应用代

码的修改量,同时便于加固代码内部调用Landroi d/cont ent/

ContentResolver;->query函数执行原有功能。由于每个函数的

特征不同,因而代码修改方式也有所不同,但原理类似。

3.2.2 手机端测试

1)Guar d主要界面

经过加固的应用安装至手机后,便可对其进行权限策

略控制。手机端Guard主界面以及权限控制界面如图4所示。

2.5 系统部署方案

以下针对该系统提出了两种部署方式:图4Guard主界面及权限控制界面

46

2014年第01期

技 术 研 究

2)可疑行为通知与记录

3.3 测试总结

360手机卫士4.0版本(2013年5月27日更新)已能 实现更多拦截,包括录音、摄像等,但必须以Root 权限启 用,而Root 将带来许多安全隐患,这无疑给恶意程序带来 了更多的“发展”空间。

Guard 会记录下发生的可疑行为、负载内容、执行情 况以及行为触发时间,作为日志存储进数据库,同时也会 以通知的形式于通知栏告知用户行为的发生,用户可随时 获悉目标应用的各种行为。图5显示了录音行为触发通知 及该应用行为日志。

4结束语

本文旨在解决Android 权限机制存在的不足,通过分 析恶意代码常见的攻击手段以及利用重打包技术,设计了 针对目标应用的加固系统。该系统能使防护策略更为有效 地实施于目标程序,同时无需修改系统内核、无需Root , 从源头上遏制恶意代码的行为,因此相较于其他安全监测

系统具有一些不可比拟的优势。由于恶意代码攻击手段的 多样性与隐蔽性,恶意行为的分析、Native 层级别的安全 加固将是本文后期的研究重点,同时重打包技术所带来的 利用价值也值得后续进一步研究。(责编马珂)

图5录音行为通知及日志

3)性能比较

这里主要展示Guard 与360手机卫士(3.9版本,更 新时间2013年4月27日)在拦截性能上的比较。

(1)隐私窃取行为:通话录音

图6显示了在M yTrojan 后台执行电话录音上传功能, 360手机卫士并不能禁止该行为的发生,录音内容已上传 至指定邮箱。图7为Guard 对MyTrojan 的拦截测试。

参考文献

[1]工业信息化部电信研究.移动互联网白皮书[EB/OL].http://www. https://www.360docs.net/doc/708893262.html,/kxyj /qwfb/bps/201303/t20130301_907795.html .2013-3. [2]符易阳,周丹平.Android 安全机制分析[J].信息网络安全, 2011,(09):23-25.

[3]李洋.Android 中的沙箱机制[E B /Ol ].http://mobil https://www.360docs.net/doc/708893262.html,/ abased-354672.htm,2011.

[4]王梓.移动互联网之智能终端安全揭秘[M].北京:电子工业出版 社,2012.

图6MyTroj an 在360手机卫士监控下执行电话录音 [5]张中文,雷灵光,王跃武.AndroidPermission 机制的实现与安全 分析[C].第27次全国计算机安全学术交流会论文集,2012,(08):3-6. [6]XuR,Sa ?diH,AndersonR.Aurasium:Practical pol icyenforcement forandroidappl ications[C].Proceedingsofthe21stUSENI X conference

https://www.360docs.net/doc/708893262.html,ENI X Association,2012:27-27.

[7]Fel tA P,ChinE,HannaS,etal .Androidpermissionsdemystified[C]. Proceedingsofthe18thA C Mconferenceo nCom puterand communicationssecurity.ACM,2011:627-638.

图7MyTroj an 在Guard 监控下拦截电话录音

(2)恶意监控:短信远控

图8展示了短信远控在360手机卫士(左)和在Guard (右) 上执行效果对比,对比中发现Guard 能够有效拦截该行为。

[8]EnckW,OcteauD,McDaniel P,etal .AStudyofAndroidAppl i c a t i o n Security[C].USENI X securitysymposium.2011.

[9]BerthomeP,Fecherol leT,Guil l o t e a u N,etal .R epackagingAndroid ApplicationsforAuditingAccesstoPrivateData[C].Availability, Rel iabil i t y andSecurity(ARES),2012SeventhInternational Conference on.IEEE,2012:388-396.

[10]Nol anGodfrey.Decompil ingAndroid[M].NewYork:Apress,2012. [11]丰生强.Android 软件安全与逆向分析[M].北京:人民邮电出版 社,2013.

图8MyTroj an 执行短信远控

47

关于android OS(安卓系统)的弊端尤其是安全问题

关于android OS(安卓系统)的弊端尤其是安全问题 对当今手机业发展做出巨大贡献的Android系统,可以说是当今智能移动终端发展的关键推动者之一.它的主要贡献我认为有以下几点,一、开源的主流智能移动终端系统,让所有的厂商都可以参与发展;二、让不同层次的人们都可以享用智能手机和其它移动终端带来的好处;三、打破垄断,促进竞争。但是该系统也有两个严重的弊端: 一、系统有点“卡”的问题,这个问题我个人认为: 1、是android系统碎片化的问题,这也是系统开源的反面体现,可是开源系统又不能不开源,所以这个问题应该不容易解决; 2、虚拟机的问题,这个问题接触过JA V A的人应该都了解,这个问题虽然现在GOOGLE收购了法国的Flexycore公司,并推出了ART模式的优化方案,但这只是改善而已,并不是从根本上解决“卡”的问题。这种情况最终导致的结果就是终端厂家进入拼硬件的时代。 拼硬件的好处就是促进产品进步,但弊端也很时显,就是产品价格更贵了,能耗也就更高了。这就导致了有一个有趣的现象“抢购”手机,手机只是普通的消费品,满大街都在搞促销,为什么要抢购呢,就是人们又要更高的配置但又不用付出更多的钱。深层因素,就是厂家推出的产品,主打的是硬件配置,因为在这个系统里,配置高几乎就是用户体验好。对于用户来说,手机的使用周期只有两年左右,这里指的并不是说手机坏了,不能用了,而是说,手机配置在两年后可能就过时了,主流的应用无法对应如流了。而手机也不易容更新到最新版本的系统,你想以前安卓2.3系统,有几款手机现在可以官方升级到4.2呢。并不是说2.3不能升级到更新版本,而是除了旗舰机型号,很多厂商都不愿意再投入资源去升级旧机型,他们更希望你去买新的产品。但如果这个系统没有给厂商太多碎片化的权限,那是不是所有安卓可以在特定的架构下,由用户自行更新到google 发布的适合版本呢?当然,有人会说电子产品过时换代很正常,但是对比一下其它智能手机系统,别人的手机用几年系统还是可以流畅应对,甚至可以直接升级到官方更高的系统版本,至少不会太“卡”,这就是区别。 二、android安全问题,也是我最想说的问题: 这里我先给大家看一下,我从安全软件上截下的应用权限管理图,有款常用

android系统开发--HAL层开发基础

android系统开发--HAL层开发基础 Android HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念 1,源代码和目标位置 源代码:/hardware/libhardware目录,该目录的目录结构如下: /hardware/libhardware/hardware.c编译成libhardware.so,目标位置为/system/lib目录 /hardware/libhardware/include/hardware目录下包含如下头文件: hardware.h 通用硬件模块头文件 copybit.h copybit模块头文件 gralloc.h gralloc模块头文件 lights.h 背光模块头文件 overlay.h overlay模块头文件 qemud.h qemud模块头文件 sensors.h 传感器模块头文件 /hardware/libhardware/modules目录下定义了很多硬件模块 这些硬件模块都编译成xxx.xxx.so,目标位置为/system/lib/hw目录 2,HAL层的实现方式 JNI->通用硬件模块->硬件模块->内核驱动接口 具体一点:JNI->libhardware.so->xxx.xxx.so->kernel 具体来说:android frameworks中JNI调用/hardware/libhardware/hardware.c中定义的hw_get_module函数来获取硬件模块, 然后调用硬件模块中的方法,硬件模块中的方法直接调用内核接口完成相关功能 3,通用硬件模块(libhardware.so) (1)头文件为:/hardware/libhardware/include/hardware/hardware.h 头文件中主要定义了通用硬件模块结构体hw_module_t,声明了JNI调用的接口函数 hw_get_module hw_module_t定义如下: typedef struct hw_module_t { /** tag must be initialized to HARDWARE_MODULE_TAG */ uint32_t tag; /** major version number for the module */ uint16_t version_major; /** minor version number of the module */ uint16_t version_minor; /** Identifier of module */ const char *id; /** Name of this module */ const char *name;

详解Windows Server 2008安全日志

建立安全日志记录 为了让大家了解如何追踪计算机安全日志功能的具体方面,首先需要了解如何启动安全日志。大多数Windows计算机(除了某些域控制器版本系统)默认情况下不会向安全日志(Security Log)启动日志记录信息。这样的设置有利也有弊,弊的方面在于,除非用户强迫计算机开始日志记录安全事件,否则根本无法进行任何追踪。好的方面在于,不会发生日志信息爆满的问题以及提示日志已满的错误信息,这也是Windows Server 2003域控制器在没有任何预警下的行为。 安全日志事件跟踪可以使用组策略来建立和配置,当然你可以配置本地组策略对象,但是这样的话,你将需要对每台计算机进行单独配置。另外,你可以使用Active Directory内的组策略为多台计算机设置日志记录配置。要建立安全日志追踪,首先打开连接到域的计算机上的Group Policy Management Console (GPMC,组策略管理控制台),并以管理员权限登录。在GPMC中,你可以看到所有的组织单位(OU)(如果你事先创建了的话)以及GPO(如果你创建了两个以上),在本文中,我们将假设你有一个OU,这个OU中包含所有需要追踪相同安全日志信息的计算机,我们将使用台式计算机OU和AuditLog GPO。 编辑AuditLog GPO然后展开至以下节点: Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Audit Policy 类别控制范围的简要介绍 以下是关于每种类别控制范围的简要介绍: 审计帐户登录事件–每次用户登录或者从另一台计算机注销的时候都会对该事件进行审计,计算机执行该审计是为了验证帐户,关于这一点的最好例子就是,当用户登录到他们的Windows XP Professional计算机上,总是由域控制器来进行身份验证。由于域控制器对用户进行了验证,这样就会在域控制器上生成事件。除了Windows Server 2003域控制器(配置为审计这些事件的成功与否)启动了设置外,没有操作系统启动该设置。最常见以及最佳的做法就是让所有的域控制器和服务器对这些事件进行审计。我还发现,在很多环境中,客户端也会配置为审计这些事件。 审计账户管理–这个将对所有与管理计算机(配置了审计)的用户数据库中的帐户的用户有关的事件进行审计,这些事件的示例如下: ·创建一个用户帐户 ·添加用户到一个组 ·重命名用户帐户 ·为用户帐户更改密码 对于域控制器而言,该管理政策将会对域帐户更改进行审计。对于服务器或者客户端而言,它将会审计本地安全帐户管理器(Security Accounts Manager)以及相关的帐户。除了Windows Server 2003域控制器(配置为审计这些事件的成功与否)启动了设置外,没有操作系统启动该设置。最常见以及最佳的做法就是让所有的域控制器和服务器对这些事件进行审计。对于用户帐户的审计,安全日志以及审计设置是不能捕捉的。 审计目录服务访问–这个将对与访问AD对象(已经被配置为通过系统访问控制列表SACL 追踪用户访问情况)的用户有关的事件进行审计,AD对象的SACL指明了以下三件事: ·将会被追踪的帐户(通常是用户或者组)

(完整版)Android智能手机安全风险及防范策略

Android智能手机安全风险及防范策略 摘要 智能手机相对于传统的手机拥有更丰富的功能和更强的数据处理能力,而近年来发展迅速的Android 系统具有开,可移植性强等优点,因此,越来越多的智能手机采用Android 系统作为手机操作系统。随着Android 智能手机的普及和人们安全意识的提高,Android 智能手机的安全性也越来越受到人们的重视。手机中包含了大量的用户私密信息,并与用户的经济利益直接相关,因此如何保护Android 智能手机的信息安全,是一个非常重要的课题。 关键词:Android手机,手机安全,手机病毒,个人隐私

The Android intelligent mobile phone security risks and Countermeasures Abstract Compared with traditional mobile phone, smart phone has much more rich functionality and strong ability in data processing, besides, Android has been developing rapidly in recent years, it is an open source system, has strong portability advantages, therefore, more and more intelligent mobile phone use Android system as their mobile phone operating system. With the popularity of Android smart phone, and improvement of people's security consciousness, the security of Android smart phone get more and more of people’s attention. People’s mobile phone contains a large number of user’s private information, and is directly related to user’s economic interests, so how to protect the information security of Android smart phone, is a very important topic. Keywords:Android mobile phone,Mobile phone security,Mobile phone virus,Privacy

Android应用程序开发(第二版)课后习题答案最新版

第一章 Android简介 1.简述各种手机操作系统的特点. 答案: 目前,手机上的操作系统主要包括以下几种,分别是Android、iOS、Windows Mobile、Windows Phone 7、Symbian、黑莓、PalmOS 和Linux。 (1)Android是谷歌发布的基于Linux的开源手机平台,该平台由操作系统、中间件、用户界面和应用软件组成,是第一个可以完全定制、免费、开放的手机平台。Android底层使用开源的Linux操作系统,同时开放了应用程序开发工具,使所有程序开发人员都在统一、开放的开发平台上进行开发,保证了Android应用程序的可移植性。 (2)iOS是由苹果公司为iPhone、iPod touch、iPad以及Apple TV开发的操作系统,以开放源代码的操作系统Darwin为基础,提供了SDK,iOS操作系统具有多点触摸操作的特点,支持的控制方法包括滑动、轻按、挤压和旋转, 允许系统界面根据屏幕的方向而改变方向,自带大量的应用程序。 (3)Windows Mobile是微软推出的移动设备操作系统,对硬件配置要求较高,一般需要使用高主频的嵌入式处理器,从而产生了耗电量大、电池续航时间短和硬件成本高等缺点,Windows Mobile系列操作系统包括Smartphone、Pocket PC和Portable Media Center。

随着Windows Phone 7的出现,Windows Mobile正逐渐走出历史舞台。 (4)Windows Phone 7具有独特的“方格子”用户界面,非常简洁,黑色背景下的亮蓝色方形图标,显得十分清晰醒目,集成了Xbox Live游戏和Zune音乐功能,可见Windows Phone 7对游戏功能和社交功能的重视。 (5)Symbian是为手机而设计的实时多任务32位操作系统,它的功效低,内存占用少,提供了开发使用的函数库、用户界面、通用工具和参考示例。操作系统不是完全开放的,核心代码不开放,但是API文档是公开的。 (6)黑莓系统主要在黑莓手机上使用,其特色是支持电子邮件推送功能,邮件服务器主动将收到的邮件推送到用户的手持设备上,而不需要用户频繁地连接网络查看是否有新邮件。同时,黑莓系统提供手提电话、文字短信、互联网传真、网页浏览及其它无线信息服务功能。黑莓系统主要针对商务应用,具有很高的安全性和可靠性。 (7)PalmOS由拥有较多的第三方软件,是32位的嵌入式操作系统,主要在移动终端上使用,操作系统本身所占的内存极小,不具备录音和MP3播放功能。 (8)Linux手机操作系统具有开放源代码的特性,但是也包含入门难度高,集成开发环境差,Linux的产品与个人计算机的连接性较差,具有较强的开发实力的公司很少等不足。 2.简述Android平台的特征

android系统开发工作介绍

android系统开发工作介绍 一、android的开发工作 Android的开发分为三个类型:移植开发移动设备系统;android系统级开发和应用程序开发。 1、移植开发移动设备系统 2、Android系统级开发,指的是扩展android的框架或者是修改bug,这方面比较少,除非有些开发移动设备的厂商,比如做gps,可以往里面加入一些自己的特定系统东西,这可能导致一些不兼容。当然也可能是简单的修复bug,详细的内容后面还有说。 3、开发应用程序,这应该是比较主流的开发,也就是给android系统写应用程序。当然我们这里主要是研究android的framework如何给这些应用程序提供服务的。 总结一下,我们可以把android分为四个层次,从底层往上依次为:linux内核、C/C++库、java 框架和java应用程序。移植开发移动设备涉及到linux内核(包括其驱动);android系统级开发涉及到C/C++库的开发及给上层java框架;android应用程序开发就是调用java的框架写应用程序。 简单的从上到下,android应用程序需要有java框架支持,比如它要发送短信,就需要java 框架,java框架其实就是将C/C++库包装成为了一个JNI,而实现具体的功能是C/C++库,最后驱动硬件完成功能,这也就是linux内核部分。 所谓framework,也就是系统级开发,这将是本文的重点,虽然android的framework 开发比较少,但是对其了解后更有利于整体开发的进行,当然很多设备厂商还是非常需这要些的。 二、android系统架构

Linux内核及驱动、C/C++框架、java框架、java应用程序。 1)、Linux内核及驱动 其中linux内核及驱动是内核层的(本人对linux内核也有过痴迷的时候,就像现在android 痴迷一样),系统总是需要操作系统的支持的,比如内存管理、进程管网理、络协议栈等。 2)、android的C/C++框架 系统C库:用的是libc,没什么好说的,C程序员都知道。多媒体库SurFace Manager:显示子系统的管理器LibWebCore:web浏览器引擎,支持android浏览器SGL:skia图形库,底层的2D图形引擎 3D库:OpenGL FreeType:字体显示Android的运行环境,这个也应该属于这个框架里面的,android的虚拟机叫做Dalvik,运行环境就是由这个虚拟机和基础的java类库组成。 3)、android应用框架 提供一系列的服务和系统,包括视图、内容提供器、资源管理器、通知管理器活、动管理器。 视图非常丰富:list、grid、text box、button等。内容提供器是使得应用程序可以访问另一个程序的数据。资源管理器是提供访问非代码的资源访问,如布局文件。通知管理器,使得程序可以在状态栏中显示自定义的提示信息。活动管理器,用来管理程序生命周期。 4)、android应用程序Android所有的应用程序都是用java写的,当然现在好像也支持一些脚本语言,如 ruby,但是不支持C开发,所谓支持C开发是指jni的形式。 。。。。。。。。。

系统安全防范之Windows日志与入侵检测

系统安全防范之Windows日志与入侵检测 一、日志文件的特殊性 要了解日志文件,首先就要从它的特殊性讲起,说它特殊是因为这个文件由系统管理,并加以保护,一般情况下普通用户不能随意更改。我们不能用针对普通TXT文件的编辑方法来编辑它。例如WPS系列、Word系列、写字板、Edit等等,都奈何它不得。我们甚至不能对它进行“重命名”或“删除”、“移动”操作,否则系统就会很不客气告诉你:访问被拒绝。当然,在纯DOS的状态下,可以对它进行一些常规操作(例如Win98状态下),但是你很快就会发现,你的修改根本就无济于事,当重新启动Windows 98时,系统将会自动检查这个特殊的文本文件,若不存在就会自动产生一个;若存在的话,将向该文本追加日志记录。 二、黑客为什么会对日志文件感兴趣 黑客们在获得服务器的系统管理员权限之后就可以随意破坏系统上的文件了,包括日志文件。但是这一切都将被系统日志所记录下来,所以黑客们想要隐藏自己的入侵踪迹,就必须对日志进行修改。最简单的方法就是删除系统日志文件,但这样做一般都是初级黑客所为,真正的高级黑客们总是用修改日志的方法来防止系统管理员追踪到自己,网络上有很多专门进行此类功能的程序,例如Zap、Wipe等。 三、Windows系列日志系统简介 1.Windows 98的日志文件 因目前绝大多数的用户还是使用的操作系统是Windows 98,所以本节先从Windows 98的日志文件讲起。Windows 98下的普通用户无需使用系统日志,除非有特殊用途,例如,利用Windows 98建立个人Web服务器时,就会需要启用系统日志来作为服务器安全方面的参考,当已利用Windows 98建立个人Web服务器的用户,可以进行下列操作来启用日志功能。(1)在“控制面板”中双击“个人Web服务器”图标;(必须已经在配置好相关的网络协议,并添加“个人Web服务器”的情况下)。 (2)在“管理”选项卡中单击“管理”按钮; (3)在“Internet服务管理员”页中单击“WWW管理”; (4)在“WWW管理”页中单击“日志”选项卡; (5)选中“启用日志”复选框,并根据需要进行更改。将日志文件命名为“Inetserver_event.log”。如果“日志”选项卡中没有指定日志文件的目录,则文件将被保存在Windows文件夹中。 普通用户可以在Windows 98的系统文件夹中找到日志文件schedlog.txt。我们可以通过以下几种方法找到它。在“开始”/“查找”中查找到它,或是启动“任务计划程序”,在“高级”菜单中单击“查看日志”来查看到它。Windows 98的普通用户的日志文件很简单,只是记录了一些预先设定的任务运行过程,相对于作为服务器的NT操作系统,真正的黑客们很少对Windows 98发生兴趣。所以Windows 98下的日志不为人们所重视。 2.Windows NT下的日志系统 Windows NT是目前受到攻击较多的操作系统,在Windows NT中,日志文件几乎对系统中的每一项事务都要做一定程度上的审计。Windows NT的日志文件一般分为三类: 系统日志:跟踪各种各样的系统事件,记录由Windows NT 的系统组件产生的事件。例如,在启动过程加载驱动程序错误或其它系统组件的失败记录在系统日志中。 应用程序日志:记录由应用程序或系统程序产生的事件,比如应用程序产生的装载dll(动态链接库)失败的信息将出现在日志中。 安全日志:记录登录上网、下网、改变访问权限以及系统启动和关闭等事件以及与创建、打开或删除文件等资源使用相关联的事件。利用系统的“事件管理器”可以指定在安全日志中记录需要记录的事件,安全日志的默认状态是关闭的。

安卓手机的系统安全性

安卓手机的系统安全性 1、安卓手机系统的安全性介绍 此前,有位国际安全软件服务的领导者针对现在的四种手机操作系统做出了安全性、设备防火墙、虚拟化等做出了测试,结果显示黑莓OS 的安全性最好,而安卓系统的安全性则排到第四,到底安卓系统的安全性怎么样呢。 1、首先我们要明白,安卓它是基于linux 的一个系统,安卓系统上所有的用户都有一个单独的ID,我们可以把每个应用当做安卓手机系统上的一个用户,所以每个应用都是一个ID,这是一项非常强大的功能。因为所有的应用都有不同的ID,所以每个应用都可以使用到和自己ID相关的文件。这就意味着安卓手机应用只可以使用它们自己的文件或者属于它们的文件。 2、因为安卓的应用时基于JA V A 的,所以可以考虑在虚拟环境中运行的每个应用都会有相应的有一个特定的虚拟环境。这也相应的加强了安卓系统的安全性。 3、不仅虚拟环境而且进程也加强了安全性。因为每一个进程也有一个不同的进程ID号。一个安卓应用是不可以访问系统文件或数据的,除非用户允许。 2、安卓系统防御,如何保护沦陷的安卓系统 最近一段时间,关于安卓系统手机的安全性问题引起了业内人士与手机用户的广泛关注。而其中的恶意扣费软件与用户个人信息的泄漏成为了大家集中讨论的问题。近来随着智能手机成本的不断下降,出现了越来越多的安卓千元智能机。这些千元智能机不仅在北上广等大型城市热销,更多的流向了中西部的二三线甚至四线城市。恶意扣费软件随着安卓用户群的不断扩大,正在侵蚀着越来越多人的手机安全。其中最大的问题是安卓与其他手机操作系统的不同,由于源代码的开放,病毒厂商也可以拥有系统权限,安卓手机的系统安全很难靠系统自身与用户的使用来保证。 很多用户在使用安卓系统时都没有注意到这个问题:当你已经关闭手机显示器时,或者当你打电话时,甚至在你听音乐玩游戏时。那些潜伏在手机里面各种看不见的恶意程序,正在一点点的吞噬着你的手机话费与网络流量使用费。而来自国家互联网应急中心的官方报告显示,2011年的手机恶意程度数量已高达6249种,是2010年的3.75倍,是2009年的15倍。面对这多如牛毛的恶意程序,我们需要一款能够全方位保护自己安卓系统的防护软件,我们需要这款防护软件能够全天候随时击退各式各样恶意程序的攻击。 3、Android系统安全性10大突出问题大揭底 据国外媒体报道,Android目前已经在全球移动操作系统市场上获得了统治级的地位,预测数据称Android目前在智能手机中的安装率高达87%,同时还有继续增长的态势。许多分析师都认为,Android未来能够像Windows独占桌面PC市场那样成为移动操作系统领域的寡头。

Android系统原理及开发要点详解.

内容简介 本书全面介绍开放的移动电话平台Android系统,包括Android系统中的Linux 驱动、本地框架、Java框架和Java应用4个层次。本书内容以知识性内容为纲,重点关注开发要点,各个部分内容注重相互照应,按照清晰的思路向读者介绍整个Android系统的原理和开发方法。 本书按照Android系统的框架和各个子系统的主线,重点介绍开发Android应用程序和构建硬件抽象层。其内容涵盖了Android应用程序开发和Android系统移植构建手机系统两大方面。 本书既适合从事Android各个层次开发的工程师阅读,也适合通用嵌入式Linux 系统的学习者使用。 本书购买地址:当当网卓越网中国互动出版网 作者简介 梁泉是移动系统开发资深工程师,在Android领域具有完备的知识和前沿的技术,长期从事一线开发工作。 韩超是中国大陆地区较早参与Android系统开发的人员之一,也是中国大陆的Androidin(机锋网开发社区的核心成员和重要组织者之一;也曾经引领大陆各种相关技术人员进入Android领域,并组织参与国内外的相关枝术交流。 前言 Android 是Google历经数年和投资数亿美元开发出来的智能手机系统,Google 也发起了围绕Android的组织——开放手机联盟,其英文全称为“Open Handset Alliance”。

随着各大移动终端生产商大力开发和生产基于Android的移动智能设 备,Android迅速得到业界和社会的认可,并成为整个产业的热点,基于Android平台的各类人才逐渐成为各大企业竞相争夺的焦点。 Android系统是一个开放的系统,任何公司、个人开发者、爱好者都可以参与其中。对于技术工作者,Android不仅是一个智能手机的系统,也可以作为学习嵌入式Linux系统的较完整的软件平台。 Android是一个较新的系统和技术,因此介绍Android的资料和书籍还比较少,尤其简体中文的书籍,相对更少。本书《Android系统原理及开发要点详解》是一本综合介绍Android系统的书,集合了Androidin社区多位专家作者的经验,精心编写而成。 Android 作为一个庞大的系统,包括了Linux操作系统、各种本地程序、虚拟机和运行环境、Java框架和Java应用程序多方面的内容。这对于初学者是一个非常大的挑战,因此对于学习、研究进而开发Android系统来说,掌握系统的脉络和使用恰当的学习方法是非常重要的,这也是本书的组织主旨。 本书特点为了适应Android系统的情况,本书在内容的编排和组织上具有以下一些重要特点。 保持完整性和层次性本书紧紧把握Android系统的4个层次,分章节介绍,并且有重点地介绍了Android整个系统的代码结构、编译系统、相关工具、各部分组织等全局性内容。这将让读者即使只花费较短的时间,也可以获得对Android 系统大致的感性理解。 提供清晰的框架Android是一个有数百兆大小的较大系统,各部分之间是有机联系的,这就要求Android的学习和开发者需要具有一些软件架构方面的知识。本书为Android整体和重点模块绘制了大量的框图,这样非常有利于帮助读者直观地理解系统。本书在讲述每一个部分时,均列出相关代码的路径,帮助读者对应着进行快速、高效地学习。

android程序设计

一、填空题 1、下列哪个不是Activity的生命周期方法之一() A. onCreate B. startActivity C. onStart D. onResume 2、下列用于进行文本输入的组件是() A、TextView B、Button C、EditText D、Label 3、下面哪个不是Android的界面布局方式() A、BorderLayout B、LinearLayout C、TableLayout D、RelativeLayout 4、下列不是手机操作系统的是( ) A. Android B. Window Mobile C. Apple IPhone IOS D.windows vista 5、定义LinearLayout垂直方向布局时设置的属性是() A.android:layout_height B.android:gravity C.android:layout D. android:orientation vertical 6、Android 项目工程下面的assets 目录的作用是什么( ) A、放置应用到的图片资源。Res/drawable B、主要放置一些文件资源,这些文件会被原封不动打包到apk 里面 C、放置字符串,颜色,数组等常量数据res/values D、放置一些与UI相应的布局文件,都是xml 文件res/layout 11、在XML布局 7、跳转到另一个Activity的方法是( ) A.runActivity() B.goActivity() C.startActivity() D.startActivityForIn() 8、用于进行文字显示的组件是( ) A.TextView B.Button C.EditText https://www.360docs.net/doc/708893262.html,bel 9、下面退出Activity错误的方法是() A.finish() B.抛异常强制退出

android手机安全性报告

Android系统框架安全性评估及应对策略 Android操作系统以开放性为主,无论是应用程序数字签名方式、权限控制、发布渠道、应用程序审核等都为开放性设计,这也在一定程度上带来了更多的风险,主要风险存在于“越狱”破解之后。 总的来说,Android系统手机面临病毒、木马等恶意程序攻击的风险较高,更接近于目前PC环境。通过其安全机制可知,对于短信软件、W AP浏览器等均可以进行替换或者通过manifest机制为第三方应用程序授予资源访问权限,因此需要采用更多的技术和管理措施防范安全风险。 一、Android操作系统的框架: Android框架主要分为四层:应用层、应用程序框架层、系统运行库层、Linux核心层。在这四个层次上可以进行安全性分析。 二、android系统安全机制分析 1 应用层:代码安全和接入权限 1)代码安全: 目前Android应用程序开发语言主要为Java,也可以通过Google发布的Android NDK 工具集移植或者开发C/C++代码。与iPhone应用程序的主要语言Object-C不同,Java属于解释型语言,并不直接编译成二进制文件,这造成基于Java语言开发的应用程序较容易被反编译。 应对方法: 在应用程序中增加代码混淆等防止反编译措施;同时,对于核心代码,建议开发C/C++程序。防止纯JA V A程序容易被第三方反编译风险。同时可以用混淆器,默认混淆器为proguard。 2)接入权限: 权限是Android 平台安全机制核心,旨在允许或限制应用程序访问受限的API 和资源。默认情况下,Android应用程序没有被授予权限,权限在安装期间通过manifest 文件由应用程序请求。Android系统中权限分为普通级别(normal)、危险级别(dangerous)、签名级别(signature)和系统/签名级别(signature or system)。系统中所有预定义的权限根据作用的不同,分别属于不同的级别。也对应用的操作增加限制,防止恶意应用进行非法操作给用户造成敏感数据泄漏等。框架层可以自定义权限。 应对方法:权限主要用来权限定义位置: frameworks/base/core/res/ AndroidManifest.xml权限可用于整个应用、Activity、Service等 这个是应用权限。 2 应用框架层:数字认证 所有Android应用程序都必须进行数字签名。除了通过共用User ID进行数据共享的方式,使用相同数字签名签署的两个应用程序可以相互授予权限来访问基于签名的API。所有

应用系统安全日志标准V1.0

四川长虹电器股份有限公司 虹微公司管理文件 应用系统安全日志标准 ××××–××–××发布××××–××–××实施 四川长虹虹微公司发布

目录 1概况 (3) 1.1目的 (3) 1.2适用范围 (3) 2正文 (3) 2.1总体原则 (3) 2.2通用要求 (4) 2.2.1登录日志 (4) 2.2.2用户管理日志 (4) 2.2.3角色/权限管理日志 (5) 2.2.4系统配置操作 (6) 2.3应用数据操作日志 (7) 2.3.1业务敏感信息操作日志 (7) 3检查计划 (8) 4解释 (9) 5附录 (9)

1概况 1.1目的 为接入到日志集中管理平台内的应用系统的安全日志记录要求提供参考,以便和第三方日志集中管理平台进行对接,满足日志集中管理项目需求 1.2适用范围 公司所有业务系统 2正文 2.1总体原则 1)所有应用系统应记录根据本规范记录通用类日志,具体见2.2所述; 2)所有应用系统应记录系统中的各类敏感信息记录操作日志,具体见2.3所述; 3)研发人员需要根据本规范要求(本规范中的字段命名以及表名供参考),对安全日志进行统一格式设计及输出; 4)本文档标注为*的字段表示如无法获取此字段,则不要求记录。 5)关于日志存储的方案,优先采用文本文件的形式存储在本地磁盘,其次可以选择存储在数据库; 6)日志的保存策略,默认为3+1天,滚动式的存储; 7)在采用文本文存储日志在本地磁盘时,需统一放至: /app/applogs/${instance}/auditlog目录下,日志文件名的格式如:audit_日期_数字编号.log,例如:audit_20150722_1.log; 8)文本文件存储的日志格式如下: 日志类型\u0000版本号\u0000字段1值\u0000字段2值...字段n值\u0000\r 示例:(以一条登录日志为例) 1\u00001\u00002007-08-28 00:52:10\u0000157556\u0000CAS\u0000BSP\u000010.0.22.33\u000010.0.13.38\u0000主机名(自定义)\u000000:15:C5:79:7E:F7\u0000013\u0000Success\u0000\u0000\r 具体说明: a.各字段由不可见字符\u0000进行分隔; b.日志记录以\u0000\r结束; c.如果某个字段的值为空,或者没有值,分隔符\u0000不可省略,照常输出; d.不同类型的日志都有各自的日志类型和版本号,具体见各日志章节的说明;

Android程序设计练习卷答案

1.在android程序中,Log.d()用于输出什么级别的日志信息?(A) A、调试 B、信息 C、警告 D、错误 2.以下情况不会创建Context对象的是(C) A.创建Application 对象时 B.创建Service对象时 C.创建ContentProvider对象时 D.创建Activity对象时 3.下列不属于Android中广播中的类别的是(D) A.Normal Broadcas B.Sticky Broadcast C.Local Broadcast D.Order broadcast 4.以下哪个不是Intent的Activity启动方式(A) A.FLAG_ACTIVITY_BROUGHT_TO_FIRST B.FLAG_ACTIVITY_CLEAR_TOP C.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET D.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 5.安卓AndroidManifest.xml文件的子节点不包括(C) A.application B.services C.permission D.provider 6.下面那个不是Fragment的生命周期方法(D) A. onStart B. onAttach C. onDestoryView D. onRestart 7.下面那种不是安卓原生支持的Menu(A) A.Selected Menu B.Option Menu C.Submenu D.Context Menu 8.下面不属于android的动画分类的有(D) A、Tween B、Frame C、Property D、Animation 9.下列哪个不是安卓service自带的方法(A) A.OnResume B.onCreate C.onStartCommand D.onRebind 10.下列属于SAX解析xml文件的优点的是(B) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失 11.下列关于Soundpool和MediaPlayer的说法,错误的是(A) A.MediaPlayer支持多个音乐同时播放 B.MediaPlayer资源占用率高 C.MediaPlayer延迟时间较长 D.new MediaPlayer()后要调用prepare()方法才能播放 12.关于res/raw目录说法正确的是(A) A、这里的文件是原封不动的存储到设备上不会转换为二进制的格式

Android系统的信息安全共5页文档

Android系统的信息安全 Information Security of Android Lei Jia-wei Li Ting Yu Ben-gong Yang Qian-kun (The School of Management of Hefei University of Technology AnhuiHefeI 230009) 【 Abstract 】 Android's security has been a controversial topic, this article is a brief analysis on issues of information security to the Android and presents some possible solutions based on a surevy on Android in three ways: the system itself,?software application mall and?users. 【 Keywords 】 android;information security;code of conduct 1 引言 在信息交换中,“安全”是相对的,而“不安全”是绝对的,Android 平台优势使它成为操作系统领域巨头的同时,其开放性也为黑客们提供了可乘之机。Android操作系统本身有有一定的安全机制,但缺乏功能强大的病毒防护且对应用软件缺乏安全审核及监管,也存在大量漏洞,这些漏洞是黑客攻击的主要方向,目前已经诞生多种专门针对Android的病毒,直接威胁用户的信息安全。Android系统采用的应用商城进行程序发布的模式,使得人们只能通过应用商城来下载应用,但国内尚未健全应用程序、应用商城审查环境,且有些应用商城本身不具有合法特性,缺乏规范监管,恶意兜售用户信息,给用户带来了巨大的安全威胁。 2 对Android信息安全的调查

Android系统开发入门

Android系统开发入门 注:相信大家都知道Android的APP的是用Java写的,运行在Dalvik 虚拟机上,还有,Android的系统是基于Linux Kernel 2.6的。那么,要想深入了解Android系统的各种细节,当然少不了Linux Kernel 的知识了。阅读本文需要具备一定的C和JAVA语言基础,并且对linux 系统有一定了解。最好对C++也有一定的了解。 本文的内容是基于Android2.2版本平台,以一个设备(将系统内存模拟成一个带4字节寄存器的设备)为例,从底层驱动,到中间件,到上层应用程序全过程的代码实现。 所编写的代码例子,都可以在Android模拟器进行运行。但由于https://www.360docs.net/doc/708893262.html,在2011年9月份被人黑了无法访问,导致本人没有下载goldfish_defconfig,无法编译能在模拟器运行的kernel,故采用JZ4760BLYNX开发板运行代码例子。 搭建好JZ android编译环境,开始进行android系统开发之旅。 Android硬件抽象层(HAL)概要介绍和学习计划

Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux 内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,是可以的,然而从商业的角度来看,把对硬件的支持逻辑都放在内核空间,可能会损害厂家的利益。我们知道,Linux内核源代码版权遵循GNU License,而Android源代码版权遵循Apache License,前者在发布产品时,必须公布源代码,而后者无须发布源代码。如果把对硬件支持的所有代码都放在Linux驱动层,那就意味着发布时要公开驱动程序的源代码,而公开源代码就意味着把硬件的相关参数和实现都公开了,在手机和平板市场竞争激烈的今天,这对厂家来说,损害是非常大的。因此,Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什么值到硬件中的逻辑,都放在硬件抽象层中去了,这样就可以把商业秘密隐藏起来了。也正是由于这个分层的原因,Android被踢出了Linux内核主线代码树中。大家想想,Android放在内核空间的驱动程序对硬件的支持是不完整的,把Linux内核移植到别的机器上去时,由于缺乏硬件抽象层的支持,硬件就完全不能用了,这也是为什么说Android是开放系统而不是开源系统的原因。 撇开这些争论,学习Android硬件抽象层,对理解整个Android整个系统,都是极其有用的,因为它从下到上涉及到了Android系统的硬件驱动层、硬件抽象层、运行时库和应用程序框架层等等,下面这个图阐述了硬件抽象层在Android系统中的位置,以及它和其它层的关系: 在学习Android硬件抽象层的过程中,我们将会学习如何在内核空间编写硬件驱动程序、如何在硬件抽象层中添加接口支持访问硬件、如何在系统启动时提供硬件访问服务以及如何编写JNI使得可以通过Java接口来访问硬件,而作为中间的一个小插曲,我们还将学习一下如何在Android系统中添加一个C可执行程序来访问硬件驱动程序。由于这是一个系统的学习过程,本人将分成六个章节来描述每一个学习过程,包括:

Android系统安全以及权限知识

Android系统安全以及权限知识现在,随着小米手机的发货量日益增加,越来越多的朋友也转投android 阵营,而对于这一大部分的朋友,我需要提醒大家的是,任何省电,流畅的东西,都是后话,我们需要做到的是优先保证手机安全的问题;这几天发现小米论坛没有这样的帖子,想必大家没有引起重视,所以在这里给大家整理下相关的知识,希望大家别做小白鼠: 众所周知,第三方应用商店进一步丰富了Android软件的数量,但是因为它们的准入门槛较低,监管相对宽松,让不少盗版/克隆应用混迹在正规软件应用里。 令人担心的是,在这些发布盗版应用的人中,有部分居心不良者存在,通过这些应用传播针对Android系统的木马病毒. 来自移动安全厂商Lookout Mobile Security提供的信息显示,这个利用第三方应用市场来传播的木马病毒被命名为:Geinime,其专门瞄准我国的Android 应用软件市场,已有部分Android手机用户被这种木马所感染。 Geinime木马主要依附在被重新打包过的应用软件里,以游戏居多,这些软件基本都是盗版或者克隆的产物。被感染的应用程序会在运行时向系统发出比正常版本高得多的权限请求。该木马的最终目的现在还没有完全搞清,也许是恶意广告行为,也可能是企图建立一个真正的Android僵尸网络。 当木马被激活后,它会在后台偷偷收集大量信息,包括:地理位置坐标、设备识别码(IMEI)和用户识别码(IMSI),每隔5分钟就会尝试连接木马内嵌的几个远程服务器地址,连接成功后就会将收集到的信息发送出去。目前针对该木马的代码分析正在进行中,已知该木马具有下列功能: ·发送位置坐标 ·发送设备识别码(IMEI和IMSI) ·下载并提示用户安装应用程序 ·提示用户卸载应用程序 收集已安装的应用列表并发送到远程服务器 APK权限详细对照表 您的位置(基于网络的)粗略位置隐私权限 您的位置精准的(GPS)位置隐私权限 您的位置使用模拟地点来源进行测试 您的帐户作为帐户身份验证程序 网络通信创建蓝牙连接

相关文档
最新文档