在App项目中都会碰到三座App安全大山。App客户端安全、数据传输安全、App服务端安全。下面以分析检测的思路进行对App安全威胁的这三座大山进行一些剖析梳理总结。
静态分析工具 : Apktool、dex2jar、jadx-gui、JEB、Androidkiller、GDA。
动态分析工具 : DDMS、gdb、IDA、Drozer。
抓包分析工具 : Fiddler、Wireshark、charles。
挂钩框架 : frida、xposed。
其他工具 : JDK、AndroidSDK、AndroidResEdit、uiautomatorviewer、010 editor、jarsigner。
1.反编译App代码,查看App中是否存在检测root的关键代码。
2.运行App程序,观察确认是否能够正常运行并有对应提示用户信息。
通过上图静态分析App的java实现代码,可以很清晰的看到代码中有实现对root检测,通过检测可以改root的关键App包和检测root后的特有关键路径方式进行判断环境信息。
1.可以利用apktool、de2jar、jadx-gui工具,进行反编译查看分析代码。
2.直接利用可视化工具AndroidKiller、GDA、JEB工具进行反编译分析代码。 下面以apktool反编译方式进行对反编译dex分析。(对于App中so文件,可以直接用IDA工具进行静态反编译分析arm汇编代码) App实际上是一个zip压缩包格式,可以直接将后缀修改成zip后缀,进行解压就可以获取到App的包数据。
通过利用dex2jar命令行将dex文件转换为jar(java代码)文件。命令格式:dex2jar.bat 要转换的dex文件路径
通过jadx-gui工具,进行查看分析jar文件的java代码。
经过这个App反编译dex流程分析:上图的App虽然可以通过反编译工具进行反编译,但是该App采用了360加固保护,dex文件里面的数据都是360加固的数据,真正的dex数据都被隐藏和抽取了。所以该App的反编译这项是相对安全的。
在App中的每个文件都会做一次算法记录,并保存在MANIFEST.MF文件中,我们就可以通过基于MANIFEST.MF文件的安全机制对App包进行完整性校验检测。完整性校验可以在启动App时候触发,如果App被二次打包修改了,那么MANIFEST.MF文件中的校验信息是不一样的。
1.通过利用AndroidKiller工具对App进行反编译,修改,二次打包并签名。
2.通过apktool进行反编译、修改、打包,再通过SignApk工具进行对App重新签名。
下面以androidkiller工具进行App替换图片的完整性检测分析。将App直接拖入androidkiller工具里面,在工具的工程管理界面下res是App所有资源图片所存放的位置。只要右击res文件夹进行打开文件路径,就可以跳转到App反编译后的资源文件夹。
可以通过提取其他App的资源图片进行替换,替换完图片后将App重新编译并签名。
通过分析:如果App没有完整性校验的功能,那么App就可以通过反编译修改,二次打包签名并能正常运行。如果App有完整性校验功能,那么App二次打包后,是不能正常运行的。
安全App的做法是:在每次启动App的时候,进行对自身App完整性校验,并且在验证App逻辑中,不要单纯的只使用MANIFEST.MF文件中的数据为验证条件,最好同时验证是否有不属于App的文件,这个过程可以和服务端进行结合完成。
Android四大组件简介
Activity:呈现可供用户交互的界面,是最常见的组件;Service:长时间执行后台作业,常见于监控类应用;Content Provider:在多个APP间共享数据,比如通讯录;Broadcast Receiver:注册特定事件,并在其发生时被激活。
Android的四大基本组件,都需要注册才能使用。
每个Activity、service、Content Provider都需要在AndroidManifest文件中进行配置。AndroidManifest文件中未进行声明的activity、service以及Content Provider将不为系统所见,因此这些组件就不可用。而broadcast receiver广播接收者的注册分静态注册(在AndroidManifest文件中进行配置)和通过代码动态创建并以调用Context.registerReceiver()的方式注册至系统。需要注意的是在AndroidManifest文件中进行配置的广播接收者会随系统的启动而一直处于活跃状态,只要接收到感兴趣的广播就会触发(即使程序未运行)。
对于android的组件安全性的问题,主要在于关注组件是否被外部App应用给调用。
1.通过分析App中的AndroidManifest.xml文件,判断组件属性是否设置为导出状态。设置导出状态外部的App就可以直接调用。
2.通过利用drozer工具进行分析验证组件是否存在安全性问题。
下面以AndroidManifest.xml文件的android:exported属性进行判断组件安全性。 从上图中可以看到activity组件android:exported设置为true,并且有intent-filter属性,这个activity表示就可以直接被外部App应用调用。
检测分析得出结论:android的组件如果设置为导出状态,那么组件就有被直接调用或被劫持的风险。建议如果组件非必要导出情况下,将组件设置为不导出状态,如果组件必须提供给外部应用进行调用的话,建议对组件进行权限控制。
检测App应用程序(保护服务端应用)调试信息是否关闭,调试信息中是否写入敏感信息。通过运行App程序,查看logcat等调试日志信息方式,分析是否有泄漏重要的URL地址、提示信息、调试信息等敏感关键字以及程序逻辑的关键流程信息。
通过利用DDMS工具进行查看App运行过程中是否有调试日志信息。 通过DDMS中LogCat窗口,进行右击打开过滤窗口,可以选择针对只显示指定进程或Pid的数据,这样就可以进行精准查看分析App中是否有敏感日志信息输出。
在App应用中,默认情况下使用系统自带的软键盘,在App安装后,如果直接使用系统自带键盘,会有被记录、劫持的风险。我们可以通过在App应用输入信息的时候,观察是否会弹出自定义的软键盘。安全的做法通过实现自定义的软键盘并且键盘码会进行变动。
以下对键盘应用进行做定义分析
1、APP输入调用安卓系统键盘一般认为高风险,可能被劫持利用。
2、APP调用应用中自带键盘输入一般认为中风险,可能被其他APP以触摸点绝对定位方式劫持。
3、APP调用应用中自带键盘并随机打乱键盘顺序 (这种设置一般银行APP比较多 有 打乱数字和键盘按键的 还有在这个界面下禁止截图的)
一般认为低风险,就算被劫持,利用可能性也很低。
App本地数据安全性问题需要关注的问题分别为:App所在目录的文件权限、SQLite数据库文件的安全性、敏感数据明文直接存储Sdcard。
对于App所在目录的文件权限问题,通过验证App所在目录的文件权限是否进行设置,如果是非root用户是否可以进行读写执行App目录下的文件。安全的情况下App所在的目录,其他用户必须无法进行读写操作。
对于SQLite数据库文件问题,SQLite是一个轻型的数据库文件,它是很多App都是使用的一种数据存储方式,其中微信就是利用SQLite文件方式进行存储数据。可以通过SQLiteSpy和其他第三方工具,进行打开查看SQLite文件的数据。主要需要关注下db文件是否直接存储敏感信息,是否对db文件有做加密处理。
对于敏感数据是否存储在Sdcard上,可以通过运行App应用,然后进行查看是否有在“sdcard/Android/data/包名/” 目录下,释放一些敏感文件或敏感的数据。安全做法是对于释放在sdcard目录上的数据和文件都应该做加密处理。
App中的通信数据传输主要可以借助第三方抓包工具,采取代理方式进行对HTTP、HTTPS数据包抓取和分析。验证App的通讯方式是否采用HTTPS加密信道,通过抓取App数据包确认是否进行加密以及是否进行证书校验。安全的做法是通过代理抓App数据是抓取不到,或者检测有用户抓取App数据时候进行强制退出。
下面以charles工具设置代理方式进行抓包。电脑主机上设置要代理端口。
手机环境下设置电脑主机的IP地址和charles电脑端设置的相同端口。
这样就可以进行对手机环境下的App应用进行数据抓包分析了(具体包分析过程,具体需求具体分析)。
App服务端安全需要关注的是服务端API安全、业务逻辑安全、中间件安全、服务器应用安全。主要可以通过渗透测试的方式对App的服务器进行安全检测,通过模拟恶意攻击方式进行对服务器攻击。从而提高App服务器的安全性。
本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/clZNmTuJ2agkrmXflIgQBA
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。