28
|
1 |
\documentclass[dvipsnames,14pt,t]{beamer}
|
|
2 |
\usepackage{beamerthemeplainculight}
|
|
3 |
\usepackage[T1]{fontenc}
|
|
4 |
\usepackage[latin1]{inputenc}
|
|
5 |
\usepackage{mathpartir}
|
|
6 |
\usepackage[absolute,overlay]{textpos}
|
|
7 |
\usepackage{ifthen}
|
|
8 |
\usepackage{tikz}
|
|
9 |
\usepackage{pgf}
|
|
10 |
\usepackage{calc}
|
|
11 |
\usepackage{ulem}
|
|
12 |
\usepackage{courier}
|
|
13 |
\usepackage{listings}
|
|
14 |
\renewcommand{\uline}[1]{#1}
|
|
15 |
\usetikzlibrary{arrows}
|
|
16 |
\usetikzlibrary{automata}
|
|
17 |
\usetikzlibrary{shapes}
|
|
18 |
\usetikzlibrary{shadows}
|
|
19 |
\usetikzlibrary{positioning}
|
|
20 |
\usetikzlibrary{calc}
|
|
21 |
\usepackage{graphicx}
|
|
22 |
|
|
23 |
\definecolor{javared}{rgb}{0.6,0,0} % for strings
|
|
24 |
\definecolor{javagreen}{rgb}{0.25,0.5,0.35} % comments
|
|
25 |
\definecolor{javapurple}{rgb}{0.5,0,0.35} % keywords
|
|
26 |
\definecolor{javadocblue}{rgb}{0.25,0.35,0.75} % javadoc
|
|
27 |
|
|
28 |
\lstset{language=Java,
|
|
29 |
basicstyle=\ttfamily,
|
|
30 |
keywordstyle=\color{javapurple}\bfseries,
|
|
31 |
stringstyle=\color{javagreen},
|
|
32 |
commentstyle=\color{javagreen},
|
|
33 |
morecomment=[s][\color{javadocblue}]{/**}{*/},
|
|
34 |
numbers=left,
|
|
35 |
numberstyle=\tiny\color{black},
|
|
36 |
stepnumber=1,
|
|
37 |
numbersep=10pt,
|
|
38 |
tabsize=2,
|
|
39 |
showspaces=false,
|
|
40 |
showstringspaces=false}
|
|
41 |
|
|
42 |
\lstdefinelanguage{scala}{
|
|
43 |
morekeywords={abstract,case,catch,class,def,%
|
|
44 |
do,else,extends,false,final,finally,%
|
|
45 |
for,if,implicit,import,match,mixin,%
|
|
46 |
new,null,object,override,package,%
|
|
47 |
private,protected,requires,return,sealed,%
|
|
48 |
super,this,throw,trait,true,try,%
|
|
49 |
type,val,var,while,with,yield},
|
|
50 |
otherkeywords={=>,<-,<\%,<:,>:,\#,@},
|
|
51 |
sensitive=true,
|
|
52 |
morecomment=[l]{//},
|
|
53 |
morecomment=[n]{/*}{*/},
|
|
54 |
morestring=[b]",
|
|
55 |
morestring=[b]',
|
|
56 |
morestring=[b]"""
|
|
57 |
}
|
|
58 |
|
|
59 |
\lstset{language=Scala,
|
|
60 |
basicstyle=\ttfamily,
|
|
61 |
keywordstyle=\color{javapurple}\bfseries,
|
|
62 |
stringstyle=\color{javagreen},
|
|
63 |
commentstyle=\color{javagreen},
|
|
64 |
morecomment=[s][\color{javadocblue}]{/**}{*/},
|
|
65 |
numbers=left,
|
|
66 |
numberstyle=\tiny\color{black},
|
|
67 |
stepnumber=1,
|
|
68 |
numbersep=10pt,
|
|
69 |
tabsize=2,
|
|
70 |
showspaces=false,
|
|
71 |
showstringspaces=false}
|
|
72 |
|
|
73 |
% beamer stuff
|
|
74 |
\renewcommand{\slidecaption}{APP 02, King's College London, 9 October 2012}
|
|
75 |
|
|
76 |
|
|
77 |
\begin{document}
|
|
78 |
|
|
79 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
80 |
\mode<presentation>{
|
|
81 |
\begin{frame}<1>[t]
|
|
82 |
\frametitle{%
|
|
83 |
\begin{tabular}{@ {}c@ {}}
|
|
84 |
\\
|
|
85 |
\LARGE Access Control and \\[-3mm]
|
|
86 |
\LARGE Privacy Policies (3)\\[-6mm]
|
|
87 |
\end{tabular}}\bigskip\bigskip\bigskip
|
|
88 |
|
|
89 |
%\begin{center}
|
|
90 |
%\includegraphics[scale=1.3]{pics/barrier.jpg}
|
|
91 |
%\end{center}
|
|
92 |
|
|
93 |
\normalsize
|
|
94 |
\begin{center}
|
|
95 |
\begin{tabular}{ll}
|
|
96 |
Email: & christian.urban at kcl.ac.uk\\
|
|
97 |
Of$\!$fice: & S1.27 (1st floor Strand Building)\\
|
29
|
98 |
Slides: & KEATS (also home work is there)\\
|
|
99 |
& \alert{\bf (I have put a temporary link in there.)}\\
|
28
|
100 |
\end{tabular}
|
|
101 |
\end{center}
|
|
102 |
|
|
103 |
|
|
104 |
\end{frame}}
|
|
105 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
106 |
|
|
107 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
108 |
\mode<presentation>{
|
|
109 |
\begin{frame}[c]
|
|
110 |
|
|
111 |
\begin{center}
|
|
112 |
\includegraphics[scale=0.45]{pics/trainwreck.jpg}\\
|
|
113 |
one general defence mechanism is\\\alert{\bf defence in depth}
|
|
114 |
\end{center}
|
|
115 |
|
|
116 |
|
|
117 |
\end{frame}}
|
|
118 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
119 |
|
|
120 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
121 |
\mode<presentation>{
|
|
122 |
\begin{frame}<1-2>[c]
|
|
123 |
\frametitle{Defence in Depth}
|
|
124 |
|
|
125 |
\begin{itemize}
|
|
126 |
\item \alt<1>{overlapping}{{\LARGE\bf overlapping}} systems designed to provide\\ security even if one of them fails.
|
|
127 |
\end{itemize}
|
|
128 |
|
29
|
129 |
\only<2->{
|
|
130 |
\begin{textblock}{11}(2,12)
|
|
131 |
\small otherwise your ``added security'' can become the point of failure
|
|
132 |
\end{textblock}}
|
28
|
133 |
|
|
134 |
\end{frame}}
|
|
135 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
136 |
|
|
137 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
138 |
\mode<presentation>{
|
|
139 |
\begin{frame}[c]
|
|
140 |
\frametitle{PALs}
|
|
141 |
|
|
142 |
\begin{itemize}
|
|
143 |
\item \alert{Permissive Action Links} prevent unauthorised use of nuclear weapons (so the theory)
|
|
144 |
\end{itemize}
|
|
145 |
|
|
146 |
\begin{center}
|
|
147 |
\includegraphics[scale=0.25]{pics/nuclear1.jpg}\hspace{3mm}
|
|
148 |
\includegraphics[scale=0.25]{pics/nuclear2.jpg}
|
|
149 |
\end{center}
|
|
150 |
|
|
151 |
|
|
152 |
\onslide<3->{
|
|
153 |
modern PALs also include a 2-person rule
|
|
154 |
}
|
|
155 |
|
|
156 |
\only<2->{
|
|
157 |
\begin{textblock}{11}(3,2)
|
|
158 |
\begin{tikzpicture}
|
|
159 |
\draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm]
|
|
160 |
{\begin{minipage}{8cm}
|
|
161 |
US Air Force's Strategic Air Command worried that in times of need the
|
|
162 |
codes would not be available, so until 1977 quietly decided to set them
|
|
163 |
to 00000000\ldots
|
|
164 |
\end{minipage}};
|
|
165 |
\end{tikzpicture}
|
|
166 |
\end{textblock}}
|
|
167 |
|
|
168 |
|
|
169 |
\end{frame}}
|
|
170 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
171 |
|
|
172 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
173 |
\mode<presentation>{
|
|
174 |
\begin{frame}[c]
|
|
175 |
|
|
176 |
\begin{itemize}
|
|
177 |
\item until 1998, Britain had nuclear weapons that could be launched from airplanes\bigskip\pause
|
|
178 |
|
|
179 |
\item these weapons were armed with a bicycle key
|
|
180 |
|
|
181 |
\begin{center}
|
|
182 |
\begin{tabular}[b]{c}
|
|
183 |
\includegraphics[scale=1.05]{pics/britkeys1.jpg}\\
|
29
|
184 |
\small nuclear weapon keys
|
28
|
185 |
\end{tabular}
|
|
186 |
\hspace{3mm}
|
|
187 |
\begin{tabular}[b]{c}
|
|
188 |
\includegraphics[scale=0.35]{pics/britkeys2.jpg}\\
|
|
189 |
\small bicycle lock
|
|
190 |
\end{tabular}
|
|
191 |
\end{center}\bigskip\pause
|
|
192 |
|
|
193 |
\item the current Trident nuclear weapons can be launched from a submarine without any code being transmitted
|
|
194 |
\end{itemize}
|
|
195 |
|
|
196 |
\end{frame}}
|
|
197 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
198 |
|
|
199 |
|
|
200 |
|
|
201 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
202 |
\mode<presentation>{
|
|
203 |
\begin{frame}[c]
|
29
|
204 |
\frametitle{Access Control in Unix}
|
28
|
205 |
|
29
|
206 |
\begin{itemize}
|
|
207 |
\item access control provided by the OS
|
|
208 |
\item authenticate principals (login)
|
|
209 |
\item mediate access to files, ports, processes according to \alert{roles} (user ids)\\
|
|
210 |
\item roles get attached with privileges\bigskip\\%
|
|
211 |
\hspace{8mm}
|
|
212 |
\begin{tikzpicture}
|
|
213 |
\draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm]
|
|
214 |
{\begin{minipage}{8cm}
|
|
215 |
\alert{principle of least privilege:}\\
|
|
216 |
programs should only have as much privilege as they need
|
|
217 |
\end{minipage}};
|
|
218 |
\end{tikzpicture}
|
|
219 |
\end{itemize}
|
28
|
220 |
|
|
221 |
\end{frame}}
|
|
222 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
223 |
|
|
224 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
225 |
\mode<presentation>{
|
|
226 |
\begin{frame}[c]
|
29
|
227 |
\frametitle{Access Control in Unix (2)}
|
|
228 |
|
|
229 |
\begin{itemize}
|
|
230 |
\item the idea is to restrict access to files and therefore lower the consequences of an attack\\[1cm]\mbox{}
|
|
231 |
\end{itemize}
|
|
232 |
|
|
233 |
\begin{textblock}{1}(2.5,9.5)
|
|
234 |
\begin{tikzpicture}[scale=1]
|
|
235 |
|
|
236 |
\draw[line width=1mm] (-.3, 0) rectangle (1.5,2);
|
|
237 |
\draw (4.7,1) node {Internet};
|
|
238 |
\draw (0.6,1.7) node {\footnotesize Interface};
|
|
239 |
\draw (0.6,-0.4) node {\footnotesize \begin{tabular}{c}unpriviledged\\[-1mm] process\end{tabular}};
|
|
240 |
\draw (-2.7,-0.4) node {\footnotesize \begin{tabular}{c}priviledged\\[-1mm] process\end{tabular}};
|
|
241 |
|
|
242 |
\draw[line width=1mm] (-1.8, 0) rectangle (-3.6,2);
|
|
243 |
|
|
244 |
\draw[white] (1.7,1) node (X) {};
|
|
245 |
\draw[white] (3.7,1) node (Y) {};
|
|
246 |
\draw[red, <->, line width = 2mm] (X) -- (Y);
|
|
247 |
|
|
248 |
\draw[red, <->, line width = 1mm] (-0.6,1) -- (-1.6,1);
|
|
249 |
\end{tikzpicture}
|
|
250 |
\end{textblock}
|
|
251 |
|
|
252 |
\end{frame}}
|
|
253 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
254 |
|
28
|
255 |
|
29
|
256 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
257 |
\mode<presentation>{
|
|
258 |
\begin{frame}[t]
|
|
259 |
\frametitle{Process Ownership}
|
|
260 |
|
|
261 |
\begin{itemize}
|
|
262 |
\item access control in Unix is very coarse
|
|
263 |
\end{itemize}\bigskip\bigskip\bigskip
|
|
264 |
|
|
265 |
\begin{center}
|
|
266 |
\begin{tabular}{c}
|
|
267 |
root\\
|
|
268 |
\hline
|
|
269 |
|
|
270 |
user$_1$ user$_2$ \ldots www, mail, lp
|
|
271 |
\end{tabular}
|
|
272 |
\end{center}\bigskip\bigskip\bigskip
|
|
273 |
|
|
274 |
|
|
275 |
\textcolor{gray}{\small root has UID $=$ 0}\\\pause
|
|
276 |
\textcolor{gray}{\small you also have groups that can share access to a file}\\
|
|
277 |
\textcolor{gray}{\small but it is difficult to exclude access selectively}\\
|
|
278 |
\end{frame}}
|
|
279 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
280 |
|
|
281 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
282 |
\mode<presentation>{
|
|
283 |
\begin{frame}[c]
|
|
284 |
\frametitle{Access Control in Unix (2)}
|
28
|
285 |
|
|
286 |
|
|
287 |
\begin{itemize}
|
29
|
288 |
\item privileges are specified by file access permissions (``everything is a file'')
|
|
289 |
\item there are 9 (plus 2) bits that specify the permissions of a file
|
28
|
290 |
|
29
|
291 |
\begin{center}
|
|
292 |
\begin{tabular}{l}
|
|
293 |
\texttt{\$ ls - la}\\
|
|
294 |
\texttt{-rwxrw-r-{}- \hspace{3mm} foo\_file.txt}
|
|
295 |
\end{tabular}
|
|
296 |
\end{center}
|
|
297 |
\end{itemize}
|
28
|
298 |
|
|
299 |
\end{frame}}
|
|
300 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
301 |
|
|
302 |
|
|
303 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
304 |
\mode<presentation>{
|
|
305 |
\begin{frame}[c]
|
29
|
306 |
\frametitle{Login Process}
|
28
|
307 |
|
|
308 |
|
|
309 |
\begin{itemize}
|
29
|
310 |
\item login processes run under UID $=$ 0\medskip
|
28
|
311 |
\begin{center}
|
29
|
312 |
\texttt{ps -axl | grep login}
|
28
|
313 |
\end{center}\medskip
|
|
314 |
|
29
|
315 |
\item after login, shells run under UID $=$ user (e.g.~501)\medskip
|
|
316 |
\begin{center}
|
|
317 |
\texttt{id cu}
|
|
318 |
\end{center}\medskip\pause
|
|
319 |
|
|
320 |
\item non-root users are not allowed to change the UID --- would break
|
|
321 |
access control
|
|
322 |
\item but needed for example for \texttt{passwd}
|
28
|
323 |
\end{itemize}
|
|
324 |
|
|
325 |
\end{frame}}
|
|
326 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
327 |
|
|
328 |
|
|
329 |
|
|
330 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
331 |
\mode<presentation>{
|
|
332 |
\begin{frame}[c]
|
29
|
333 |
\frametitle{Setuid and Setgid}
|
28
|
334 |
|
29
|
335 |
The solution is that unix file permissions are 9 + \underline{2 Bits}:
|
|
336 |
\alert{Setuid} and \alert{Setgid} Bits
|
|
337 |
|
|
338 |
\begin{itemize}
|
|
339 |
\item When a file with setuid is executed, the resulting process will assume the UID given to the owner of the file.
|
|
340 |
\item This enables users to create processes as root (or another user).\bigskip
|
28
|
341 |
|
29
|
342 |
\item Essential for changing passwords, for example.
|
|
343 |
\end{itemize}
|
28
|
344 |
|
29
|
345 |
\begin{center}
|
|
346 |
\texttt{chmod 4755 fobar\_file}
|
|
347 |
\end{center}
|
|
348 |
|
28
|
349 |
\end{frame}}
|
29
|
350 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
351 |
|
28
|
352 |
|
|
353 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
354 |
\mode<presentation>{
|
|
355 |
\begin{frame}[c]
|
29
|
356 |
\frametitle{\begin{tabular}{c}Privilege Separation in\\ OpenSSH\end{tabular}}
|
28
|
357 |
|
|
358 |
\begin{center}
|
29
|
359 |
\begin{tikzpicture}[scale=1]
|
|
360 |
|
|
361 |
\draw[line width=1mm] (0, 1.1) rectangle (1.2,2);
|
|
362 |
\draw (4.7,1) node {Internet};
|
|
363 |
\draw (0.6,1.7) node {\footnotesize Slave};
|
|
364 |
\draw[line width=1mm] (0, 0) rectangle (1.2,0.9);
|
|
365 |
\draw (0.6,1.7) node {\footnotesize Slave};
|
|
366 |
\draw (0.6,0.6) node {\footnotesize Slave};
|
|
367 |
\draw (0.6,-0.5) node {\footnotesize \begin{tabular}{c}unpriviledged\\[-1mm] processes\end{tabular}};
|
|
368 |
\draw (-2.7,-0.4) node {\footnotesize \begin{tabular}{c}priviledged\\[-1mm] process\end{tabular}};
|
|
369 |
|
|
370 |
\draw[line width=1mm] (-1.8, 0) rectangle (-3.6,2);
|
|
371 |
\draw (-2.9,1.7) node {\footnotesize Monitor};
|
|
372 |
|
|
373 |
\draw[white] (1.7,1) node (X) {};
|
|
374 |
\draw[white] (3.7,1) node (Y) {};
|
|
375 |
\draw[red, <->, line width = 2mm] (X) -- (Y);
|
|
376 |
|
|
377 |
\draw[red, <->, line width = 1mm] (-0.4,1.4) -- (-1.4,1.1);
|
|
378 |
\draw[red, <->, line width = 1mm] (-0.4,0.6) -- (-1.4,0.9);
|
|
379 |
|
|
380 |
\end{tikzpicture}
|
28
|
381 |
\end{center}
|
29
|
382 |
|
|
383 |
\begin{itemize}
|
|
384 |
\item pre-authorisation slave
|
|
385 |
\item post-authorisation\bigskip
|
|
386 |
\item 25\% codebase is privileged, 75\% is unprivileged
|
|
387 |
\end{itemize}
|
28
|
388 |
\end{frame}}
|
29
|
389 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
28
|
390 |
|
|
391 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
392 |
\mode<presentation>{
|
|
393 |
\begin{frame}[c]
|
29
|
394 |
\frametitle{Network Applications}
|
28
|
395 |
|
29
|
396 |
ideally network application in Unix should be designed as follows:
|
|
397 |
|
|
398 |
\begin{itemize}
|
|
399 |
\item need two distinct processes
|
|
400 |
\begin{itemize}
|
|
401 |
\item one that listens to the network; has no privilege
|
|
402 |
\item one that is privileged and listens to the latter only (but does not trust it)
|
|
403 |
|
|
404 |
\end{itemize}
|
|
405 |
|
|
406 |
\item to implement this you need a parent process, which forks a child process
|
|
407 |
\item this child process drops privileges and listens to hostile data\medskip
|
|
408 |
|
|
409 |
\item after authentication the parent forks again and the new child becomes the user
|
|
410 |
\end{itemize}
|
|
411 |
|
|
412 |
|
|
413 |
\end{frame}}
|
|
414 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
415 |
|
28
|
416 |
|
29
|
417 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
418 |
\mode<presentation>{
|
|
419 |
\begin{frame}[c]
|
|
420 |
\frametitle{\begin{tabular}{@ {}c@ {}}Famous Security Flaws in Unix\end{tabular}}
|
|
421 |
|
|
422 |
|
|
423 |
\begin{itemize}
|
|
424 |
\item \texttt{lpr} unfortunately runs with root privileges; you had the option to delete files after printing \ldots\pause\pause
|
|
425 |
\item for debugging purposes (FreeBSD) Unix provides a ``core dump'', but allowed to follow links \ldots\pause
|
|
426 |
\item \texttt{mkdir foo} is owned by root\medskip
|
|
427 |
\begin{center}
|
|
428 |
\texttt{-rwxr-xr-x 1 root wheel /bin/mkdir}
|
|
429 |
\end{center}\medskip
|
|
430 |
it first creates an i-node as root and then changes to ownership to the user's id\\ \textcolor{gray}{\small (automated with a shell script)}
|
|
431 |
\end{itemize}
|
|
432 |
|
|
433 |
\only<1>{
|
|
434 |
\begin{textblock}{1}(3,3)
|
|
435 |
\begin{tikzpicture}
|
|
436 |
\draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm]
|
|
437 |
{\begin{minipage}{8cm}
|
|
438 |
Only failure makes us experts.
|
|
439 |
-- Theo de Raadt (OpenBSD, OpenSSH)
|
|
440 |
\end{minipage}};
|
|
441 |
\end{tikzpicture}
|
|
442 |
\end{textblock}}
|
|
443 |
|
|
444 |
|
|
445 |
|
28
|
446 |
\end{frame}}
|
|
447 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
448 |
|
|
449 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
450 |
\mode<presentation>{
|
|
451 |
\begin{frame}[c]
|
29
|
452 |
\frametitle{\begin{tabular}{@ {}c@ {}}Other Problems\end{tabular}}
|
28
|
453 |
|
29
|
454 |
There are thing's you just cannot solve on the programming side:\bigskip
|
28
|
455 |
|
29
|
456 |
\begin{itemize}
|
|
457 |
\item for system maintenance you often have \texttt{cron}-jobs cleaning \texttt{/tmp}\medskip
|
|
458 |
\begin{itemize}
|
|
459 |
\item attacker:\\
|
|
460 |
\texttt{mkdir /tmp/a; cat > /tmp/a/passwd}
|
|
461 |
\item root:\\\texttt{rm /tmp/*/*}:
|
|
462 |
\item attacker:\\
|
|
463 |
\texttt{rm /tmp/a/passwd; rmdir /tmp/a;}\\\texttt{ln -s /etc /tmp/a}
|
|
464 |
\end{itemize}
|
|
465 |
\end{itemize}
|
28
|
466 |
|
|
467 |
\end{frame}}
|
|
468 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
469 |
|
|
470 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
471 |
\mode<presentation>{
|
|
472 |
\begin{frame}[c]
|
29
|
473 |
\frametitle{\begin{tabular}{@ {}c@ {}}Security Levels\end{tabular}}
|
|
474 |
|
|
475 |
Unix essentially can only distinguish between two security levels (root and non-root).
|
28
|
476 |
|
|
477 |
\begin{itemize}
|
29
|
478 |
\item In military applications you often have many security levels (top-secret, secret, confidential, unclassified)\bigskip\pause
|
28
|
479 |
|
29
|
480 |
\item Information flow: Bell --- La Pudela model
|
28
|
481 |
|
|
482 |
\begin{itemize}
|
29
|
483 |
\item read: your own level and below
|
|
484 |
\item write: your own level and above
|
|
485 |
\end{itemize}
|
|
486 |
\end{itemize}
|
28
|
487 |
|
|
488 |
\end{frame}}
|
|
489 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
490 |
|
|
491 |
|
|
492 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
493 |
\mode<presentation>{
|
|
494 |
\begin{frame}[c]
|
29
|
495 |
\frametitle{\begin{tabular}{@ {}c@ {}}Security Levels (2)\end{tabular}}
|
28
|
496 |
|
29
|
497 |
\begin{itemize}
|
|
498 |
\item Bell --- La Pudela preserves data secrecy, but not data integrity\bigskip\pause
|
|
499 |
|
|
500 |
\item Biba model is for data integrity
|
28
|
501 |
|
29
|
502 |
\begin{itemize}
|
|
503 |
\item read: your own level and above
|
|
504 |
\item write: your own level and below
|
|
505 |
\end{itemize}
|
|
506 |
\end{itemize}
|
28
|
507 |
|
|
508 |
\end{frame}}
|
|
509 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
510 |
|
|
511 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
512 |
\mode<presentation>{
|
|
513 |
\begin{frame}[c]
|
29
|
514 |
\frametitle{\begin{tabular}{@ {}c@ {}}Access Control in 2000\end{tabular}}
|
|
515 |
|
|
516 |
According to Ross Anderson (1st edition of his book), some senior Microsoft people held the
|
|
517 |
following view:
|
|
518 |
|
|
519 |
\begin{center}
|
|
520 |
\begin{tikzpicture}
|
|
521 |
\draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm]
|
|
522 |
{\begin{minipage}{10.5cm}
|
|
523 |
\small Access control does not matter. Computers are becoming single-purpose
|
|
524 |
or single-user devices. Single-purpose devices, such as Web servers that deliver a single service, don't
|
|
525 |
need much in the way of access control as there's nothing for operating system access controls
|
|
526 |
to do; the job of separating users from each other is best left to application code. As for the PC
|
|
527 |
on your desk, if all the software on it comes from a single source, then again there's no need
|
|
528 |
for the operating system to provide separation. \hfill{}\textcolor{gray}{(in 2000)}
|
|
529 |
\end{minipage}};
|
|
530 |
\end{tikzpicture}
|
|
531 |
\end{center}
|
|
532 |
|
|
533 |
\end{frame}}
|
|
534 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
535 |
|
|
536 |
|
|
537 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
538 |
\mode<presentation>{
|
|
539 |
\begin{frame}[t]
|
|
540 |
\frametitle{\begin{tabular}{@ {}c@ {}}Research Problems\end{tabular}}
|
28
|
541 |
|
|
542 |
\begin{itemize}
|
29
|
543 |
\item with access control we are back to 1970s\bigskip
|
28
|
544 |
|
29
|
545 |
\only<1>{
|
|
546 |
\begin{tikzpicture}
|
|
547 |
\draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm]
|
|
548 |
{\begin{minipage}{10cm}
|
|
549 |
\small Going all the way back to early time-sharing systems we systems people regarded the users, and any code they wrote, as the mortal enemies of us and each other. We were like the police force in a violent slum.\\
|
|
550 |
\mbox{}\hfill--- Roger Needham
|
|
551 |
\end{minipage}};
|
|
552 |
\end{tikzpicture}}\pause
|
|
553 |
|
|
554 |
\item the largest research area in access control in 2000-07 has been ``Trusted Computing'', but thankfully it
|
|
555 |
is dead now\bigskip
|
|
556 |
\item a useful research area is to not just have robust access control, but also usable access control --- by programmers and users\\
|
|
557 |
(one possible answer is operating system virtualisation, e.g.~Xen, VMWare)\medskip\pause
|
|
558 |
|
|
559 |
\item electronic voting
|
28
|
560 |
\end{itemize}
|
|
561 |
\end{frame}}
|
|
562 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
563 |
|
|
564 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
565 |
\mode<presentation>{
|
29
|
566 |
\begin{frame}[t]
|
|
567 |
\frametitle{\begin{tabular}{@ {}c@ {}}Mobile OS\end{tabular}}
|
28
|
568 |
|
|
569 |
\begin{itemize}
|
29
|
570 |
\item iOS and Android solve the defence-in-depth problem by \alert{sandboxing} applications\bigskip
|
|
571 |
|
|
572 |
\item you as developer have to specify the resources an application needs
|
|
573 |
\item the OS provides a sandbox where access is restricted to only these resources
|
28
|
574 |
\end{itemize}
|
|
575 |
\end{frame}}
|
|
576 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
577 |
|
|
578 |
|
|
579 |
|
|
580 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
581 |
\mode<presentation>{
|
|
582 |
\begin{frame}[c]
|
29
|
583 |
\frametitle{\begin{tabular}{@ {}c@ {}}Security Theater\end{tabular}}
|
|
584 |
|
28
|
585 |
|
29
|
586 |
Security theater is the practice of investing in countermeasures intended to provide the
|
|
587 |
\underline{feeling} of improved security while doing little or nothing to actually achieve it.\hfill{}\textcolor{gray}{Bruce Schneier}
|
28
|
588 |
|
|
589 |
\end{frame}}
|
|
590 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
591 |
|
29
|
592 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
593 |
\mode<presentation>{
|
|
594 |
\begin{frame}[c]
|
|
595 |
\frametitle{\begin{tabular}{@ {}c@ {}}\end{tabular}}
|
|
596 |
|
|
597 |
|
|
598 |
Security theater is the practice of investing in countermeasures intended to provide the
|
|
599 |
\underline{feeling} of improved security while doing little or nothing to actually achieve it.\hfill{}\textcolor{gray}{Bruce Schneier}
|
|
600 |
|
|
601 |
\end{frame}}
|
|
602 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
603 |
|
|
604 |
|
|
605 |
From: Ross Anderson <Ross.Anderson@cl.cam.ac.uk>
|
|
606 |
Sender: cl-security-research-bounces@lists.cam.ac.uk
|
|
607 |
To: cl-security-research@lists.cam.ac.uk
|
|
608 |
Subject: Tip off
|
|
609 |
Date: Tue, 02 Oct 2012 13:12:50 +0100
|
|
610 |
|
|
611 |
I received the following tip off, and have removed the sender's
|
|
612 |
coordinates. I suspect it is one of many security vendors who
|
|
613 |
don't even get the basics right; if you ever go to the RSA
|
|
614 |
conference, there are a thousand such firms in the hall, each
|
|
615 |
with several eager but ignorant salesmen. A trying experience
|
|
616 |
|
|
617 |
Ross
|
|
618 |
|
28
|
619 |
|
|
620 |
\end{document}
|
|
621 |
|
|
622 |
%%% Local Variables:
|
|
623 |
%%% mode: latex
|
|
624 |
%%% TeX-master: t
|
|
625 |
%%% End:
|
|
626 |
|