移动威胁情报平台(Mobile Threat Intelligence Platform, MTIP)
使用场景
我们是从事移动应用App的安全分析及威胁情报的,拟建设移动威胁情报平台。日常收到最多的攻击类型如下:
- 案例1:某类移动应用App,遭遇到了破解和重打包,并且植入了去广告的代码,并且绕过了签名认证。
- 案例2:某类移动游戏App,遭遇到了破解,被篡改了内存数据实现了一些外挂的功能。
这两类案例该用哪种语言描述,该如何描述,以及如何构建这样的威胁情报系统?
YARA 规则管理 恶意 APK 样本存储
判定某个新的黑灰产App样本的攻击链路(攻击手法组合)属于已有模型还是新的?
新的问题来了: 假如遇到了一个新的黑灰产App样本,该如何确定它的攻击链路呢?是咱们已经建模的还是新的?该如何分析确定?可以自动化结合人工。
攻击描述
在描述移动应用威胁情报方面,有以下几种常见和主流的语言、标准或框架,它们在不同维度提供了结构化的表达方式,用于建模、交换或分析威胁:
名称 | 类型 | 是否专注移动 | 适用场景 | 优势 |
---|---|---|---|---|
ATT&CK Mobile | 技术战术模型 | ✅ 是 | 攻击链建模、战术分析 | 攻击流程清晰、与 STIX 兼容 |
STIX | 情报表达语言 | ❌ 通用 | 情报交换、关联分析 | 可组合各种情报元素,图模型强大 |
CAPEC | 攻击模式库 | ⚠️ 部分适用 | 设计时威胁建模、安全需求分析 | 攻击模式分类系统化 |
MAEC | 恶意软件行为模型 | ⚠️ 部分适用 | 恶意软件分析与建模 | 描述粒度细致 |
OpenIOC | IOC 表达语言 | ❌ 通用 | 威胁检测、规则编写 | 易于部署检测 |
YARA | 特征规则语言 | ⚠️ 静态检测用 | 恶意代码特征检测 | 实用性强、精确定位 |
CVE/CWE/CVSS | 漏洞标准 | ⚠️ 部分适用 | 安全评估、漏洞通报 | 工业标准、广泛使用 |
推荐的组合语言框架:
职能 | 推荐语言/框架 | 理由 |
---|---|---|
攻击链建模 & 情报表达 | STIX 2.1 + ATT&CK for Mobile | 适合表达战术(Tactic)、技术(Technique)、威胁者(Threat Actor)、恶意软件、IOC 等结构化情报。STIX 还支持图谱建模、自动化交换(配合 TAXII)。 |
漏洞建模 & 开发阶段安全分析 | CWE + CAPEC | CWE 适合定位代码级漏洞(如硬编码、WebView 泄漏等),CAPEC 提供常见攻击模式描述。 |
恶意软件行为分析 | MAEC(或自定义 JSON 结构) | 如果你希望详细建模恶意 APK 的行为、持久化方式、反调试等,MAEC 是官方语言;若太繁琐,可以参考其结构简化为自定义 JSON 格式。 |
检测引擎规则 | YARA + OpenIOC | 结合静态和行为特征的检测,YARA 检测代码、类名、字符串;OpenIOC 用于表达基础 IOC(如 URL、IP、文件 hash)。YARA 更适合底层检测模块使用。 |
威胁等级评估 | CVSS(可选) | 可结合漏洞编号(CVE)对威胁严重性打分,用于面板展示/排序。 |
项目目标 | 推荐语言 |
---|---|
威胁建模 | STIX + ATT&CK Mobile |
样本分析 | MAEC / 自定义 JSON |
检测引擎 | YARA + OpenIOC |
情报交换 | STIX + TAXII |
漏洞识别 | CWE + CAPEC |
风险评级 | CVSS(搭配 CVE) |
拟采用Mobile ATT&CK(ATT&CK for Mobile)
或STIX 2.1
。
- JSON 格式(ATT&CK 技术路径结构)
用于建模、索引、前端展示、机器分析。
✅ 案例1:App 被重打包 + 去广告 + 签名绕过
{
"threat_case_id": "mobile-app-tampering-001",
"title": "App被破解、重打包并去广告",
"platform": "Android",
"tactics_techniques": [
{
"tactic": "Initial Access",
"technique": {
"id": "T1409",
"name": "Repackaged Application"
}
},
{
"tactic": "Defense Evasion",
"technique": {
"id": "T1406",
"name": "Code Injection and Modification"
}
},
{
"tactic": "Defense Evasion",
"technique": {
"id": "T1410",
"name": "Signature Verification Bypass"
}
}
],
"tags": ["apk_tamper", "ad_removal", "repackaging"],
"description": "攻击者对合法 App 进行解包、去广告注入逻辑、绕过签名校验后重新打包发布。"
}
- YAML 格式(适合配置文件 / 规则引擎)
yaml复制编辑id: mobile-app-tampering-001
title: App重打包 + 去广告
platform: Android
tactics_techniques:
- tactic: Initial Access
technique_id: T1409
technique: Repackaged Application
- tactic: Defense Evasion
technique_id: T1406
technique: Code Injection and Modification
- tactic: Defense Evasion
technique_id: T1410
technique: Signature Verification Bypass
tags:
- ad_removal
- tamper
- signature_bypass
description: >
攻击者对合法 App 进行去广告处理、签名校验绕过和重打包,
在第三方市场重新发布,用户被误导下载篡改版本。
- STIX Lite(只建 ATT&CK 关联的部分)
如果不想用全 STIX 2.1 的复杂结构,可以只构建轻量级 STIX-Like 的 JSON 结构,参考如下:
{
"type": "intrusion-set",
"id": "intrusion-set--repackaged-android-app",
"name": "Tampered Android App Campaign",
"techniques": [
{ "id": "T1409", "name": "Repackaged Application" },
{ "id": "T1406", "name": "Code Injection or Modification" },
{ "id": "T1410", "name": "Signature Verification Bypass" }
],
"target_platform": "Android"
}
总结对比
结构化方式 | 优点 | 使用场景 |
---|---|---|
JSON | 通用、易集成 | API、平台建模 |
YAML | 可读性强 | 规则配置、文件描述 |
图数据库结构 | 适合分析关系、攻击链 | Neo4j、图可视化 |
STIX Lite | 接近标准但不复杂 | 简化威胁情报平台结构 |
STIX 2.1 标准结构 | 最全最正式 | 自动共享、国家级平台 |
检测规则
案例1:App 被重打包 + 植入去广告代码 + 绕过签名认证
🔍 检测目标:
- 重打包 APK 的典型特征(
META-INF
中签名缺失或非原厂) - 植入广告屏蔽代码,如拦截
AdView
类或空实现广告 SDK 接口 - 存在签名校验绕过方法,如
SignatureChecker::checkSignature
被注释或始终返回true
🧾 YARA 规则模板
rule Repackaged_App_RemoveAds_SignatureBypass
{
meta:
description = "APK 被重打包,去广告且绕过签名认证的恶意行为"
author = "ChatGPT"
reference = "Case1"
severity = "high"
malware_family = "Repacked-Cheat-AdBlock"
strings:
// 重打包可能删除 META-INF 目录
$meta_inf = "META-INF/CERT.RSA" ascii
// 广告类或包名常见特征
$adsdk1 = "com/google/ads/AdView" ascii
$adsdk2 = "com/facebook/ads" ascii
$adsdk3 = "admob" ascii
// 签名绕过典型代码
$sigcheck1 = "checkSignature" ascii
$sigcheck2 = "return true;" ascii
condition:
// META-INF 缺失 + 广告类存在 + 签名校验代码被绕过
(not $meta_inf) and 1 of ($adsdk*) and all of ($sigcheck*)
}
✅ 案例2:游戏 App 被破解 + 内存篡改实现外挂功能
🔍 检测目标:
- 使用
Frida
,Xposed
类、或加载外部 so/dex - 使用内存篡改/inline hook 常用技术(
libsubstrate
,AndHook
,MemoryPatch
等) - 动态加载
DexClassLoader
,System.loadLibrary
等 - 常见外挂方法如
hookOnCreate
,getHealth
,getGold
🧾 YARA 规则模板
yara复制编辑rule GameCrack_MemoryPatch_Hooking
{
meta:
description = "游戏 App 被破解,存在外挂内存篡改行为"
author = "ChatGPT"
reference = "Case2"
severity = "critical"
malware_family = "GameHack-Patcher"
strings:
$frida = "frida" ascii
$xposed = "de/robv/android/xposed" ascii
$substrate = "libsubstrate.so" ascii
$andhook = "libandhook.so" ascii
$memorypatch = "MemoryPatch" ascii
$loader1 = "DexClassLoader" ascii
$loader2 = "System.loadLibrary" ascii
$hook1 = "hookOnCreate" ascii
$hook2 = "getHealth" ascii
$hook3 = "getGold" ascii
condition:
2 of ($frida, $xposed, $substrate, $andhook, $memorypatch)
and
1 of ($loader*)
and
any of ($hook*)
}
✅ IOC 检测规则(可单独或结合使用)
你还可以写一个通用 YARA IOC 检测规则,用于 IP、域名、URL:
yara复制编辑rule IOC_Sample_MobileApp
{
meta:
description = "IOC 命中(通信地址)"
author = "ChatGPT"
ioc_type = "IP/Domain"
strings:
$ip1 = "45.67.89.123"
$domain1 = "evil.example.com"
$url1 = "http://malicious.download.cn/payload.dex"
condition:
any of them
}
⚠️ 当然,IOC 信息建议来自你的威胁情报数据库(或你的平台收集的内容)动态生成并同步。
IOC
IOC库应包含的关键维度:
维度 | 类型 | 来源 | 说明 |
---|---|---|---|
IP地址 | 网络行为类 | 动态抓包、网络日志 | 用于数据上报、C2连接、远程控制等 |
域名(FQDN) | 网络行为类 | DNS请求、URL解析 | 易变,但结合注册信息、证书可追踪 |
URL | 网络行为类 | 抓包、代码内置URL | 包括钓鱼页、广告平台、恶意APK下载地址 |
签名信息(证书指纹) | 文件结构类 | 静态分析APK签名 | 如恶意签名公钥Hash、签名组织名等 |
包名(PackageName) | 应用标识类 | Manifest分析 | 如常见恶意包名:com.update.systemservice |
文件哈希(MD5/SHA256) | 样本识别类 | 所有静态样本 | 精准识别同一个文件;可存为白/黑/灰样本 |
文件路径 | 文件行为类 | 动态沙箱或frida hook | 如恶意创建的 /data/data/evil_dir/ |
系统调用/API行为片段 | 行为类 | 动态运行+hook | 如调用 exec 、su 、chmod 777 等 |
嵌入SDK特征 | 模块特征类 | 解包 & 静态扫描 | 如广告 SDK 伪装、推送 SDK 滥用 |
资源/字符串关键词 | 字符串类 | 解包 & 资源分析 | 如包含“root”、“Shell”、“Pay”、“监听”等关键字 |
自动化检测和提取手段:
检测方式 | 可提取IOC类型 |
---|---|
静态解包分析 | 签名、包名、字符串、证书信息、资源文件 |
Frida/Droidbox运行分析 | IP、域名、URL、API调用行为 |
抓包+SSL解密 | IP、域名、完整URL、证书信息 |
日志分析 | 文件路径、网络请求、系统调用轨迹 |
正则/YARA规则匹配 | 所有可落盘或可识别特征内容 |
行为特征提取器 | 关键事件模式,例如“后台静默下载”+“安装apk” |
自动化分析
判定某个新的黑灰产App样本的攻击链路(攻击手法组合)属于已有模型还是新的?
一、攻击链路判定的整体流程
总体框架:“静态 + 动态 +行为 + 特征 + ATT&CK 匹配 + 聚类”
阶段 | 工具/方式 | 目标 |
---|---|---|
🧩 样本解包 | Apktool / jadx | 提取静态资源与代码 |
🧬 特征提取 | YARA / 自定义扫描器 | 检测特征字符串、类名、权限、广告SDK等 |
🚦 动态行为分析 | 沙箱(如 Droidbox, Frida) | 收集运行行为、内存行为 |
📎 API 路径分析 | strace, logcat, hook | 识别系统调用链路 |
📐 映射到 ATT&CK | 技术映射(T编号) | 将行为/特征 → ATT&CK 技术 |
🧭 比对模板 | 与已有攻击链模板比对 | 是否匹配现有攻击模式 |
🤖 自动聚类建议 | 距离/相似度算法 | 若未命中 → 聚类建议为新链路 |
二、自动化分析与人工结合的方式
✅ 第一步:特征归一化(Feature Normalization)
提取一份 APK 样本的特征向量:
{
"uses_permission": ["READ_SMS", "RECEIVE_BOOT_COMPLETED"],
"suspicious_api": ["System.loadLibrary", "DexClassLoader", "exec"],
"embedded_sdk": ["admob", "klink"],
"code_modification": true,
"signature_bypass": true,
"yara_hits": ["repackaged_detect", "ad_removed"],
"dynamic_behavior": ["command_execution", "file_drop"],
"attck_techniques": ["T1409", "T1406", "T1410"]
}
✅ 第二步:攻击链建模比对
已有攻击链模型(来自 attack_templates)定义:
{
"template_id": "mobile-app-tampering-001",
"techniques": ["T1409", "T1406", "T1410"]
}
比对方法(推荐):
- ✅ 若新样本的
attck_techniques
⊆ 模型techniques
,则归为该攻击链。 - ✅ 可引入Jaccard 相似度评估技术重合度。
similarity = len(intersection) / len(union)
若相似度 > 0.8(可配置),认为是已有模型;否则,人工复核或自动打标为新模板。
🤝 三、人工复核 / 智能聚类建议
对于“未命中”的样本:
- 🔍 系统提示:与现有攻击链的相似度前3名;
- 🔍 人工判定是否归类到已有模型,或新建模板;
- ✨ 系统建议新模板的标题 + 技术组合(基于频次):
{
"suggested_title": "敏感权限滥用 + 签名绕过",
"suggested_techniques": ["T1412", "T1410", "T1406"]
}
系统构建
1. 数据采集层
- 收集 APK 样本、用户举报、下载站信息
- 抓取用户使用中崩溃/异常上报
- 自动化逆向、解包分析
2. 检测引擎层
- 静态检测:YARA + APK结构分析
- 动态检测:模拟器/设备运行行为分析 + Hook/Trace 监测
- CVE/CWE 检测模块(如检测是否调用未加固签名验证函数)
3. 情报建模层
- 使用 STIX 格式建模攻击事件(攻击者、技术、恶意行为、样本、指标等)
- 映射 ATT&CK Mobile 技术用于攻击链重构
- 存储情报为 JSON / STIX Bundle,可导出或共享
4. 情报查询与共享层
- 提供查询接口:根据 hash、APP 名、攻击类型检索历史攻击事件
- 支持导出 STIX 情报或 OpenIOC / YARA 规则
核心模块组成图:
+------------------------+
| 样本接入中心 |
| APK/Dex/IPK/行为日志等 |
+----------+-------------+
|
v
+------------------------+
| 自动化样本分析引擎 |
| 静态 + 动态 + YARA检测 |
+----------+-------------+
|
+------------------+-------------------+
| | |
v v v
+---------------+ +----------------+ +-----------------+
| IOC提取模块 | | YARA规则匹配引擎 | | 攻击链TTP识别模块 |
+---------------+ +----------------+ +-----------------+
| | |
+--------+---------+---------+---------+
| |
v v
+----------------+ +----------------+
| IOC库 | | ATT&CK映射库 |
+----------------+ +----------------+
↘ 可联动样本家族归因
和统计分析模块
每个模块职责说明
模块名称 | 核心职责 |
---|---|
样本接入中心 | APK/Dex/日志/网络流量上传、自动归档、去重、归类 |
自动化样本检测引擎 | 调用 YARA / 静态分析 / 动态沙箱(如DroidBox、Frida等) |
IOC提取模块 | 从样本中提取:IP、域名、URL、包名、证书、恶意行为路径等 |
YARA规则引擎 | 对文件内容、字符串、行为模式进行规则检测和标签识别 |
攻击链识别模块 | 把检测到的行为/函数调用 ↔ 映射到 ATT&CK TTP 技术 ID |
IOC数据库 | 存储所有提取 IOC、命中次数、置信度、来源、时间戳等 |
ATT&CK映射知识库 | 存储行为与 TTP(例如 T1409、T1410)之间映射关系 |
样本数据库 | 存储 APK 样本、hash值、检测标签、归因结果、家族等 |
统计与可视化模块 | 报表、趋势分析、热力图、攻击链画像、威胁家族分布等 |
##
系统设计 Prompt
系统设计 Prompt:Mobile Threat Intelligence Platform(MTIP)
请设计一个完整的 移动威胁情报平台(Mobile Threat Intelligence Platform,简称 MTIP),用于对移动恶意软件、灰产 App 进行样本分析、威胁情报建模与关联、IOC 管理、检测规则管理、可视化呈现等。该平台应支持自动化分析与人工协同,面向 Android 生态。
平台应包括以下模块并标明逻辑关系:
一、样本管理模块
上传 Android APK 样本(支持手动上传和 API 接入)
提取基础信息(包名、签名、哈希、时间戳)
标签与分类(恶意/灰产/正常、家族名等)
存储样本文件并支持下载
二、静态分析模块
APK 解包、DEX 分析、资源提取
签名校验与篡改检测
YARA 扫描(扫描恶意代码片段)
权限与行为声明提取
提取 IOC(域名/IP/URL/hash)
三、动态行为分析模块
使用沙箱或模拟器运行分析
Hook API、跟踪行为(Frida/Xposed等)
捕捉运行时敏感行为(网络连接、文件操作、后门命令等)
动态提取 IOC(流量中的域名/IP/文件)
四、IOC 情报库
支持添加与存储如下 IOC 类型:
哈希(MD5/SHA1/SHA256)
IP、域名、URL
证书签名、公钥指纹
恶意行为模式描述
支持 IOC 标签、来源标记、置信度标注
提供查询接口、展示频率与趋势图
五、YARA 规则管理模块
创建、编辑、分类管理 YARA 规则
针对样本自动应用规则
命中规则生成 IOC
规则按恶意家族或行为模式组织
六、攻击技术库(TTP)
基于 MITRE ATT&CK for Mobile 框架建模
支持 T1409(重打包)、T1406(内存篡改)等技术编号
每个技术可关联样本、IOC、YARA 规则
可视化 TTP 链路展示
七、情报关联与分析模块
自动构建 样本 ↔ IOC ↔ 技术 ↔ 家族 的关联关系图谱
支持通过某一个 IOC 反查所有关联样本与攻击链
支持相似样本聚类
八、检测与告警系统
新样本检测是否命中已知规则/IOC/TTP
提供实时告警机制
支持规则命中统计、频率追踪、威胁趋势图
九、用户门户与分析界面
总览面板(检测趋势、威胁排行、最新样本)
样本分析详情页(静态+动态行为)
IOC 检索页面
攻击技术库浏览器
可视化图谱界面(样本-技术-IOC)
十、系统接口与权限管理
提供 RESTful API(上传样本、查询IOC、拉取检测结果等)
用户角色管理(管理员/分析员/只读)
日志审计
十一、附加模块(可选)
外部威胁源对接(MISP、VirusTotal、AbuseIPDB等)
AI 行为分类器(恶意 vs 正常)
报告自动生成(支持 PDF、Markdown)
家族识别与命名统一模块
十二、网络情报采集模块(新增)
爬取网络、论坛、暗网、社媒中涉及移动恶意软件和攻击者活动的信息
自动提取并结构化 IOC、TTP、黑灰产 App 名单等情报
支持自定义爬取规则、定时任务与关键字匹配
可与 IOC 库、样本库、TTP 技术库做自动关联
十三、App 舆情监测模块(新增)
针对上传样本的包名/名称,实时监测社交媒体、论坛、新闻源等平台的舆情信息
可输出攻击热度曲线、潜在风险提示、攻击话题关键词云
与样本分析信息形成报告对照,辅助判断 App 是否为热点攻击目标
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/MTIP.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)