STING: Finding Name Resolution Vulnerabilities in Programs

Size: px
Start display at page:

Download "STING: Finding Name Resolution Vulnerabilities in Programs"

Transcription

1 STING: Finding Name Resolution ulnerabilities in Programs Hayawardh ijayakumar, Joshua Schiffman, Trent Jaeger Systems and Internet Infrastructure Security (SIIS) Lab Computer Science and Engineering Department Pennsylvania State University 1

2 Name Resolution Processes often use names to obtain access to system resources A nameserver (e.g.,os) performs name resolution using namespace bindings (e.g., directory) to convert a name (e.g., filename) into a system resource (e.g., file)! Filesystem, System IPC, P / var mail root 2

3 Name Resolution Processes often use names to obtain access to system resources A nameserver (e.g.,os) performs name resolution using namespace bindings (e.g., directory) to convert a name (e.g., filename) into a system resource (e.g., file)! Filesystem, System IPC, P open( /var/ mail/root ) / var mail root Name (filename) 2

4 Name Resolution Processes often use names to obtain access to system resources A nameserver (e.g.,os) performs name resolution using namespace bindings (e.g., directory) to convert a name (e.g., filename) into a system resource (e.g., file)! Filesystem, System IPC, Namespace (filesystem) P open( /var/ mail/root ) / var mail root Name (filename) 2

5 Name Resolution Processes often use names to obtain access to system resources A nameserver (e.g.,os) performs name resolution using namespace bindings (e.g., directory) to convert a name (e.g., filename) into a system resource (e.g., file)! Filesystem, System IPC, Namespace (filesystem) P open( /var/ mail/root ) / var mail root Name (filename) Bindings (directories) 2

6 Name Resolution Processes often use names to obtain access to system resources A nameserver (e.g.,os) performs name resolution using namespace bindings (e.g., directory) to convert a name (e.g., filename) into a system resource (e.g., file)! Filesystem, System IPC, Namespace (filesystem) P open( /var/ mail/root ) / var mail root Name Resource (filename) Bindings (directories) (file) 2

7 Namespace Sharing Problems Security problems occur because low-integrity adversary processes share the same OS namespaces as high-integrity victim processes! Adversary processes attempt to affect name resolution of victim processes Permissions for /var/mail! Group mail can create and delete files 3

8 Attacks on Name Resolution Improper Binding Attack! Adversary controls bindings to redirect victim to a resource not under adversary s control (confused deputy)! Symbolic link, hard link attacks! ictim expects low integrity/secrecy, gets high instead root / var mail root etc passwd 4

9 Attacks on Name Resolution Improper Binding Attack! Adversary controls bindings to redirect victim to a resource not under adversary s control (confused deputy)! Symbolic link, hard link attacks! ictim expects low integrity/secrecy, gets high instead root open( /var/ / var mail root mail/root ) etc passwd 4

10 Attacks on Name Resolution Improper Binding Attack! Adversary controls bindings to redirect victim to a resource not under adversary s control (confused deputy)! Symbolic link, hard link attacks! ictim expects low integrity/secrecy, gets high instead root open( /var/ / var mail root mail/root ) A mail etc passwd 4

11 Attacks on Name Resolution Improper Binding Attack! Adversary controls bindings to redirect victim to a resource not under adversary s control (confused deputy)! Symbolic link, hard link attacks! ictim expects low integrity/secrecy, gets high instead root open( /var/ / var mail root mail/root ) A mail etc passwd Link 4

12 Attacks on Name Resolution Improper Binding Attack! Adversary controls bindings to redirect victim to a resource not under adversary s control (confused deputy)! Symbolic link, hard link attacks! ictim expects low integrity/secrecy, gets high instead root open( /var/ / var mail root mail/root ) A mail etc passwd Link 4

13 Attacks on Name Resolution Improper Resource Attack! Adversary controls final resource in unexpected ways! Untrusted search paths (e.g., Trojan library), file squatting! ictim expects high integrity, gets low integrity instead owner root root / var mail root 5

14 Attacks on Name Resolution Improper Resource Attack! Adversary controls final resource in unexpected ways! Untrusted search paths (e.g., Trojan library), file squatting! ictim expects high integrity, gets low integrity instead root open( /var/ owner root / var mail root mail/root ) 5

15 Attacks on Name Resolution Improper Resource Attack! Adversary controls final resource in unexpected ways! Untrusted search paths (e.g., Trojan library), file squatting! ictim expects high integrity, gets low integrity instead root open( /var/ owner root / var mail root mail/root ) A mail 5

16 Attacks on Name Resolution Improper Resource Attack! Adversary controls final resource in unexpected ways! Untrusted search paths (e.g., Trojan library), file squatting! ictim expects high integrity, gets low integrity instead root open( /var/ owner mail / var mail root mail/root ) A mail 5

17 Attacks on Name Resolution Improper Resource Attack! Adversary controls final resource in unexpected ways! Untrusted search paths (e.g., Trojan library), file squatting! ictim expects high integrity, gets low integrity instead root open( /var/ owner mail / var mail root mail/root ) A mail 5

18 Attacks on Name Resolution Race Conditions! Adversary exploits non-atomicity in check and use of resource to conduct improper resource and improper binding attacks! Well-known TOCTTOU attacks root lstat( /var/ / var mail root mail/root ) etc passwd 6

19 Attacks on Name Resolution Race Conditions! Adversary exploits non-atomicity in check and use of resource to conduct improper resource and improper binding attacks! Well-known TOCTTOU attacks root open( /var/ / var mail root mail/root ) A mail etc passwd Link 7

20 How Serious a Problem? Who can launch local exploits?! Untrusted local users in a multi-user environment (e.g., university)! Remote attackers who have broken into networked programs through bugs or misconfigurations and want to further escalate privileges Downloaded malware, compromised server programs, Remote Attacker Local Attacker root 8

21 How Serious a Problem? Name resolution vulnerabilities accounts for 5-10% CE entries each year These are particularly hard to eradicate as they involve multiple parties! Programmers who write code! OS distributors who define access control policies! Administrators who configure end system 9

22 Existing Program Defenses Name resolution attacks have been with us! TOCTTOU attacks first published by McPhee in 1974! Like buffer overflows known for decades Program API to convey intended context to OS! E.g., O_EXCL flag in open(): if a resource already exists, fail! mkstemp creates an unpredictable name O_NOFOLLOW don t follow a link on this name resolution openat and related allow use of same directory for access Programmers do not always use APIs properly! Lots of exceptions! Impractical to determine whether defenses should be on 10

23 Program Defenses Often don t work 11

24 Proposed System Defenses Many defenses have been proposed by researchers! And broken! Mainly for TOCTTOU Cai et al. [Oakland 2009] showed! All system defenses fundamentally limited because they do not have program knowledge Chari et al. [NDSS 2010] propose a system defense for improper binding attacks! Have false positives 12

25 This Work s Goal Given the difficulty of proper defenses, we propose actively finding name resolution vulnerabilities in programs! So programs can be fixed to perform correct checks! Or access control policies can be tightened 13

26 Prior Static Analysis 14

27 Prior Static Analysis Analyze program to find potentially vulnerable name resolution calls! Due to complexity of checks, mainly limited to TOCTTOU 14

28 Prior Static Analysis Analyze program to find potentially vulnerable name resolution calls! Due to complexity of checks, mainly limited to TOCTTOU Deficiencies! False positives due to adversary inaccessibility! Our runtime study found only around 5% of name resolutions were accessible to adversaries 14

29 Prior Static Analysis Analyze program to find potentially vulnerable name resolution calls! Due to complexity of checks, mainly limited to TOCTTOU Deficiencies! False positives due to adversary inaccessibility! Our runtime study found only around 5% of name resolutions were accessible to adversaries root / var mail root etc hosts 14

30 Prior Static Analysis Analyze program to find potentially vulnerable name resolution calls! Due to complexity of checks, mainly limited to TOCTTOU Deficiencies! False positives due to adversary inaccessibility! Our runtime study found only around 5% of name resolutions were accessible to adversaries root open( /var/ / var mail root mail/root ) etc hosts 14

31 Prior Static Analysis Analyze program to find potentially vulnerable name resolution calls! Due to complexity of checks, mainly limited to TOCTTOU Deficiencies! False positives due to adversary inaccessibility! Our runtime study found only around 5% of name resolutions were accessible to adversaries root open( /var/ mail/root ) / var mail root Adversary accessible! Needs program defense etc hosts 14

32 Prior Static Analysis Analyze program to find potentially vulnerable name resolution calls! Due to complexity of checks, mainly limited to TOCTTOU Deficiencies! False positives due to adversary inaccessibility! Our runtime study found only around 5% of name resolutions were accessible to adversaries root open( /etc/ / var mail root hosts ) etc hosts 14

33 Prior Static Analysis Analyze program to find potentially vulnerable name resolution calls! Due to complexity of checks, mainly limited to TOCTTOU Deficiencies! False positives due to adversary inaccessibility! Our runtime study found only around 5% of name resolutions were accessible to adversaries root open( /etc/ hosts ) / var mail root Not adversary accessible! Needs no program defense etc hosts 14

34 Prior Runtime Analysis 15

35 Prior Runtime Analysis Have both access control policy and program system calls 15

36 Prior Runtime Analysis Have both access control policy and program system calls Still, many false positives! Program code might defend itself Manual audits impractical! In our study, only 13% of adversaryaccessible name resolutions are actually vulnerable 15

37 Prior Runtime Analysis Have both access control policy and program system calls Still, many false positives! Program code might defend itself Manual audits impractical! In our study, only 13% of adversaryaccessible name resolutions are actually vulnerable 15

38 Prior Runtime Analysis Have both access control policy and program system calls Still, many false positives! Program code might defend itself Manual audits impractical???! In our study, only 13% of adversaryaccessible name resolutions are actually vulnerable 15

39 Prior Runtime Analysis False negatives during normal runtime! Attacks require very specific conditions that do not occur in normal runtime Example: mountall untrusted search path vulnerability required:! Launching that program in an untrusted directory, and! Symbolic links named none and fusectl 16

40 Our Solution Thus, we have to actively change the namespace to create adversarial scenarios! And evaluate process response to scenario We take inspiration from grey-box testing! Feed known adversarial inputs to programs and examine process response (e.g., detect SQL injection vulnerability) 17

41 Our Solution Thus, we have to actively change the namespace to create adversarial scenarios! And evaluate process response to scenario We take inspiration from grey-box testing! Feed known adversarial inputs to programs and examine process response (e.g., detect SQL injection vulnerability) Generate Adversarial Input Study Program Response 17

42 Our Solution Thus, we have to actively change the namespace to create adversarial scenarios! And evaluate process response to scenario We take inspiration from grey-box testing! Feed known adversarial inputs to programs and examine process response (e.g., detect SQL injection vulnerability) Generate Adversarial test ; drop table name; Study Program Input Response 17

43 Our Solution Thus, we have to actively change the namespace to create adversarial scenarios! And evaluate process response to scenario We take inspiration from grey-box testing! Feed known adversarial inputs to programs and examine process response (e.g., detect SQL injection vulnerability) Generate Adversarial test ; drop table name; db.exec( drop table name ); Study Program Input Response 17

44 Our Solution Thus, we have to actively change the namespace to create adversarial scenarios! And evaluate process response to scenario We take inspiration from grey-box testing! Feed known adversarial inputs to programs and examine process response (e.g., detect SQL injection vulnerability) Generate Adversarial test ; drop table name; db.exec( drop table name ); Study Program Input Response ulnerable! 17

45 Grey-Box Test Using OS OS is in charge of namespace! Use OS to feed adversarial input in response to program name resolution requests, and study program response! System-wide testing Generate Adversarial Input Examine Program Response 18

46 Solution Overview (OS) Generate Adversarial Input / Namespace (OS) Study Program Response 19

47 Solution Overview Name res syscalls (OS) Generate Adversarial Input / Namespace (OS) Study Program Response 19

48 Solution Overview Name res syscalls (OS) Generate Adversarial Input Modify Namespace / Namespace (OS) Study Program Response 19

49 Solution Overview Name res syscalls (OS) Generate Adversarial Input Modify Namespace / Namespace All syscalls (OS) Study Program Response 19

50 Solution Overview Name res syscalls (OS) Generate Adversarial Input Modify Namespace / Namespace All syscalls Accept? ulnerable! (OS) Study Program Response 19

51 Solution Overview Name res syscalls (OS) Generate Adversarial Input Modify Namespace / Namespace All syscalls Accept? ulnerable! (OS) Study Program Response 19

52 Solution Overview System-wide? Name res syscalls (OS) Generate Adversarial Input Modify Namespace / Namespace All syscalls Accept? ulnerable! (OS) Study Program Response 19

53 Solution Overview System-wide? Adversary accessibility? Name res syscalls (OS) Generate Adversarial Input Modify Namespace / Namespace All syscalls Accept? ulnerable! (OS) Study Program Response 19

54 Solution Overview System-wide? Adversary accessibility? Name res syscalls (OS) Generate Adversarial Input Bindings adversary accessible? Modify Namespace Access Control Policy / Namespace All syscalls Accept? ulnerable! (OS) Study Program Response 19

55 Solution Overview System-wide? Adversary accessibility? Manage Attacks? Name res syscalls (OS) Generate Adversarial Input Bindings adversary accessible? Modify Namespace Access Control Policy / Namespace All syscalls Accept? ulnerable! (OS) Study Program Response 19

56 Solution Overview System-wide? Adversary accessibility? Manage Attacks? Name res syscalls All syscalls (OS) Generate Adversarial Input Not Already Attacked? Attack History Accept? ulnerable! (OS) Study Program Response Bindings adversary accessible? Modify Namespace / Access Control Policy Namespace 19

57 Solution Overview System-wide? Adversary accessibility? Manage Attacks? Name res syscalls All syscalls (OS) Generate Adversarial Input Not Already Attacked? Attack History Accept? ulnerable! (OS) Study Program Response Bindings adversary accessible? Modify Namespace / Access Control Policy Namespace Reject Resource? 19

58 Solution Overview System-wide? Adversary accessibility? Manage Attacks? Name res syscalls All syscalls (OS) Generate Adversarial Input Not Already Attacked? Reject? Not vulnerable! Attack History Accept? ulnerable! (OS) Study Program Response Bindings adversary accessible? Modify Namespace / Access Control Policy Namespace Reject Resource? 19

59 Solution Overview System-wide? Adversary accessibility? Manage Attacks? Name res syscalls All syscalls (OS) Generate Adversarial Input Not Already Attacked? Reject? Not vulnerable! Attack History Accept? ulnerable! (OS) Study Program Response Bindings adversary accessible? Modify Namespace / Access Control Policy Namespace Reject Resource? Rollback Namespace? 19

60 Solution Overview System-wide? Adversary accessibility? Manage Attacks? Name res syscalls All syscalls (OS) Generate Adversarial Input Not Already Attacked? Reject? Not vulnerable! Attack History Accept? ulnerable! (OS) Study Program Response Bindings adversary accessible? Modify Namespace Rollback Namespace / Access Control Policy Namespace Reject Resource? Rollback Namespace? 19

61 Solution Overview System-wide? Adversary accessibility? Manage Attacks? Name res syscalls All syscalls (OS) Generate Adversarial Input Not Already Attacked? Reject? Not vulnerable! Attack History Accept? ulnerable! (OS) Study Program Response Bindings adversary accessible? Modify Namespace Rollback Namespace / Access Control Policy Namespace Reject Resource? Rollback Namespace? 19

62 Solution Overview System-wide? Adversary accessibility? Manage Attacks? Name res syscalls All syscalls (OS) Generate Adversarial Input Not Already Attacked? Reject? Not vulnerable! Attack History Accept? ulnerable! (OS) Study Program Response Launch Phase Bindings adversary accessible? Modify Namespace Rollback Namespace / Access Control Policy Namespace Reject Resource? Rollback Namespace? 19

63 Solution Overview System-wide? Adversary accessibility? Manage Attacks? Name res syscalls All syscalls (OS) Generate Adversarial Input Not Already Attacked? Reject? Not vulnerable! Attack History Accept? ulnerable! (OS) Study Program Response Launch Phase Detect Phase Bindings adversary accessible? Modify Namespace Rollback Namespace / Access Control Policy Namespace Reject Resource? Rollback Namespace? 19

64 Launch Phase ictim (user root) User-space / Kernel etc var mail passwd root 20

65 Launch Phase ictim (user root) User-space / Kernel etc var mail passwd root 20

66 Launch Phase ictim (user root) fd = open( /var/mail/root, O_APPEND) / User-space Kernel etc var mail passwd root 20

67 Launch Phase ictim (user root) fd = open( /var/mail/root, O_APPEND) / User-space Kernel etc var mail passwd root 20

68 Launch Phase ictim (user root)!"#$%&'#(%&'%&)* fd = open( /var/mail/root, O_APPEND) / User-space Kernel etc var mail passwd root 20

69 Launch Phase ictim (user root)!"#$%&'#(%&'%&)* fd = open( /var/mail/root, O_APPEND) / User-space Kernel etc var mail passwd root 20

70 Launch Phase ictim (user root)!"#$%&'#(%&'%&)* +"#$%&'#,'-./*,/0#,11.** fd = open( /var/mail/root, O_APPEND) / User-space Kernel etc var mail passwd root 20

71 Launch Phase ictim (user root)!"#$%&'#(%&'%&)* +"#$%&'#,'-./*,/0#,11.** fd = open( /var/mail/root, O_APPEND) / User-space Kernel etc var mail Adversary (group mail) passwd root 20

72 Launch Phase ictim (user root)!"#$%&'#(%&'%&)* +"#$%&'#,'-./*,/0#,11.** 2"#3,4&15#,6,17# 89:'%;0#&,9.*<,1.= fd = open( /var/mail/root, O_APPEND) / User-space Kernel etc var mail Adversary (group mail) passwd root 20

73 Launch Phase ictim (user root)!"#$%&'#(%&'%&)* +"#$%&'#,'-./*,/0#,11.** 2"#3,4&15#,6,17# 89:'%;0#&,9.*<,1.= fd = open( /var/mail/root, O_APPEND) / User-space Kernel etc var mail Adversary (group mail) passwd root delete( /var/mail/root ); symlink( /etc/passwd, /var/mail/root ) 20

74 Launch Phase ictim (user root)!"#$%&'#(%&'%&)* +"#$%&'#,'-./*,/0#,11.** 2"#3,4&15#,6,17# 89:'%;0#&,9.*<,1.= fd = open( /var/mail/root, O_APPEND) / User-space Kernel etc var mail Adversary (group mail) passwd root delete( /var/mail/root ); symlink( /etc/passwd, /var/mail/root ) 20

75 Launch Phase ictim (user root) fd = open( /var/mail/root, O_APPEND) /!"#$%&'#(%&'%&)* +"#$%&'#,'-./*,/0#,11.** 2"#3,4&15#,6,17# 89:'%;0#&,9.*<,1.= >"#?:&@&4.#*0*A.9#1,BB User-space Kernel etc var mail Adversary (group mail) passwd root delete( /var/mail/root ); symlink( /etc/passwd, /var/mail/root ) 20

76 Detect Phase ictim (user root) User-space / Kernel etc var mail passwd root 21

77 Detect Phase ictim (user root) User-space / Kernel etc var mail passwd root 21

78 Detect Phase ictim (user root) write(fd) / User-space Kernel etc var mail passwd root 21

79 Detect Phase ictim (user root) write(fd) / User-space Kernel etc var mail passwd root 21

80 Detect Phase ictim (user write(fd) / User-space Kernel etc var mail passwd root 21

81 Detect Phase ictim (user write(fd) / User-space Kernel etc var mail passwd root 21

82 Detect Phase ictim (user +"#D.1:/'#-4B&./,(%B%A0 write(fd) / User-space Kernel etc var mail passwd root 21

83 Detect Phase ictim (user +"#D.1:/'#-4B&./,(%B%A0 2"#D:BB(,17#&,9.*<,1. write(fd) / User-space Kernel etc var mail passwd root 21

84 Detect Phase ictim (user +"#D.1:/'#-4B&./,(%B%A0 2"#D:BB(,17#&,9.*<,1. write(fd) / User-space Kernel etc var mail passwd root 21

85 Detect Phase ictim (user +"#D.1:/'#-4B&./,(%B%A0 2"#D:BB(,17#&,9.*<,1. >"#D.*A,/A#*0*A.9#1,BB write(fd) / User-space Kernel etc var mail passwd root 21

86 Find Accessible Bindings root open( /var/ mail/root ) / var mail root etc passwd 22

87 Find Accessible Bindings Find bindings - Shadow resolution! Extract name resolution code inside kernel and obtain bindings before system call starts root open( /var/ mail/root ) / var mail root etc passwd 22

88 Find Accessible Bindings Find bindings - Shadow resolution! Extract name resolution code inside kernel and obtain bindings before system call starts root open( /var/ mail/root ) / var mail root etc passwd 22

89 Find Accessible Bindings Find bindings - Shadow resolution! Extract name resolution code inside kernel and obtain bindings before system call starts Find adversary-accessible bindings - Adversary model! Use access control policy DAC model: Any other user apart from root MAC model: (SELinux) root open( /var/ mail/root ) / var mail root etc passwd 22

90 Find Accessible Bindings Find bindings - Shadow resolution! Extract name resolution code inside kernel and obtain bindings before system call starts Find adversary-accessible bindings - Adversary model! Use access control policy DAC model: Any other user apart from root MAC model: (SELinux) root open( /var/ mail/root ) / var mail root A mail etc passwd 22

91 Launching an Attack root open( /var/ mail/root ) / var mail root A mail etc passwd 23

92 Launching an Attack Modify namespace to generate attack test case! Existing data should be backed up! Unix domain sockets, cannot be recovered if deleted! Attack should be visible only to victims of the adversary Not to all processes root open( /var/ mail/root ) / var mail root A mail etc passwd 23

93 Launching an Attack Modify namespace to generate attack test case! Existing data should be backed up! Unix domain sockets, cannot be recovered if deleted! Attack should be visible only to victims of the adversary Not to all processes root A mail open( /var/ mail/root ) / var mail root etc passwd Link 23

94 Launching an Attack 24

95 Launching an Attack Solution - Union filesystems! Combines lower read-only and upper read-write fs 24

96 Launching an Attack Solution - Union filesystems! Combines lower read-only and upper read-write fs Read-write upper branch Read-only lower branch /var/root/mail 24

97 Launching an Attack Solution - Union filesystems! Combines lower read-only and upper read-write fs Read-write upper branch /var/root/mail Read-only lower branch /var/root/mail 24

98 Launching an Attack Solution - Union filesystems! Combines lower read-only and upper read-write fs Adversary changes only upper filesystem! Show upper or lower branch depending on adversary and system call Read-write upper branch /var/root/mail Read-only lower branch /var/root/mail 24

99 Launching an Attack Solution - Union filesystems! Combines lower read-only and upper read-write fs Adversary changes only upper filesystem! Show upper or lower branch depending on adversary and system call Adversary upper branch /var/root/mail Original fs lower branch /var/root/mail 24

100 Launching an Attack Solution - Union filesystems! Combines lower read-only and upper read-write fs Adversary changes only upper filesystem! Show upper or lower branch depending on adversary and system call A Adversary upper branch /var/root/mail Original fs lower branch /var/root/mail 24

101 Launching an Attack Solution - Union filesystems! Combines lower read-only and upper read-write fs Adversary changes only upper filesystem! Show upper or lower branch depending on adversary and system call Adversary upper branch A /var/root/mail A is adversary Original fs lower branch /var/root/mail 24

102 Launching an Attack Solution - Union filesystems! Combines lower read-only and upper read-write fs Adversary changes only upper filesystem! Show upper or lower branch depending on adversary and system call Adversary upper branch Original fs lower branch A /var/root/mail /var/root/mail A is adversary A is not adversary 24

103 Launching an Attack Solution - Union filesystems! Combines lower read-only and upper read-write fs Adversary changes only upper filesystem! Show upper or lower branch depending on adversary and system call Adversary upper branch Original fs lower branch A /var/root/mail /var/root/mail A is adversary A is not adversary stat() 24

104 Manage Attacks 25

105 Manage Attacks Only run an attack test case once! How to identify current system call originates from code that has already been tested? 25

106 Manage Attacks Only run an attack test case once! How to identify current system call originates from code that has already been tested? Program entry points as unique identifiers! Program instruction calling library that performs system call Obtained by user-stack backtrace within kernel Extensions for interpreters (11-59 LOC per interpreter) 25

107 Manage Attacks Only run an attack test case once! How to identify current system call originates from code that has already been tested? Program entry points as unique identifiers! Program instruction calling library that performs system call Obtained by user-stack backtrace within kernel Extensions for interpreters (11-59 LOC per interpreter)./a.out./a.out libc libc (syscall) 25

108 Manage Attacks Only run an attack test case once! How to identify current system call originates from code that has already been tested? Program entry points as unique identifiers! Program instruction calling library that performs system call Obtained by user-stack backtrace within kernel Extensions for interpreters (11-59 LOC per interpreter)./a.out./a.out libc libc (syscall) 25

109 Detect ulnerability How do we know victim process has accepted or rejected the resource? Accept resource! Program uses accept system calls on test case ( upper layer ) resource Reject resource! Program retries system call at same entry point or exits without accepting 26

110 Detect ulnerability Acceptance for attacks we consider! Not all system calls on tainted resources signify vulnerabilities. 27

111 Recovery and Rollback Namespace rollback! Wipe adversarial resource from upper branch Further name resolutions get resource from lower branch! Since we operate at FS layer, we can redirect open file descriptors to lower layer Process recovery! Some processes retry we don t do anything! For those that exit we restart process Linux has some rollback facilities we will examine, if necessary 28

112 Implementation STING as a kernel patch for Linux 2.6 and 3! ~2700 LOC User-space support! Init ramdisk scripts to mount stacked filesystem, load attack history log, load adversary model We have a package for Ubuntu 12.04! apt-get install sting Once installed, STING automatically starts testing the whole system! No special runtime environment or setup needed 29

113 Results - ulnerabilities 30

114 Results - ulnerabilities Both old and new programs 30

115 Results - ulnerabilities Special users to root 30

116 Results - ulnerabilities Known but unfixed! 30

117 Results - ulnerabilities 30

118 ulnerabilities by Entrypoint Under DAC adversary model! Only 4% (Fedora) and 5.7% (Ubuntu) of total name resolution entrypoints were accessible to adversaries! Only 0.3% (Fedora) and 0.9% (Ubuntu) of total name resolutions were vulnerable 31

119 ulnerabilities by Entrypoint Under DAC adversary model! Only 4% (Fedora) and 5.7% (Ubuntu) of total name resolution entrypoints were accessible to adversaries! Only 0.3% (Fedora) and 0.9% (Ubuntu) of total name resolutions were vulnerable Static Analysis False + 31

120 ulnerabilities by Entrypoint Under DAC adversary model! Only 4% (Fedora) and 5.7% (Ubuntu) of total name resolution entrypoints were accessible to adversaries! Only 0.3% (Fedora) and 0.9% (Ubuntu) of total name resolutions were vulnerable Static Analysis False + Normal Runtime False + 31

121 STING detects TOCTTOU races STING can deterministically create races, as it is in the system ictim Adversary 32

122 STING detects TOCTTOU races STING can deterministically create races, as it is in the system ictim Adversary 32

123 STING detects TOCTTOU races STING can deterministically create races, as it is in the system ictim Adversary 32

124 STING detects TOCTTOU races STING can deterministically create races, as it is in the system ictim Adversary 32

125 STING creates scenarios That do not occur in normal runtime 33

126 STING creates scenarios That do not occur in normal runtime Adversary 33

127 STING creates scenarios That do not occur in normal runtime Adversary ictim 33

128 STING creates scenarios That do not occur in normal runtime Adversary ictim 33

129 Detects easily overlooked 34

130 Detects easily overlooked Manual checks can easily overlook vulnerabilities 34

131 Detects easily overlooked Manual checks can easily overlook vulnerabilities Squat during create 34

132 Detects easily overlooked Manual checks can easily overlook vulnerabilities Squat during create Symbolic link 34

133 Detects easily overlooked Manual checks can easily overlook vulnerabilities Squat during create Symbolic link Hard link, race conditions 34

134 Detects easily overlooked Manual checks can easily overlook vulnerabilities Squat during create But, misses already existing file squat! Symbolic link Hard link, race conditions 34

135 Shows OS distributor challenge STING also found vulnerabilities where the problem seemed to be the system s access control policy! When contacted, a developer refused to fix bug claiming fault in system s access control policy! We found other vulnerabilities that seemed better fixed by the access control than code E.g., postgres init script 35

136 Performance STING causes around 8% overhead on macrobenchmarks! Noticeable overhead, but we were able to use system! We are looking for further avenues to improve performance 36

137 Conclusions Name resolution is a fundamental process! But, has long been vulnerable to various attacks It is both difficult to prevent name resolution attacks and find program vulnerabilities! We use runtime grey-box testing STING is a system-wide, online tool that finds name resolution vulnerabilities in programs! By producing malicious test case when a program s adversary can modify bindings used in resolution Found 21 previously-unknown vulnerabilities! Highlights various issues 37

138 Availability STING webpage : Please contact hvijay@cse.psu.edu for access to repository We envision STING be used on distributions during testing (e.g., alpha, beta) or by administrators on test systems before deployment to fix vulnerabilities before adversaries exploit them We have a package for Ubuntu 12.04! apt-get install sting 38

139 Thank You! Questions? for contact : hvijay@cse.psu.edu 39

140 Results Retry vs Restart Around 32% of programs retried, whereas the rest had to be restarted! Programs that retry integrate well with STING! Restarted programs may lose state! We are investigating integrating process checkpointing for graceful recovery of process state 40

141 Guarantees If a process accepts an adversarial resource! There is a vulnerable name resolution! Reads may not be exploitable Depends on program internals 41

CSE543 - Introduction to Computer and Network Security

CSE543 - Introduction to Computer and Network Security CSE543 - Introduction to Computer and Network Security Module: Software Vulnerabilities Professor Trent Jaeger 1 Programming Why do we write programs? Function What functions do we enable via our programs?

More information

Advanced System Security: Vulnerabilities

Advanced System Security: Vulnerabilities Advanced System Security: Vulnerabilities Trent Jaeger Systems and Internet Infrastructure Security (SIIS) Lab Computer Science and Engineering Department Pennsylvania State University CSE544 -Advanced

More information

Advanced Systems Security: Confused Deputy

Advanced Systems Security: Confused Deputy Advanced Systems Security: Confused Deputy Trent Jaeger Systems and Internet Infrastructure Security (SIIS) Lab Computer Science and Engineering Department Pennsylvania State University 1 Talk Outline

More information

Advanced Systems Security: Ordinary Operating Systems

Advanced Systems Security: Ordinary Operating Systems Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Advanced Systems Security: New Threats

Advanced Systems Security: New Threats Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Advanced Systems Security: Ordinary Operating Systems

Advanced Systems Security: Ordinary Operating Systems Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Advanced Systems Security: Symbolic Execution

Advanced Systems Security: Symbolic Execution Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

CMPSC 497 Attack Surface

CMPSC 497 Attack Surface Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA CMPSC 497 Attack Surface

More information

CSE 544 Advanced Systems Security

CSE 544 Advanced Systems Security Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA CSE 544 Advanced Systems

More information

OS Security III: Sandbox and SFI

OS Security III: Sandbox and SFI 1 OS Security III: Sandbox and SFI Chengyu Song Slides modified from Dawn Song 2 Administrivia Lab2 VMs on lab machine Extension? 3 Users and processes FACT: although ACLs use users as subject, the OS

More information

Secure Architecture Principles

Secure Architecture Principles Computer Security Course. Secure Architecture Principles Slides credit: Dan Boneh What Happens if you can t drop privilege? In what example scenarios does this happen? A service loop E.g., ssh Solution?

More information

Secure Software Programming and Vulnerability Analysis

Secure Software Programming and Vulnerability Analysis Secure Software Programming and Vulnerability Analysis Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Race Conditions Secure Software Programming 2 Overview Parallel execution

More information

Practical Verification of System Integrity in Cloud Computing Environments

Practical Verification of System Integrity in Cloud Computing Environments Practical Verification of System Integrity in Cloud Computing Environments Trent Jaeger Penn State NSRC Industry Day April 27 th, 2012 1 Overview Cloud computing even replaces physical infrastructure Is

More information

Computer Security. 04r. Pre-exam 1 Concept Review. Paul Krzyzanowski. Rutgers University. Spring 2018

Computer Security. 04r. Pre-exam 1 Concept Review. Paul Krzyzanowski. Rutgers University. Spring 2018 Computer Security 04r. Pre-exam 1 Concept Review Paul Krzyzanowski Rutgers University Spring 2018 February 15, 2018 CS 419 2018 Paul Krzyzanowski 1 Key ideas from the past four lectures February 15, 2018

More information

CIS Operating Systems File Systems Security. Professor Qiang Zeng Fall 2017

CIS Operating Systems File Systems Security. Professor Qiang Zeng Fall 2017 CIS 5512 - Operating Systems File Systems Security Professor Qiang Zeng Fall 2017 Previous class File and directory Hard link and soft link Mount Layered structure File system design Naïve: linked list

More information

Advanced Systems Security: Multics

Advanced Systems Security: Multics Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Static Analysis. Systems and Internet Infrastructure Security

Static Analysis. Systems and Internet Infrastructure Security Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Static Analysis Trent

More information

SysSec. Aurélien Francillon

SysSec. Aurélien Francillon SysSec Aurélien Francillon francill@eurecom.fr https://www.krackattacks.com/ https://arstechnica.com/information-technology/2017/10/crypto-failure-cripples-millions-ofhigh-security-keys-750k-estonian-ids/

More information

Hackveda Training - Ethical Hacking, Networking & Security

Hackveda Training - Ethical Hacking, Networking & Security Hackveda Training - Ethical Hacking, Networking & Security Day1: Hacking windows 7 / 8 system and security Part1 a.) Windows Login Password Bypass manually without CD / DVD b.) Windows Login Password Bypass

More information

Module: Program Vulnerabilities. Professor Trent Jaeger. CSE543 - Introduction to Computer and Network Security

Module: Program Vulnerabilities. Professor Trent Jaeger. CSE543 - Introduction to Computer and Network Security CSE543 - Introduction to Computer and Network Security Module: Program Vulnerabilities Professor Trent Jaeger 1 Programming Why do we write programs? Function What functions do we enable via our programs?

More information

Linux Systems Security. Security Design NETS Fall 2016

Linux Systems Security. Security Design NETS Fall 2016 Linux Systems Security Security Design NETS1028 - Fall 2016 Designing a Security Approach Physical access Boot control Service availability and control User access Change control Data protection and backup

More information

Module: Program Vulnerabilities. Professor Trent Jaeger. CSE543 - Introduction to Computer and Network Security

Module: Program Vulnerabilities. Professor Trent Jaeger. CSE543 - Introduction to Computer and Network Security CSE543 - Introduction to Computer and Network Security Module: Program Vulnerabilities Professor Trent Jaeger 1 Programming Why do we write programs? Function What functions do we enable via our programs?

More information

Advanced Systems Security: Principles

Advanced Systems Security: Principles Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Module: Operating System Security. Professor Trent Jaeger. CSE543 - Introduction to Computer and Network Security

Module: Operating System Security. Professor Trent Jaeger. CSE543 - Introduction to Computer and Network Security CSE543 - Introduction to Computer and Network Security Module: Operating System Security Professor Trent Jaeger 1 OS Security So, you have built an operating system that enables user-space processes to

More information

6.858 Lecture 4 OKWS. Today's lecture: How to build a secure web server on Unix. The design of our lab web server, zookws, is inspired by OKWS.

6.858 Lecture 4 OKWS. Today's lecture: How to build a secure web server on Unix. The design of our lab web server, zookws, is inspired by OKWS. 6.858 Lecture 4 OKWS Administrivia: Lab 1 due this Friday. Today's lecture: How to build a secure web server on Unix. The design of our lab web server, zookws, is inspired by OKWS. Privilege separation

More information

2 Lecture Embedded System Security A.-R. Darmstadt, Android Security Extensions

2 Lecture Embedded System Security A.-R. Darmstadt, Android Security Extensions 2 Lecture Embedded System Security A.-R. Sadeghi, @TU Darmstadt, 2011-2014 Android Security Extensions App A Perm. P 1 App B Perm. P 2 Perm. P 3 Kirin [2009] Reference Monitor Prevents the installation

More information

CSCI 420: Mobile Application Security. Lecture 7. Prof. Adwait Nadkarni. Derived from slides by William Enck, Patrick McDaniel and Trent Jaeger

CSCI 420: Mobile Application Security. Lecture 7. Prof. Adwait Nadkarni. Derived from slides by William Enck, Patrick McDaniel and Trent Jaeger CSCI 420: Mobile Application Security Lecture 7 Prof. Adwait Nadkarni Derived from slides by William Enck, Patrick McDaniel and Trent Jaeger 1 cryptography < security Cryptography isn't the solution to

More information

Symlink attacks. Do not assume that symlinks are trustworthy: Example 1

Symlink attacks. Do not assume that symlinks are trustworthy: Example 1 Symlink attacks Do not assume that symlinks are trustworthy: Example 1 Application A creates a file for writing in /tmp. It assumes that since the file name is unusual, or because it encodes A's name or

More information

CS 356 Operating System Security. Fall 2013

CS 356 Operating System Security. Fall 2013 CS 356 Operating System Security Fall 2013 Review Chapter 1: Basic Concepts and Terminology Chapter 2: Basic Cryptographic Tools Chapter 3 User Authentication Chapter 4 Access Control Lists Chapter 5 Database

More information

CMPSC 497 Buffer Overflow Vulnerabilities

CMPSC 497 Buffer Overflow Vulnerabilities Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA CMPSC 497 Buffer Overflow

More information

Outline. Security as an economic good. Risk budgeting with ALE. Failure: Risk compensation. Failure: Displacement activity

Outline. Security as an economic good. Risk budgeting with ALE. Failure: Risk compensation. Failure: Displacement activity CSci 5271 Introduction to Computer Security Day 2: Intro to Software and OS Security Stephen McCamant University of Minnesota, Computer Science & Engineering Security as an economic good Security is a

More information

Fundamentals of Computer Security

Fundamentals of Computer Security Fundamentals of Computer Security Spring 2015 Radu Sion Software Errors Buffer Overflow TOCTTOU 2005-15 Portions copyright by Bogdan Carbunar and Wikipedia. Used with permission Why Security Vulnerabilities?

More information

Justifying Integrity Using a Virtual Machine Verifier

Justifying Integrity Using a Virtual Machine Verifier Justifying Integrity Using a Virtual Machine Verifier Joshua Schiffman, Thomas Moyer, Christopher Shal, Trent Jaeger, and Patrick McDaniel ACSAC 09 1 1 Cloudy Horizons Utility-based cloud computing is

More information

Security Architecture

Security Architecture Security Architecture We ve been looking at how particular applications are secured We need to secure not just a few particular applications, but many applications, running on separate machines We need

More information

CSE543 - Introduction to Computer and Network Security. Module: Operating System Security

CSE543 - Introduction to Computer and Network Security. Module: Operating System Security CSE543 - Introduction to Computer and Network Security Module: Operating System Security Professor Trent Jaeger 1 OS Security An secure OS should provide (at least) the following mechanisms Memory protection

More information

Race Condition Vulnerability Lab

Race Condition Vulnerability Lab Concordia Institute for Information Systems Engineering - INSE 6130 1 Race Condition Vulnerability Lab Copyright c 2006-2012 Wenliang Du, Syracuse University. The development of this document is funded

More information

Lecture Notes for 04/04/06: UNTRUSTED CODE Fatima Zarinni.

Lecture Notes for 04/04/06: UNTRUSTED CODE Fatima Zarinni. Lecture Notes for 04/04/06 UNTRUSTED CODE Fatima Zarinni. Last class we started to talk about the different System Solutions for Stack Overflow. We are going to continue the subject. Stages of Stack Overflow

More information

Attacks Against Websites 3 The OWASP Top 10. Tom Chothia Computer Security, Lecture 14

Attacks Against Websites 3 The OWASP Top 10. Tom Chothia Computer Security, Lecture 14 Attacks Against Websites 3 The OWASP Top 10 Tom Chothia Computer Security, Lecture 14 OWASP top 10. The Open Web Application Security Project Open public effort to improve web security: Many useful documents.

More information

Survey of Cyber Moving Targets. Presented By Sharani Sankaran

Survey of Cyber Moving Targets. Presented By Sharani Sankaran Survey of Cyber Moving Targets Presented By Sharani Sankaran Moving Target Defense A cyber moving target technique refers to any technique that attempts to defend a system and increase the complexity of

More information

[This link is no longer available because the program has changed.] II. Security Overview

[This link is no longer available because the program has changed.] II. Security Overview Security ------------------- I. 2 Intro Examples II. Security Overview III. Server Security: Offense + Defense IV. Unix Security + POLP V. Example: OKWS VI. How to Build a Website I. Intro Examples --------------------

More information

Outline. Classic races: files in /tmp. Race conditions. TOCTTOU example. TOCTTOU gaps. Vulnerabilities in OS interaction

Outline. Classic races: files in /tmp. Race conditions. TOCTTOU example. TOCTTOU gaps. Vulnerabilities in OS interaction Outline CSci 5271 Introduction to Computer Security Day 3: Low-level vulnerabilities Stephen McCamant University of Minnesota, Computer Science & Engineering Race conditions Classic races: files in /tmp

More information

OPERATING SYSTEM TRANSACTIONS

OPERATING SYSTEM TRANSACTIONS OPERATING SYSTEM TRANSACTIONS Donald E. Porter, Owen S. Hofmann, Christopher J. Rossbach, Alexander Benn, and Emmett Witchel The University of Texas at Austin OS APIs don t handle concurrency 2 OS is weak

More information

Advanced Systems Security: Securing Commercial Systems

Advanced Systems Security: Securing Commercial Systems Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

CS 380S. TOCTTOU Attacks. Don Porter. Some slides courtesy Vitaly Shmatikov and Emmett Witchel. slide 1

CS 380S. TOCTTOU Attacks. Don Porter. Some slides courtesy Vitaly Shmatikov and Emmett Witchel. slide 1 CS 380S TOCTTOU Attacks Don Porter Some slides courtesy Vitaly Shmatikov and Emmett Witchel slide 1 Definitions TOCTTOU Time of Check To Time of Use Check Establish some precondition (invariant), e.g.,

More information

Exploiting Unix File-System Races via Algorithmic Complexity Attacks

Exploiting Unix File-System Races via Algorithmic Complexity Attacks Exploiting Unix File-System Races via Algorithmic Complexity Attacks Xiang Cai, Yuwei Gui, and Rob Johnson (Stony Brook University). IEEE Symposium on Security and Privacy, May 2009. Agenda Introduction

More information

3/7/18. Secure Coding. CYSE 411/AIT681 Secure Software Engineering. Race Conditions. Concurrency

3/7/18. Secure Coding. CYSE 411/AIT681 Secure Software Engineering. Race Conditions. Concurrency Secure Coding CYSE 411/AIT681 Secure Software Engineering Topic #13. Secure Coding: Race Conditions Instructor: Dr. Kun Sun String management Pointer Subterfuge Dynamic memory management Integer security

More information

Secure Programming Techniques

Secure Programming Techniques Secure Programming Techniques Meelis ROOS mroos@ut.ee Institute of Computer Science Tartu University spring 2014 Course outline Introduction General principles Code auditing C/C++ Web SQL Injection PHP

More information

CS 642 Homework #4. Due Date: 11:59 p.m. on Tuesday, May 1, Warning!

CS 642 Homework #4. Due Date: 11:59 p.m. on Tuesday, May 1, Warning! CS 642 Homework #4 Due Date: 11:59 p.m. on Tuesday, May 1, 2007 Warning! In this assignment, you will construct and launch attacks against a vulnerable computer on the CS network. The network administrators

More information

0x1A Great Papers in Computer Security

0x1A Great Papers in Computer Security CS 380S 0x1A Great Papers in Computer Security Vitaly Shmatikov http://www.cs.utexas.edu/~shmat/courses/cs380s/ slide 1 After All Else Fails Intrusion prevention Find buffer overflows and remove them Use

More information

CS 161 Computer Security

CS 161 Computer Security Paxson Spring 2017 CS 161 Computer Security Midterm 1 Print your name:, (last) (first) I am aware of the Berkeley Campus Code of Student Conduct and acknowledge that any academic misconduct will be reported

More information

Administrative Details. CS 140 Final Review Session. Pre-Midterm. Plan For Today. Disks + I/O. Pre-Midterm, cont.

Administrative Details. CS 140 Final Review Session. Pre-Midterm. Plan For Today. Disks + I/O. Pre-Midterm, cont. Administrative Details CS 140 Final Review Session Final exam: 12:15-3:15pm, Thursday March 18, Skilling Aud (here) Questions about course material or the exam? Post to the newsgroup with Exam Question

More information

Operating system security models

Operating system security models Operating system security models Unix security model Windows security model MEELIS ROOS 1 General Unix model Everything is a file under a virtual root diretory Files Directories Sockets Devices... Objects

More information

Advanced Systems Security: Security Goals

Advanced Systems Security: Security Goals Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Module: Program Vulnerabilities. Professor Trent Jaeger. CSE543 - Introduction to Computer and Network Security

Module: Program Vulnerabilities. Professor Trent Jaeger. CSE543 - Introduction to Computer and Network Security CSE543 - Introduction to Computer and Network Security Module: Program Vulnerabilities Professor Trent Jaeger 1 1 Programming Why do we write programs? Function What functions do we enable via our programs?

More information

2 Sadeghi, Davi TU Darmstadt 2012 Secure, Trusted, and Trustworthy Computing Chapter 6: Runtime Attacks

2 Sadeghi, Davi TU Darmstadt 2012 Secure, Trusted, and Trustworthy Computing Chapter 6: Runtime Attacks Runtime attacks are major threats to today's applications Control-flow of an application is compromised at runtime Typically, runtime attacks include injection of malicious code Reasons for runtime attacks

More information

CYSE 411/AIT681 Secure Software Engineering Topic #13. Secure Coding: Race Conditions

CYSE 411/AIT681 Secure Software Engineering Topic #13. Secure Coding: Race Conditions CYSE 411/AIT681 Secure Software Engineering Topic #13. Secure Coding: Race Conditions Instructor: Dr. Kun Sun 1 Secure Coding String management Pointer Subterfuge Dynamic memory management Integer security

More information

CS 161 Computer Security

CS 161 Computer Security Song Spring 2015 CS 161 Computer Security Discussion 6 February 24 & 25, 2015 Question 1 Security Principles (10 min) We discussed the following security principles in lecture: A. Security is economics

More information

Access Control. CMPSC Spring 2012 Introduction Computer and Network Security Professor Jaeger.

Access Control. CMPSC Spring 2012 Introduction Computer and Network Security Professor Jaeger. Access Control CMPSC 443 - Spring 2012 Introduction Computer and Network Security Professor Jaeger www.cse.psu.edu/~tjaeger/cse443-s12/ Access Control Describe the permissions available to computing processes

More information

Secure Containers with EPT Isolation

Secure Containers with EPT Isolation Secure Containers with EPT Isolation Chunyan Liu liuchunyan9@huawei.com Jixing Gu jixing.gu@intel.com Presenters Jixing Gu: Software Architect, from Intel CIG SW Team, working on secure container solution

More information

CIS 5373 Systems Security

CIS 5373 Systems Security CIS 5373 Systems Security Topic 3.1: OS Security Basics of secure design Endadul Hoque Slide Acknowledgment Contents are based on slides from Ninghui Li (Purdue), John Mitchell (Stanford), Dan Boneh (Stanford)

More information

Least-Privilege Isolation: The OKWS Web Server

Least-Privilege Isolation: The OKWS Web Server Least-Privilege Isolation: The OKWS Web Server Brad Karp UCL Computer Science CS GZ03 / M030 14 th December 2015 Can We Prevent All Exploits? Many varieties of exploits Stack smashing, format strings,

More information

C1: Define Security Requirements

C1: Define Security Requirements OWASP Top 10 Proactive Controls IEEE Top 10 Software Security Design Flaws OWASP Top 10 Vulnerabilities Mitigated OWASP Mobile Top 10 Vulnerabilities Mitigated C1: Define Security Requirements A security

More information

Advanced Systems Security: Integrity

Advanced Systems Security: Integrity Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Lecture 10. Pointless Tainting? Evaluating the Practicality of Pointer Tainting. Asia Slowinska, Herbert Bos. Advanced Operating Systems

Lecture 10. Pointless Tainting? Evaluating the Practicality of Pointer Tainting. Asia Slowinska, Herbert Bos. Advanced Operating Systems Lecture 10 Pointless Tainting? Evaluating the Practicality of Pointer Tainting Asia Slowinska, Herbert Bos Advanced Operating Systems December 15, 2010 SOA/OS Lecture 10, Pointer Tainting 1/40 Introduction

More information

OWASP TOP Release. Andy Willingham June 12, 2018 OWASP Cincinnati

OWASP TOP Release. Andy Willingham June 12, 2018 OWASP Cincinnati OWASP TOP 10 2017 Release Andy Willingham June 12, 2018 OWASP Cincinnati Agenda A quick history lesson The Top 10(s) Web Mobile Privacy Protective Controls Why have a Top 10? Software runs the world (infrastructure,

More information

Advanced Systems Security: Principles

Advanced Systems Security: Principles Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Advanced Systems Security: Putting It Together Systems

Advanced Systems Security: Putting It Together Systems Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

n Explain penetration testing concepts n Explain vulnerability scanning concepts n Reconnaissance is the first step of performing a pen test

n Explain penetration testing concepts n Explain vulnerability scanning concepts n Reconnaissance is the first step of performing a pen test Chapter Objectives n Explain penetration testing concepts n Explain vulnerability scanning concepts Chapter #4: Threats, Attacks, and Vulnerabilities Vulnerability Scanning and Penetration Testing 2 Penetration

More information

This slide shows the OWASP Top 10 Web Application Security Risks of 2017, which is a list of the currently most dangerous web vulnerabilities in

This slide shows the OWASP Top 10 Web Application Security Risks of 2017, which is a list of the currently most dangerous web vulnerabilities in 1 This slide shows the OWASP Top 10 Web Application Security Risks of 2017, which is a list of the currently most dangerous web vulnerabilities in terms of prevalence (how much the vulnerability is widespread),

More information

I m paranoid, but am I paranoid enough? Steven M. Bellovin February 20,

I m paranoid, but am I paranoid enough? Steven M. Bellovin February 20, I m paranoid, but am I paranoid enough? Steven M. Bellovin February 20, 2007 1 Special Techniques for Secure Programs Buffer overflows are bad in any case Some problems are only a risk for secure programs

More information

Linux Capability Exploration Lab

Linux Capability Exploration Lab Laboratory for Computer Security Education 1 Linux Capability Exploration Lab Copyright c 2006-2009 Wenliang Du, Syracuse University. The development of this document is funded by the National Science

More information

Last time. Security Policies and Models. Trusted Operating System Design. Bell La-Padula and Biba Security Models Information Flow Control

Last time. Security Policies and Models. Trusted Operating System Design. Bell La-Padula and Biba Security Models Information Flow Control Last time Security Policies and Models Bell La-Padula and Biba Security Models Information Flow Control Trusted Operating System Design Design Elements Security Features 10-1 This time Trusted Operating

More information

CMPSC 497: Static Analysis

CMPSC 497: Static Analysis CMPSC 497: Static Analysis Trent Jaeger Systems and Internet Infrastructure Security (SIIS) Lab Computer Science and Engineering Department Pennsylvania State University Page 1 Our Goal In this course,

More information

Sandboxing Untrusted Code: Software-Based Fault Isolation (SFI)

Sandboxing Untrusted Code: Software-Based Fault Isolation (SFI) Sandboxing Untrusted Code: Software-Based Fault Isolation (SFI) Brad Karp UCL Computer Science CS GZ03 / M030 9 th December 2011 Motivation: Vulnerabilities in C Seen dangers of vulnerabilities: injection

More information

ECE 471 Embedded Systems Lecture 22

ECE 471 Embedded Systems Lecture 22 ECE 471 Embedded Systems Lecture 22 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 31 October 2018 Don t forget HW#7 Announcements 1 Computer Security and why it matters for embedded

More information

OS Security. Authorization. Radboud University Nijmegen, The Netherlands. Winter 2015/2016

OS Security. Authorization. Radboud University Nijmegen, The Netherlands. Winter 2015/2016 OS Security Authorization Radboud University Nijmegen, The Netherlands Winter 2015/2016 A short recap Authentication establishes a mapping between entities (users) and intended operations Typical approach:

More information

Advanced Systems Security: Integrity

Advanced Systems Security: Integrity Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

SAP Security. BIZEC APP/11 Version 2.0 BIZEC TEC/11 Version 2.0

SAP Security. BIZEC APP/11 Version 2.0 BIZEC TEC/11 Version 2.0 Welcome BIZEC Roundtable @ IT Defense, Berlin SAP Security BIZEC APP/11 Version 2.0 BIZEC TEC/11 Version 2.0 February 1, 2013 Andreas Wiegenstein CTO, Virtual Forge 2 SAP Security SAP security is a complex

More information

UNIT 9 Introduction to Linux and Ubuntu

UNIT 9 Introduction to Linux and Ubuntu AIR FORCE ASSOCIATION S CYBERPATRIOT NATIONAL YOUTH CYBER EDUCATION PROGRAM UNIT 9 Introduction to Linux and Ubuntu Learning Objectives Participants will understand the basics of Linux, including the nature,

More information

Portably Preventing File Race Attacks with User-Mode Path Resolution

Portably Preventing File Race Attacks with User-Mode Path Resolution Portably Preventing File Race Attacks with User-Mode Path Resolution Dan Tsafrir Tomer Hertz David Wagner Dilma Da Silva IBM Research Microsoft Research UC Berkeley IBM Research dilmasilva@us.ibm.com TOCTTOU

More information

SE Linux Implementation LINUX20

SE Linux Implementation LINUX20 SE Linux Implementation LINUX20 Russell Coker IBM eserver pseries, Linux, Grid Computing and Storage Technical University 7/7/2004 Licensed under the GPL Topic Objectives In this topic students will learn

More information

Confinement (Running Untrusted Programs)

Confinement (Running Untrusted Programs) Confinement (Running Untrusted Programs) Chester Rebeiro Indian Institute of Technology Madras Untrusted Programs Untrusted Application Entire Application untrusted Part of application untrusted Modules

More information

Secure Architecture Principles

Secure Architecture Principles CS 155 Spring 2016 Secure Architecture Principles Isolation and Least Privilege Access Control Concepts Operating Systems Browser Isolation and Least Privilege Acknowledgments: Lecture slides are from

More information

Topics in Systems and Program Security

Topics in Systems and Program Security Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Topics in Systems and

More information

Application Security through a Hacker s Eyes James Walden Northern Kentucky University

Application Security through a Hacker s Eyes James Walden Northern Kentucky University Application Security through a Hacker s Eyes James Walden Northern Kentucky University waldenj@nku.edu Why Do Hackers Target Web Apps? Attack Surface A system s attack surface consists of all of the ways

More information

The Case for Security Enhanced (SE) Android. Stephen Smalley Trusted Systems Research National Security Agency

The Case for Security Enhanced (SE) Android. Stephen Smalley Trusted Systems Research National Security Agency The Case for Security Enhanced (SE) Android Stephen Smalley Trusted Systems Research National Security Agency Background / Motivation Increasing desire to use mobile devices throughout the US government.

More information

Basic Linux Security. Roman Bohuk University of Virginia

Basic Linux Security. Roman Bohuk University of Virginia Basic Linux Security Roman Bohuk University of Virginia What is Linux? An open source operating system Project started by Linus Torvalds kernel Kernel: core program that controls everything else (controls

More information

Advanced Systems Security: Program Diversity

Advanced Systems Security: Program Diversity Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

CSE543 - Computer and Network Security Module: Virtualization

CSE543 - Computer and Network Security Module: Virtualization CSE543 - Computer and Network Security Module: Virtualization Professor Trent Jaeger CSE543 - Introduction to Computer and Network Security 1 1 Operating System Quandary Q: What is the primary goal of

More information

CSE 565 Computer Security Fall 2018

CSE 565 Computer Security Fall 2018 CSE 565 Computer Security Fall 2018 Lecture 15: Software Security II Department of Computer Science and Engineering University at Buffalo 1 Software Vulnerabilities Buffer overflow vulnerabilities account

More information

ViryaOS RFC: Secure Containers for Embedded and IoT. A proposal for a new Xen Project sub-project

ViryaOS RFC: Secure Containers for Embedded and IoT. A proposal for a new Xen Project sub-project ViryaOS RFC: Secure Containers for Embedded and IoT A proposal for a new Xen Project sub-project Stefano Stabellini @stabellinist The problem Package applications for the target Contain all dependencies

More information

Network File System (NFS)

Network File System (NFS) Network File System (NFS) Brad Karp UCL Computer Science CS GZ03 / M030 14 th October 2015 NFS Is Relevant Original paper from 1985 Very successful, still widely used today Early result; much subsequent

More information

Copyright

Copyright 1 Security Test EXTRA Workshop : ANSWER THESE QUESTIONS 1. What do you consider to be the biggest security issues with mobile phones? 2. How seriously are consumers and companies taking these threats?

More information

New York University CSCI-UA : Advanced Computer Systems: Spring 2016 Midterm Exam

New York University CSCI-UA : Advanced Computer Systems: Spring 2016 Midterm Exam New York University CSCI-UA.480-008: Advanced Computer Systems: Spring 2016 Midterm Exam This exam is 75 minutes. Stop writing when time is called. You must turn in your exam; we will not collect it. Do

More information

Network File System (NFS)

Network File System (NFS) Network File System (NFS) Brad Karp UCL Computer Science CS GZ03 / M030 19 th October, 2009 NFS Is Relevant Original paper from 1985 Very successful, still widely used today Early result; much subsequent

More information

Advanced Systems Security: Integrity

Advanced Systems Security: Integrity Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Applications. Cloud. See voting example (DC Internet voting pilot) Select * from userinfo WHERE id = %%% (variable)

Applications. Cloud. See voting example (DC Internet voting pilot) Select * from userinfo WHERE id = %%% (variable) Software Security Requirements General Methodologies Hardware Firmware Software Protocols Procedure s Applications OS Cloud Attack Trees is one of the inside requirement 1. Attacks 2. Evaluation 3. Mitigation

More information

Penetration Testing following OWASP. Boyan Yanchev Chief Technology Ofcer Peter Dimkov IS Consultant

Penetration Testing following OWASP. Boyan Yanchev Chief Technology Ofcer Peter Dimkov IS Consultant Penetration Testing following OWASP Boyan Yanchev Chief Technology Ofcer Peter Dimkov IS Consultant За Лирекс Penetration testing A method of compromising the security of a computer system or network by

More information

Securing Containers on the High Seas. Jack OWASP Belgium September 2018

Securing Containers on the High Seas. Jack OWASP Belgium September 2018 Securing Containers on the High Seas Jack Mannino @ OWASP Belgium September 2018 Who Am I? Jack Mannino CEO at nvisium, since 2009 Former OWASP Northern Virginia chapter leader Hobbies: Scala, Go and Kubernetes

More information

CSE543 - Computer and Network Security Module: Virtualization

CSE543 - Computer and Network Security Module: Virtualization CSE543 - Computer and Network Security Module: Virtualization Professor Trent Jaeger CSE543 - Introduction to Computer and Network Security 1 Operating System Quandary Q: What is the primary goal of system

More information