APP检测与加固

admin 2023年5月1日03:42:03评论47 views字数 4265阅读14分13秒阅读模式
APP检测与加固

在过去的近十年里,我们经历并见证了移动APP的兴起与发展。随着移动互联网与智能手机的迅速普及和不断进化,移动APP迎来了属于它自己的开发热潮,几乎席卷了各行各业。从社交娱乐到办公商务,各式各样的移动APP逐渐成为人们日常生活中必不可少的一部分。

对于APP的用户而言,日常生活和工作中的几乎所有需求都可以在琳琅满目的APP中得到满足,仅仅依靠一部智能手机似乎可以完成任何事情。

对于APP的开发者来说,来自庞大用户群体的新的需求,又在促使着他们不断丰富APP的功能。

无论是APP的使用者还是开发者都在这个过程中受益。

然而随着移动APP数量的日益激增和更新频率的愈发加快,移动APP的安全属性却并没有跟随APP本身得到相应的成长。疲于应对需求压力的开发者们面对移动安全要求分身乏术。

同时,移动APP安全本身作为较为新兴的安全领域,大部分安全从业者们对此显得有些手足无措。在这种环境下,各路恶意攻击者便有了可乘之机。

2018年,国内某银行网银APP存在的安全漏洞被恶意利用,使得不法分子获取到储户的账户信息进行贷款获利。

2020年,国外知名股票交易平台Robinhood的APP中也出现了安全漏洞,恶意攻击者借此机会访问了大量用户账户,并且盗窃了巨额账户资金。

而在近几年的国内各项攻防演练活动中,移动APP以及国内特有的微信小程序成为了攻击队获取情报、甚至是直接攻破系统的重要突破口,让广大的攻击队体会到了丰收的喜悦。

APP检测与加固
图1:移动APP正在逐渐遭受更多的网络攻击

(图源Freebuf官网)

移动APP薄弱的安全防护,加上攻击者们日益精进的攻击技术,这些都使得移动APP安全问题成为一项严峻而又不可忽视的挑战。为了能够规避移动APP的安全风险,行业内开始寻找强有力的安全解决方案。

通常情况下,移动APP的安全解决方案会包含检测与加固两项内容。

APP检测与加固

什么是检测和加固?

对于移动APP而言,检测的目的,是尽可能多的发现移动APP中存在的安全漏洞,这些安全漏洞如果没有及时得到修复,就会成为攻击者顺利实施攻击与破坏的大门入口,效果无异于引狼入室。

而加固的目标,则是为移动APP增加更多的安全保护。对于APP的关键代码和数据采用对应的加固保护措施,在层层防护之下,提高攻击者进行分析的门槛和成本,既是保护APP中的代码和数据难以被还原的手段,也是一种降低受到真实攻击的方式。

1

移动APP检测

移动APP的检测技术,是针对移动应用(包括移动APP、小程序等)、SDK代码中出现的各种安全漏洞进行安全分析的一种方法。

常见的检测分为以下两类:静态检测与动态检测。

APP检测与加固
图2:移动APP的静态检测与动态检测
静态检测

顾名思义,静态检测过程中并不会实际运行移动APP,而是对代码级层面上进行检测分析,能够对移动APP的配置文件、资源文件进行检测,从而验证移动应用是否满足规范性、安全性、可靠性、可维护性等重要安全指标。

在这个过程中,存在安全隐患的代码会被检测工具或平台进行摘录,从而为进一步的分析提供数据依据。

APP检测与加固
图3:对没有加固的APK文件进行解包分析

在这个过程中,比较常见的收获就是敏感数据信息泄露、组件导出漏洞等中高危漏洞或风险。

通常情况下,组件导出漏洞可能会导致例如登录界面绕过以及敏感数据信息泄露等风险。敏感数据信息泄露的风险不言而喻,账户数据(账号密码)和用户数据(身份证号等)都有可能被攻击者从此处窃取,万一是云平台访问密钥这一类密钥信息泄露可就遭老罪了。

APP检测与加固
图4:APK文件分析得到阿里云AccessKey和SecretKey

除此之外,静态检测也能够最快速地向移动APP的业务方展现APP目前的安全防护状况。例如:APP目前是否会被反编译获取核心代码、是否能够恶意篡改并二次打包分发、是否存在内存抓取泄露敏感数据风险、是否满足安全隐私合规要求等等。

静态检测最明显的特点,就是检测耗时短,同时又能保证较大的检测覆盖面。对于长期处于快速迭代的移动APP来说,静态检测,尤其是自动化的静态检测,是较为理想、比较容易实现的检测方式。

动态检测

与静态检测不同,动态检测会涉及到移动APP的安装与运行。通常情况下,动态检测会通过沙箱模型、虚拟机等方式,将移动APP安装到一个定制化的虚拟运行环境中,模拟真实的运行环境,对移动APP常见的脆弱点进行检测分析。从移动APP的安装和运行过程中,监测和分析移动APP出现的操作、通讯、数据交互等行为,并记录从外部观察得到的移动APP执行过程。将以上所有收集到的数据进行分析,从中发现APP所表现出来的恶意行为。

相较于静态检测,动态检测针对性更强得出结果的参考价值更大,是一种更为高级的检测方式,但相对而言耗时也更长

APP检测与加固

对于一款移动APP而言,动静结合的检测方式,通常情况下能够对APP整体的安全状况有一个比较全面的掌握,根据检测结果中的具体内容,清晰地了解APP目前是否存在安全风险与合规问题。

我们知道,移动APP在上架国内应用市场前,都需要通过应用市场的安全检测后才能够顺利上架。移动APP检测提供的信息,可以协助业务方对APP评估安全等级,避免APP遭受下架、罚款诉讼等劳财伤神的后果。这在目前针对移动应用的安全合规要求日益严格、安全规范和法律法规不断出台更新的当下,显得尤为重要。

一款移动APP在经过检测后,经常会发现存在诸多的安全风险问题,导致难以顺利上架应用市场。此时,业务方应根据检测报告中给出的各个安全问题的细节,以及对应的修复建议,联系开发团队和安全团队,联手对相关安全问题进行分析、评估和修复。最理想的情况是能够修复或通过缓解手段来规避所有发现的安全风险。

那么对于一款移动APP而言,进行安全检测是不是就足以保证APP的安全性呢?在实际情况中,这个问题的答案是否定的。

对于大多数攻击者而言,面对一款移动APP时,攻击者会进行包括抓取网络流量包、逆向和调试APP程序在内的多种分析手段,这些都是攻击者进行漏洞挖掘的重要步骤。APP检测手段在面对这些分析手段时束手无策,这时候就需要对移动APP进行加固。

2

移动APP加固

移动APP的加固,是指对移动APP使用包括代码混淆、加密、完整性校验、反调试、防篡改等技术进行处理,增加攻击者对于移动APP进行逆向的难度和攻击成本,从而保护移动APP不会被轻易地破解或修改。

应用加壳

加壳的主要目的是将移动APP打包成一个加密的壳,APP所使用的源代码和资源文件通常都会被加密而后嵌入到壳内,在运行过程中对其进行解密和加载。普通用户仍然可以安装和使用APP,但对于攻击者而言,想要进行逆向分析等步骤就需要首先突破这层壳,这无疑提高了分析的门槛。

APP检测与加固
图5:常见的VMP壳的原理及执行流程示意
反调试

有时APP没有进行加壳,或者加的壳被攻击者砸壳成功之后,攻击者就可以通过挂载调试器进行动态调试,在调试的过程中,APP的关键功能的具体步骤以及APP内外的数据交互,对于攻击者而言一览无余。

而反调试可以检测调试器的存在,并通过例如退出程序或修改调试器行为等方式,阻止攻击者对APP进行调试。

APP检测与加固
图6:反调试机制检测到USB调试行为后断开调试连接
代码混淆

当APP设置反调试防护,难以进行动态调试时,攻击者可能会转而尝试直接分析反编译得到的APP源代码,试图通过源代码所呈现出来的信息进行分析,寻找可以利用的安全漏洞。在这种情况下,代码混淆就能起到很好的保护效果。在不影响APP的正常功能的前提下,代码混淆会修改源代码中的变量名与函数名,同时会调整修改代码的整体结构。

在这种环境下,攻击者反编译得到的代码基本上已经面目全非。作为攻击者的人类,面对大量无意义的符号名称和错综复杂的真假控制流程,反编译分析的难度可想而知。

APP检测与加固
图7:反编译后得到的代码中包含大量伪造的无意义函数
APP检测与加固
图8:加固后难以辨认的JavaScript文件
防篡改

对于一款APP来说,除了出现安全漏洞被攻击者利用以外,APP的代码与资源文件是否会被篡改也是需要重点关注的内容。APP运行所需的程序文件和资源文件,都需要确保自身是完整而没有被篡改的,才能让用户可以放心地使用。防篡改机制通过比对签名等方式,检查APP各部分的完整性,以此来保证APP是否受到篡改攻击。一旦检测到存在签名不一致或其他表示APP被改动的信号,说明APP已经不再是曾经的那个APP了,这时APP可以采取例如退出报错的方式,阻止用户继续使用这个危险的APP。

无论是安卓、iOS系统下的移动APP程序,或者微信小程序等基于H5的应用,针对其中不同部分都可以采取与之相对应的加固方式进行保护,在层层防护下攻击者实施攻击的时间与物质成本会出现指数级的上升。

APP检测与加固
总结

不可否认的是,移动APP的功能愈发复杂强大,使用量与日俱增,与此同时也开始逐渐遭受更多的安全攻击。如何能在快速迭代的移动APP环境之下,及时地为用户保障APP的安全性,俨然成为业务方不可忽视的重要内容。

自动化APP检测与加固的能力可以很好的满足业务方对于快速上线与安全保障的双重需求,在提升APP安全能力的同时又能够很好地确保效率。

帆一云平台已经上线了移动APP安全检测服务。为了让各位能够更好地理解和体会这种便捷高效且强大的检测能力,帆一云为各位提供免费试用的宝贵机会。如果各位正处于APP无法顺利登陆应用市场的苦闷中,又或是挣扎在APP被不断破解攻击的困境中时,请千万不要错过。

帆一尚行是上汽集团为数字化转型而设立的创新平台,以“消融产业边界,释放数据价值”为己任,聚焦安全云、自动驾驶云、智能制造及产业互联网技术领域,赋能行业数字化转型,加速产业数字化、数字产业化进程,积极推动社会数字经济发展。作为一家发展多元化业务的科技公司,帆一尚行为企业、开发者和政府机构等提供安全、可靠的数据计算与处理能力、专属云产品与服务。

帆一尚行安全团队通过产品+服务的形式,为企业提供一站式的网络安全解决方案。安全团队具备深入的安全技术知识和实践经验,在企业合规咨询、安全建设、安全攻防和应急响应方面有着丰富的经验。帆一将企业安全能力和帆一云安全能力进行融合,以双向协同的模式,为企业提供高效、常态化的安全服务。

帆一云APP应用加固与检测平台通过自动化安全检测能力,能够为移动应用提供高效、准确和完整的安全分析报告,协助开发人员与监管人员迅速了解和掌握移动应用的安全状况。与此同时,借助平台的加固能力,可以为移动应用快速填补安全能力,满足市场监管的安全要求。

本期专家介绍

原文始发于微信公众号(上汽集团网络安全应急响应中心):APP检测与加固

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月1日03:42:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   APP检测与加固http://cn-sec.com/archives/1698127.html

发表评论

匿名网友 填写信息