我们用iOS测试了一个MobSF应用程序,报告突出显示二进制程序具有运行路径搜索路径(@rpath)集。在某些情况下,攻击者可以利用此功能运行任意可执行的代码执行和权限提升。
我对二进制文件运行otool -L来检查哪些依赖项是相关的。事实证明,所有的吊舱(Cocaopod)和一些系统库都是相关的。
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不包括$(继承),Cocoapods将打印警告。
使用@rpath是否有害?如有任何帮助/信息,请见谅。
发布于 2022-01-31 14:13:57
运行路径搜索路径指示动态链接器在有序路径列表上搜索动态库(dylib),类似于$PATH上查找二进制文件的方式。
如果您的应用程序使用了Swift软件包管理器,为了在没有rpath的情况下编译库,您需要使用一些隐藏的构建标志。在本地命令行上运行:

注意快速编译器选项no-stdlib-rpath,它在编译期间禁用rpath条目。配置您的构建设置,以便使用此配置标志构建应用程序,例如: swift构建-c发布版-Xswiftc -无工具链-stdlib-rpath.。
或者,如果您的应用程序使用Cocoapods,您可以首先检查吊舱的安装目录:

然后在Podfile上使用以下配置:

供参考- MobSF IPA二元分析
https://stackoverflow.com/questions/66048178
复制相似问题