
网络安全应用安全隐私合规CLI静态分析逆向工程移动开发【免费下载链接】NOIR手机隐私审计用 adb 扫出 Android 应用的权限、上报端点与数据流向并给出可回滚的处置。Desktop Android leak audit: permissions, endpoints, data flows, reversible fixes.项目地址https://gitcode.com/Verlintas/NOIR点击查看免费下载NOIR 是一款跑在电脑上的手机隐私审计工具通过 adb 扫描 Android 应用的权限、上报端点与数据流向生成可复现的隐私报告。每份报告里的核心数字就是风险评分score。本文带你完整看懂 NOIR 风险评分是如何计算的以及 Rules、Classifier、Exposure 三大核心组件各自承担打分、归类、串数据流的分工。一、扫描流水线风险评分从哪里来NOIR 先筛选出「有网络权限 敏感权限」的候选应用然后对每个应用并行做三件事Main.kt组件职责回答的问题Rules风险打分这个应用有多可疑Classifier类别 厂商识别它是谁、干什么用的Exposure数据流关联哪类数据可能流向哪个域名评分算出后NOIR 用--min score参数过滤低分应用并按分数降序排列——仪表盘里的 TOP FINDINGS 榜单就是这么排出来的。二、Rules 打分规则拆解基础分 加权分评分逻辑完全写在 Rules.kt 的score()函数里没有机器学习、没有黑盒权重——每一条结论都能追溯到 APK 里真实存在的权限或字符串。1. 基础分敏感权限数量应用声明的权限先过一遍敏感权限清单Rules.kt包括ACCESS_FINE_LOCATION精确定位、READ_CONTACTS通讯录、READ_SMS短信、RECORD_AUDIO麦克风、CAMERA相机等 20 多项。每命中一个敏感权限基础分 1。2. 加权项高危信号额外加分信号加分为什么高危QUERY_ALL_PACKAGES2可以枚举你手机上的全部应用列表READ_PRIVILEGED_PHONE_STATE3特权级设备标识权限FOREGROUND_SERVICE_MEDIA_PROJECTION4录屏能力常被滥用做屏幕监控系统应用isSystem2权限更多、无法卸载需重点审视可调试debuggable2生产环境不该开易被利用存在命令型端点2应用能远程执行指令存在上报型端点3数据确实有出口3. 端点如何判定两条正则说了算NOIR 从 APK 的 dex 里提取 URL用两条正则区分用途Rules.kt上报型 /upload、/collect、/track、/stat、/beacon、/log、/report 命令型 /command、/cmd、/dispatch、/execute、/script注意正则要求这些词出现在路径段的开头前面是/后面是/、?或结尾所以普通文本里偶然出现 track 一词不会误报。4. 算分示例10 分是怎么来的假设一个系统应用声明了 3 个敏感权限CAMERA、READ_CONTACTS、ACCESS_FINE_LOCATION代码里有一个/report端点和一个/cmd端点信号得分3 个敏感权限3系统应用21 个上报型端点31 个命令型端点2合计10三、Classifier 分类识别它是谁、干什么用的类别和厂商信息不参与分数计算但它们决定了处置建议和报告的可读性实现都在 Classifier.kt。1. 类别识别 category()三层判断白名单直查KNOWN 映射表 里预置了com.miui.analytics → 遥测/统计、com.tencent.mm → 社交等常见包命中直接返回关键词匹配按包名和端点 URL 里的关键词打分例如包名含market/vending判为「应用商店」URL 里出现analytics/telemetry/beacon判为「遥测/统计」出现ads/pangle/sigmob判为「广告」兜底系统应用归「系统」其余归「其他」。共 17 个类别Category 枚举遥测/统计、广告、安全/杀毒、AI/语音、定位/地图、推送、应用商店、输入法、支付、金融、购物、影音、社交、游戏、工具、运营商、系统。2. 厂商识别 vendor()两轮归因厂商识别采用「两轮走」策略vendor() 函数第一轮看包名com.tencent.mm就是腾讯不管它内嵌了哪些 SDK 域名——包名是权威证据第二轮看域名投票包名对不上时统计上传 host 里有多少个匹配各厂商域名后缀VENDOR_DOMAINS 表 覆盖小米、OPPO、华为、腾讯、字节、阿里等 24 家得票最高的厂商胜出。一个关键细节schemas.android.com、github.com这类基础设施域名会被忽略Domains.kt否则每个 APK 都会因为内嵌的schemas.android.com/aapt被误判成 Google。四、Exposure 数据流关联从权限到数据流向这是 NOIR 最有价值的一环回答的不是它申请了什么权限而是什么数据能离开这台设备。1. 权限 → 数据类型Exposure.kt 内置了一张映射表把权限翻译成 12 种用户数据类别数据类型对应权限示例位置ACCESS_FINE_LOCATION、ACCESS_BACKGROUND_LOCATION通讯录 / 短信 / 通话记录READ_CONTACTS、READ_SMS、READ_CALL_LOG麦克风 / 相机 / 屏幕RECORD_AUDIO、CAMERA、FOREGROUND_SERVICE_MEDIA_PROJECTION应用列表QUERY_ALL_PACKAGES、PACKAGE_USAGE_STATS设备标识READ_PHONE_STATE、READ_PRIVILEGED_PHONE_STATE文件/相册 / 日历 / 账号READ_MEDIA_IMAGES、READ_CALENDAR、GET_ACCOUNTS2. 能力 × 出口 泄露路径leaks() 函数 的关联规则很克制没有上报端点的应用leaks 直接为空——只有能力、没有出口不算泄露。一旦存在上报型端点就输出「数据类型 → 可上传的 host 列表」的配对结果例如位置 → a.stat.example.com, b.report.example.com。报告里的 leak paths 一栏就来自这里。上图中com.miui.securitycenter风险分 36它是系统应用2、声明了大量敏感权限、同时存在 12 个上报型端点3和 3 个命令型端点2——多类加权项叠加最终登顶榜单。五、评分如何用过滤、排序与处置建议过滤与排序noir scan --min 15只保留分数 ≥ 15 的应用报告 report.md 的 Overview 表格首列就是 score驱动处置建议Advisor.kt 依赖分类结果生成动作——遥测/广告类应用进入「人工复核」系统组件若同时具备录屏能力和上报端点则建议「禁止录屏」appops 级别可回滚多上报端点的应用给出「DNS 拦截」候选导出域名清单上报域名还会被 Domains.kt 分成三档——可直接拦截的追踪域名、需人工判断的域名、千万别拦的功能域名推送/登录/更新/支付避免一拦就断推送。六、核心文件索引文件说明Rules.kt敏感权限清单、端点正则、score() 打分函数Classifier.kt17 类别识别与 24 厂商归因Exposure.kt权限→数据类型映射、泄露路径关联Models.ktAppEntry 数据模型score、leaks 字段Advisor.kt由分类与端点生成处置建议Report.ktJSON / Markdown 报告渲染Main.kt三组件的调用与排序入口总结NOIR 风险评分的设计哲学是简单且可解释敏感权限计基础分高危权限、系统属性、命令端点与上报端点按固定规则加权Classifier 补充它是谁的上下文Exposure 把静态证据串成数据 → 出口的泄露路径。没有黑盒模型每一分都能追到 APK 里的具体权限或字符串——这也是审计工具该有的样子。✅赞分享网络安全应用安全隐私合规CLI静态分析逆向工程移动开发【免费下载链接】NOIR手机隐私审计用 adb 扫出 Android 应用的权限、上报端点与数据流向并给出可回滚的处置。Desktop Android leak audit: permissions, endpoints, data flows, reversible fixes.项目地址https://gitcode.com/Verlintas/NOIR点击查看免费下载相关推荐JTAppleCalendar隐私影响评估识别与缓解iOS日历库的隐私风险JTAppleCalendar隐私影响评估识别与缓解iOS日历库的隐私风险 JTAppleCalendar作为iOS平台最受欢迎的第三方日历库之一为开发者提移动开发UI组件SpoofDPI安全评估隐私保护与潜在风险分析还在为网络访问限制困扰SpoofDPI可以帮你绕过DPI深度包检测技术但使用前你需要了解它的安全特性。读完本文你将全面了解这款工具的安全机制、隐私保护网络安全为什么选择 GitHub Action for Serverless Framework5大核心优势解析为什么选择 GitHub Action for Serverless Framework5大核心优势解析 GitHub Action for Serverle上一篇静态vs动态PreciseCoder-9B-i1-GGUF与静态GGUF量化质量差多少实测对比下一篇5分钟上手一行命令把整个代码仓库变成能点能搜的交互架构图创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考