从安全分析中获取警告 "Remove the compiler option -rpath to remove @rpath"

Getting warning from security analysis "Remove the compiler option -rpath to remove @rpath"

我已经为我的 IOS 应用程序进行了质量扫描分析。我收到以下警告:

The binary has Runpath Search Path (@rpath) set. In certain cases an attacker can abuse this feature to run arbitrary executable for code execution and privilege escalation. Remove the compiler option -rpath to remove @rpath.  

我搜索了 @rpath 并在我的 pod-framework.sh 和下面的代码中找到了:

# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
  if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
    local swift_runtime_libs
    swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\/\(.+dylib\).*/\1/g | uniq -u)
    for lib in $swift_runtime_libs; do
      echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
      rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
      code_sign_if_enabled "${destination}/${lib}"
    done
  fi  

我可以删除这段代码吗?它会影响我的项目吗?

提前致谢。

鉴于 Xcode 7 已超过五年,并且至少 Xcode 11 是应用商店提交所必需的,删除该代码似乎是安全的。

但是,鉴于脚本代码不应该是 运行,二进制文件中的 @rpath 可能来自其他地方。

你可以使用 this tool 来分析你的 apk 或 ipa 文件或通过 cli 进行检查:

unzip MyApp.ipa
cd Payload/
cd MyApp.app/
otool -L MyApp | head -n 30

~unzip MyApp.ipa ~ cd Payload/ ~ cd MyApp.app/ ~ otool -L MyApp | head -n 30

browser cli