Static Analysis for AWS Best Practices in Python CodeVCOOP 2022ECOOP 2022
Thu 7 Jul 2022 17:15 - 17:45 at Zoom - VCOOP 11 Chair(s): Doug Lea
Amazon Web Services (AWS) is a comprehensive and broadly adopted cloud provider. AWS SDKs provide access to AWS services through API endpoints. However, incorrect use of these APIs can lead to code defects, crashes, performance issues, and other problems. AWS best practices are a set of guidelines for correct and secure use of these APIs to access cloud services, allowing conformant clients to fully reap the benefits of cloud computing.
We present static analyses, developed in the context of a commercial service for detection of code defects and security vulnerabilities, to identify deviations from AWS best practices. We focus on applications that use the AWS SDK for Python, called Boto3. Precise static analysis of Python cloud applications requires robust type inference for inferring the types of cloud service clients. However, Boto3’s “Pythonic” APIs pose unique challenges for type resolution, as does the interprocedural style in which service clients are used. We offer a layered approach that combines multiple type-resolution and tracking strategies in a staged manner: (i) general-purpose type inference augmented by type annotations, (ii) interprocedural dataflow analysis expressed in a domain-specific language, and (iii) name-based resolution as a low-confidence fallback. Across >3,000 popular Python GitHub repos that make use of the AWS SDK, our layered type inference system achieves 85% precision and 100% recall in inferring Boto3 clients in Python client code.
Additionally, we use real-world developer feedback to assess a representative sample of eight AWS best-practice rules. These rules detect a wide range of issues including pagination, polling, and batch operations. Developers have accepted more than 85% of the recommendations made by five out of eight Python rules, and almost 83% of all recommendations.
Wed 8 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30 | Program Analysis 1Expert Discussion / Hub Talks / Research Papers at Aurora Borealis 1 Chair(s): Karim Ali University of Alberta | ||
11:00 30mPanel | Software verification/program analysisExpert Discussion Expert Discussion | ||
11:30 20mTalk | Partial (In)Completeness in Abstract Interpretation: Limiting the Imprecision in Program AnalysisHub Talk Hub Talks Marco Campion University of Verona, Mila Dalla Preda University of Verona, Roberto Giacobazzi University of Verona Link to publication DOI | ||
11:50 20mTalk | Concolic Execution for WebAssemblyECOOP 2022 Research Papers Filipe Marques INESC-ID / Instituto Superior Tecnico, University of Lisbon, José Fragoso Santos INESC-ID/Instituto Superior Técnico, Portugal , Nuno Santos INESC-ID / Instituto Superior Tecnico, University of Lisbon, Pedro Adão IST-ULisboa and Instituto de Telecomunicações | ||
12:10 20mTalk | Static Analysis for AWS Best Practices in Python CodeVCOOP 2022ECOOP 2022 Research Papers Rajdeep Mukherjee Amazon Web Services, Omer Tripp Amazon, Ben Liblit Amazon, Michael Wilson Amazon Web Services DOI |
Thu 7 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
16:45 - 18:15 | |||
16:45 30mTalk | REST: Integrating Term Rewriting with Program VerificationVCOOP 2022ECOOP 2022 Research Papers Zachary Grannan University of British Columbia, Eva Darulova Uppsala University, Alexander J. Summers University of British Columbia, Niki Vazou IMDEA Software Institute | ||
17:15 30mTalk | Static Analysis for AWS Best Practices in Python CodeVCOOP 2022ECOOP 2022 Research Papers Rajdeep Mukherjee Amazon Web Services, Omer Tripp Amazon, Ben Liblit Amazon, Michael Wilson Amazon Web Services DOI | ||
17:45 30mTalk | A Deterministic Memory Allocator for Dynamic Symbolic ExecutionVCOOP 2022ECOOP 2022 Research Papers Daniel Schemmel Imperial College London, Julian Büning RWTH Aachen University, Frank Busse Imperial College London, Martin Nowack Imperial College London, Cristian Cadar Imperial College London, UK |