我已经为我的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
我可以删除这些代码吗?它会影响我的项目吗?
先谢了。
3条答案
按热度按时间slhcrj9b1#
考虑到Xcode 7已经有五年多的历史了,而且应用商店提交至少需要Xcode 11,删除这段代码似乎是安全的。
但是,由于脚本代码不应该运行,二进制文件中的
@rpath
可能来自其他地方。jv4diomz2#
涉及
@rpath
的漏洞不适用于移动的设置,因为攻击者无法访问文件系统,也无法任意替换这些框架。即使攻击者能够以某种方式用恶意框架替换该框架,该应用也会因代码签名违规而在启动时崩溃。https://docs.flutter.dev/resources/security-false-positives#the-ios-binary-has-a-runpath-search-path-rpath-set
如果仍需要修复,请按照MobSF "IPA Binary Analysis"中列出的步骤操作
6ss1mwsb3#
u可以使用this tool来分析ur apk或ipa文件或通过cli执行检查:
~一个月一次~一个月一次~一个月二次~一个月三次
browsercli