您好,欢迎访问三七文档
移动终端安全赵双2020年4月19日星期日ABOUTME赵双,ID:Dflower研究方向:漏洞挖掘、恶意代码分析、WEB渗透测试、Android安全……国内安全技术小组insight-labs成员()《0day安全:软件漏洞分析技术》(第2版)作者之一OWASPChina2010、XCon2011SpeakerANDROID架构ANDROID架构LinuxKernel(Linux内核层):Android的Linux核心为标准的Linux2.6内核,并加入移动设备相关的驱动程序显示驱动、Flash内存驱动、照相机驱动、音频驱动、WiFi驱动、键盘驱动、蓝牙驱动、BinderIPC驱动、PowerManagement(能源管理)ANDROID架构Libaries(系统运行库层)运行库:以系统中间件的形式提供Android运行环境:Dalvik虚拟机Dalvik虚拟机VSJAVA虚拟机:它执行的不是JAVA标准的字节码(bytecode)而是Dalvik可执行格式(.dex)中执行文件。JavaVM是以基于栈的虚拟机,而Dalvik是基于寄存器的虚拟机。ANDROID架构ApplicationFramework(应用框架层):为应用程序层的开发者提供API。ANDROID架构Application(应用层):系统应用:主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browsers)等其他应用:开发者使用应用程序框架层的API实现的程序。ANDROID组件模型Activity(活动)Activity就是一个界面,一个应用程序由一个或者多个Activity组成Service(服务)运行在后台的没有可视化的用户界面的功能模块BroadcastReceiver(广播接收器)专注于接收广播通知信息,并做出对应处理的组件ContentProvider(内容提供器)应用程序间数据共享的一种标准接口,以类似于URI的方法将一些特定的应用程序数据供给其它应用程序使用ANDROID应用程序权限Android默认应用是没有任何权限去操作其他应用或系统相关特性的,应用在进行某些操作时都需要显式地去申请相应的权限。每个应用程序的APK包里面都包含有一个AndroidMainifest.xml文件,该文件除了罗列应用程序运行时库、运行依赖关系等之外,还会详细地罗列出该应用程序所需的系统访问权限。在应用安装的时候,packageinstaller会检测该应用请求的权限,根据该应用的签名或者提示用户来分配相应的权限。权限级别normal:低风险权限,在安装的时候,系统会自动授予权限给app。dangerous:高风险权限,系统不会自动授予权限给app,在用到的时候,会给用户提示。signature:签名权限,将权限授给具有相同数字签名的应用程序。signatureOrSystem:签名或系统权限,将权限授给具有相同数字签名的应用程序或系统类app,一般不推荐使用。1.ANDROID系统漏洞拒绝服务权限绕过代码执行信息获取权限提升……2.ANDROID软件漏洞数据泄漏组件暴露代码执行客户端注入服务端注入……3.ANDROID恶意程序Android恶意程序的危害:发送扣费短信窃取用户隐私赚取广告流量下载其他恶意程序发送垃圾短信……4.APK重打包重打包是指将正常的APK程序文件解压缩/反编译后进行修改,然后重新打包签名国内第三方市场充斥着大量的重打包程序攻击者常常利用重打包技术将恶意代码注入到正常APK文件中Example:Geinimi正常样本恶意样本5.ANDROID僵尸网络已经出现的僵尸网络:SMS僵尸网络:ZeuSHTTP僵尸网络:Geinimi、AnserverBotIRC僵尸网络:AndroidOS.Foncy.A其他僵尸网络P2P僵尸网络C2DM/GCM云推送僵尸网络6.ANDROID恶意广告恶意广告成为危害用户、开发者乃至整个Android产业链的毒瘤94.71%的安卓手机用户被装有广告软件,平均每部手机上存在11.68款含广告的软件,63%的用户里存在至少一款恶意广告。恶意广告的危害影响手机操作体验消耗流量窃取隐私7.ANDROID用户隐私泄漏复旦大学公布一项调研成果显示,目前市场上最热门的330个安卓应用程序中,有58%存在泄露用户隐私的情况。泄漏的数据包括IMEI手机号码地理位置SIM卡序列号通讯录短信…ANDROID:用户隐私泄漏中国信息安全测评中心,《2012年Android手机软件个人信息安全测评报告》显示,超过50%的软件具有泄漏用户隐私的威胁目录短信伪造漏洞SMSPhishing,Smishing活动劫持漏洞ActivityHijacking通知滥用漏洞NotificationAbuse输入法监听InputHack第三方软件漏洞短信诈骗发件人:+8613572331876建行提示:2012年2月21号,您的建行卡支出¥1200.00,如有疑问请与我行客服核实:400-6886058[中国建行]发件人:95533建行提示:2012年2月21号,您的建行卡支出¥1200.00,如有疑问请与我行客服核实:400-6886058[中国建行]短信诈骗识别和拦截欺诈短信的最广泛方法使用的方法是检查发件人号码安全软件(如360手机卫士)的垃圾短信拦截功能主要依靠发件人黑名单和短信内容关键字进行过滤短信诈骗如果发件人的号码是受信任的号码呢?常规的短信伪造方法向短信数据库(content://sms/inbox)插入一条记录ContentValuesvalues=newContentValues();values.put(address,”95533);values.put(type,1);values.put(read,0);values.put(“body”,“这是一条伪造短信);values.put(date,newDate().getTime());values.put(person,null);Uriuri=this.getApplicationContext().getContentResolver().insert(Uri.parse(content://sms/inbox),values);常规的短信伪造方法但是这种方法存在一个问题…需要声明android.permission.WRITE_SMS安装时系统会提示用户程序具有编辑短信的权限可能会被安全防护软件判定为危险程序ANDROIDSMISHING漏洞发现时间:2012年11月,由XuxianJiang(NCSU)发现影响范围:Android4.2版本以下的Android系统漏洞描述:允许不具有WRITE_SMS的程序进行短信伪造漏洞分析POC代码:漏洞分析com.android.mms的AndroidManifest.xmlSmsReceiverService被导出的时候没有使用permission声明(signature或signatureOrSystem或Dangerous),在代码中也没有显式调用checkPermission,这违反了android开发规范,使得组件暴露导致权限绕过(permissionredelegation)PERMISSIONREDELEGATION很多第三方软件也存在大量permissionredelegation漏洞,例如:小米MIUI错误报告程序(bugreport):可以被任意程序调用,并将结果保存至/sdcard/MIUI/debug_log/bugreport--.log文件中,该log文件可以被任意第三方应用软件读取目录短信伪造漏洞SMSPhishing,Smishing活动劫持漏洞ActivityHijacking通知滥用漏洞NotificationAbuse输入法监听InputHack第三方软件漏洞ANDROID活动栈Android运行时,会在很多活动(Activity)中进行切换系统维护着一个Activity的历史栈,用于在用户点击后退时,恢复前一个Activity,栈顶指向当前显示的Activity。ANDROID活动劫持启动一个后台服务(Service),不停枚举当前进程中是否有预设的进程启动如果发现有预设进程,则使用Intent开启钓鱼Activity,并使用FLAG_ACTIVITY_NEW_TASK选项使得这个Activity位于栈顶DEMO目录短信伪造漏洞SMSPhishing,Smishing活动劫持漏洞ActivityHijacking通知滥用漏洞NotificationAbuse输入法监听InputHack第三方软件漏洞ANDROID通知VSIOS通知ANDROID通知1.通知标题(Title)2.大图标3.通知内容(Text)4.其他信息(Info)5.小图标6.通知时间通知滥用Android系统在显示通知消息的时候并不指明该通知是由哪个应用发出的用户通常通过通知消息中的图标和内容来想当然地判定通知消息的发起者恶意程序可以通过模仿正常应用的通知消息来误导用户,从而发起钓鱼等攻击DEMO目录短信伪造漏洞SMSPhishing,Smishing活动劫持漏洞ActivityHijacking通知滥用漏洞NotificationAbuse输入法监听InputHack第三方软件漏洞ANDROID输入法Android系统在启动第三方输入法的时候会弹出如图所示的警告框iOS系统不允许安装使用第三方输入法为什么?ANDROID输入法机制在InputMethodService中,有几个值得注意的方法或类getCurrentInputEditorInfo()可以获得当前编辑框的一组对象属性EditorInfo,有如下的关键属性EditorInfo.hintText:编辑框的默认值,如图所示,其中Password和Emailaddress即为编辑框的默认值EditorInfo.packageName:所属的apk的包名,例如手机qq中的所有编辑框的packageName都是com.tencent.qqgetCurrentInputConnection()这个方法可以获得当前的编辑框的一个InputConnection对象,而这个对象则有多个强大的方法可以调用commitText(CharSequencetext,intnewCursorPosition),用来向编辑框写入值输入法监听可以自己实现一个输入法,在输入每一个字符的时候记录,最后在onFinishInput方法处把输入框的值发送到特定服务器或者利用重打包的方法修改一个现有的输入法(例如搜狗),在commitText和onFinishInput处插入恶意代码,将输入的内容通过自定义的监听类发送到特定服务器DEMO目录短信伪造漏洞SMSPhishing,Smishing活动劫持漏洞ActivityHijacking通知滥用漏洞NotificationAbuse输入法监听InputHack第三方软件漏洞外部数据存储导致数据泄漏小米MIUI备份程序用户数据泄漏漏洞编号WooYun-2012-08187在MIUI中,用户通过备份程序(Backup.apk)将个人数据、应用程序和应用数据保存在本地,以便升级或刷机以后恢复。该应用将备份内容以明文方式保存在SD卡上。内部数据存储导致数据泄漏网易手机邮Android客户端帐户密码明文存储漏洞编号:WooYun-2012-10060在/data/data/com.netease.rpmms/shared_pr
本文标题:移动终端安全
链接地址:https://www.777doc.com/doc-4909203 .html