SLIDE 15 Finding Heartbleed using Big Code (Draper)
170K C/C++ Projects ~400GB Artifact Generator ~20M artifacts
(calls graphs, CFGs, etc.)
Graph Layer
LLVM ANTLR4 Metadata Extractor Fracture
Math Layer
Blue-Good Red-Bad
Identify and classify design patterns (flaws and repairs)
Deep Learning Repaired Program: Added bounds checks Buggy Program: Heartbleed bug
if (1+2+16 > s->s3->rrec.length) return 0; if (1+2+payload+16 > s->s3->rrec.length) return 0; if (write_length > SSL3_RT_MAX_PLAIN_LENGTH) return 0;
Distribution Statement A - Approved for Public Release, Distribution Unlimited