车联网网络安全之 APP 安全
背景:我们的生活、工作、学习都正在被数字化、移动化。智能手机的普及推动了手机 APP 的快速发展,小到沟通聊天、车票预定,大到银行理财、支付交易,各种 APP 层出不穷。人 们对 APP 的功能性、多样性的积极态度远远超出了对信息安全的担忧,APP 的安全方面并没 有得到很好的保证,通过 APP 导致的信息安全事件,经常被爆出。正在兴起的车联网也未能 幸免,据统计车联网信息安全约 50%安全漏洞、风险,来自于车载 APP。针对 APP 的设计与 研发,需要对信息安全高度重视,做到杜渐防萌,确保用户敏感数据的安全。
车载 APP 攻击手段
∙ 静态分析
静态分析指的是对 APP 安装文件的安全漏洞检测。首先获得应用程序安装包文件,即 APK 文件,然后通过逆向工具(如 APKIDE、Dex2Jar 等)进行反编译,将 APK 文件逆向为 Java 源文件或 JAR 文件,对其进行源代码级的解析。
常见的 Java 层逆向工具:Android Killer 和 APKIDE
Android Killer 是一款可以对 APK 文件进行反编译的可视化工具,它能够对反编译后的 Smali 文件进行修改,并将修改后的文件重新进行打包形成 APK 文件。一旦 APK 文件被逆向, 那么很容易对其进行篡改和注入攻击。
APKIDE 也是可视化的、用于修改安卓 APK 文件的工具。该工具集成了 ApkTool,Dex2jar, JD-GUI 等 APK 修改工具,集 APK 反编译、APK 打包、APK 签名为一体,是非常便利的 APK
修改工具。
常见的 NATIVE 层逆向工具:IDA pro
IDA pro 以其强大的功能和众多的插件成为了很多逆向分析师的首选。IDA pro 是商业产 品。使用 IDA 反汇编二进制文件的目的,是利用工具得到反汇编之后的伪代码,另外,再结 合 file 、readelf 等指令使用,可以说如虎傅翼,准确还原出源代码并非难事。
以上是 Java 层和 Native 层逆向的常用方法。静态分析的优点是无需运行代码,无需像动 态分析那样改写 Android 系统源码,或要求用户对 Android 系统进行重定制和安装定制版的 R
OM,因此静态分析具有速度快、轻量级的优点。但是静态分析的缺点是因为无法真实模拟 程序的动态运行,所以存在误报率高的问题。
∙ 动态分析
由于静态分析难以满足安全人员的分析要求,天生对软件加固、混淆免疫的动态分析技 术应运而生。相对于轻量级的静态分析,动态分析则是重量级的程序运行时的分析。在一般 情形,需对 Android 系统进行重新定制与改写,包括改写安全机制;在原生 Android 系统中 加入监视器,实时监视数据的流向;在危险函数调用时,检测所需权限等。
常见的动态分析的工具:TaintDroid
TaintDroid 是变量级和方法级的污点跟踪技术工具,可对敏感数据进行污点标记,污点 数据在通过程序变量、方法、文件和进程间通信等途径扩散时,对其进行跟踪审查。如果污 点数据在一个泄露点(如网络接口)离开系统, TaintDroid 就在日志中记录数据标记、传输数 据的应用程序和数据目的地,实现对多种敏感数据泄露源点的追踪。
动态分析的优点是,检测精度较高,缺点是需要修改 Android 系统源码,形成用户全新裁 剪
的操作系统,同时需要通过更新 ROM 安装这种定制系统。另外还有代码覆盖率低,执行
效率低下等,但是瑕原生安卓app开发不掩瑜,个人认为熟悉各种动态分析技术的核心原理也应当是安全从业
人员的必备要求。
∙ 其他攻击手段
恶意软件攻击:最著名的三大 AndroidRootExploit 恶意软件是 Zimperlich、Exploid 和 RATC(RageAgainstTheCage)。恶意软件的核心原理是砸壳或解密,然后发起“rootexploit”攻 击,通过非法手段获取根权限。
提权攻击:指没有任何权限的恶意程序能够通过第三方合法 APP 获得所需的权限,或者说 一个拥有较低(较少)权限的应用程序访问拥有较高(较多)权限的组件而不受任何限制。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论