移动应用安全开发要求(1,源码安全)
近十年,移动互联网的飞速发展,智能移动终端在人们学习、工作和生活中的普及率越来越高,手机终端的广大用户群体的良好体验正吸引着越来越多的开发及应用者参与到手机应用程序的开发和使用中来,但是部分免费开源的平台特性不仅给予了开发者更广阔的开发空间,也给使用者增加了许多安全隐患,即使有基于自主平台上开发的移动应用,也会遭到黑客攻击,存在一定的安全隐患。
相关数据显示,89%的热门应用存在仿冒,18个行业的Top10应用中98%的应用都存在漏洞。这些漏洞一旦被利用,将会给开发者和用户带来很大的影响。
在本文中,我们探讨Android应用程序开发过程中都有哪些安全开发要求。
程序保护
通过混淆、加密、签名、加壳、动态加载等技术为移动应用进行全面的安全加固,对抗代码注入、篡改、反编译、逆向工程等恶意行为,具备反篡改/盗版/二次打包能力。
基本要求
Dex加固,可对编译后的Dex进行加壳、类加载、类抽取、函数Native转换、指令VMP选择加固处理。
SO加固,可对导出函数加密,对SO文件中的字符串进行混淆或加密,对编译后的SO文件中代码段加密。
反调试,防止进程/线程附加,如果检测到被保护APK被附加则程序退出;抵抗进程注入,如果检测到被保护APK的内存空间非法访问则程序退出;对市面上常用的调试器进行检测,如果检测到调试器启动,被保护的APK程序自行退出。
签名校验,加固前与加固后,如果应用采用不同的签名,则程序启动后退出;如果修改加固后应用的任意资源文件,并使用非加固前的签名,则程序启动后退出;壳自身组件启用交叉自校验模式,如果自身组件遭受篡改,则程序启动后退出。
资源文件保护进行签名保护。
APP禁止运行在模拟器环境中。
反内存Dump,程序运行时内存空间需有安全保护机制,防止被保护SO、Dex等文件从内存中Dump出来。
增强要求
具有抗逆向分析、抗反汇编等安全性防护措施,防范攻击者对移动应用的调试、分析和篡改。
反内存Dump,程序运行时内存空间需有安全保护机制,防止被保护SO、Dex等文件从内存中Dump出来。
签名校验禁止被绕过。
使用公钥算法验证APK包的完整性,私钥不存储。在验证时生成,并且私钥与程序代码完整性相关。
Dex加花保护。
需避免系统生成临时的完整Dex缓存文件。
自行开发的SO文件必须加壳保护。
SO文件应储存为私有格式(畸形SO)。
SO壳需可进行定制化开发。
反调试与Dex壳进行相互校验,确保整个Dex壳和反调试的完整性,如果检测到被保护的APK中Dex壳和反调试部分被篡改,则被保护APK程序自行退出。
防止壳启动调试。
防ZjDroid插件内存,防止Dump Dex。
防内存篡改。
防系统核心库被HOOK(劫持)攻击。
代码保护
在程序开发过程中,进行安全编码,杜绝缺陷代码,避免编码过程引入安全漏洞。
基本要求
应对生产库源代码版本进行控制,保证当前系统始终为最新的稳定版本。
应确保提供软件设计的相关文档和使用指南,并由专人负责保管。
应确保对程序资源库的修改、更新、发布进行授权和批准。
应严格控制对生产版本源代码的访问。
在软件开发过程中,应同步完成相关文档手册的编写工作,保证相关资料的完整性和准确性。
进行异常处理。
禁止使用硬编码定义敏感内容。
File模式安全配置。
SharedPreference安全配置。
不得在代码注释中包含敏感信息,不得将用户的私钥或加密密钥嵌入客户端程序中。
数据库应使用存储过程或参数化查询,并严格定义数据库用户的角色和权限。防SQL注入,参数化查询,对输入进行类型和格式检查。
避免代码逻辑缺陷导致的跨界。
增强要求
确保APP插件调用第三方代码或库文件来源的可靠性,验证第三方接口或组件的合法性(确保来源是否可靠、是否有支持维护、是否不含后门等),并及时更新第三方库。
采用NDK开发核心模块。
应开发安全的接口,如通过避免语句的完全解释或采用参数化接口等方式实现。
应用程序必须能够处理不可预知的用户操作。
应进行代码审查,防范应用程序中不可信数据被解析为命令或查询语句等。
基于相关安全编码指南,避免通常会出现的编码漏洞,包括但不限于:无效输入、失效访问控制、失效的身份认证和会话管理、跨站脚本攻击、拒绝服务攻击、不安全存储。
移动应用安全开发要求(1,源码安全)相关推荐
- wp实例开发精品文章源码推荐
qianqianlianmeng wp实例开发精品文章源码推荐 WP8 启动媒体应用 这个示例演示了如何选择正确的msAudioCategory类别的音像(AV)流来配置它作为一个音频 ...
- uni-app开发:(源码级别)uni-badge样式修改(自定义插槽)
文章目录 uni-app开发:(源码级别)uni-badge样式修改(自定义插槽) 一.效果图需求说明: 二.源码 · 修改前后对比: 2.1. 修改前 2.2. 修改后 三.调用代码: 附件:uni ...
- python开发直播网站_开发直播网站源码的三种计算机语言
直播网站源码开发所用的语言,根据未来运营平台不同,其选择也不同.一般来说,如果是PC后台,那么会采用PHP语言编写,如果是在安卓上开发,则选择Java语言,如果是在iOS上开发,则采用object-c ...
- PHP开发h5棋牌源码curl用法
PHP开发h5棋牌源码curl用法(aqiulian.com),更多PHPcurl用法咨询Q:212303635.curl 是使用URL语法的传送文件工具,支持FTP.FTPS.HTTP HTPPS ...
- 博通Broadcom SDK源码学习与开发1——SDK源码探究与Cable Modem 系统编译
声明:原创作品,严禁用于商业目的. 本系列文章将全面剖析以Bcm33xxx芯片开发Cablemodem产品的SDK源码为例,从编译系统到各个功能模块进行分析与探讨. 文章目录 0.写在前篇 1. 博通 ...
- TP6框架全新开发社区系统源码开源
正文: TP6框架全新开发社区系统源码开源,本系统采用thinkphp6+mysql全新开发,非市场垃圾各种系统,可搭建商业化运营 安装教程: 上传程序,设置public 为运行目录 伪静态设置: ...
- 微信小程序仿网易云音乐(使用云开发,提供源码)
微信小程序仿网易云音乐(使用云开发,提供源码)!!!!!!!!!!! 源码: 链接:https://pan.baidu.com/s/1z_ZnRVbT4vjEENimi8yBQQ 提取码:u0o3 一 ...
- java mysql多媒体积件管理库的开发与应用源码+论文
下载地址:https://mp.csdn.net/mp_download/manage/download/UpDetailed 项目介绍 java mysql多媒体积件管理库的开发与应用源码+论文 系 ...
- java计算机毕业设计vue.js开发红酒网站源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计vue.js开发红酒网站源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计vue.js开发红酒网站源码+mysql数据库+系统+lw文档+部署 本源码技术栈: ...
- 友价T5开发的网站源码交易平台
友价T5开发的网站源码交易平台,提供虚拟类商品交易服务,模块有网站交易.源码交易.域名交易.链接交易.广告买卖.建站美工任务:本系统最大特色就是还带移动端 下载地址:www.sucaihuo.com/ ...
最新文章
- 基本概念_复杂网络基本概念
- SSL 数字证书助力电子商务,让您网络购物更安心
- Py之pyttsx:pyttsx/pyttsx3​​​​​​​的简介、安装、使用方法之详细攻略
- 智能工作:人工智能将如何重塑远程工作
- 无论是否使用Spring Framework,为什么我们会失败?
- java hash取余_为什么Java的hash表的长度一直是2的指数次幂?为什么这个(hash(h-1)=hash%h)位运算公式等价于取余运算?...
- 数据结构思维 第九章 `Map`接口
- [object%20HTMLInputElement] 是什么意思?
- PyTorch中查看GPU使用情况以及一些重要函数
- 出埃及记:摩西劈开红海
- Linux后台运行进程命令
- Java集合框架介绍
- 关于DNF的多媒体包NPK文件的那些事儿(10) - SPK文件
- Python Socket模块实现服务端与客户端通信
- 增粉的各种方法【微信 / 微博 增加粉丝的108种方法】
- PAT甲级 1032 Sharing
- The signing key‘s size is 1024 bits which is not secure enough for the RS256 algorithm.
- 也谈谈我对腾讯“抄袭”的认识
- 优麒麟运行Linux软件,优麒麟Ubuntu Kylin特色应用软件下载
- 前端(微信小程序)渐变色