for low level code
play

for Low Level Code Jakub Kuderski, Nhm L, Arie Gurfinkel - PowerPoint PPT Presentation

TeaDsa: Type-aware DSA-style Pointer Analysis for Low Level Code Jakub Kuderski, Nhm L, Arie Gurfinkel (UWaterloo); Jorge Navas (SRI International) fmcad 2018, Austin, TX Detecting Field Overflow Memory Safety Bugs struct Node { Node *next


  1. TeaDsa: Type-aware DSA-style Pointer Analysis for Low Level Code Jakub Kuderski, Nhâm Lê, Arie Gurfinkel (UWaterloo); Jorge Navas (SRI International) fmcad 2018, Austin, TX

  2. Detecting Field Overflow Memory Safety Bugs struct Node { Node *next = nullptr; int TAG; }; struct IntNode : Node { int *i; }; struct FloatNode : Node { float *f; }; // ... Node *node; node = getNode(); if (node->TAG == INT_TAG) *(((IntNode *) node)->i) = 123; // SAFE? node = getNode(); *(((FloatNode *) node)->f) = 3.14f; // SAFE?

  3. Detecting Field Overflow Memory Safety Bugs Verifier Pointer Static Clang Analysis Analyzer Memory Check C or C++ LLVM IR Results accesses candidates Memory Memory Safe / Unsafe Instructions Instructions Instructions + Allocation Sites • Existing Pointer Analyses for LLVM inadequate • Not scalable (SVF, Phasar) • Not precise enough (SeaDsa)

  4. TeaDsa Statement Inclusion-based Unification-based 𝑞 = 𝑛𝑏𝑚𝑚𝑝𝑑 𝑜 𝑞 ⊇ loc mallo𝑑 𝑞 ≈ 𝑚oc 𝑛𝑏𝑚𝑚𝑝𝑑 𝑞 = 𝑟 𝑞 ⊇ 𝑟 𝑞 ≈ 𝑟 ∗ 𝑞 = 𝑟 pts p ⊇ 𝑟 pts p ≈ 𝑟 • Based on SeaDsa 𝑞 = ∗ 𝑟 𝑞 ⊇ pts 𝑟 𝑞 ≈ pts 𝑟 𝑞 = &𝑦 𝑞 ⊇ 𝑚𝑝𝑑 𝑦 𝑞 ≈ 𝑚𝑝𝑑 𝑦 • Context-, field-, array-sensitive • Unification-based (Steensgaard-style) • Type- and offset-based field sensitivity Program Size SVF SeaDsa TeaDsa % Checks [kB] Time [s] Time Time [s] Discharged [s] with Types • 65% checks discharged with types vs. no types bzip2 29 173 0.19 0.19 0 mcf 37 1.98 0.02 0.03 -- libquantum 80 8.66 0.08 0.09 -- Is relying on types Sound for low-level languages? 0 sjeng 308 260 0.44 0.45 • Casts, type punning, memcpy 65 CASS 765 5390 6.20 5.85 • Potential memory faults htop 800 -- 5.02 3.80 71 hmmer 859 2548 3.51 3.60 1 h264ref 1784 11525 9.44 10 26

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend