首页 / 新闻资讯 / 加固公司会不会留后门窃取代码,技术负责人必须审查的五个风险点
把核心代码交给第三方加固,本质上是一次“信任的让渡”。但在安全领域,信任应该建立在可验证的基础上。作为技术负责人,我整理了审查加固公司安全性的五个实操维度,每个都附上了具体检查命令和工具。

SaaS加固的流程通常是:上传APK → 云端加固 → 下载加固包。这个过程中,你的完整代码会明文传输并存储在厂商服务器上。即使协议里写了“不留存”,你也无法验证。
审查要点:要求厂商提供私有化部署版本,即加固工具链跑在你自己的服务器上,代码不出机房。360天御、几维安全、梆梆安全都支持这种模式。
检查命令:
# 确认加固过程没有外发流量tcpdump -i any -s 0 -w加固过程.pcap# 分析pcap文件,确认没有向厂商服务器上传APKtshark -r 加固过程.pcap -Y "http.request" -T fields -e http.host -e http.request.uri如果厂商只提供云端加固,要求出具数据销毁证明和第三方审计报告,确认加固完成后代码被彻底删除。
加固SDK有可能在运行时“打电话回家”。这不一定是恶意后门,可能是license校验、策略更新等正当功能,但技术负责人必须清楚它发什么数据、发到哪里去。
审查要点:用抓包工具分析加固后APK的网络行为,确认没有向未知服务器上报敏感信息。
检查工具与命令:
配置MITM代理(Burp Suite或Charles)后:

# 使用adb设置全局代理adb shell settings put global http_proxy 192.168.1.100:8080# 安装Burp证书后,运行应用并抓取所有请求# 检查是否有发往非厂商域名的请求,尤其关注上报内容更彻底的方法是直接在路由器层面做流量镜像分析:
# 用tcpdump在网关上抓取设备所有流量tcpdump -i eth0 host [设备IP] -w app_traffic.pcap# 提取所有目标IP和域名tshark -r app_traffic.pcap -T fields -e ip.dst | sort -utshark -r app_traffic.pcap -T fields -e dns.qry.name | sort -u合规性检查:如果加固SDK会上报设备信息(IMEI、Android ID等),按照《个人信息保护法》要求,必须在隐私政策中披露。让法务确认厂商的隐私政策覆盖了这些行为。

签名是Android应用的身份证。恶意加固可能在运行时替换签名校验逻辑,或插入自己的签名证书,这等于给攻击者留了“万能钥匙”。
审查要点:加固前后对比签名证书是否一致,运行时签名校验逻辑是否被绕过。
检查命令:
# 查看加固前APK的签名信息keytool -printcert -jarfile original.apk# 查看加固后APK的签名信息keytool -printcert -jarfile reinforced.apk# 对比MD5指纹,必须完全一致运行时验证加固是否破坏了签名校验:
# 用apktool解包后重新打包(不修改代码)apktool d reinforced.apk -o decompiledapktool b decompiled -o repacked.apk# 用原证书重新签名jarsigner -verbose -keystore my.keystore -signedjar repacked_signed.apk repacked.apk alias_name# 安装重打包版本,看应用是否检测到篡改并阻止运行adb install repacked_signed.apk如果重打包版本能正常运行,说明加固的防篡改机制形同虚设——攻击者可以植入恶意代码后重新签名分发。
没有厂商能保证100%不被攻破。关键在于:出事后多久反应?是否透明披露?
审查要点:要求厂商提供以下材料:
验证方法:在安全社区(先知社区、看雪论坛、Twitter安全圈)搜索“[厂商名] 漏洞/后门”关键词。重点关注:
合同里必须写入SLA条款:
法律条款是最后的防线。很多技术负责人只关注报价单,忽略了几十页的用户协议,这里面可能埋着雷。
审查要点:法务和技术负责人共同审阅以下条款:
数据使用条款:确认协议中包含类似表述:
“未经用户许可,服务商不会擅自披露用户数据。用户数据的所有权、使用权、收益权始终归用户所有。”
警惕:如果协议写“服务商可能通过使用用户数据,向用户提供服务”,这给了厂商过大的数据使用权。
责任限制条款:这是最大的坑。很多协议会写:
“服务商不会对因使用本服务所引起的任何间接的、意外的、直接的、特殊的、惩罚性的或其它任何损害承担赔偿责任。”
这意味着:如果加固后门导致用户数据泄露、财产损失,厂商可能只退你几万块服务费,而不是赔偿真实损失。这个条款必须谈判修改,至少加入“因服务商重大过失导致的安全事件,不适用责任限制”。
审计权条款:加入年度审计权利:
“用户有权每年一次,委托第三方安全审计机构对服务商的安全控制措施进行现场审计,服务商应予以配合。”
终止支持条款:确认厂商倒闭或停止服务时,有明确的过渡安排:
实操建议:把所有协议导出PDF,用grep搜索以下关键词快速定位风险条款:
grep -E "责任限制|间接损害|不承担|赔偿上限|服务商保留.*权利" agreement.pdfgrep -E "用户数据|收集|使用|分享|披露" agreement.pdfgrep -E "终止|停止|倒闭|破产|转让" agreement.pdf选加固公司不是买保险,而是引入一个深度嵌入你代码的“外部组件”。这五个维度的审查——本地化部署、网络行为审计、签名完整性验证、安全事件追溯、合同条款兜底——构成了一个完整的信任验证闭环。记住:**Trust, but verify.**