android app开发的一些安全及漏洞问题

(最新)移动App应用安全漏洞分析报告 ! 漏洞扫描方式主要分为静态和动态,静态扫描的漏洞类型主要包含SQL注入风险、webview系列、文件模式配置错误、https不校验证书、database配置错误等。动态扫描的漏洞类型主要包含拒绝服务攻击、文件目录遍历漏洞、file跨域访问等。   本报告选取11类android app中同等数量的热门app,其活跃用户量可覆盖83%的移动端网民,根据阿里巴巴移动安全中心对这些app的漏洞检测,得到 阅读详情

最近公司的app通过第三方安全检测公司进行了一次安全检测,当然ios,android都有,对于检测出来的漏洞及安全问题,我把android与ios对比了下简直不忍直视,难怪ios上线各种检测,不过话说回来我觉得android系统本来就存在一些漏洞,今天的主题就是关于漏洞及处理方案:

1.漏洞分类

   通常漏洞分为三类:低危漏洞,中危漏洞,高危漏洞.

  •   低危漏洞就是对app用户数据及敏感信息无影响的漏洞比如:release版本残留的log日志,硬编码url,网络环境检测等等.这类安全性问题能处理则处理,不能处理就完全可以忽略.
  •  中危漏洞:一般来说这类安全性问题归纳为:数据及应用资源未采取加密措施比如:本地重要的资源文件未加密,数据库,sp创建,数据使用弱加密,数据保存在外部存储等等,对于中危漏洞我需要严谨一点,往往这类安全问题可以影响到用户数据或者应用程序的敏感数据了。因此要尽量完全处理.
  •  高危漏洞:高危漏洞顾名思义,就是说此类安全问题威信度极高,这种漏洞往往存在第三方对用户数据,应用程序敏感信息进行获取。导致信息泄露。比如:在manifest.xml里面配置的四大组件,应该程序入口application,数据库操作。因此这类问题必须彻底解决。

当然对于app的一些漏洞我们不是每个都能在应用层处理的或者说通过本地代码能够处理的,比如:第三方sdk配置,api,本地资源文件加密,apk中java代码加壳等等.

2.常见的漏洞及处理方案

1.manifest.xml配置四大组件存在的漏洞:在配置文件里面注册四大组件的时候我们一般都没有设置android:exported这个属性,这个属性有什么作用呐:它表示当前注册的组件是否能够被其他应用程序调用。false表示不能别其他应用程序调用,true反之.特别注意:如果我们注册的组件没有设置隐士意图也就是intent-filter标签,那么这个值就是false,反之就是true。

2.manifest.xml配置application应用程序入口问题。一般来说我们配置application的时候都没有设置android:allowBackup="false"这个属性,首先android:allowBackup表示应用程序是否应许数据备份,设置false表示不能,true表示可以被其他应用程序备份。

3.滥用权限问题:这个也是在manifest.xml里面处理:一般来说我们需要的权限都是直接在manifest.xml里面配置,但是权限也有低危权限,高危权限之分,对于一些高危权限我们需要进行权限等级配置.android:protectionLevel="signature"(不必要的权限切记一定要删除)

4.注册广播:静态注册必须加上android:exported="false",动态注册必须使用registerReceiver(BroadcastReceiver, IntentFilter, broadcastPermission,android.os.Handle),其中第一个参数为:广播接收器,第二个隐士意图,第三个自定义权限,第四个可传null

5.https:信任问题,我们在使用https进行网络请求的时候需要对ca证书进行指定信任,不能信任全部证书,另外也可以对主机域名配置(如果指定信任证书就不需要对主机域名配置了)

6.webview远程代码执行漏洞:升级工程最低sdk17,且js函数与android交互都用最新的方法比如:evaluateJavascript(),shouldOverrideUrlLoading()等 ,如果必须使用addJavascriptInterface接口需要允许被JavaScript调用的函数必须以@JavascriptInterface进行注解

7.发布release版本的时候存在残留的log,或者敏感url,或者硬编码url,这时候需要我们在发布版本时候进行排查。

8.对于用户敏感数据信息无论是保存在外部存储,内部存储,sp, sqlite数据库,都要进行加密保存(当然建议保存在内部存储)因为保存在外部存储数据容易盗取

9.操作本地数据库的时候一定要利用标准的sql语句,不要使用拼接字符串形式构造的SQL语句去查询底层SQLite 数据库,比如:

query中使用拼接字符串形式构造的SQL语句去查询底层SQLite 数据库,使用selectionArgs进行参数化查询。

 selection = "name=?";  String[] selectionArgs = new

String[]{et_name.getText().toString()};  cursor = sqldb.query(      "addressbook",null,      selection,      selectionArgs,      null,null,null,null);

10.so文件加载问题:建议使用System.loadLibrary()函数动态加载SO文件,不要使用System.load()函数。

11,防调试,在发布正式版本后需要判断当前是否处于调试状态,如果处于就退出程序

12.防止activity中间劫持:这个需要根据各自需求进行处理,在这里给大家说下我的处理方案:在个别重要的页面进行判断,判断当前activity是否执行onstop,执行就提示用户。(activity中间劫持就是当用户在当前页面输入敏感信息的时候第三方页面把我们app的页面进行遮盖了,用户输入的信息就被盗取)

13:activity防止截屏:其实这类安全性跟上面防止activity中间劫持类似,都是根据各自需求去处理,一般来说我们都是在对用户敏感数据页面处理,比如登录,支付,注册等:

14:代码混淆:正确的增强代码混淆

最后如果公司对app安全性有一定要求建议找个靠谱的第三方公司进行app加固后再来排查漏洞

APP漏洞之WebView File域同源策略绕过漏洞 i春秋作家:MAX丶基本知识Android架构Kernel内核层 漏洞危害极大,通用性强 驱动由于多而杂,也可能存在不少漏洞Libaries系统运行库层系统中间件形式提供的运行库 包括libc、WebKit、SQLite等等AndroidRunTime Dalvik虚拟机和内核库FrameWork应用框架层 提供一系列的服务和API的接口活动管理器内容提供器视图资源管理器通知管理器Applicat... 阅读详情

相关推荐

Android 如何反动态调试

Android 如何动态调试进行检查 最近项目在进行三方安全报告中一直存在很多动态调试检测的高危漏洞。经过多次研究及测试,也参考了网上不少的示例,集大家精髓所成,测试在Android studio 3.0以上,可以使用的示例代码,希望可以帮助到大家。

漏洞到底要不要修?

Log4j2可能早就被发现了但是为何没有修复

cenlois的博客 4378

Android中的反调试代码

Android中反调试案例Android中反调试案例Android中反调试案例Android中反调试案例

Android防止被动态调试的解决方法

1、判断要是BuildConfig.DEBUG为false,但AndroidManifest却声明为debuggable,可认为是被动态调试调试状态,强制退出 2、定时轮询,判断在BuildConfig.DEBUG为false时,是否有调试器连接,如果有,可认为是被动态调试调试状态,强制退出 3、定时轮询,判断在BuildConfig.DEBUG为false时,是否被其他进程用Ptrace方式跟踪,如果有,可认为是被动态调试调试状态,强制退出 public class DebuggerUtils {

kingwjh的专栏 4434

Android安卓安全加固反调试检测手段(java层+native层)(附代码实现).pdf

本文档实现了java层和native层的反调试手段 对于学习Android安卓逆向和安全的人来说有非常大的借鉴意义 里面附有详细的实现代码

安卓加固基础(二)

4.反调试 4.1 思路一(一个进程最多只能被一个进程ptrace) 本文章主要针对安卓so反调试和最初的加壳方法进行了一下总结 在处于调试状态时,Linux会向/proc/pid/status写入一些进程状态信息,比如TracerPid字段会写入调试进程的pid,因此我们可以自己ptrace自己,然后让android_server不能调试 代码如下: #include //这个头文件很重要 void anti_debug01() { ptrace(PTRACE_TRACEME,0,0,0); } jint JNI_Onload(JavaVM* vm,void* reserved)

安卓App有风险,爱加密加固保护App安全!

如今安卓系统的开源性和手机厂商多样性的增多以及安卓系统存在各个手机中,还有手机厂商对安卓系统修改的面目全非的问题,最终导致安卓系统的安全问题无法得到避免。比如最近的“心脏流血”漏洞虽然经过修复在安卓平台基本不会出现,但是安卓4.1.1版本仍含有此漏洞,并且目前仍然有数百万台智能机和平板电脑使用的Android 4.1.1。  来源:www.ijiami.cn 互联网科技快速发展的今天,其

fjfhgwe1的专栏 714

局部路径规划算法 - B样条曲线(B-spline Curves)

本文详解了B样条以及代码实现

BigDavid123的博客 6506

最全Android安全检测漏洞解决方案

前言:APP安全检测通常在一些小型企业涉及的比较少,并且并不太关注这方面的问题。然而在一些大型互联网企业或者国企等等就非常在意这方面的安全问题,并且会有专门的人去对APK进行检测。本节我们一起学习在Android中大量的app漏洞应如何去避免或者修改。 一、基本应用信息 通常包括:应用名称、包名、文件大小、版本信息、文件MD5、签名信息、加固厂商、第三方SDK等。 二、安全漏洞检测项 加密算法和密码安全 1 、AES/DES加密算法不安全使用风险 2 、RSA加密算法不安全使用风险 安全防护能力 1、 Z

weixin_40798907的博客 1万+

Bellhop水声信道模型的仿真

Bellhop是一种基于射线追踪的水声信道模型,广泛用于预测水下环境中的声压场。它通过模拟声波在水中的传播路径,计算声场分布,适用于复杂的水下通信场景。

yt94832的博客 1313

AMD显卡跑MiniMax H3提速30%:SageAttention ROCm适配全记录

在Transformer架构的视频生成模型中,注意力计算往往是性能瓶颈,尤其当显存资源受限时,低精度量化与内核优化成为关键突破口。SageAttention通过将QK^T矩阵乘法量化为INT8,并以FP16/INT4表达注意力概率矩阵,在保证画质的前提下显著降低访存与计算开销,相比传统FlashAttention具备更高速度上限。这一技术价值在本地部署场景尤为突出——当用户使用非NVIDIA显卡运行大型视频模型时,通用优化库常因依赖CUDA而失效。本文聚焦AMD ROCm平台下的MiniMax H3视频生成

weixin_32238157的博客 276

海云安:利益博弈,APP安全漏洞背后的攻防交锋

全球范围内移动设备的数量早就在多年前超越了世界人口总和。Statista的数据显示,2016年全球范围内智能手机的出货量约在15亿台左右,预计到2020年这个数字会增加到17.1亿;到2018年,全球手机用户总数将达到25.3亿人次——这其中1/4都来自中国。 而在国内,随着近年来移动互联网技术在各个领域应用的不断延伸,APP应用的开发数量开始呈现井喷发展趋势,随之而来的一系列安全漏洞问题也开始

imtik的博客 493

华为[ENSP]—— 实验二、三层交换和ARP的工作原理

华为[ENSP]三层交换和ARP的工作原理

weixin_62594100的博客 6411

安卓app练习靶场DIVA

安卓app练习靶场DIVA

led_usk的博客 1180

钣金件设计规范

为保证折弯 强度,钣金折弯钣金应大于材料的最小折弯半径。在设计U型弯曲件时,两弯曲边最好长度相等,以免弯曲时产品偏 移而产生废品,如果因为结构设计不允许两边一样长,为保证产品在模 具中准确定位,应预先在设计时添加工艺定位孔,特别是多次折弯成 形的零件,必须设计工艺孔为定位基准,以减少累计误差,保证产品 质量,如图2-11所示。凸包是依靠材料的延伸使钣金件形成局部凹陷或凸起的冲压工序凸包与拉深是完全不同的冲压工艺,凸包中材料厚度的改变为费意图性 的,即厚度的少量改变是变形过程中形成的,不是设计指定的要求。

制冷技术咨询与服务的博客 7323

从零构建eSIM RSP服务:云原生架构与GSMA合规实践

本文详细阐述了从零开始构建一个符合GSMA SAS-SM安全标准的云原生eSIM RSP服务的完整路径。内容涵盖云原生基础设施选型、容器化部署、GSMA标准接口集成,并重点分享了通过SAS-SM安全审计的实战经验与避坑指南,为物联网及智能设备企业自建可控的远程SIM配置服务提供了系统性的解决方案。

weixin_29322553的博客 458

APP的安全性测试指南——测试工具Drozer

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。我们已经提取了用户的主密码,以及一些与他们的服务密码相关的密码文本。然后我们根据暴露的面进行攻击(有哪些面我们就攻击哪些面),说白了就是有安全漏洞,我们就攻击那些漏洞。APP的安全性测试其实也是有点技术含量的测试,那么APP安全性测试的工具有哪些呢?Drozer的环境搭建完成后,我们就开始做下一步的测试了。

Hacker_Oldv的博客 856

2、稳定性问题全景图——死机、重启、ANR、Crash、黑屏五大类

当 Crash 发生在 system_server、surfaceflinger、mediaserver 等关键系统进程中时,其后果等同于系统级故障,可能触发 Zygote 重启甚至 kernel panic。这类问题在稳定性治理中的优先级应等同于 P0。

woailuojp的博客 49

Android应用安全常见问题及解决方案

URl绕过问题也只能说是攻击面,不能说是漏洞。在使用webview的时候,大多数开发者并不希望组件任何网页都加载,因此会实现一个白名单函数约束加载的网页,常见的约束函数有contains()、indexOf()、endwith()、getHost()等,由于约束机制都是人为实现的,因此会带来不安全的因素。另一个问题是url白名单绕过,随着联网应用的增多,大家都喜欢用webviwe组件去加载一个网页,那就需要加载url,而webviwe组件本身问题就非常的多,它权限中有很多敏感的行为,比如获取地理位置信息。

feifei99_8820的博客 450

在Ubuntu上安装Node.js编程

在Ubuntu操作系统上安装Node.js是非常简单的,本文将为您提供详细的安装步骤。这是一个简单的Node.js HTTP服务器示例,它将在本地主机的端口3000上监听请求,并返回"Hello, World!npm是Node.js的包管理器,您可以使用它来安装和管理Node.js模块。您已成功在Ubuntu上安装了Node.js,并创建并运行了一个简单的Node.js应用程序。现在,您已经成功安装了Node.js和npm,让我们创建一个简单的Node.js应用程序并运行它。如有任何疑问,请随时提问。

CodeNexus的博客 3524

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android证书信任问题与大表哥

• 2015/03/16 作者: admin Android证书信任问题与大表哥 0x00 起因 1、近期icloud.com、yahoo.com、apple.com遭遇到大规模劫持 WooYun: Yahoo雅虎在国内访问遭遇SSL中间人攻击(被替换为自签名证书) 2、乌云平台、CVE都收到大量有关Android APP信任所有证书的漏洞 WooYun: 国内绝大部分And

晨光飞舞的专栏 2915

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android开发中常见安全问题和解决方案

开发APP时经常有问到:“APP的安全怎么保障,应用程序被PJ了怎么办?手机被人捡去了怎么办?” 特别在号称“安全第一,风控牛逼”的银行系统内,移动产品安全性仍被持有怀疑态度。那我们来总结下APP安全的方向和具体知识。1.应用程序安全2.应用程序内敏感数据存储安全3.应用程序前后台数据报文传输安全以上是APP开发中需要注意的安全问题。不要等到项目投产时再去统一检测和检查APP安全问题。项目启动时,安全的事宜就要做到心里有数了。

阿道夫的博客 1478

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

特斯拉股东喊话马斯克:每周必须工作40小时;传前一汽南京CTO陈光加入小米;微软OneDrive被曝安全漏洞 | 极客头条

本周三,一群对特斯拉进行长期投资的养老基金股东周三联名在一封信中指出,埃隆·马斯克(Elon Musk)需要在特斯拉(TSLA)投入更多时间,因这家电动汽车公司正面临“危机”:“特斯拉的股价波动、销量下滑,以及有关该公司在人权工作方面令人不安的报道和全球声誉暴跌,均令人严重担忧。5 月 29 日消息,据微言教育公众号,教育部新闻办发布 2025 年高考预警信息,提醒考生和家长切勿相信谣言,提高辨别能力,谨防上当受骗,切勿参与涉考违法犯罪活动,诚信参加考试,遵规守纪守法。

优快云资讯 1209

Android 12 行为变更,对应用产生的影响,大厂经典高频面试题体系化集合

这篇文章主要介绍了在 Android 12 上行为的变更,对 App 都有些影响,以及这些行为在 App 中都有那些安全漏洞,我们在开发中应该如何注意这些潜在的问题。代码不止,文章不停欢迎关注公众号:ByteCode,持续分享最新的技术自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

2401_83740129的博客 837

Android 12 行为变更,对应用产生的影响

这篇文章主要介绍了在 Android 12 上行为的变更,对 App 都有些影响,以及这些行为在 App 中都有那些安全漏洞,我们在开发中应该如何注意这些潜在的问题。代码不止,文章不停欢迎关注公众号:ByteCode,持续分享最新的技术最后推荐我一直在更新维护的项目和网站:在线查看LeetCode / 剑指 offer / 国内外大厂面试题 / 多线程 题解,语言 Java 和 kotlin,包含多种解法、解题思路、时间复杂度、空间复杂度分析在线阅读在线阅读。

2401_85039631的博客 385
上一篇: 使用Android studio找出项目无用资源文件
下一篇: Gradle配置lintOptions
ZyClient
博客等级 码龄10年 29粉丝 60原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值