Software LOPA
Approach to Performing a Layers of Protection Analysis for Complex Software OpenTech Andreas Platschek <andreas.platschek@opentech.at> May 23, 2017
c Andreas Platschek (OpenTech) May 23, 2017 1 / 31
Software LOPA Approach to Performing a Layers of Protection Analysis - - PowerPoint PPT Presentation
Software LOPA Approach to Performing a Layers of Protection Analysis for Complex Software OpenTech Andreas Platschek < andreas.platschek@opentech.at > May 23, 2017 Andreas Platschek (OpenTech) c May 23, 2017 1 / 31 Andreas
c Andreas Platschek (OpenTech) May 23, 2017 1 / 31
c Andreas Platschek (OpenTech) May 23, 2017 2 / 31
c Andreas Platschek (OpenTech) May 23, 2017 3 / 31
Identi ed Hazard IE1 IE2 IE3 IE4 IE5
IE1-IE5 . . . Initiating Events IPL1-IPL4 . . . Independent Layers of Protection
c Andreas Platschek (OpenTech) May 23, 2017 4 / 31
Identi ed Hazard IPL3 IPL2 IPL1 IE1 IE2 IE3 IE4 IE5 IPL4
IE1-IE5 . . . Initiating Events IPL1-IPL4 . . . Independent Layers of Protection
c Andreas Platschek (OpenTech) May 23, 2017 5 / 31
Identi ed Hazard IPL3 IPL2 IPL1 IE1 IE2 IE3 IE4 IE5 IPL4
IE1-IE5 . . . Initiating Events IPL1-IPL4 . . . Independent Layers of Protection
c Andreas Platschek (OpenTech) May 23, 2017 6 / 31
c Andreas Platschek (OpenTech) May 23, 2017 7 / 31
c Andreas Platschek (OpenTech) May 23, 2017 8 / 31
c Andreas Platschek (OpenTech) May 23, 2017 8 / 31
c Andreas Platschek (OpenTech) May 23, 2017 9 / 31
c Andreas Platschek (OpenTech) May 23, 2017 10 / 31
c Andreas Platschek (OpenTech) May 23, 2017 10 / 31
(SIL2LinuxMP Context)
c Andreas Platschek (OpenTech) May 23, 2017 11 / 31
CPU 0
RAMbank 0..n
CPU 1
RAMbank n+1..m
CPU 2
RAMbank m+1..i
CPU 3
RAMbank i+1..j
glibc busybox
Monitoring
glibc 32bit seccomp
Safety app. 32bit FP
glibc 64bit seccomp
Safety app. 64bit INT
SIL 0 Debian Container
SIL 2 SIL 2 SIL2LinuxMP base system
c Andreas Platschek (OpenTech) May 23, 2017 12 / 31
c Andreas Platschek (OpenTech) May 23, 2017 13 / 31
c Andreas Platschek (OpenTech) May 23, 2017 13 / 31
c Andreas Platschek (OpenTech) May 23, 2017 14 / 31
Basecon
✁g (BASE)Basecon
✁g+Seccomp (SEC)c Andreas Platschek (OpenTech) May 23, 2017 15 / 31
Basecon
✁g (BASE)Basecon
✁g+Seccomp (SEC)Basecon
✁g+CGROUPS (CGR)(SEC ✂ CGR) \ BASE = Ȃ
c Andreas Platschek (OpenTech) May 23, 2017 16 / 31
Basecon
✁gc Andreas Platschek (OpenTech) May 23, 2017 17 / 31
f3 RCU atomic new_funcs_base_both funcs_base_both
c Andreas Platschek (OpenTech) May 23, 2017 18 / 31
c Andreas Platschek (OpenTech) May 23, 2017 19 / 31
cur . . . Number of lines in v4.9.18 . hist . . . Number of commits in all versions. c Andreas Platschek (OpenTech) May 23, 2017 20 / 31
c Andreas Platschek (OpenTech) May 23, 2017 21 / 31
c Andreas Platschek (OpenTech) May 23, 2017 22 / 31
c Andreas Platschek (OpenTech) May 23, 2017 22 / 31
c Andreas Platschek (OpenTech) May 23, 2017 22 / 31
c Andreas Platschek (OpenTech) May 23, 2017 23 / 31
c Andreas Platschek (OpenTech) May 23, 2017 24 / 31
c Andreas Platschek (OpenTech) May 23, 2017 25 / 31
Lines in current version
linux-stable$ find . -name *seccomp*\.[ch] | \ xargs git log --no-merges --format="%an" | sort | \ uniq -c | sort -nr 27 Kees Cook 7 Will Drewry 7 Andy Lutomirski 7 Alexei Starovoitov 5 Daniel Borkmann 4 Micka¨ el Sala¨ un 4 Matt Redfearn 3 Ralf Baechle 3 David Howells 3 Andrea Arcangeli
c Andreas Platschek (OpenTech) May 23, 2017 26 / 31
Lines in current version
linux-stable$ find . -name *cgroup*\.[ch] | \ xargs git log --no-merges --format="%an" | sort | \ uniq -c | sort -nr 641 Tejun Heo 137 Li Zefan 42 Paul Menage 29 Vivek Goyal 22 Al Viro 18 Aristeu Rozanski 15 Ben Blum 13 Lai Jiangshan 12 Daniel Wagner 11 Johannes Weiner
c Andreas Platschek (OpenTech) May 23, 2017 27 / 31
commits over all versions
linux-stable$ for FILE in $(find . -name *seccomp*\.[ch]); do \ git blame --line-porcelain $FILE | egrep "^author "; done | \ cut -d " " -f 2- | sort | uniq -c | sort -nr 2740 Kees Cook 241 Will Drewry 100 Andy Lutomirski 89 Tycho Andersen 69 Matt Redfearn 61 Daniel Borkmann 55 AKASHI Takahiro 50 Arnaldo Carvalho de Melo 48 David Howells 44 Linus Torvalds
c Andreas Platschek (OpenTech) May 23, 2017 28 / 31
commits over all versions
linux-stable$ for FILE in $(find . -name *cgroup*\.[ch]); do \ git blame --line-porcelain $FILE | egrep "^author "; done | \ cut -d " " -f 2- | sort | uniq -c | sort -nr 8772 Tejun Heo 907 Paul Menage 492 Aristeu Rozanski 407 Aneesh Kumar K.V 366 Aleksa Sarai 318 Serge E. Hallyn 288 Li Zefan 211 Sargun Dhillon 204 Daniel Borkmann 192 Aditya Kali
c Andreas Platschek (OpenTech) May 23, 2017 29 / 31
c Andreas Platschek (OpenTech) May 23, 2017 30 / 31
# cd /sys/fs/cgroup/devices/ # mkdir newgroup # cd newgroup
# echo a > devices.deny # echo ’c 1:3 w’ > devices.allow
# echo $$ > tasks
c Andreas Platschek (OpenTech) May 23, 2017 31 / 31