static analysis for safety and security critical software · the deepest static analysis for safety...

20
Static Analysis for Safety and Security Critical Software Cyber Security Chicago Mark Hermeling | [email protected] | @markhermeling | @ grammatech

Upload: others

Post on 22-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

Static Analysis for Safety and Security Critical Software

Cyber Security Chicago

Mark Hermeling | [email protected] | @markhermeling | @ grammatech

Page 2: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

3 © GrammaTech, Inc. All rights reserved.

GrammaTech Vision

GrammaTech helps measure, identify,

understand and resolve software vulnerabilities,

reducing risk and saving time and cost

Page 3: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

4 © GrammaTech, Inc. All rights reserved.

Page 4: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

5 © GrammaTech, Inc. All rights reserved.

Static Analysis Is Like Magic

Analyzes all execution paths

Finds bugs

Prioritizes bugs

Extensive explanations of bugs

Page 5: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

6 © GrammaTech, Inc. All rights reserved.

Not All Static Analysis Is Equal

Coding guidelines and standards

Deep, semantic bugs

Boundary is not always sharp

Page 6: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

7 © GrammaTech, Inc. All rights reserved.

Example: strcpy

Page 7: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

8 © GrammaTech, Inc. All rights reserved.

Prioritizes Bugs

Page 8: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

9 © GrammaTech, Inc. All rights reserved.

Example: Copy-Paste

Page 9: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

10 © GrammaTech, Inc. All rights reserved.

Example: Taint

Page 10: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

11 © GrammaTech, Inc. All rights reserved.

Static Analysis Is Like Magic

Analyzes all execution paths

Finds bugs

Prioritizes bugs

Extensive explanations of bug

Page 11: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

12 © GrammaTech, Inc. All rights reserved.

Classifying Static Analysis Tools

What type of problems does a tool look for

Evaluate recall

Evaluate usability

Page 12: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

13 © GrammaTech, Inc. All rights reserved.

The Flip Side Of The Coin

There is an inverse relation

between recall and precision.

Safety and Security requires

the highest recall, finding the

most amount of defects in your

code.

Recall

Precision

Performance

Perf

orm

an

ce

Slow

Fast

Page 13: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

14 © GrammaTech, Inc. All rights reserved.

Static Analysis In Your Process

During developer builds

static analysis provides

quick feedback, much like a

compiler error.

Page 14: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

15 © GrammaTech, Inc. All rights reserved.

Static Analysis In Your Process

A commit is only accepted if

it passes static and

dynamic tests. Static

analysis results feed into

the code review.

Page 15: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

16 © GrammaTech, Inc. All rights reserved.

Static Analysis In Your Process

Deep static analysis is part

of the regression testing

cycle. This includes taint

checking as well as

concurrency checks.

Page 16: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

17 © GrammaTech, Inc. All rights reserved.

Static Analysis In Your Process

An independent security

team reviews outstanding

risks as a white or black

box

Page 17: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

18 © GrammaTech, Inc. All rights reserved.

Static Analysis In Your Process

Independent security

review

During coding

At commit

During test

[Certification ]

Page 18: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

19 © GrammaTech, Inc. All rights reserved.

Take Away

You need to do static analysis

You need to do the right static analysis

At the right place in your process

Page 19: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

20 © GrammaTech, Inc. All rights reserved.

Introducing CodeSonar

The deepest static analysis for safety and security critical software– Finds more defects

– Mathematical foundation, support for binary analysis

Developer-friendly interface– Clear explanations with path information

– Whole program navigation and visualization

Highly customizable– Workflows, checkers, search, compare

Page 20: Static Analysis for Safety and Security Critical Software · The deepest static analysis for safety and security critical software – Finds more defects – Mathematical foundation,

21 © GrammaTech, Inc. All rights reserved.

Booth 330

[email protected]

@markhermeling | @grammatech