38
Fakult ¨ at f ¨ ur Informatik Technische Universit¨ at M ¨ unchen Network Security Chapter 2 – Language-theoretic Security Cornelius Diekmann Lehrstuhl f ¨ ur Netzarchitekturen und Netzdienste Institut f ¨ ur Informatik Technische Universit¨ at M ¨ unchen Version: August 31, 2015 IN2101, WS 15/16, Network Security 1

Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Network SecurityChapter 2 – Language-theoretic Security

Cornelius Diekmann

Lehrstuhl fur Netzarchitekturen und NetzdiensteInstitut fur Informatik

Technische Universitat Munchen

Version: August 31, 2015

IN2101, WS 15/16, Network Security 1

Page 2: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Communications protocol

I Defines the procedure and the format of exchanged messages

I ExamplesI IPI TCPI UDPI HTTPI HTTPSI SSHI . . .

I Alice and Bob might speak the same protocol ...

I but do they also have the same understanding?

IN2101, WS 15/16, Network Security 2

Page 3: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Problem 1

IN2101, WS 15/16, Network Security 3

Page 4: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: the X.509 NULL Character “issue”

I Assume you own zombo.com

I Then, all subdomains *.zombo.com also belong to you

I And you can buy certificates for them

I What about

www.paypal.com\0www.zombo.com

I where \0 is the C string terminator (NULL character)

I If a browser accidentally uses strncmp to validate certificates . . .

I . . . you just got a certificate for www.paypal.com

IN2101, WS 15/16, Network Security 4

Page 5: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: the X.509 NULL Character “issue”

I Assume you own zombo.com

I Then, all subdomains *.zombo.com also belong to you

I And you can buy certificates for them

I What about

www.paypal.com\0www.zombo.com

I where \0 is the C string terminator (NULL character)

I If a browser accidentally uses strncmp to validate certificates . . .

I . . . you just got a certificate for www.paypal.com

IN2101, WS 15/16, Network Security 4

Page 6: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: the X.509 NULL Character “issue”

I Assume you own zombo.com

I Then, all subdomains *.zombo.com also belong to you

I And you can buy certificates for them

I What about

www.paypal.com\0www.zombo.com

I where \0 is the C string terminator (NULL character)

I If a browser accidentally uses strncmp to validate certificates . . .

I . . . you just got a certificate for www.paypal.com

IN2101, WS 15/16, Network Security 4

Page 7: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: the X.509 NULL Character “issue”

I Alice and Bob spoke the same “protocol”: X.509

I But had a different understanding!

I Alice certified the URL: www.paypal.com\0www.zombo.com

I Bob parsed the URL: www.paypal.com

IN2101, WS 15/16, Network Security 5

Page 8: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Problem (1)

I Coder’s implicit assumption

Input is well-formed

I Reality

Input is controlled by attacker

IN2101, WS 15/16, Network Security 6

Page 9: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Solution (1)

I Apply full recognition to inputs before processing them!

I Do not scatter recognition throughout your code!

IN2101, WS 15/16, Network Security 7

Page 10: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Problem 2

IN2101, WS 15/16, Network Security 8

Page 11: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Recognizing Valid Inputs

I My favorite RFC

Content-Length = 1∗DIGIT[...]

Any Content-Length field value greater than or equal to

zero is valid. Since there is no predefined limit to the

length of a payload, a recipient MUST anticipate

potentially large decimal numerals and prevent parsing

errors due to integer conversion overflows

I Quiz: Which RFC is this taken from?

I 7230, HTTP/1.1 Message Syntax and Routing

I Translation:I The length of the content can be arbitraryI The length of the Content-Length field can be arbitraryI Just parse it right

IN2101, WS 15/16, Network Security 9

Page 12: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Recognizing Valid Inputs

I My favorite RFC

Content-Length = 1∗DIGIT[...]

Any Content-Length field value greater than or equal to

zero is valid. Since there is no predefined limit to the

length of a payload, a recipient MUST anticipate

potentially large decimal numerals and prevent parsing

errors due to integer conversion overflows

I Quiz: Which RFC is this taken from?I 7230, HTTP/1.1 Message Syntax and Routing

I Translation:I The length of the content can be arbitraryI The length of the Content-Length field can be arbitraryI Just parse it right

IN2101, WS 15/16, Network Security 9

Page 13: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Recognizing Valid Inputs

I My favorite RFC

Content-Length = 1∗DIGIT[...]

Any Content-Length field value greater than or equal to

zero is valid. Since there is no predefined limit to the

length of a payload, a recipient MUST anticipate

potentially large decimal numerals and prevent parsing

errors due to integer conversion overflows

I Quiz: Which RFC is this taken from?I 7230, HTTP/1.1 Message Syntax and Routing

I Translation:I The length of the content can be arbitraryI The length of the Content-Length field can be arbitraryI Just parse it right

IN2101, WS 15/16, Network Security 9

Page 14: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Recognizing Valid Inputs

I What type of grammar is HTTP?I In the Chomsky hierarchy, at least type 1 – context-sensitive

I Are two HTTP parsers equivalent?

UNDECIDABLE

IN2101, WS 15/16, Network Security 10

Page 15: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Recognizing Valid Inputs

I What type of grammar is HTTP?I In the Chomsky hierarchy, at least type 1 – context-sensitive

I Are two HTTP parsers equivalent?

UNDECIDABLE

IN2101, WS 15/16, Network Security 10

Page 16: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Recap (Theoretical Comp. Sci.): Chomsky Hierarchy

Grammar Language Recognized byType 3 Regular Finite state automatonType 2 Context-free Pushdown automatonType 1 Context-sensitive Some weird stuffType 0 recursively enumerable Turing machine

Type 3 ⊂ Type 2 ⊂ Type 1 ⊂ Type 0

I Remember all those undecidable problems in theo. comp. sci.?

I If the grammar of your protocol is Type 1 or Type 0, you will runinto them!

IN2101, WS 15/16, Network Security 11

Page 17: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Recap (Theoretical Comp. Sci.): Chomsky Hierarchy

Grammar Language Recognized byType 3 Regular Finite state automatonType 2 Context-free Pushdown automatonType 1 Context-sensitive Some weird stuffType 0 recursively enumerable Turing machine

Type 3 ⊂ Type 2 ⊂ Type 1 ⊂ Type 0

I Remember all those undecidable problems in theo. comp. sci.?

I If the grammar of your protocol is Type 1 or Type 0, you will runinto them!

IN2101, WS 15/16, Network Security 11

Page 18: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Recap (Theoretical Comp. Sci.): Chomsky Hierarchy

Grammar Language Recognized byType 3 Regular Finite state automatonType 2 Context-free Pushdown automatonType 1 Context-sensitive Some weird stuffType 0 recursively enumerable Turing machine

Type 3 ⊂ Type 2 ⊂ Type 1 ⊂ Type 0

I Remember all those undecidable problems in theo. comp. sci.?

I If the grammar of your protocol is Type 1 or Type 0, you will runinto them!

IN2101, WS 15/16, Network Security 11

Page 19: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Solution (2)

I Don’t define Turing-complete protocolsI Recognizing is undecidableI Testing equivalence of different implementations is undecidable

I With Content-Length fields, you easily run into this problem!

IN2101, WS 15/16, Network Security 12

Page 20: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Problem 3

IN2101, WS 15/16, Network Security 13

Page 21: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Unintended Survey of Visited Porn Pages

I You are visiting my website

I I host a hidden list of links to the most common porn sitesI Your browser renders

I Not visited: blueI Visited: purple

I Using JavaScript, the color of the links is send back to me

IN2101, WS 15/16, Network Security 14

Page 22: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Unintended Survey of Visited Porn Pages

I You are visiting my websiteI I host a hidden list of links to the most common porn sites

I Your browser rendersI Not visited: blueI Visited: purple

I Using JavaScript, the color of the links is send back to me

IN2101, WS 15/16, Network Security 14

Page 23: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Unintended Survey of Visited Porn Pages

I You are visiting my websiteI I host a hidden list of links to the most common porn sitesI Your browser renders

I Not visited: blueI Visited: purple

I Using JavaScript, the color of the links is send back to me

IN2101, WS 15/16, Network Security 14

Page 24: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Unintended Survey of Visited Porn Pages

I You are visiting my websiteI I host a hidden list of links to the most common porn sitesI Your browser renders

I Not visited: blueI Visited: purple

I Using JavaScript, the color of the links is send back to me

IN2101, WS 15/16, Network Security 14

Page 25: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Solution (3)

I Reduce computing power

I Power that is not there cannot be exploited

I In particular in input handling code

IN2101, WS 15/16, Network Security 15

Page 26: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

More on Problem (3): “Weird Machines”

I Complex protocols require complex parsers

I Complex parsers (anything beyond Type 2 and 3) expose almostunlimited computational power to the attacker

I Which leads to “weird machines”

I A weird machine is a machine programmable by an attacker

I Which was not intended or expected by the programmer

IN2101, WS 15/16, Network Security 16

Page 27: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Solution (3) part 2

I Make your protocol context-free or regularI And use an appropriate parser

I Parser generators, parser combinators, . . .I import re is not an acceptable solution

IN2101, WS 15/16, Network Security 17

Page 28: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Problem 4

IN2101, WS 15/16, Network Security 18

Page 29: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Ponies vs. Cats

https://www.google.de/webhp?ie=UTF-8&q=ponies&q=cats

I Alice: “The user asked for ponies”I Bob: “The user asked for cats”

I Google: “Let’s go for both (cats preferred)”

IN2101, WS 15/16, Network Security 19

Page 30: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Ponies vs. Cats

https://www.google.de/webhp?ie=UTF-8&q=ponies&q=cats

I Alice: “The user asked for ponies”I Bob: “The user asked for cats”

I Google: “Let’s go for both (cats preferred)”

IN2101, WS 15/16, Network Security 19

Page 31: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Example: Ponies vs. Cats

https://www.google.de/webhp?ie=UTF-8&q=ponies&q=cats

I Alice: “The user asked for ponies”I Bob: “The user asked for cats”

I Google: “Let’s go for both (cats preferred)”

IN2101, WS 15/16, Network Security 19

Page 32: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Problem: Mutual Understanding

I Entities may have a different understand of the meaning of aprotocol

I In the exampleI Alice recognized the first q parameterI Bob recognized the last q parameter

IN2101, WS 15/16, Network Security 20

Page 33: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Solution (4)

I Messages must be interpreted the same by all participants

I Parsers must be equivalent

I Only decidable for regular and context-free languages

IN2101, WS 15/16, Network Security 21

Page 34: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Examples

IN2101, WS 15/16, Network Security 22

Page 35: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Newline-Delimited

I Familiar from exercises

I Every message is delimited by a ‘\n’

I Nice library support: sf.readline()

I Language is Regular (Type 3)

q0start q1‘\n’

not ‘\n’

IN2101, WS 15/16, Network Security 23

Page 36: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

JSON

I Context Free (Type 2)

src: json.org

IN2101, WS 15/16, Network Security 24

Page 37: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

JSON

I Context Free (Type 2)

I But: If unique keys are required→ no longer context-free

IN2101, WS 15/16, Network Security 25

Page 38: Network Security - Chapter 2 Language-theoretic SecurityFakultat f¨ ur Informatik¨ Technische Universitat M¨ ¨unchen Network Security Chapter 2 – Language-theoretic Security

Fakultat fur Informatik Technische Universitat Munchen

Literature and Sources

I Len Sassaman, Meredith L. Patterson, Sergey Bratus, MichaelE. Locasto, Anna Shubina, Security Applications of FormalLanguage Theory, 2013,http://langsec.org/papers/langsec-tr.pdf

I http://langsec.org/

I Photoshopped protest signs by Kythera of Anevern(www.anevern.com)

IN2101, WS 15/16, Network Security 26