Gillian: a Multi-language Platform for Compositional Symbolic Analysis
summary
Gillian is a multi-language symbolic-analysis platform that implements a core symbolic-execution engine backed by Z3, OCaml concrete and symbolic memory models, and a trusted compiler from target language to GIL. It supports whole-program symbolic testing, verification via separation logic (2K lines of annotations for a 170-line AWS deserialiser) and automatic compositional testing via bi-abduction. Instantiations for JavaScript and C find real bugs in Buckets.js, Collections-C and cash, produce a bounded correctness claim about event handlers (≤20 chars), and expose one bug plus one vulnerability in AWS code.
AI-written summary · about
chapters (15)
- 0:00Intro
- 0:49VERIFIED SOFTWARE: JAVASCRIPT ANALYSIS
- 1:08GILLIAN: UNIFIED SYMBOLIC ANALYSIS Technique
- 9:12SYMBOLIC EXECUTION FORMAL SEMANTICS, CLOSELY FOLLOWED BY OCAM IMPLEMENTATION
- 11:03ABSTRACTION USER INPUT: CORE PREDICATES Separation-logic assertions describing the memory building blocks Getter and setter functions for each core predicate
- 15:51GENERAL CORRECTNESS RESULTS
- 16:50GILLIAN-JS Trustworthy analysis of ECMAScript 5 Strict programs EXTENSIBLE OBJECT-PROPERTY MEMORY MODEL Structure heap, domain table, metadata table
- 22:10GILLIAN-JS: SYMBOLIC EXECUTION USER INPUT: IS basic actions
- 31:43FULL VERIFICATION: JAVASCRIPT AWS ENCRYPTION SDK TARGET CODE: AWS Encryption SDK message header manipulation CURRENT DEVELOPER APPROACH TO VALIDATION: concrete test suites, functions that assert program properties at runtime
- 34:24AWS SDK MESSAGE HEADER A sequence of bytes, encoded as a JavaScript ArrayBuffer
- 35:11SPECIFICATION: ENCRYPTION CONTEXT ENCRYPTION CONTEXT: serialised list of key value pairs
- 36:47SPECIFICATION: EC KEY-VALUE MAP
- 38:12SPECIFICATION: DECODEENCRYPTION CONTEXT
- 39:41BUG: PROTOTYPE INHERITANCE
- 41:29GILLIAN: A PLATFORM FOR UNIFIED SYMBOLIC ANALYSIS
related talks
31mVerified Software at Scale
01h 06mOn-The-Fly Verification via Incremental, Interactive Abstract Interpretation wi...
47mExploring a complex codebase with AI
24mSymbiotic: finding bugs in C programs
48mCross-Domain Compilation: Exploiting Synergies Across the CS Community
01h 02mLanguage Design meets Verifying Compilers
20mUnifying compositional verification and certified compilation with a three-dimensional(…)
15mA Low-Code Platform for Systematic Component-Oriented Language Composition
