30
Defect Detection at Microsoft – Where the Rubber Meets the Road Manuvir Das (and too many others to list) Program Analysis Group Center for Software Excellence Microsoft Corporation

Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Defect Detection at Microsoft –Where the Rubber Meets the Road

Manuvir Das(and too many others to list)

Program Analysis GroupCenter for Software ExcellenceMicrosoft Corporation

Page 2: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation2

Bottom line

Defect detection tools based on programanalysis are here to stay

A short story on adoption and deployment The target customer is a software developer,

not a programmer

Page 3: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation3

Why me?

Program Analysis group this month– Filed 7000+ bugs– Automatically added 10,000+ specifications– Answered hundreds of emails(one future version of one product)

We are program analysis researchers– but we live and breathe deployment & adoption– and we feel the pain of the customer

Page 4: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation4

Defect detection tools based onprogram analysis are here to stay

Page 5: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation5

Program analysis is here today …

Inter-procedural symbolic evaluation– PREfix: filed 3000+ bugs this month

Inter-procedural path-sensitive dataflow analysis– ESP: filed 500+ bugs this month

Intra-procedural abstract interpretation– espX: filed 3000+ bugs this month

Inter-procedural dataflow analysis– SALinfer: added 10,000+ specifications this month

Page 6: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation6

… and will be here tomorrow

Analysis tools are integrated into andenforced in the development process– opening the door for new and better tools

3000+ developers are adding specifications– opening the door for modular analysis

Developers are getting access to extensibleanalysis tools– opening the door for domain specific tools

Page 7: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation7

A short story on adoptionand deployment

Page 8: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation8

Longhorn today

Monthly central runs of global analysis tools– PREfix, ESP– Defects auto-inserted into central bug database– Bug caps and RI criteria in place– Ranking, filtering, triage, support– Release management drives the bugs

– Message suppression in the defect database

Page 9: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation9

Longhorn today

Developer desktop use of local analysis tools– PREfast, espX– Installed and enabled by default for all developers– Tools run incrementally with the build– Defects produce build breaks and errors– RIs are validated and rejected on failure

– Message suppression in the source code

Page 10: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation10

Longhorn today

Mandated use of specifications that describecontracts on function interfaces– SAL: Standard Annotation Language– Focus: buffer overruns, pointer usage– Supported by Visual Studio– Windows public headers decorated with SAL

Page 11: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation11

Longhorn today

Central runs + desktop use of automaticspecification inference– SALinfer– Run on special branch, results stored on a server– Desktop client queries server and patches code

Page 12: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation12

Forcing functions for change

Gen 1: Manual Review– Too many paths

Gen 2: Massive Testing– Inefficient detection of common patterns

Gen 3: Global Program Analysis– Stale results

Gen 4: Local Program Analysis– Lack of context

Gen 5: Specifications

Page 13: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation13

The target customer is a softwaredeveloper, not a programmer

Page 14: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation14

See the big picture

You are selling an expensive product– Time is REAL, in the large and the small

The customer only cares about the end toend experience– Remember Amdahl’s Law!

The customer is always right– Understand, then improve and educate

Page 15: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation15

Don’t bother doing this without -

No-brainer must-haves– Defect viewer, docs, champions, partners

A mechanism for developers to teach the tool– Suppression, assertion, assumption

A willingness to support the tool A positive attitude

Page 16: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation16

Understand the customer

Software developers are time constrained Software developers have other options Software developers must follow process

Feel their pain!

Page 17: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation17

Myth 1 – Accuracy matters

The real measure is Fix Rate Centralized: >50% Desktop: >75% Specification inference

– Is it much worse than manual insertion?

Page 18: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation18

Myth 2 – Completeness matters

Complete – find all the bugs There will never be a complete analysis

– Partial specifications– Missing code

Developers want consistent analysis– Tools should be stable w.r.t. minor code changes– Systematic, thorough, tunable program analysis

Page 19: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation19

Myth 3 – Developers dislikespecifications

Control the power of the specifications This will work

– Formalize invariants that are implicit in the code This will not work

– Re-write code in a different language that isamenable to automated analysis

Think like a developer

Page 20: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation20

Don’t break the shipping code

b = a + 16; Use(b);

b = __invariant(a) + 16; Use(b);

__invariant(a); b = a + 16; Use(b);

Before:

After (correct code):

After (incorrect code):

Incorrect usage silently breaks the code!

Page 21: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation21

Summary

Defect detection tools based on programanalysis are here to stay

A short story on adoption and deployment The target customer is a software developer,

not a programmer

Where does the rubber meet the road?

Page 22: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

http://www.microsoft.com/csehttp://www.microsoft.com/cse/pahttp://research.microsoft.com/manuvir

Page 23: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation23

Backup slides

Page 24: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation24

Generation 1: Manual Review

Code reviews, penetration teams

Lessons:– Test all the execution paths

Environmental changes:– Size of codebase starts to increase

Page 25: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation25

Generation 2: Massive Testing

More testers than developers Massive pre-release testing effort

Lessons:– Many bugs follow similar patterns

Environmental changes:– Internet changes exposure of interfaces

Page 26: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation26

Generation 3: Global Analysis

Centralized use of PREfix– Inter-procedural symbolic evaluation

Lessons:– Ease of fix is the critical criterion– Late results equal stale results

Environmental changes:– Security becomes Priority 1

Page 27: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation27

Generation 4: Local Analysis

Desktop use of PREfast– Intra-procedural syntactic & dataflow analysis

Lessons:– Lack of context leads to noise– Source code lacks information

Environmental changes:– Security becomes Priority 0

Page 28: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation28

Generation 5: Specifications

Annotations on function interfaces + deeplocal analysis of function implementations

Focus: buffer overruns, pointer usage Standard Annotation Language (SAL)

– Will be supported by Visual Studio– Will be used to decorate Windows public headers– Interface contracts (preconditions/postconditions)– Extensions to the type system

Page 29: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation29

SAL Example

void foo(pre elementCount(len) int *buf, int len){

memset(buf, 0, len*sizeof(int));}

int *memset(pre byteCount(len) void *dest, int c, size_t len);

Requirement on foo’s callers: must pass a buffer that is len elements long

Assumption made by foo: buf is count elements long

Requirement on foo: argument buf is len*4 bytes long

Requirement on memset’s callers: must pass a buffer that is len bytes long

Local Checker: Do the assumptions imply the requirements?

Page 30: Defect Detection at Microsoft – Where the Rubber Meets the ...pugh/BugWorkshop05/presentations/das.pdf · 6 Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation … and will be here

Bugs 05, 6/12/05 Manuvir Das, Microsoft Corporation30

Defect Detection Process

Code Base

Annotation Inference

Local Checking

Code Review

Potential

DefectsAnnotation

Fixes,

Bug Fixes

Annotated

Code

Manual

Annotations