slides/slides03.tex
changeset 90 d1d07f05325a
parent 40 11681bbf0e01
child 105 40c51038c9e4
equal deleted inserted replaced
89:be35ff24cccc 90:d1d07f05325a
       
     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 03, 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)\\
       
    98   Slides: & KEATS (also home work is there)\\
       
    99                & \alert{\bf (I have put a temporary link in there.)}\\
       
   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 
       
   129 \only<2->{
       
   130 \begin{textblock}{11}(2,12)
       
   131 \small otherwise your ``added security'' can become the point of failure 
       
   132 \end{textblock}}
       
   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}\\
       
   184 \small nuclear weapon keys
       
   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]
       
   204 \frametitle{Access Control in Unix}
       
   205 
       
   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}
       
   220 
       
   221 \end{frame}}
       
   222 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   223 
       
   224 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   225 \mode<presentation>{
       
   226 \begin{frame}[c]
       
   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}unprivileged\\[-1mm] process\end{tabular}};
       
   240   \draw (-2.7,-0.4) node {\footnotesize \begin{tabular}{c}privileged\\[-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 
       
   255 
       
   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)}
       
   285 
       
   286 
       
   287 \begin{itemize}
       
   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
       
   290 
       
   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}
       
   298 
       
   299 \end{frame}}
       
   300 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   301 
       
   302 
       
   303 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   304 \mode<presentation>{
       
   305 \begin{frame}[c]
       
   306 \frametitle{Login Process}
       
   307 
       
   308 
       
   309 \begin{itemize}
       
   310 \item login processes run under UID $=$ 0\medskip 
       
   311 \begin{center}
       
   312 \texttt{ps -axl | grep login}
       
   313 \end{center}\medskip
       
   314 
       
   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}
       
   323 \end{itemize}
       
   324 
       
   325 \end{frame}}
       
   326 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   327 
       
   328 
       
   329 
       
   330 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   331 \mode<presentation>{
       
   332 \begin{frame}[c]
       
   333 \frametitle{Setuid and Setgid}
       
   334 
       
   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
       
   341 
       
   342 \item Essential for changing passwords, for example.
       
   343 \end{itemize}
       
   344 
       
   345 \begin{center}
       
   346 \texttt{chmod 4755 fobar\_file}
       
   347 \end{center}
       
   348 
       
   349 \end{frame}}
       
   350 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   351 
       
   352 
       
   353 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   354 \mode<presentation>{
       
   355 \begin{frame}[c]
       
   356 \frametitle{\begin{tabular}{c}Privilege Separation in\\ OpenSSH\end{tabular}}
       
   357 
       
   358 \begin{center}
       
   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}unprivileged\\[-1mm] processes\end{tabular}};
       
   368   \draw (-2.7,-0.4) node {\footnotesize \begin{tabular}{c}privileged\\[-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}
       
   381 \end{center}
       
   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}
       
   388 \end{frame}}
       
   389 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   390 
       
   391 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   392 \mode<presentation>{
       
   393 \begin{frame}[c]
       
   394 \frametitle{Network Applications}
       
   395 
       
   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 
       
   416 
       
   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 
       
   446 \end{frame}}
       
   447 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   448 
       
   449 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   450 \mode<presentation>{
       
   451 \begin{frame}[c]
       
   452 \frametitle{\begin{tabular}{@ {}c@ {}}Other Problems\end{tabular}}
       
   453 
       
   454 There are thing's you just cannot solve on the programming side:\bigskip
       
   455 
       
   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}
       
   466 
       
   467 \end{frame}}
       
   468 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   469 
       
   470 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   471 \mode<presentation>{
       
   472 \begin{frame}[c]
       
   473 \frametitle{\begin{tabular}{@ {}c@ {}}Security Levels\end{tabular}}
       
   474 
       
   475 Unix essentially can only distinguish between two security levels (root and non-root).
       
   476 
       
   477 \begin{itemize}
       
   478 \item In military applications you often have many security levels (top-secret, secret, confidential, unclassified)\bigskip\pause 
       
   479 
       
   480 \item Information flow: Bell --- La Padula model
       
   481 
       
   482 \begin{itemize}
       
   483 \item read: your own level and below
       
   484 \item write: your own level and above
       
   485 \end{itemize}
       
   486 \end{itemize}
       
   487 
       
   488 \end{frame}}
       
   489 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   490 
       
   491 
       
   492 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   493 \mode<presentation>{
       
   494 \begin{frame}[c]
       
   495 \frametitle{\begin{tabular}{@ {}c@ {}}Security Levels (2)\end{tabular}}
       
   496 
       
   497 \begin{itemize}
       
   498 \item Bell --- La Padula preserves data secrecy, but not data integrity\bigskip\pause
       
   499 
       
   500 \item Biba model is for data integrity  
       
   501 
       
   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}
       
   507 
       
   508 \end{frame}}
       
   509 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   510 
       
   511 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   512 \mode<presentation>{
       
   513 \begin{frame}[c]
       
   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}}
       
   541 
       
   542 \begin{itemize}
       
   543 \item with access control we are back to 1970s\bigskip
       
   544 
       
   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
       
   560 \end{itemize}
       
   561 \end{frame}}
       
   562 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   563 
       
   564 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   565 \mode<presentation>{
       
   566 \begin{frame}[t]
       
   567 \frametitle{\begin{tabular}{@ {}c@ {}}Mobile OS\end{tabular}}
       
   568 
       
   569 \begin{itemize}
       
   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
       
   574 \end{itemize}
       
   575 \end{frame}}
       
   576 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   577 
       
   578 
       
   579 
       
   580 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   581 \mode<presentation>{
       
   582 \begin{frame}[c]
       
   583 \frametitle{\begin{tabular}{@ {}c@ {}}Security Theatre\end{tabular}}
       
   584 
       
   585 
       
   586 Security theatre 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}
       
   588 
       
   589 \end{frame}}
       
   590 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   591 
       
   592 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   593 \mode<presentation>{
       
   594 \begin{frame}[c]
       
   595 \frametitle{\begin{tabular}{@ {}c@ {}}Security Theatre\end{tabular}}
       
   596 
       
   597 \begin{itemize}
       
   598 \item for example, usual locks and strap seals are security theatre
       
   599 \end{itemize}
       
   600 
       
   601 \begin{center}
       
   602 \includegraphics[scale=0.45]{pics/seal.jpg}
       
   603 \end{center}
       
   604 
       
   605 
       
   606 \end{frame}}
       
   607 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   608 
       
   609 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   610 \mode<presentation>{
       
   611 \begin{frame}[c]
       
   612 
       
   613 \begin{minipage}{11cm}
       
   614 From: Ross Anderson <Ross.Anderson@cl.cam.ac.uk>\\
       
   615 To: cl-security-research@lists.cam.ac.uk\\
       
   616 Subject: Tip off\\
       
   617 Date: Tue, 02 Oct 2012 13:12:50 +0100\\
       
   618 
       
   619 I received the following tip off, and have removed the sender's
       
   620 coordinates. I suspect it is one of many security vendors who
       
   621 don't even get the basics right; if you ever go to the RSA 
       
   622 conference, there are a thousand such firms in the hall, each
       
   623 with several eager but ignorant salesmen. A trying experience.\\
       
   624 
       
   625 Ross
       
   626 \end{minipage}
       
   627 
       
   628 \end{frame}}
       
   629 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   630 
       
   631 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   632 \mode<presentation>{
       
   633 \begin{frame}[c]
       
   634 
       
   635 \begin{minipage}{11cm}
       
   636 I'd like to anonymously tip you off about this\\
       
   637 product:\\
       
   638 
       
   639 {\small http://www.strongauth.com/products/key-appliance.html}\\
       
   640 
       
   641 It sounds really clever, doesn't it?\\
       
   642 \ldots\\
       
   643 
       
   644 Anyway, it occurred to me that you and your colleagues might have a
       
   645 field day discovering weaknesses in the appliance and their
       
   646 implementation of security.  However, whilst I'd be willing to help
       
   647 and/or comment privately, it'd have to be off the record ;-)
       
   648 \end{minipage}
       
   649 
       
   650 \end{frame}}
       
   651 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   652 
       
   653 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   654 \mode<presentation>{
       
   655 \begin{frame}[c]
       
   656 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 1\end{tabular}}
       
   657 
       
   658 {\bf What assets are you trying to protect?}\bigskip
       
   659 
       
   660 This question might seem basic, but a surprising number of people never ask it. The question involves understanding the scope of the problem. For example, securing an airplane, an airport, commercial aviation, the transportation system, and a nation against terrorism are all different security problems, and require different solutions.
       
   661 
       
   662 \only<2>{
       
   663 \begin{tikzpicture}
       
   664 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
       
   665 {\begin{minipage}{10cm}
       
   666 \small You like to prevent: ``It would be terrible if this sort of attack ever happens; we need to do everything in our power to prevent it.''
       
   667 \end{minipage}};
       
   668 \end{tikzpicture}}
       
   669 \end{frame}}
       
   670 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   671 
       
   672 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   673 \mode<presentation>{
       
   674 \begin{frame}[c]
       
   675 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 2\end{tabular}}
       
   676 
       
   677 {\bf What are the risks to these assets?}\bigskip
       
   678 
       
   679 Here we consider the need for security. Answering it involves understanding what is being defended, what the consequences are if it is successfully attacked, who wants to attack it, how they might attack it, and why.
       
   680 
       
   681 \end{frame}}
       
   682 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   683 
       
   684 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   685 \mode<presentation>{
       
   686 \begin{frame}[c]
       
   687 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 3\end{tabular}}
       
   688 
       
   689 {\bf How well does the security solution mitigate those risks?}\bigskip
       
   690 
       
   691 Another seemingly obvious question, but one that is frequently ignored. If the security solution doesnŐt solve the problem, it's no good. This is not as simple as looking at the security solution and seeing how well it works. It involves looking at how the security solution interacts with everything around it, evaluating both its operation and its failures.
       
   692 
       
   693 \end{frame}}
       
   694 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   695 
       
   696 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   697 \mode<presentation>{
       
   698 \begin{frame}[c]
       
   699 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 4\end{tabular}}
       
   700 
       
   701 {\bf What other risks does the security solution cause?}\bigskip
       
   702 
       
   703 This question addresses what might be called the problem of unintended consequences. Security solutions have ripple effects, and most cause new security problems. The trick is to understand the new problems and make sure they are smaller than the old ones.
       
   704 
       
   705 \end{frame}}
       
   706 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   707 
       
   708 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   709 \mode<presentation>{
       
   710 \begin{frame}[c]
       
   711 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 5\end{tabular}}
       
   712 
       
   713 {\bf What costs and trade-offs does the security solution impose?}\bigskip
       
   714 
       
   715 Every security system has costs and requires trade-offs. Most security costs money, sometimes substantial amounts; but other trade-offs may be more important, ranging from matters of convenience and comfort to issues involving basic freedoms like privacy. Understanding these trade-offs is essential.
       
   716 
       
   717 \end{frame}}
       
   718 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   719 
       
   720 
       
   721 \end{document}
       
   722 
       
   723 %%% Local Variables:  
       
   724 %%% mode: latex
       
   725 %%% TeX-master: t
       
   726 %%% End: 
       
   727