kirancodes.me
To Proof Maintenance & Beyond!

LibKit: Detecting Third-Party Libraries in iOS Apps

Daniel Domínguez-Álvarez, Alejandro de la Cruz, Alessandra Gorla, Juan Caballero

Abstract

We present LibKit, the first approach and tool for detecting the name and version of third-party libraries (TPLs) present in iOS apps. LibKit automatically builds fingerprints for 86K library versions available through the CocoaPods dependency manager and matches them on the decrypted app executables to identify the TPLs (name and version) an iOS app uses. LibKit supports apps written in Swift and Objective-C, detects statically and dynamically linked libraries, and addresses challenges such as partially included libraries and different compiler versions and configurations producing variants of the same library version. On a ground truth of 95 open-source apps, LibKit identifies libraries with a precision of 0.911 and a recall of 0.839. LibKit also significantly outperforms the state-of-the-art CRiOS tool for identifying TPL boundaries. When applied to 1,500 apps from the iTunes Store, LibKit detects 47,015 library versions, identifying popular apps that contain old library versions.

BibTeX
@inproceedings{DominguezAlvarez-al:FSE23,
  author    = {Daniel Dom{\'{\i}}nguez{-}{\'{A}}lvarez and
               Alejandro de la Cruz and
               Alessandra Gorla and
               Juan Caballero},
  title     = {{LibKit:} Detecting {Third-Party} Libraries in {iOS} Apps},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {1407--1418},
  publisher = {{ACM}},
  year      = {2023},
}

Related papers