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

PCI-Express、MiniPCIe、ExpressCard接口转换说明/引脚互换关系

通过引脚PIN互换可以在PCI-Express、MiniPCIe、ExpressCard之间切换不同的接口;提供接口引脚表和标准尺寸图。

tech34的博客 7123

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

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

weixin_40798907的博客 1万+

医药行业SAP序列号管理深度解析:如何满足GMP合规要求

本文深度解析了医药行业如何利用SAP序列号管理构建满足GMP合规要求的数字化追溯体系。文章详细阐述了SAP序列号在实现从生产到患者全流程“一物一码”精准追溯中的核心作用,并探讨了其与质量管理、冷链监控等系统的关键集成配置,为医药企业应对严格监管、保障产品质量与安全提供了切实可行的技术方案。

backprop5master的博客 655

从零构建EtherCAT从站:SSC工具配置与TwinCAT3 PDO/SDO调试实战

本文详细介绍了从零构建EtherCAT从站的完整流程,重点讲解SSC工具配置与TwinCAT3 PDO/SDO调试实战。通过解析EtherCAT通信机制、PDO与SDO的核心概念,提供SSC工具配置技巧、XML文件生成与校验方法,以及TwinCAT3环境下的调试经验,帮助开发者高效完成EtherCAT从站开发与优化。

weixin_42520573的博客 342

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

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

imtik的博客 493

EPLAN 设备接线图模板制作

属性摆放 设备连接图设置(选项 - - 设置) 连接图生成

weixin_36447711的博客 7863

安卓app练习靶场DIVA

安卓app练习靶场DIVA

led_usk的博客 1180

RTKLIB模糊度固定实战:三种模式对比与部分模糊度固定代码解析

本文深入解析RTKLIB中模糊度固定的三种核心模式(continuous、instantaneous、fix and hold),对比其性能与适用场景,并详细拆解了部分模糊度固定技术的源码实现。通过实战案例与代码级解析,为GNSS高精度定位开发者提供了在不同数据特性下提升固定成功率的优化思路与配置建议。

efc1234567的博客 473

大模型_WIN10使用hyper-v安装Ubuntu24.04虚拟机_配置独立静态IP地址_连接外网_并与内网其他机器互通_通过容器安装Dify_超详细安装过程002--人工智能工作笔记0247

本文详细描述了在Hyper-V环境中配置网络、安装Ubuntu虚拟机、设置IP地址、安装Docker以及部署Dify应用的过程。首先,通过Hyper-V管理器创建外部虚拟交换机(ExternalSwitch),并配置本机、虚拟交换机和Ubuntu虚拟机的IP地址,确保网络互通。接着,在Ubuntu虚拟机中安装Open-VM-Tools和Docker,并配置Docker的国内镜像源。最后,通过Git克隆Dify源码,使用Docker Compose启动Dify应用,完成部署。整个过程涵盖了网络配置、虚拟机管理

添柴程序猿的专栏 1751

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

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

Hacker_Oldv的博客 856

MAX30102心率血氧传感器原理图设计,已量产(e-Health传感器)

在最近的便携健康监测设备项目中,我们采用了集成算法的 MAX30102 心率血氧模块 —— 这类带内置 MCU 算法的传感器能直接输出心率 / 血氧数值,大幅降低了主控资源占用。但硬件电路的稳定性直接决定了 PPG 信号的采集精度,下面结合实际项目里的原理图,拆解下这个模块的设计细节。

不脱发的程序猿 1278

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

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

feifei99_8820的博客 450

Ubuntu零基础入门到精通【4.4讲】:网络、蓝牙、显示器、声音与输入法设置!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1486

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android证书信任问题与大表哥

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

晨光飞舞的专栏 2915

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

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

阿道夫的博客 1478

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

特斯拉股东喊话马斯克:每周必须工作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、付费专栏及课程。

余额充值