• 信安软考 第二十五章 移动应用安全需要分析与安全保护工程


    一、移动安全威胁与需求分析

      移动应用系统包括三个部分:移动应用(APP)通信网络(包括无线网络、移动通信网络、互联网)、应用服务端(有相关服务器构成,处理来自app的相关信息数据)

    img

      移动应用的安全威胁主要有以下类型:

      (1)移动操作系统平台安全威胁:目前市场上存在的移动操作系统IOS、Android,都存在不同程度的漏洞

      (2)无线网络攻击:内容监听、假冒基站、网络域名欺诈、网络钓鱼等

      (3)恶意代码

      (4)移动应用代码逆向工程:攻击者通过对移动应用的二进制代码进行反编译分析,获取移动应用的源代码的关键算法思路或窃取敏感数据

      (5)移动应用程序非法篡改:攻击者利用安全工具,非法篡改移动应用程序,实现恶意攻击,窃取用户信息

    二、Android系统安全与保护机制

    2.1 Android 系统组成概要

      Android是Google的一个开源的移动终端操作系统。其系统结构分为Linux 内核层(Linux Kernel)、系统运行库层(Libraries和Adroid Runtime)、应用程序框架层(Application Framework)和应用程序层(Application)。

    img

      Android系统的各层都面临着不同程度的安全威胁。其中,Android系统的基础安全威胁来自于Linux内核攻击,内核漏洞常常导致攻击者能够获得系统最高权限。

    2.2 Android 系统安全机制

      为保护Android系统以及应用终端平台安全,Android系统在各层都采取了响应的安全措施,以尽可能地保护移动用户数据、应用程序和设备安全。

    img

      (1)权限声明机制

      为操作权限和兑现之间设定了一些限制,只有把权限和对象进行绑定,才可以有权操作对象。当然,权限声明机制还制定了不同级别的认证方式的制度。在默认情况下Android应用程序不会被授予权限,其权限分配根据Android应用APK安装包中的Manifest文件确定。应用程序的权限包括normal权限、dangerous权限、signature权限、signatureOrSystem权限。

      normal权限不会给用户带来实质性的伤害;dangerous权限可能会给用户带来潜在威胁,如读取用户位置信息,读取电话簿;signature权限表示具有同一签名的应用才能访问;signatureOrSystem权限主要由设备商使用。

      (2)应用程序签名机制

      Android将应用程序打包成.APK文件,应用程序签名机制规定对APK文件进行数字签名,用来标识相应应该用程序的开发者和应用程序之间存在的信任关系。所有安装到Android系统中的应用程序都必须有一个数字证书,此证书用于标识应用程序的作者和应用程序之间的信任关系。

      (3)沙箱机制

    img

      (4)网络通信加密

      Android支持使用SSL/TLS协议对网络数据进行传输加密,以防止敏感数据泄露

      (5)内核安全机制

      Android系统的内核采用分区和Linux ACL权限控制机制。Linux ACL权限控制机制是指每个文件的访问控制权限都由其拥有者、所属的组、读写执行三个方面共同控制。文件爱创建时被赋予了不同的应用程序ID


    三、 iOS系统安全与保护机制

    3.1 IOS系统组成概要

      苹果公司建立以IOS平台为核心的封闭生态系统,ios核心与Mac os的核心都源于Apple Darwin。ios系统架构如图分为四层:核心操作层(Core OS Layer)、核心服务层(core Services Layer)、媒体层(Media Layer)和可触摸层(Cocoa touch Layer)

    img

    3.2 iOS系统安全机制

      iOS平台的安全架构可分为硬件、固件、软件,如图

    img

      硬件、固件层由设备密钥、设备组密钥、苹果根认证、加密引擎、内核组成。Secure Enclave是苹果高版本A系列处理器中的协处理器,独立于应用处理器之外,提供所有加密操作

      软件层由文件系统、操作系统分区、用户分区、应用沙盒及数据保护类构成

      苹果基于这一安全架构,集成了多种安全机制,主要如下:

      (1)安全启动链。ios启动过程中使用的组件要求完整性验证,确保信任传递可控。

      (2)数据保护。针对移动设备丢失或被窃取导致的泄露数据的风险,苹果提供了数据保护API,防止他们在数据设备丢失时,数据丢失。

      (3)数据的加密与保护机制:ios内所有用户数据都是强制加密,加密功能不能关闭。

      (4)地址空间布局随机化:ios引入地址空间随机化(ASLR)保护技术,利用ASLR技术,确保ios的二进制文件、库文件、动态链接文件、栈和堆内存地址的位置是随机分布的,从而增强抗抵抗能力。

      (5)代码签名:ios系统要求所有可执行程序必须使用苹果公司发放的证书签名

      (6)沙箱机制:ios为限制恶意代码造成的破坏,通过沙箱机制,可以限制进程的恶意行为。

    四、移动应用安全能保护机制与技术方案

    4.1 移动应用App安全风险与安全加固

      移动应用App是指运行在智能设备终端的客户端程序,其作用是接收和响应移动用户的服务器请求,是移动服务界面窗口。但由于移动应用App安装在用户智能设备上,很容易遭受反编译、调试、篡改、数据窃取等安全威胁。

      为保护移动应用App的安全性,常采用以下安全保护措施

      (1)防反编译。对移动应用程序文件进行加密处理,防止攻击者通过静态的反编译工具,获取应用的源代码。还可以通过对移动应用程序进行代码混淆,增加破解阅读代码的难度。常见的混淆方法有名字混淆、控制混淆、计算混淆等

      动态调试利用调试器启动或附加应用程序,可对应用程序运行时的情况进行控制,可以在某一行代码上设置断点,使进程能够停在指定代码行,并实时显示进程当前的状态,甚至可通过改变特定使用目的寄存器值来控制进程到的执行。通过调试器,可以获取应用程序运行时的所有信息。

      (2)防调试。应用程序设置调试检测功能,以触发反调试安全保护措施,如清理用户数据、报告程序所在设备情况、禁止使用某些功能甚至直接退出运行。

      (3)防篡改。通过数字签名和多重校验的防护手段,验证移动应用程序的完整性,防范移动应用程序APK被二次打包以及盗版。

      (4)防窃取。对移动应用相关的本地数据文件、网络通信等进行加密,防止数据被窃取。

    国内的App安全商用加固工具有腾讯乐固、360加固和梆梆加固;免费的有ProGuard

    4.2 移动应用共App安全检测

      常见的移动移动App网络安全监测内容如下

    • 身份认证机制检测

    • 通信会话安全机制检测

    • 敏感信息保护机制检测

    • 日志安全策略检测

    • 交易流程安全机制检测

    • 服务端鉴权机制检测

    • 访问控制机制检测

    • 数据防篡改能力检测

    • 防SQL注入能力检测

    • 防钓鱼安全能力检测

    • App安全漏洞检测

    img

    4.3 移动应用安全综合应用案例分析
    • 金融移动安全

    一些安全厂商提供的金融类App安全保护方案

    (1)实施移动App安全开发管理

    (2)移动App通信内容安全加密保护

    (3)移动App安全加固

    (4)移动App安全测评

    (5)移动App安全监测

    • 运营商移动安全

    运营商移动应用安全主要面临的安全威胁如下

    (1)账号、密码窃取

    (2)漏洞利用

    (3)恶意代码

    (4)数据窃取

    (5)恶意刷量、刷单

    (6)拒绝服务攻击

    (7)计费SDK破解

    (8)钓鱼攻击

    (9)社工库诈骗

    针对运营商移动应用安全问题,

    • 加固运营商App
    • 对提交到运营商应用市场的第三方App提供病毒、木马、恶意代码查杀服务
    • 对运营商的计费SDK提供防调、防改、防破解的加固保护服务
    • 对运营商的通信协议、证书进行加密
    • 提供基于移动应用的威胁态势感知服务,实时预警接入网络的异常流量、入侵攻击、风险App等

    移动办公主要面临以下风险:

    • 设备丢失
    • 信息泄露
    • 恶意攻击
    • 共享访问
    • WiFi监听。接入钓鱼热点,通信数据被劫持监听
  • 相关阅读:
    Kotlin apply 交换两个数
    【Java】-【使用smtp协议发邮件】
    Python:自动化处理PDF文档集合,提取文献标题、合并文献PDF并生成目录和页码
    【C++】类和对象(上)
    Win11快捷安装到鼠标右键的快捷栏里(亲测有用哦)
    有哪些常见的网络带宽和延迟问题
    如何用Java高效地存入一万条数据?这可能是你面试成功的关键!
    剖析SGI STL空间配置器(deallocate内存回收函数和reallocate内存扩充函数)
    jenkins结合126邮箱提醒
    Unity制作射击游戏案例01(控制角色+发射子弹+摄像机跟踪)
  • 原文地址:https://blog.csdn.net/qq_43632414/article/details/127349274