ios - MobSF:解决@rpath 违规问题
问题描述
我们使用 MobSF 测试了我们的一款 iOS 应用程序,报告强调该二进制文件设置了运行路径搜索路径 (@rpath)。在某些情况下,攻击者可以滥用此功能来运行任意可执行文件以执行代码和提升权限。
我otool -L
对二进制文件进行了检查以检查涉及哪些依赖项。事实证明,所有 pod(Cocoopod)和一些系统库都受到关注。
name @rpath/Alamofire.framework/Alamofire (offset 24)
name @rpath/libswiftCoreAudio.dylib (offset 24)
name @rpath/libswiftCoreData.dylib (offset 24)
name @rpath/libswiftCoreFoundation.dylib (offset 24)
我想知道如何解决这个问题。Runpath Search Paths
如果项目构建设置不包含 $(inherited),Cocoapods 会打印警告。
使用@rpath 被认为是有害的吗?任何帮助/信息表示赞赏。
解决方案
运行路径搜索路径指示动态链接器在路径的有序列表上搜索动态库 (dylib),有点像 Unix 在 $PATH 上查找二进制文件的方式。
如果您的应用程序使用Swift 包管理器,为了在没有 rpath 的情况下编译库,您需要使用一些隐藏的构建标志。在本地命令行上运行:
请注意 swift 编译器选项 no-stdlib-rpath 在编译期间禁用 rpath 条目。配置您的构建设置,以便使用此配置标志构建应用程序,例如:swift build -c release -Xswiftc -no-toolchain-stdlib-rpath。
或者,如果您的应用程序使用Cocoapods,您可以先检查 pod 的安装目录:
供参考 - MobSF IPA 二进制分析
推荐阅读
- flutter - 如何在颤动中调用 setState
- keycloak - KC-SERVICES0089:无法运行计划任务 ClearExpiredEvents
- android-studio - lateinit 属性 ApplicationContext 尚未初始化
- json - 来自API的json响应上的flutter foreach循环
- heroku - 如何解决在 Windows 上从 Heroku local 立即退出的问题
- laravel - 在 octobercms cpanel 中运行 cron 作业
- javascript - 10000 毫秒后缓冲超时 .inserOne()
- excel - 查找和删除子例程在 Excel 中不起作用
- hbase - 我在哪里可以找到 HBase RIT 指标?
- flutter - 如何在flutter中创建带有firestore图像和onclick启动url的轮播滑块?