PLDI 2024
Mon 24 - Fri 28 June 2024 Copenhagen, Denmark
Mon 24 Jun 2024 14:30 - 15:15 at Helsinki - Session 3

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.