21
Bug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA https://samate.nist.gov/SATE.html

SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Bug Injection in SATE VI

Aurelien DelaitreLead, SATE VI Classic TrackPrometheus Computing LLC

SATE VI Workshop - September 19, 2019 - MITRE, McLean VA

https://samate.nist.gov/SATE.html

Page 2: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Why Bug Injection?

Relevance

GroundTruth

StatisticalSignificance

2

Page 3: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Why Bug Injection?

Relevance

GroundTruth

StatisticalSignificance

ProductionSoftware

Common Vulnerabilities and Exposures (CVE)

SyntheticTest Suites

3

Page 4: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Why Bug Injection?

Relevance

GroundTruth

StatisticalSignificance

BugInjection

4

Page 5: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Ways to “Get” Bugs

● Bug Injectors● Manual & Semi-Automated Injection● Specifically Developed Test Suites● Existing Bugs

○ Discovered○ Undiscovered

5

Page 6: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Bug Types in SATE VI

C: Undefined Behavior

● Pointers● Buffers● Initialization

Java: Code Injection

● Cross-Site Scripting (XSS)● SQL Injection

▶ High-Impact▶ Easy to Prove

6

Page 7: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Proof of Vulnerability (PoV)

Why?

● Proves Bug Matters● Retrieve Bug Trace

How?

● Fuzzing● Bug Tracker● Manual

7

Page 8: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Bug Traces

● Based on PoVs○ C: GDB / Valgrind / ASAN○ Java: Flow

● Manual Analysis○ Doc Review○ Code Review

8

Page 9: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

What Went Wrong?

9

Page 10: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Cheap but Hard Bugs

10

packet-arp.c

▶ Almost Never Found by Tools

Page 11: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Asymmetrical Bug/Fix Pairs

11

SimplePageBean.java

Buggy

Fixed

Page 12: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Buggy Bugs

▶ Implementation-dependent▶ Unknown Sink

▶ Tainted Data Questionable▶ Unintended Bug Type

fts3_write.c

global.c

12

Page 13: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

fts3_write.c

Buggy Fixes

▶ Tainted Data Questionable▶ Condition Always False

global.c

13

Page 14: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

pragma.c

Buggy Bugs

▶ Tainted Data Questionable▶ Condition Always True

global.c

14

Page 15: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

pragma.c

Buggy Fixes

▶ Tainted Data Questionable▶ Condition Always False

global.c

15

Page 16: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

fts3_tokenize_vtab.c

Buggy Fixes

▶ Tainted Data Questionable▶ Condition Always False Due to Programming Error

global.c

16

Page 17: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Sink Separationdate.c insert.c

17

Page 18: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Shadowing

18

Page 19: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Shadowing

19

Page 20: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Shadowing

20

Page 21: SATE VI BackgroundBug Injection in SATE VI Aurelien Delaitre Lead, SATE VI Classic Track Prometheus Computing LLC SATE VI Workshop - September 19, 2019 - MITRE, McLean VA …

Take Away

21

AutomatedBug Injection Curation Test Suites

StrongerBetterFaster