人们上网习惯慢慢从PC端转向了移动端,越来越多的智能设备、移动终端、各种各样的应用app开始渗透生活的方方面面,普及广泛必然黑产集聚,安全也就接憧而至。
移动应用存在较多不安全因素,包括账号密码被盗取、合法权益被滥用等。
这些现象的造成是因为App的开发者深刻懂得安全的人少之又少。所以借助加固或检测工具在开发阶段进行安全测试和检测,及时发现应用程序缺陷和安全漏洞,减少不必要的安全风险;在应用发布阶段进行应用安全加固,增加应用安全强度,防止应用被破解和二次打包;在运营阶段进行渠道监测,及时发现盗版应用,保障自身合法权益不受恶意损害。
一、移动应用全生命周期安全
我们今天简要探讨移动应用安全开发和测试的解决方案。
二、移动应用安全测试
1、自动化检测
我们需要一个自动化检测平台来提高漏洞检测的效率,并确保检测的覆盖全面。可以从如下几点进行选择我们需要的移动应用安全检测平台。
2、渗透测试
渗透测试一般会和漏洞扫描结合开展。对App的渗透测试内容可以从云、管、端的维度进行划分:
3、代码审计
代码逻辑设计缺陷或错误一般是由程序员的疏忽大意造成的。比如判断时因考虑不周而少漏条件,当遇到特殊数据和情况时,导致程序出现不可预估的错误。
对输入的数据没有进行有效的检查。或者是进行过检查但是检查不周,也可能是处理不当,此类问题最常造成缓冲区漏洞的出现。比如在对某账号进行密码的设置输入时,如果程序未对密码的长度进行限制,用户则可能出于安全考虑输入超长的密码,由此可能会导致存储密码时对其它的数据进行覆盖,引发一系列的问题。
算法本身的漏洞。实现源代码的安全无漏洞,首先应确保在写代码时进行严密的算法,算法本身出现了漏洞,则必然导致诸多问题的存在。比如采用比较简单的加密算法,会为信息泄漏留下操作的可能性。
三、移动应用安全加固
和IOS系统的封闭相比,安卓系统的开源以及基于java的特性都使得android app更容易被反编译。被反编译后的代码被不法分子加入恶意代码逻辑后重新打包发布,将可能给企业造成重大损失。针对这些问题常见的解决方案是代码混淆、加壳、反调试和签名验签等。
在实际的应用中,厂商给出的方案往往是上述几种方案结合使用。
等级 |
风险 |
攻击人群分布 |
建议 |
1 |
使用apttool/dex2jar等工具查看java代码 |
99% |
对DEX文件加密,或将核心代码封装到SO文件 |
2 |
使用DexExtractor等自动脱壳工具通过内存数据动态提取java代码 |
10% |
集成内存保护和反调试功能,采用java2c技术将java代码转化为C代码,并进行SO加壳保护 |
3 |
可修复ELF文件,并使用IDA工具反编译还原后的SO文件,分析核心代码逻辑 |
2% |
对SO文件进行代码混淆加密保护 |
4 |
可剔除SO文件中的混淆代码,自动化还原原始代码 |
0.5% |
对核心代码进行虚拟化加密保护 |
5 |
可分析自定义CPU指令,并自动化还原原始CPU指令 |
0.001% |
定制升级虚拟化方案 |
APP加固的目的是提升对手的攻击成本,如果通过加固能够让一部分人知难而退,OK,加固的目的就算达到了。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/te-aq/8335.html