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

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

  移动应用系统包括三个部分:移动应用(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监听。接入钓鱼热点,通信数据被劫持监听

猜你喜欢

转载自blog.csdn.net/qq_43632414/article/details/127349274