zoukankan      html  css  js  c++  java
  • 移动安全

    敏感信息安全主要检查客户端是否保存明文(或者容易被破解)的敏感信息,以及敏感信息的非授权访问。

    目前安卓实现数据持久化的方式有4种:文件存储、SharedPreferences存储、数据库存储、SD卡存储。因此咱们得先学习下安卓的数据存储(持久化)相关的知识。本着光说不练假把式,只看不练一用就废的原则,还是结合具体代码例子来学习。前面说了,咱除了安卓手机之外对安卓一无所知,所以每次看安卓安全方面的东西,都会自己改app代码来做实验,这样更直观,更容易理解,也不容易忘~

    1. 文件存储权限 

    文件存储是将所有数据原封不动的保存到文件中,适合简单文本和二进制数据,下面的代码是将输入内容保存到名为save_data的文件中:

    运行app输入内容:

     

    在android-sdk oolslibmonitor-x86_64目录下找到monitor.exe并启动,找到data/data/com.example.persistencetest/file文件夹下的文件,就是我们写入的文件了:

    将文件导出来:

    用root用户进入adb shell查看save_data文件,该文件所属用户是:u0_a56,权限为:-rw-rw----

     

    代码中Context设置的是MODE_PRIVATE,表明该数据只能被应用本身(或者root)访问:

     

    Context.MODE_PRIVATE:默认模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。

    Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

    Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。

    Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

    接下来开启另一个应用drozer,并且用drozer连接模拟器进入adb shell,此时的用户是u0_a57,根据MODE_PRIVATE的设置,此时是无法访问save_data文件的:

    现在将文件的context改为MODE_WORLD_READABLE,这个属性在高版本的安卓已经被抛弃了666~

    再开drozer就能读取这个文件了

    用root用户查看该文件的权限变成了-rw-rw-r--

    虽然高版本的Android已经弃用了MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE,但不妨碍之前低版本已经使用过这两个属性的App,以及因为特殊需求仍然在高版本使用的App。因此在开发APP时应尽量避免设置此类权限,以免造成安全隐患。在做APP检查时,应注意检查赋予此类权限的APP相关文件,具体问题具体分析

    2. logcat 日志

    主要是检查客户端程序存储在手机中的日志是否含有敏感信息。

    我们在写程序时为了方便调试,或者发布后方便记录数据或者排查问题,一般都会生成日志文件(包括操作日志、错误日志等)。但是一些敏感数据,比如用户密码、配置密码、IP、github地址、JWT Token等敏感信息最好不要存储(或者明文存储)在日志中,在很多攻击案例中,日志就是突破点~

    Android也支持写入日志,并且可以通过命令直接查看日志。假设在代码中将密码写入日志:

    运行一下:

    然后进入adb shell查看日志,执行:logcat -d

    输出日志,发现密码:

    也可以输出日志文件到本机:adb shell logcat -d > D:1.txt

     

    本文仅用于技术学习和交流,严禁用于非法用途,否则产生的一切后果自行承担。

    如需转载,请注明出处,这是对他人劳动成果的尊重。

  • 相关阅读:
    用户控件赋值
    计算一串数字中每个数字出现的次数
    如何理解c和c++的复杂类型声明
    STM32 NVIC学习
    stm32f10x_flash.c中文版
    IBM中国研究院Offer之感言——能力是一种态度
    对于STM32别名区的理解 (转载)
    STM32时钟学习之STM3210X_RCC.H解读
    STM32 DMA
    STM32 内部时钟输出PA.8(MCO)
  • 原文地址:https://www.cnblogs.com/sallyzhang/p/14648979.html
Copyright © 2011-2022 走看看