Supercharging Infer: Enhancing Static Analysis with Dynamic Data at WhatsApp
This presentation explores a novel approach that combines static and dynamic analysis at WhatsApp. The integration is implemented inside PrivacyCAT, a multi-component code analysis framework, using two of its key tools: Infer and FAUSTA traffic generation. FAUSTA generates tainted server inputs based on client-server communication specifications, and forwards them to the server to check for reliability issues and potential unintended data leakages. The code under analysis is always executed in a non-production controlled sandbox environment to prevent any side effects to production. Our novel approach consists of supplementing Infer with data obtained by FAUSTA’s execution traces. Such additional data from dynamic runs is turned into summaries for the functions Infer failed to summarize. The code we target is the Erlang component of WhatsApp, and we use the recently developed Erlang support for Infer. The presentation will provide an in-depth look at how this technique operates and show concrete results on its impact. By combining static and dynamic analysis, we demonstrate significant improvements in Infer’s bug detection capabilities. Regarding coverage, each function summary provided by dynamic data enabled Infer to derive 2.1 additional summaries.
Mon 24 JunDisplayed time zone: Windhoek change
13:40 - 15:20 | |||
13:40 45mTalk | Infer Internals for Integrations and Infrastructure Infer Nikos Gorogiannis Meta | ||
14:30 45mTalk | Supercharging Infer: Enhancing Static Analysis with Dynamic Data at WhatsApp Infer Matteo Marescotti Meta |