尝试使用AI分析pdf和真题集,总结出一份学习指南。
依据《信息安全工程师教程(第2版)》第25章(教材第 543–555 页)整理;第四、五节基于真题集 965 题中筛选出的 6 道本章相关真题逐题研读补充(本章真题集中度最低,多数内容标注”教材有、真题集暂无直接题目”作案例素材)。本章是”Android/iOS 安全机制 + App 加固四防”章节,选择题考 Android 架构与沙箱,App 加固对应关系是固定考点。
移动应用系统组成三部分:①移动应用(App)——运行在智能设备终端的客户端程序;②通信网络——无线网络、移动通信网络及互联网;③应用服务端——相关服务器,处理来自 App 的信息或数据。
五大安全威胁:
Linux 内核层(Linux Kernel)→ 系统运行库层(Libraries 和 Android Runtime,含 Dalvik 虚拟机)→ 应用程序框架层(Application Framework)→ 应用程序层(Applications)。Android 是开源移动终端操作系统,使用 Linux 作为操作系统内核(真题答案 C)。基础层安全威胁来自 Linux 内核攻击——内核漏洞常致攻击者获得系统最高权限。恶意代码利用 Android 的常见形式:APK 重打包(repackaging)、更新攻击、诱惑下载、提权攻击、远程控制、恶意付费、敏感信息搜集。
| 机制 | 所在层 | 要点 |
|---|---|---|
| 权限声明机制 | 应用程序层 | 只有权限和对象绑定才可操作对象;默认应用程序不会被授予权限,权限分配由 APK 安装包中的 Manifest 文件确定;权限四级——normal(不会带来实质性伤害)、dangerous(潜在威胁如读位置、电话簿,安装时提醒用户)、signature(同一签名的应用才能访问)、signatureOrSystem(设备商使用) |
| 应用程序签名机制 | 应用程序框架层 | 对 APK 文件进行数字签名,标识开发者及应用程序间信任关系;所有安装的应用必须拥有数字证书 |
| 沙箱机制 | 系统运行库层 | 使应用程序和其相应运行的 Dalvik 虚拟机都运行在独立的 Linux 进程空间,不与其他应用程序交叉,实现完全隔离(真题答案 C);每个 App 和系统进程分配唯一固定的 User ID(UID),与内核层进程 UID 对应;访问系统资源或其他应用资源必须在 Manifest 中声明权限或共享 UID |
| 网络通信加密 | 系统运行库层 | 支持 SSL/TSL 协议对网络数据传输加密 |
| 内核安全机制 | 内核层 | 分区+Linux ACL 权限控制(每个文件访问控制由拥有者、所属组、读写执行三方面控制);文件创建时赋予不同应用程序 ID;system.img 所在分区只读(不允许用户写入),data.img 分区可读写(存放用户数据);Android 2.3 后增加基于硬件的 NX(No execute)——不允许在堆栈中执行代码;Android 4.0 后增加 ASLR 地址空间布局随机化防内存攻击;进一步支持强制访问控制 SELinux 防内核级提权攻击 |
iOS 原名 iPhoneOS,核心与 Mac OS X 同源(Apple Darwin),建立封闭生态系统。四层:核心操作系统层(Core OS Layer)→ 核心服务层(Core Services Layer)→ 媒体层(Media Layer)→ 可触摸层(Cocoa Touch Layer)。可触摸层负责触摸交互;媒体层提供视听技术(Core Graphics、Core Audio 等);核心服务层提供账户、数据存储、网络连接、地理位置等基础服务;核心操作系统层提供本地认证、安全、外部访问、系统等服务。
iOS 平台安全架构分硬件、固件、软件三层:硬件固件层由设备密钥、设备组密钥、苹果根证书、加密引擎、内核组成;Secure Enclave 是苹果高版本 A 系列处理器中的协处理器,独立于应用处理器之外,提供所有加密操作;软件层由文件系统、操作系统分区、用户分区、应用沙盒及数据保护类构成。
App 安装在用户智能设备上,易遭受反编译、调试、篡改、数据窃取等威胁。
| 加固措施 | 技术手段 |
|---|---|
| 防反编译 | 对应用程序文件加密处理(防静态反编译获取源代码)+代码混淆(名字混淆、控制混淆、计算混淆——变量替换成无意义变量、插入无关代码、修改计算等式) |
| 防调试 | 设置调试检测功能触发反调试保护——清理用户数据、报告设备情况、禁止某些功能甚至直接退出运行(动态调试=调试器启动或附加应用、设断点、改寄存器值控制执行) |
| 防篡改 | 数字签名和多重校验验证 App 完整性,防范 APK 二次打包及盗版(真题答案 C:防篡改) |
| 防窃取 | 对本地数据文件、网络通信进行加密 |
加固商用工具:腾讯乐固、360 加固、梆梆加固(详细情况参看相关公司网站);免费工具 ProGuard——一个压缩、优化和混淆 Java 字节码文件的免费工具,可以删除无用的类、字段、方法和属性,删除没用的注释,最大限度地优化字节码文件,还可以使用简短的、无意义的名称来重命名已经存在的类、字段、方法和属性。
检测内容 11 项:身份认证机制、通信会话安全机制、敏感信息保护机制、日志安全策略、交易流程安全机制、服务端鉴权机制、访问控制机制、数据防篡改能力、防 SQL 注入能力、防钓鱼安全能力、App 安全漏洞。Android 移动应用安全测试工具(名字配对素材,教材 25.4.3 原文):
| 工具 | 用途 |
|---|---|
| Inject | 进程注入工具 |
| HijackActivity | 劫持检测工具 |
| Jeb | 静态逆向分析工具 |
| apktool | APK 反编译和打包工具 |
| Tcpdump / Wireshark | 数据抓包工具 |
| Xposed | Android Hook 框架 |
| Burpsuite | 基于代理实现的抓包和分析工具 |
| Androguard | 静态分析工具 |
| FlowDroid | 安卓 APK 文件数据流分析工具 |
| Android Killer | 安卓应用逆向工具 |
规范:《信息安全技术 移动互联网应用程序(App)收集个人信息基本规范(草案)》——针对 Android 6.0 及以上给出服务类型的最小必要权限:地图导航=位置+存储;网络约车=位置+拨打电话;即时通信/博客论坛/网络支付/短视频/婚恋/求职/金融借贷/房屋租售/二手车/问诊挂号=存储;新闻资讯/网上购物/快递配送/交通票务/网页浏览器/输入法=无;运动健身=位置+传感器;安全管理=存储+获取应用账户+读取电话状态+短信。
目前 Android 平台恶意软件主要有四种类型:远程控制木马、话费吸取类、隐私窃取类和系统破坏类(”恶意推广”是干扰项——真题答案 A)。
Android 使用 Linux 作为操作系统(真题答案 C,考过 2 次);沙箱机制使应用程序和 Dalvik 虚拟机运行在独立 Linux 进程空间、完全隔离(真题答案 C)——注意与第 15 章”沙箱=可疑程序继续运行后回滚”的主动防御语境、第 22 章”浏览器沙箱”区分场景。
数字签名+多重校验验证完整性 → 防篡改(防二次打包盗版);防反编译=加密+代码混淆;防调试=调试检测触发反调试;防窃取=本地文件与通信加密。
| 考点 | 真题问法与答案要点 |
|---|---|
| 安卓恶意软件 | 四类型=远程控制木马、话费吸取类、隐私窃取类、系统破坏类(”恶意推广”是干扰项) |
| Android 底层 | Android 使用 Linux 作为操作系统(考过 2 次) |
| Android 沙箱 | “App 和 Dalvik 虚拟机运行在独立 Linux 进程空间、完全隔离”→沙箱机制(权限声明/签名机制是干扰项) |
| App 加固 | “数字签名和多重校验验证完整性”→防篡改(防反编译=加密混淆、防调试=检测调试器) |
| Android 权限 | 由 Manifest 文件确定;四级=normal/dangerous/signature/signatureOrSystem;dangerous 权限安装时提醒用户 |
| iOS 架构 | 四层=核心操作系统/核心服务/媒体/可触摸层;Secure Enclave=独立协处理器提供所有加密操作 |
| iOS 加密 | 强制加密不可关闭;AES 引擎硬件级位于 DMA;引导 ROM 含苹果根 CA 公钥 |
复习提示:本章真题少,选择题抓”安卓恶意软件四类型、Android=Linux、沙箱机制、防篡改四对应”四个固定答案;案例按”四防加固+检测内容+监测响应”模板储备。
真题研读后的优先级排序(按出题频次与分值):
| 对比 | 内容 |
|---|---|
| Android vs iOS 架构 | Android 四层=Linux 内核/系统运行库/应用框架/应用(开源);iOS 四层=核心操作系统/核心服务/媒体/可触摸层(封闭生态) |
| 权限声明 vs 签名机制 vs 沙箱 | 权限声明=Manifest 声明操作权限;签名=APK 数字证书标识开发者;沙箱=独立 Linux 进程空间隔离 |
| normal vs dangerous 权限 | normal=无实质伤害;dangerous=潜在威胁(读位置/电话簿),安装时提醒;signature=同签名才可访问 |
| 防反编译 vs 防调试 vs 防篡改 | 防反编译=加密+代码混淆;防调试=调试检测触发反调试;防篡改=数字签名+多重校验 |
| DroidDream vs BaseBridge | DroidDream=隐藏入其他应用、窃取信息+root 提权;BaseBridge=恶意扣费、强制关闭安全软件 |
| Android ASLR vs iOS 加密 | Android 4.0 后加 ASLR 防内存攻击;iOS 强制硬件 AES 加密不可关闭(DMA 内) |
| system.img vs data.img | system.img 分区只读;data.img 分区可读写(用户数据) |
| 引导 ROM vs LLB | 引导 ROM=只读、隐式受信任、含苹果根 CA 公钥;LLB=被 ROM 验签的底层引导加载程序 |
| ProGuard vs 加固商用工具 | ProGuard=免费 Java 字节码混淆工具;商用=腾讯乐固、360 加固、梆梆加固 |
| 网络约车 vs 网上购物权限 | 网络约车=位置+拨打电话;网上购物=无(最小必要权限示例) |