Vulnerability Propagation in Package Managers Used in iOS Development

Kristiina Rahkema, Dietmar Pfahl
{"title":"Vulnerability Propagation in Package Managers Used in iOS Development","authors":"Kristiina Rahkema, Dietmar Pfahl","doi":"10.1109/MOBILSoft59058.2023.00015","DOIUrl":null,"url":null,"abstract":"Although using third-party libraries is common practice when writing software, vulnerabilities may be found even in well-known libraries. Detected vulnerabilities are often fixed quickly in the library code. The easiest way to include these fixes in a dependent software application, is to update the used library version. Package managers provide automated solutions for updating library dependencies, which make this process relatively easy. However, library dependencies can have dependencies to other libraries resulting in a dependency network with several levels of indirections. Assessing vulnerability risks induced by dependency networks is a non-trivial task for software developers.The library dependency network in the Swift ecosystem encompasses libraries from CocoaPods, Carthage and Swift Package Manager. These three package managers are used while developing, for example, iOS or Mac OS applications in Swift or Objective-C. We analysed how vulnerabilities propagate in the library dependency network of the Swift ecosystem, how vulnerable dependencies could be fixed via dependency upgrades, and if third party vulnerability analysis could be made more precise given public information on these vulnerabilities.We found that only 5.9% of connected libraries had a direct or transitive dependency to a vulnerable library. Although we found that most libraries with publicly reported vulnerabilities are written in C, the highest impact of publicly reported vulnerabilities originated from libraries written in native iOS languages, i.e., Objective-C and Swift. We found that around 30% of vulnerable dependencies could have been fixed via upgrading the library dependency. In case of critical vulnerabilities and latest library versions, over 70% of vulnerable dependencies would have been fixed via a dependency upgrade. Lastly, we checked whether the analysis of vulnerable dependency use could be refined using publicly available information on the code location (method or class) of a reported vulnerability. We found that such information is not available most of the time.","PeriodicalId":311618,"journal":{"name":"2023 IEEE/ACM 10th International Conference on Mobile Software Engineering and Systems (MOBILESoft)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2023 IEEE/ACM 10th International Conference on Mobile Software Engineering and Systems (MOBILESoft)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/MOBILSoft59058.2023.00015","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Although using third-party libraries is common practice when writing software, vulnerabilities may be found even in well-known libraries. Detected vulnerabilities are often fixed quickly in the library code. The easiest way to include these fixes in a dependent software application, is to update the used library version. Package managers provide automated solutions for updating library dependencies, which make this process relatively easy. However, library dependencies can have dependencies to other libraries resulting in a dependency network with several levels of indirections. Assessing vulnerability risks induced by dependency networks is a non-trivial task for software developers.The library dependency network in the Swift ecosystem encompasses libraries from CocoaPods, Carthage and Swift Package Manager. These three package managers are used while developing, for example, iOS or Mac OS applications in Swift or Objective-C. We analysed how vulnerabilities propagate in the library dependency network of the Swift ecosystem, how vulnerable dependencies could be fixed via dependency upgrades, and if third party vulnerability analysis could be made more precise given public information on these vulnerabilities.We found that only 5.9% of connected libraries had a direct or transitive dependency to a vulnerable library. Although we found that most libraries with publicly reported vulnerabilities are written in C, the highest impact of publicly reported vulnerabilities originated from libraries written in native iOS languages, i.e., Objective-C and Swift. We found that around 30% of vulnerable dependencies could have been fixed via upgrading the library dependency. In case of critical vulnerabilities and latest library versions, over 70% of vulnerable dependencies would have been fixed via a dependency upgrade. Lastly, we checked whether the analysis of vulnerable dependency use could be refined using publicly available information on the code location (method or class) of a reported vulnerability. We found that such information is not available most of the time.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
iOS开发中使用的包管理器漏洞传播
虽然在编写软件时使用第三方库是常见的做法,但即使在知名的库中也可能发现漏洞。检测到的漏洞通常会在库代码中快速修复。在依赖软件应用程序中包含这些修复的最简单方法是更新所使用的库版本。包管理器为更新库依赖项提供了自动化的解决方案,这使得这个过程相对容易。然而,库依赖项可以依赖于其他库,从而形成具有多个间接层次的依赖网络。对于软件开发人员来说,评估由依赖网络引起的漏洞风险是一项非常重要的任务。Swift生态系统中的库依赖网络包括来自CocoaPods、Carthage和Swift Package Manager的库。这三个包管理器在开发时使用,例如,在Swift或Objective-C中开发iOS或Mac OS应用程序。我们分析了漏洞是如何在Swift生态系统的库依赖网络中传播的,如何通过依赖升级来修复脆弱的依赖,以及如果有关于这些漏洞的公开信息,第三方漏洞分析是否可以更精确。我们发现只有5.9%的连接库对易受攻击的库有直接或可传递的依赖关系。虽然我们发现大多数公开报告的漏洞库都是用C编写的,但公开报告的漏洞影响最大的是用iOS原生语言编写的库,即Objective-C和Swift。我们发现大约30%的脆弱依赖可以通过升级库依赖来修复。对于关键漏洞和最新库版本,超过70%的易受攻击的依赖项将通过依赖项升级得到修复。最后,我们检查了是否可以使用报告漏洞的代码位置(方法或类)的公开可用信息来改进易受攻击依赖使用的分析。我们发现,这些信息在大多数时候是不可用的。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Issue-Labeler: an ALBERT-based Jira Plugin for Issue Classification Native vs Web Apps: Comparing the Energy Consumption and Performance of Android Apps and their Web Counterparts Vulnerability Propagation in Package Managers Used in iOS Development Understanding the Impact of Fingerprinting in Android Hybrid Apps Reducing the Impact of Breaking Changes to Web Service Clients During Web API Evolution
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1