Static Analysis of Security Properties by Abstract Interpretation - - PowerPoint PPT Presentation

static analysis of security properties by abstract
SMART_READER_LITE
LIVE PREVIEW

Static Analysis of Security Properties by Abstract Interpretation - - PowerPoint PPT Presentation

Static Analysis of Security Properties by Abstract Interpretation cole normale suprieure, quipe Abstraction Mehdi Bouaziz Friday, May 11 2012 Static Analysis of Security Properties by Abstract Interpretation Mehdi Bouaziz, cole normale


slide-1
SLIDE 1

Static Analysis of Security Properties by Abstract Interpretation

École normale supérieure, équipe Abstraction Mehdi Bouaziz Friday, May 11 2012

slide-2
SLIDE 2

Static Analysis of Security Properties by Abstract Interpretation

Mehdi Bouaziz, École normale supérieure Static Analysis of Security Properties by Abstract Interpretation 2/13

slide-3
SLIDE 3

Static Analysis by Abstract Interpretation − → course MPRI 2-6: Abstract Interpretation: application to verification and static analysis

Mehdi Bouaziz, École normale supérieure Static Analysis of Security Properties by Abstract Interpretation 2/13

slide-4
SLIDE 4

Security Properties − → ?

Mehdi Bouaziz, École normale supérieure Static Analysis of Security Properties by Abstract Interpretation 2/13

slide-5
SLIDE 5

Security?

Mehdi Bouaziz, École normale supérieure Introduction to Security 3/13

slide-6
SLIDE 6

Security?

Information Security?

Mehdi Bouaziz, École normale supérieure Introduction to Security 3/13

slide-7
SLIDE 7

Security?

Access Control Accountability Attack Authenticity Authorization Availability Buffer Overflow Bug Classification Confidentiality Control-Flow Covert Channels Cross-Site Scripting Cryptanalysis Cryptography Cryptology Dangling Pointer Data Race Declassification Deadlock Earthquake Encryption Fire Firewall Flooding Format String Implicit Flow Information-Flow Input Validation Integrity Isolation Language-Based Least Privilege Malicious Code Memory Safety Non-Interference Non-Repudiation Obfuscation Phishing Policy Possession Randomization Reference Monitor Risk Runtime Check Sandbox SQL Injection Stack Inspection Stack Overflow Symlink Race Tainting Theft Threat Type Safety Utility Vulnerability Wild Jump

Mehdi Bouaziz, École normale supérieure Introduction to Security 3/13

slide-8
SLIDE 8

Key Concepts

Ipub Ipriv Opub Opriv

Mehdi Bouaziz, École normale supérieure Introduction to Security 4/13

slide-9
SLIDE 9

Key Concepts

◮ Confidentiality

Ipriv Opub

Mehdi Bouaziz, École normale supérieure Introduction to Security 4/13

slide-10
SLIDE 10

Key Concepts

◮ Confidentiality ◮ Integrity

Ipub Opriv

Mehdi Bouaziz, École normale supérieure Introduction to Security 4/13

slide-11
SLIDE 11

Key Concepts

◮ Confidentiality ◮ Integrity ◮ Disponibility

Mehdi Bouaziz, École normale supérieure Introduction to Security 4/13

slide-12
SLIDE 12

Key Concepts

◮ Confidentiality ◮ Integrity ◮ Disponibility ◮ Authenticity ◮ Accountability ◮ Possession ◮ Non-repudiation ◮ Utility

Mehdi Bouaziz, École normale supérieure Introduction to Security 4/13

slide-13
SLIDE 13

Security Policy

A statement that partition the states of the system into a set of authorized (secure) states and a set of unauthorized (nonsecure) states.

Mehdi Bouaziz, École normale supérieure Introduction to Security 5/13

slide-14
SLIDE 14

Security Policy

A statement that partition the states of the system into a set of authorized (secure) states and a set of unauthorized (nonsecure) states. Specify who can read/write what data, execute what command, under which condition.

Mehdi Bouaziz, École normale supérieure Introduction to Security 5/13

slide-15
SLIDE 15

Security Policy

A statement that partition the states of the system into a set of authorized (secure) states and a set of unauthorized (nonsecure) states. Specify who can read/write what data, execute what command, under which condition.

◮ Natural language (law, documentation) ◮ Encoded text (755 root root /bin)

Mehdi Bouaziz, École normale supérieure Introduction to Security 5/13

slide-16
SLIDE 16

Security Policy

A statement that partition the states of the system into a set of authorized (secure) states and a set of unauthorized (nonsecure) states. Specify who can read/write what data, execute what command, under which condition.

◮ Natural language (law, documentation) ◮ Encoded text (755 root root /bin) ◮ Code (if (x.isPrivate()) exit(1); //avoid leak)

Mehdi Bouaziz, École normale supérieure Introduction to Security 5/13

slide-17
SLIDE 17

Security Policy

A statement that partition the states of the system into a set of authorized (secure) states and a set of unauthorized (nonsecure) states. Specify who can read/write what data, execute what command, under which condition.

◮ Natural language (law, documentation) ◮ Encoded text (755 root root /bin) ◮ Code (if (x.isPrivate()) exit(1); //avoid leak) ◮ ∅

Mehdi Bouaziz, École normale supérieure Introduction to Security 5/13

slide-18
SLIDE 18

Information Security Controls

◮ Access Control ◮ Information-Flow Control ◮ Control-Flow Integrity ◮ Encryption

Mehdi Bouaziz, École normale supérieure Introduction to Security 6/13

slide-19
SLIDE 19

Information Security Controls

◮ Access Control ◮ Information-Flow Control ◮ Control-Flow Integrity ◮ Encryption

Mehdi Bouaziz, École normale supérieure Introduction to Security 6/13

slide-20
SLIDE 20

Information Security Controls

◮ Access Control ◮ Information-Flow Control ◮ Control-Flow Integrity ◮ Encryption

Mehdi Bouaziz, École normale supérieure Introduction to Security 6/13

slide-21
SLIDE 21

Information Security Controls

◮ Access Control ◮ Information-Flow Control ◮ Control-Flow Integrity ◮ Encryption

− → courses MPRI 1-13: Initiation to cryptology MPRI 2-12-1: Cryptanalysis MPRI 2-12-2: Arithmetic algorithms for cryptology MPRI 2-13-2: Error correcting codes and applications to cryptography MPRI 2-30: Cryptographic protocols: computational and symbolic proofs

Mehdi Bouaziz, École normale supérieure Introduction to Security 6/13

slide-22
SLIDE 22

Threats

◮ Physical: Earthquake, Fire, Flooding, Theft ◮ In the code:

◮ Memory Safety: ◮ Buffer Overruns ◮ Stack Overflow ◮ Dangling pointers ◮ Concurrency: ◮ Deadlocks ◮ Data races ◮ Symlink races ◮ Input Validation: ◮ SQL injection ◮ Cross-Site Scripting (XSS) ◮ Format String ◮ Control/Data-Flow: ◮ Type Safety ◮ Wild Jumps ◮ Self Modifying Code Mehdi Bouaziz, École normale supérieure Introduction to Security 7/13

slide-23
SLIDE 23

Language-Based Mechanisms

◮ Runtime Checks: Reference Monitor (OS, Interpreter,

Firewall), Inlined Reference Monitor

◮ Programming Languages: Type-Safe Languages, Typed

Assembly Language (TAL)

◮ Executing Model: Isolation, Sandboxing, Stack Inspection ◮ Static Analysis: Information-Flow Typing, Abstract

Interpretation

◮ Exotic: Obfuscation, Randomization

Mehdi Bouaziz, École normale supérieure Introduction to Security 8/13

slide-24
SLIDE 24

Security Policy (2)

◮ Authorization ◮ History-Based ◮ Control-Flow ◮ Information-Flow ◮ Classification (private/public) ◮ Declassification (when, where, by who and what private information

can be considered public)

Mehdi Bouaziz, École normale supérieure Introduction to Security 9/13

slide-25
SLIDE 25

Information-Flow Security

Non-Interference: No two executions are observably different if they differ solely by confidential inputs. Explicit Flows: from assignments Implicit Flows: from Indirect Flows and Covert Channels:

◮ Termination Channel ◮ Timing Channel ◮ Probabilistic Channel ◮ Resource Exhaustion Channel ◮ Power Channel

Mehdi Bouaziz, École normale supérieure Introduction to Security 10/13

slide-26
SLIDE 26

Information-Flow Security Type System

⊢ exp : high h / ∈ V ars(exp) ⊢ exp : low [pc] ⊢ skip [pc] ⊢ h := exp ⊢ exp : low [low] ⊢ l := exp [pc] ⊢ C1 [pc] ⊢ C2 [pc] ⊢ C1; C2 ⊢ exp : pc [pc] ⊢ C [pc] ⊢ while exp do C ⊢ exp : pc [pc] ⊢ C1 [pc] ⊢ C2 [pc] ⊢ if exp then C1 else C2 [high] ⊢ C [low] ⊢ C

Mehdi Bouaziz, École normale supérieure Introduction to Security 11/13

slide-27
SLIDE 27

Issues

Non-interference is too restrictive. Most real-world programs need exceptions to non-interference: declassification. Examples?

Mehdi Bouaziz, École normale supérieure Introduction to Security 12/13

slide-28
SLIDE 28

Issues

Non-interference is too restrictive. Most real-world programs need exceptions to non-interference: declassification. Examples? Other issues:

◮ Expressiveness: first-class functions, exceptions, objects ◮ Concurrency: threads, nondeterminism, distribution ◮ Covert channels: termination, timing, probability ◮ Security policies: declassification, quantitative security,

dynamic policies

◮ Certification: proven compilers, proof-carrying codes

Mehdi Bouaziz, École normale supérieure Introduction to Security 12/13

slide-29
SLIDE 29

Thank you for listening Questions are welcome

Mehdi Bouaziz, École normale supérieure Introduction to Security 13/13