OSWC 2004 - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

OSWC 2004

Description:

cheetah.cs.virginia.edu – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 19
Provided by: cheetahCs
Category:
Tags: oswc

less

Transcript and Presenter's Notes

Title: OSWC 2004


1
(No Transcript)
2
MostSecurity Flawsare Preventable!
190 Vulnerabilities Only 4 having to do with
crypto 108 of them could have been detected with
simple static analyses!
Reported flaws in Common Vulnerabilities and
Exposures Database, Jan-Sep 2001. Evans
Larochelle, IEEE Software, Jan 2002.
OSWC 2004
www.splint.org
2
3
Formal verifiers are too expensive and time
consuming
all
Formal Verifiers
Bugs Detected
Compilers
none
Low
Unfathomable
Effort Required
OSWC 2004
www.splint.org
3
4
(No Transcript)
5
(Almost) Everyone Likes Types
  • Easy to Understand
  • Easy to Use
  • Quickly Detect Many Programming Errors
  • Useful Documentation
  • even though they are lots of work!
  • 1/4 of text of typical C program is for types

OSWC 2004
www.splint.org
5
6
(No Transcript)
7
(No Transcript)
8
Approach
  • Programmers add annotations (formal
    specifications)
  • Simple and precise
  • Describe programmers intent
  • Types, memory management, data hiding, aliasing,
    modification, null-ity, buffer sizes, security,
    etc.
  • Splint detects inconsistencies between
    annotations and code
  • Simple (fast!) dataflow analyses

OSWC 2004
www.splint.org
8
9
Sample Annotation only
extern only char gptr extern only out null void
malloc (int)
  • Reference (return value) owns storage
  • No other persistent (non-local) references to it
  • Implies obligation to transfer ownership
  • Transfer ownership by
  • Assigning it to an external only reference
  • Return it as an only result
  • Pass it as an only parameter e.g.,
  • extern void free (only void )

OSWC 2004
www.splint.org
9
10
Example
extern only null void malloc (int) in library
  • 1 int dummy (void)
  • 2 int ip (int ) malloc (sizeof (int))
  • 3 ip 3
  • 4 return ip
  • 5

Splint output dummy.c34 Dereference of
possibly null pointer ip ip dummy.c213
Storage ip may become null dummy.c414 Fresh
storage ip not released before return dummy.c24
3 Fresh storage ip allocated
OSWC 2004
www.splint.org
10
11
Example Buffer Overflows
  • Most commonly exploited security vulnerability
  • 1988 Internet Worm
  • Still the most common attack
  • Code Red exploited buffer overflow in IIS
  • gt50 of CERT advisories, 23 of CVE entries in
    2001
  • Attributes describe sizes of allocated buffers
  • Heuristics for analyzing loops
  • Found several known and unknown buffer overflow
    vulnerabilities in wu-ftpd

OSWC 2004
www.splint.org
11
12
Defining Properties to Check
  • Many properties can be described in terms of
    state attributes
  • A file is open or closed
  • fopen returns an open file
  • fclose open ? closed
  • fgets, etc. require open files
  • Reading/writing must reset between certain
    operations

OSWC 2004
www.splint.org
12
13
(No Transcript)
14
Specifying I/O Functions
  • /_at_open_at_/ FILE fopen
  • (const char filename,
  • const char mode)
  • int fclose (/_at_open_at_/ FILE stream) /_at_ensures
    closed stream_at_/
  • char fgets (char s, int n,
  • /_at_open_at_/ FILE stream)

OSWC 2004
www.splint.org
14
15
Checking
  • Simple dataflow analysis
  • Intraprocedural except uses annotations to
    alter state around procedure calls
  • Integrates with other Spint analyses (e.g.,
    nullness, aliases, ownership, etc.)

OSWC 2004
www.splint.org
15
16
Other Static Analysis Tools
  • RATS Secure Software
  • http//www.securesoftware.com/download_rats.htm
  • Scans code for uses on system functions that are
    often security vulnerabilities
  • C, C, Perl, PHP, Python
  • Flawfinder http//www.dwheeler.com/flawfinder/
  • Scans code against database of known
    vulnerabilities, sorts by risk

OSWC 2004
www.splint.org
16
17
Summary
  • Most security vulnerabilities could be avoided by
    preventing known problems
  • Redundancy is good for dependability
  • Static analysis tools can check redundant
    information is consistent
  • For more on Splint www.splint.org

OSWC 2004
www.splint.org
17
18
David Evans evans_at_cs.virginia.edu www.cs.virginia.
edu/evans www.splint.org
Write a Comment
User Comments (0)
About PowerShow.com