热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android开发安全手册

常规安全防御手段混淆混淆是Android基本安全手段,虽然目前有很多工具能够反混淆,但是对于反编译调试代码还是有较大作用的。加固目前有很多第三方加固服务可以使用。如爱加密、360加

常规安全防御手段

混淆

混淆是Android基本安全手段,虽然目前有很多工具能够反混淆,但是对于反编译调试代码还是有较大作用的。

加固

目前有很多第三方加固服务可以使用。如爱加密、360加密、阿里聚安全等。可以选择一个使用。但是也不能认为使用了加固就万事大吉了,因为还是有被脱壳的风险的。

安全风险规避

数据接口泄露风险

风险说明

数据接口被劫持,中间人攻击等。

风险规避

  1. 使用HTTPS协议。
  2. HTTPS证书双向校验,客户端校验服务端证书、域名等是否一致,服务端校验客户端证书是否正确(签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等)。

本地存储数据泄露风险

风险说明

Android提供四种Android本地存储方式,分别为Shared Preferences、SQLite Databases、Internal Storage、External Storage。对于一些不当的存储方式,可能会造成数据泄露。

风险规避

  1. 对于SP、Database和Internal Storage可以设置打开方式,原则上都使用MODE_PRIVATE。
  2. 谨慎使用sharedUserId属性。拥有相同sharedUserId 和签名的应用可以共享本地数据。所以拥有sharedUserId属性的应用一定要使用安全的证书签名。
  3. 谨慎使用External Storage,因为它能够被所有应用读取。
  4. 对于敏感信息,需要加密之后进行存储,如密码等。

硬编码密钥泄露风险

风险说明

将AES加密密钥、支付宝SDK密钥等硬编码在代码中容易被反编译获得。

风险规避

对密钥进行加密,在使用的时候解密获得。推荐使用阿里聚安全的sdk加密。

日志泄露风险

风险说明

打印在Log中的日志容易被调试获取一些信息,所以应该避免在Release版本中输出敏感日志。

风险规避

推荐使用Timber等日志框架。设置在Release版本中不输出日志。

WebView远程代码执行漏洞

风险说明

api16之前,可以通过js反射获取Java代码运行环境,然后进行远程代码执行。

风险防范

  1. 如果没有必要,设置WebView不支持Js接口调用。

    webView.getSettings().setJavascriptEnabled(false);

  2. 移除系统隐藏JS调用接口

    webView.removeJavascriptInterface("searchBoxJavaBridge_");
    webView.removeJavascriptInterface("accessibilityTraversal");
    webView.removeJavascriptInterface("accessibility");

  3. 如果WebView不需要支持打开第三方网页,则可以过滤第三方网页,只允许打开自己的网页。可以使用HTTPS证书校验、白名单等方式进行过滤。

  4. 使用不支持Js接口调用的WebView打开第三方网页。

WebView 明文存储密码漏洞

风险说明

在api17之前,WebView会把用户统一保存的密码明文存储在手机上。因此可能会泄露用户密码。

风险规避

WebView.setSavaPassword(false);

本地拒绝服务风险

如果Activity的exported属性为true,则它能够被外部打开。这时候如果外部传给该Activity的数据异常,则可能会使应用闪退。

如某个被攻击的Activity代码

MyClass object = (MyClass)getIntent().getSerializableExtra("my_class");

则如果攻击者代码为,会造成被攻击者的闪退。

Intent localIntent = new Intent();
localIntent.setComponent(new ComponentName(packageName, className));
localIntent.putExtra("my_class", new MalformedObject());
startActivity(localIntent);

风险规避

  1. 如非必要,不要设置Activity的exported属性为true。
  2. 在获取Intent数据时检测过滤并catch异常。

弱加密风险

风险说明

使用一些较容易破解的加密算法。

风险规避

  1. 使用对称加密算法时避免使用DES算法
  2. 使用RSA算法加密时不使用NoPadding
  3. IvParameterSpec初始化时,不使用常量vector
  4. 在选择加密模式时避免使用ECB模式
  5. 使用RSA加密时,建议密钥长度大于1024bit

推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文介绍了如何在具备多个IP地址的FTP服务器环境中,通过动态地址端口复用和地址转换技术优化网络配置。重点讨论了2Mb/s DDN专线连接、Cisco 2611路由器及内部网络地址规划。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
author-avatar
幸运的anan本人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有