分享
一种建设APP网络安全纵深防御体系的综合方案研究_刘威.pdf
下载文档

ID:2728101

大小:1.99MB

页数:5页

格式:PDF

时间:2023-10-13

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
一种 建设 APP 网络安全 纵深 防御 体系 综合 方案 研究 刘威
科技与创新Science and Technology&Innovation862023 年 第 04 期文章编号:2095-6835(2023)04-0086-04一种建设 APP 网络安全纵深防御体系的综合方案研究刘 威(中国电信股份有限公司重庆分公司,重庆 401122)摘要:随着移动互联网的飞速发展,移动 APP 的开发呈现出爆发式的增加,使人们能够便捷地畅游互联网,但同时也带来了安全威胁,比如 APP 中间件漏洞、业务逻辑漏洞等可导致服务器被攻击、用户信息被窃取,甚至威胁到用户财产安全。渗透测试是黑客和白帽子(安全工程师)针对 APP、IT 系统进行安全评估、安全攻击的综合方法。安全人员利用渗透测试,可以发现业务系统中的各项安全漏洞,在漏洞被利用前整改修复。但是如果系统被黑客渗透测试挖掘到漏洞并被利用,可造成严重危害。针对APP 的安全解决方案,目前业界主流做法是采用第三方平台进行加固,可以防止 APP 出现被破解、篡改、劫持、盗版、数据窃取、钓鱼欺诈等各类安全风险,但是这种加固方法不能解决被渗透测试后导致未被发现的其余高危漏洞利用造成服务器权限被获取、SQL 注入、越权、用户信息泄露、资金损失等高危风险问题。主要研究了如何预防 APP 被非法渗透测试、预防 APP 被抓包破解等问题,从多个维度针对 APP 进行保护,从应用层面自我加固 APP,做到及时阻断未知安全风险,保障 APP 的安全性。关键词:APP;纵深防御;预防渗透测试;网络安全中图分类号:TN915.08文献标志码:ADOI:10.15913/ki.kjycx.2023.04.024当前互联网快速发展,用户可直接在网上下载日常使用的 APP,主要下载渠道包括 APP 运营者官网、第三方 APP 应用分发平台,比如华为应用市场、小米应用市场等。工信部2020 年 111 月互联网和相关服务业运行情况一文公布,截至 2020 年 11 月末,中国国内市场上监测到的 APP 数量为 346 万款。互联网上暴露的 APP 如此之多,相信还有部分公司的内部APP 未被统计,暴露公网的 APP 非常容易被黑客进行渗透测试,如果被非法挖掘到漏洞进而被恶意利用,会对用户信息、资产安全和公司系统安全造成比较大的影响。在各公司内部,安全部门针对网络安全防护和漏洞检测都有着严格的要求和制度。作为安全研究员,除了常规的软件源代码静态审计、APP 加固方式,还需要思考研究其他的红蓝对抗攻防方案。本文以平时安全工作为基点,先从黑客视角分析研究 APP 渗透测试技术,再从反渗透测试,与黑客进行对抗,研究如何预防 APP 被渗透测试,在重庆电信内部进行多角度建设针对 APP 安全的纵深防御体系。1APP 常见渗透测试方法移动 APP 安全评估主要采用自动化扫描、人工渗透测试,其中人工渗透测试主要是用抓包。1.1自动化扫描使用 MobSF、QARK、pinpoint 等工具扫描 APK静态程序,可以主要发现程序反编译、数据明文存储、任意代码执行、跨站脚本攻击等安全风险。自动化扫描根据分析打包后的二进制程序进行解压分析。分析各项配置文件,如果未加固,还可进行反编译源代码,深入自动化审计源代码。1.2手工模糊测试(功能测试)根据 APP 界面业务逻辑进行分析,寻找业务逻辑中的漏洞,比如密码找回功能,实现任意账号用户密码找回重置漏洞、验证码校验绕过漏洞等逻辑设计缺陷的漏洞。1.3手工模糊测试(接口数据包攻击)使用 BurpSuite 软件截取每个接口的数据包,分析具体的每个数据包接口、内容、参数。篡改数据包实现攻击,能够导致包括但不限于 SQL 注入、木马上传、目录遍历、任意命令执行等严重高危漏洞1。2常见网络安全防御针对上面提出的 3 点常见渗透测试,业界已经有基金项目中国电信重庆公司 2021 年创新研发项目资金资助(编号:21CQQYYF0002)Science and Technology&Innovation科技与创新2023 年 第 04 期87常见的针对性防御手段。2.1防止自动化扫描使用 WAF、IDS 等应用层和网络层防火墙工具进行自动防御,根据用户 IP 访问次数和特殊 URL、数据包特殊敏感字段进行综合研判,进行单次阻断攻击行为和封禁 IP 操作。2.2防止手工模糊测试(功能测试)结合自动化测试框架 Selenium、Appium 开发企业自动化测试系统进行固定模板路线测试和非固定路线测试,724 h 不定期点击测试 APP 所有功能点,提取功能列表,抽取每个功能数据包,针对提取数据包进行自动主动替换敏感字段进行模糊攻击,最终自动化测试系统、自动研判输出自动化报告,人工根据报告确认是否存在漏洞。2.3防止手工模糊测试(接口数据包攻击)接口数据包攻击,总体思路是采用人工抓包,以攻击者视角查看 URL 栏、header、cookies、数据包体等位置是否可进行注入、替换、遍历以及逻辑等漏洞。预防该方法常规是使用添加 sign 字段,针对数据包内容进行签名,然后将 sign 放入 json 字段或者 header 中单独传递到后端,后端根据该 sign 去校验数据包是否被篡改,保证接口数据真实性。另一种业界常用方法是针对接口数据包进行全加密,采用 AES、3DES 或者国密 SM4 等对称加密算法和国密 SM2、RSA 非对称加密算法进行加密,后端根据对应算法解密,以此确保接口数据真实性。3常见网络安全防御的缺点前面介绍的 3 种常见防御确实可以阻止很大一部分黑客攻击行为,可有效降低 APP 被渗透测试后发现漏洞的概率。但是结合 3 种方案针对性防御,成本太高,需要所有软件开发者具备完善的安全常识,熟悉安全左移相关知识。如果某一个功能点由于开发者疏忽未进行加密或者未进行严格校验,均可能被攻击者突破,进而导致其余防御功亏一篑。4新方案探索与实践传统预防方案效果不佳且成本较高,本次笔者将从多维度进行探索更加高效、更加简洁的预防 APP 被渗透测试(攻击)的方案。具体从以下几个维度进行开展试验。4.1(安全左移)源代码静态审计在开发阶段,从 2021-06-01 开始,安全部门要求各研发中心团队结合静态源码审计工具和人工源码审计,将安全左移,按照源码自动化审计工具报告建议,不断迭代优化系统,经历了 4 个月。此办法可封堵开发阶段大部分常规漏洞和业务逻辑漏洞,比如某内部电信业务办理系统,包含 APP 和服务端系统,如图 1所示,从最初的缺陷数总量变化 2 393 个到 323 个,缺陷数压降 87%,效果明显。经过仔细分析发现,剩下的大多属于误报,结合实际情况无需进行整改。图 1安全左移,静态源码审计缺陷数变化使用电信集团内部云道安全中心提供的静态源码审计工具,针对源代码项目和打包生成后应用进行静态扫描,结合语义和正则匹配调用,发现脆弱性源码和配置文件。人工 CodeReview,每项目指派 2 名高级开发工程师定期针对新提交的 git 仓库源码进行人工代码审计,弥补静态审计工具不足。4.2加强源码保护针 对APP内 原 生 代 码 采 用OLLVM(Obfuscator-LLVM 是瑞士西北应用科技大学安全实验室于2010年6月份发起的一个针对LLVM的代码混淆工具,增加对逆向工程的难度)进行混淆保护,提高反编译后代码审计难度。现在公司 APP 开发主要有原生 APP 开发技术、混合开发 Hybrid App 技术(结合原生 APP 和 WEB 技术开发的混合技术开发的 APP),重庆电信内部 IT 系统也有多款应用采用了混合技术进行开发。针对 HybridApp 技术,笔者们创新性地对 JavaScript 代码部分也进行混淆加密保护。采用 JS 加密技术可最大化地保护前端逻辑和秘钥,加大前端审计难度,提高前端代码安全性。如采用商业收费技术瑞数 JS 加密,或者免费的 jsjiami 网提供技术。为了控制成本,在研发中心内部,笔者们采用免费的 jsjiami 网的 JS 加密功能。JS 加密前:(function(w,d)alert(我是加密前的弹窗);)(window,document);JS 加密后:备注:因加密混淆后数据填充导致代码变成,此处为节选部分加密后的代码。JS 加密后效果(源码)如图 2 所示。var_0 xodW=.v6,_0 x50cf=_0 xodW,MS3Dszk=科技与创新Science and Technology&Innovation882023 年 第 04 期,I8O0wpM7wpY=,HMOQa8KOVA=,w4Zzw7XCiQ=,fcKSKsOpUA=,w4DDnhwAwq0=,wqsTw5XDgnc=,w7HDiA0HwrI=,w7jCr0PDng=,w5XDhg3CpGo=,XMOcw5xS,TmNRPz8=,fE8fwp1I,w6zCt8K1eUo=,w6hPREE=,w5fDgQIFwppMw7Y=,w6MYwqk8Ug=,wpgHYhFVZEVWwqo=,fcKrBcKawqzCvsKP,UsKxaBpC,QcKxBMOow4c=,e0DCg8OaFA=,PMKRw5pzw67DmnkWZA=,w7/CmsKNY34=,UmPDl21s,GmtZwqgiAA=,w4MTw6PDlkZjw5Y=,KsKQw5Blw6fDn3I=,fMKgDcO/w6Y=,Y8KGHsOOw5E=,BcKRwonCmg=,asK2CsKKwqY=,w7ZAUEA=,I0BcAsOq,LMKNw4x5w7o=,PTvDuSgwBcKsc8K1,w555w6E=,w6chwq05aA=,wpwPcRhc,QsKgBsOw,VmjDmktLVg4=,OWt4w4srwqsMV8OG,wrJQa8KW,QEbCo8OnMA=,wo4hVMKqwoo=,cRI2w40w,HxnDtR0H,wrU6VyxP,US86w6gJw4RiLcKgwoTDoW/DrMK1QhQgw5xswoQ8worCuA=图 2JS 加密后效果(源码)加密 JS 运行结果如图 3 所示。图 3JS 加密后运行结果可观察到 JS 代码加密前和加密后差距较大,完全隐藏了真实的业务逻辑,并可正常运行。完整 APP 再次进行加固,保证 APP 整体安全。国内主流第三方厂家如梆梆安全、爱加密、360 加固等都提供 APP 加固产品。APP 加固可防止泄露敏感配置信息和其他业务逻辑代码信息,是一道源码保护的最终防线。APP 加固增大反编译 APP 难度,将大部分攻击者拒之门外。重庆电信 APP 同时采用了爱加密和梆梆加密,不同业务采用不同的加密规则。如图 4 所示 APP 经过加固后隐藏了真实源代码,反编译后无法查看。随着加固引擎的升级,脱壳难度越来越大2。图 4APP 加固后反编译结果4.3(动态运行检测)时刻检测 APP 运行环境安全性我们在 APP 运行时,activity 动态切换时刻,持续检测 APP 是否运行在虚拟机中,比如检测夜神模拟器、网易 MuMu 模拟器等常见国内外模拟器环境。我们在开发侧加入了如下前置检测代码,一旦检测到存在虚拟机内运行特征自动闪退并推送设备环境等信息到APP 服务端,联动风控产生告警,人工跟踪复核是否恶意攻击。检测 APP 运行环境中是否存在 ROOT 权限,存在ROOT 权限的环境往往不安全,现在各大厂商禁止解锁 BootLoaderh 和 ROOT 设备,就是为了提高设备安全性。因此当检测到 ROOT 环境后,自动闪退并推送设备环境等信息到 APP 服务端,联动风控产生告警,人工跟踪复核是否恶意攻击。检测 APP 是否存在关键 HOOK 函数,加入了XPOSED、Frida HOOK 检测,若被 HOOK 应自动闪退并推送设备环境等信息到 APP 服务端,联动风控产生告警,人工跟踪复核是否恶意攻击。检测 APP 是否存在流量代理和 VPN 代理,存在VPN 代理和流量代理(前端开发加入了流量端口转发、VPN 环境检测),说明该 APP

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开