我正在使用flutter_jailbreak_detection来检测flutter应用程序中的Roots,但是攻击者能够使用Frida脚本绕过它。 Frida框架非常强大,在运行时对代码进行检测并不困难。当攻击者知道需要在运行时挂钩的公共方法名时,就更容易绕过他想要绕过的任何方法。对于不了解Frida的人和不了解Frida的人,只需访问their website: 将您自己的脚本注入黑盒进程。挂钩任何函数,窥探加密API或跟踪私人应用程序代码,无需源代码。编辑,点击保存,并立即看到结果。所有这些都没有编译步骤或程序重新启动。 攻击者因为他的生活方便,由于你的检测是用一个工具,存在于公共领域,因此攻击者可以了解如何工具检测越狱设备和挂钩的方法,使其始终返回False. 如果你不知道攻击者是如何做到这一点的,那么我邀请你阅读我写的一篇关于绕过Frida pinning的文章。虽然这篇文章没有说明如何绕过flutter_jailbreak_detection包,但原理是一样的。通过阅读How to Bypass Certificate Pinning with Frida on an Android App来学习如何使用Frida脚本来绕过攻击: 今天我将展示如何使用Frida工具框架在运行时挂钩到移动应用程序,并对代码进行工具化,以便即使在移动应用程序实现了证书锁定时也能成功执行MitM攻击。 绕过证书锁定并不太难,只是有点麻烦,攻击者可以详细了解移动应用如何与其API通信,然后使用相同的知识自动进行攻击或围绕它构建其他服务。 现在,我们对Frida、它的工作原理和潜力有了更多的了解和认识,我们能够更好地理解防范它的使用并不是一件容易的事情,我们也能够更好地搜索和选择一个解决方案来防范它。
或者,您可以使用移动应用证明服务,如Google Play Integrity: Play Integrity API可帮助保护您的应用和游戏免受潜在风险和欺诈性交互的影响,让您能够采取适当的操作进行响应,以减少欺诈、欺骗和未经授权的访问等攻击和滥用。 Google Play完整性服务是一个很好的起点,但您不能在每个API调用上都使用它,因为当您超过配额时,您将受到Google的限制,限制开始时会延迟响应每个证明所需的时间,最终导致在一段时间内或在移动应用重新启动之前无法再进行任何证明。
您的最后一招是寻找一个移动应用认证解决方案,它不会限制您的移动应用可以认证的次数,我可以为您介绍一个(我在那里工作),但我认为如果我为您介绍我写的一篇文章,说明我们的移动应用认证解决方案如何用于保护移动应用免受实时攻击,我会为您提供更好的服务: How to Protect Against Certificate Pinning Bypassing 下面您将了解如何使用移动应用证明服务来防止API服务器接受来自绕过证书锁定的移动应用的请求。这意味着即使攻击者绕过了证书锁定,他也无法从API服务器收到成功的响应。相反,服务器将始终返回401响应。从而保护您的宝贵数据不落入坏人之手。 虽然本文没有使用Frida来绕过对移动应用程序的演示攻击,但您可以使用我在文章How to Bypass Certificate Pinning with Frida on an Android App中强调的相同步骤来使用Frida攻击移动应用程序,并看到移动应用程序无法成功地使用云服务进行证明,因为它将获得无效令牌,API后端将无法验证是否已正确签名。因此,它不应信任请求并发出错误响应的信号,一旦移动应用程序无法获得预期的数据,这将有效地阻止它正常工作。 仔细评估所有选项,选择一个或多个适合您的需求、资源和预算的选项。
你想走更远的路吗?
在回答任何安全问题时,我总是喜欢引用OWASP基金会的优秀工作。
适用于APIS
OWASP API Security Top 10 OWASP API安全项目旨在通过强调不安全API的潜在风险,并说明如何降低这些风险,为软件开发人员和安全评估人员提供价值。为了实现这一目标,OWASP API安全项目将创建和维护一个十大API安全风险文档,以及一个创建或评估API时的最佳实践的文档门户。
适用于移动应用程序
OWASP移动安全项目-十大风险 OWASP移动安全项目是一个集中的资源,旨在为开发人员和安全团队提供构建和维护安全移动应用程序所需的资源。通过该项目,我们的目标是对移动安全风险进行分类,并提供开发控制措施,以降低其影响或被利用的可能性。 OWASP - Mobile Security Testing Guide: 移动安全测试指南(MSTG)是一本全面的移动应用安全开发、测试和逆向工程手册。
1条答案
按热度按时间vulvrdjw1#
弗里达上下文
我正在使用flutter_jailbreak_detection来检测flutter应用程序中的Roots,但是攻击者能够使用Frida脚本绕过它。
Frida框架非常强大,在运行时对代码进行检测并不困难。当攻击者知道需要在运行时挂钩的公共方法名时,就更容易绕过他想要绕过的任何方法。对于不了解Frida的人和不了解Frida的人,只需访问their website:
将您自己的脚本注入黑盒进程。挂钩任何函数,窥探加密API或跟踪私人应用程序代码,无需源代码。编辑,点击保存,并立即看到结果。所有这些都没有编译步骤或程序重新启动。
攻击者因为他的生活方便,由于你的检测是用一个工具,存在于公共领域,因此攻击者可以了解如何工具检测越狱设备和挂钩的方法,使其始终返回
False
.如果你不知道攻击者是如何做到这一点的,那么我邀请你阅读我写的一篇关于绕过Frida pinning的文章。虽然这篇文章没有说明如何绕过
flutter_jailbreak_detection
包,但原理是一样的。通过阅读How to Bypass Certificate Pinning with Frida on an Android App来学习如何使用Frida脚本来绕过攻击:今天我将展示如何使用Frida工具框架在运行时挂钩到移动应用程序,并对代码进行工具化,以便即使在移动应用程序实现了证书锁定时也能成功执行MitM攻击。
绕过证书锁定并不太难,只是有点麻烦,攻击者可以详细了解移动应用如何与其API通信,然后使用相同的知识自动进行攻击或围绕它构建其他服务。
现在,我们对Frida、它的工作原理和潜力有了更多的了解和认识,我们能够更好地理解防范它的使用并不是一件容易的事情,我们也能够更好地搜索和选择一个解决方案来防范它。
可能的解决方案
所以我的问题是我们如何预防它?
最好的防御是深度防御,您可以使用尽可能多的解决方案,并负担得起减轻风险和有效地抵御攻击,这不是什么新鲜事,这是一个在中世纪城堡和监狱中使用了几个世纪的原则。
自己卷
您可以尝试推出自己的检测或修改开源检测以使用未知方法名称,并进行代码混淆,从而使攻击者当前的方法毫无用处,但这不会让您走得太远,因为攻击者会反编译您的应用以了解您现在是如何做的,根据其技能设置,他将需要几分钟,几小时或几天才能再次绕过它,即使在使用代码混淆时。
RASP-运行时应用程序自我保护
您可以尝试使用RASP解决方案来强化您的运行时,但一旦它们在移动应用程序本身上工作,它们可能会在某个时候被绕过,而您的API后端则无法实时注意到它,从而无法满足来自被攻击的移动应用程序的请求。
RASP:
运行时应用程序自我保护(RASP)是一种安全技术,它使用运行时插装来检测和阻止计算机攻击,方法是利用正在运行的软件内部的信息。
RASP技术据说可以通过监控软件的输入来提高软件的安全性,并阻止那些可能允许攻击的输入,同时保护运行时环境免受不必要的更改和篡改。
所以,我并不是说你不应该使用它,只是要意识到它的局限性,比如它在客户端做出决定,因此不在你的控制范围内,但当受到攻击时,它在攻击者控制的设备中做出决定,因此你可能只有在损害已经造成时才意识到它受到攻击,例如,当您的API因移动应用的凭据被盗而遭到破坏时。
移动应用程序认证
或者,您可以使用移动应用证明服务,如Google Play Integrity:
Play Integrity API可帮助保护您的应用和游戏免受潜在风险和欺诈性交互的影响,让您能够采取适当的操作进行响应,以减少欺诈、欺骗和未经授权的访问等攻击和滥用。
Google Play完整性服务是一个很好的起点,但您不能在每个API调用上都使用它,因为当您超过配额时,您将受到Google的限制,限制开始时会延迟响应每个证明所需的时间,最终导致在一段时间内或在移动应用重新启动之前无法再进行任何证明。
您的最后一招是寻找一个移动应用认证解决方案,它不会限制您的移动应用可以认证的次数,我可以为您介绍一个(我在那里工作),但我认为如果我为您介绍我写的一篇文章,说明我们的移动应用认证解决方案如何用于保护移动应用免受实时攻击,我会为您提供更好的服务:
How to Protect Against Certificate Pinning Bypassing
下面您将了解如何使用移动应用证明服务来防止API服务器接受来自绕过证书锁定的移动应用的请求。这意味着即使攻击者绕过了证书锁定,他也无法从API服务器收到成功的响应。相反,服务器将始终返回401响应。从而保护您的宝贵数据不落入坏人之手。
虽然本文没有使用Frida来绕过对移动应用程序的演示攻击,但您可以使用我在文章How to Bypass Certificate Pinning with Frida on an Android App中强调的相同步骤来使用Frida攻击移动应用程序,并看到移动应用程序无法成功地使用云服务进行证明,因为它将获得无效令牌,API后端将无法验证是否已正确签名。因此,它不应信任请求并发出错误响应的信号,一旦移动应用程序无法获得预期的数据,这将有效地阻止它正常工作。
仔细评估所有选项,选择一个或多个适合您的需求、资源和预算的选项。
你想走更远的路吗?
在回答任何安全问题时,我总是喜欢引用OWASP基金会的优秀工作。
适用于APIS
OWASP API Security Top 10
OWASP API安全项目旨在通过强调不安全API的潜在风险,并说明如何降低这些风险,为软件开发人员和安全评估人员提供价值。为了实现这一目标,OWASP API安全项目将创建和维护一个十大API安全风险文档,以及一个创建或评估API时的最佳实践的文档门户。
适用于移动应用程序
OWASP移动安全项目-十大风险
OWASP移动安全项目是一个集中的资源,旨在为开发人员和安全团队提供构建和维护安全移动应用程序所需的资源。通过该项目,我们的目标是对移动安全风险进行分类,并提供开发控制措施,以降低其影响或被利用的可能性。
OWASP - Mobile Security Testing Guide:
移动安全测试指南(MSTG)是一本全面的移动应用安全开发、测试和逆向工程手册。