slides/slides04.tex
changeset 118 a42bbdfe5dd9
parent 117 59d3bf386a6d
child 119 0cea882f03c7
equal deleted inserted replaced
117:59d3bf386a6d 118:a42bbdfe5dd9
   302 
   302 
   303 \end{frame}
   303 \end{frame}
   304 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   304 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   305 
   305 
   306 
   306 
   307 
   307 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   308 
   308 \begin{frame}[c]
   309 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   309 \frametitle{The Bell/LaPadula Model}
   310 \mode<presentation>{
   310 
   311 \begin{frame}[c]
   311 \begin{itemize}
   312 \frametitle{Setuid and Setgid}
   312 \item Formal policy model for mandatory access control in a military multi-level security environment.
   313 
   313 All subjects (processes, users, terminals) and data objects (files, directories, windows, connections) are labeled with a confidentiality level, e.g. 
   314 The solution is that unix file permissions are 9 + \underline{2 Bits}:
       
   315 \alert{Setuid} and \alert{Setgid} Bits
       
   316 
       
   317 \begin{itemize}
       
   318 \item When a file with setuid is executed, the resulting process will assume the UID given to the owner of the file. 
       
   319 \item This enables users to create processes as root (or another user).\bigskip
       
   320 
       
   321 \item Essential for changing passwords, for example.
       
   322 \end{itemize}
       
   323 
       
   324 \begin{center}
   314 \begin{center}
   325 \texttt{chmod 4755 fobar\_file}
   315 unclassified < confidential < secret < top secret.
   326 \end{center}
   316 \end{center}
   327 
   317 
       
   318 \item 
       
   319 The system policy automatically prevents the flow of information from high-level objects to lower levels. A process that reads top secret data becomes tagged as top secret by the operating system, as will be all files into which it writes afterwards. 
       
   320 %Each user has a maximum allowed confidentiality level specified and cannot receive data beyond that level. A selected set of trusted subjects is allowed to bypass the restrictions, in order to permit the declassification of information.
       
   321 \end{itemize}
       
   322 
       
   323 \end{frame}
       
   324 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   325 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   326   \mode<presentation>{
       
   327   \begin{frame}[c]
       
   328   \frametitle{Bell-LaPadula}
       
   329   \small
       
   330   
       
   331   \begin{itemize}
       
   332   \item \alert{Read Rule}: A principal \bl{$P$} can read an object \bl{$O$} if and only if
       
   333   \bl{$P$}'s security level is at least as high as \bl{$O$}'s.
       
   334   \item \alert{Write Rule}: A principal \bl{$P$} can write an object \bl{$O$} if and only if
       
   335   \bl{$O$}'s security level is at least as high as \bl{$P$}'s.\medskip
       
   336 
       
   337   \item Meta-Rule: All principals in a system should have a sufficiently high security level
       
   338   in order to access an object.
       
   339   \end{itemize}\bigskip
       
   340 
       
   341   This restricts information flow $\Rightarrow$ military\bigskip\bigskip\pause
       
   342 
       
   343   Bell-LaPadula: {\bf `no read up'} - {\bf `no write down'}
       
   344 
       
   345   \end{frame}}
       
   346   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   347 %
       
   348 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   349   \mode<presentation>{
       
   350   \begin{frame}[c]
       
   351   \frametitle{\begin{tabular}{c}Principle of\\[-2mm] Least Privilege\end{tabular}}
       
   352   
       
   353   \begin{tikzpicture}
       
   354   \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
       
   355   {\normalsize\color{darkgray}
       
   356   \begin{minipage}{10cm}\raggedright
       
   357   A principal should have as few privileges as possible to access a resource.
       
   358   \end{minipage}};
       
   359   \end{tikzpicture}\bigskip\bigskip
       
   360   \small
       
   361 
       
   362   \begin{itemize}
       
   363   \item Bob ($T\!S$) and Alice ($S$) want to communicate
       
   364   \item[] $\Rightarrow$ Bob should lower his security level
       
   365   \end{itemize}
       
   366 
       
   367   \end{frame}}
       
   368   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   369 %
       
   370 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   371   \mode<presentation>{
       
   372   \begin{frame}[c]
       
   373   \frametitle{Biba Policy}
       
   374   \small
       
   375   
       
   376   Data Integrity (rather than data confidentiality)
       
   377 
       
   378   \begin{itemize}
       
   379   \item Biba: {\bf `no read down'} - {\bf `no write up'}
       
   380   \item \alert{Read Rule}: A principal \bl{$P$} can read an object \bl{$O$} if and only if
       
   381   \bl{$P$}'s security level is lower or equal than \bl{$O$}'s.
       
   382   \item \alert{Write Rule}: A principal \bl{$P$} can write an object \bl{$O$} if and only if
       
   383   \bl{$O$}'s security level is lower or equal than \bl{$P$}'s.
       
   384   \end{itemize}\bigskip\bigskip\pause
       
   385 
       
   386   E.g.~Generals write orders to officers; officers write oders to solidiers\\
       
   387   Firewall: you can read from inside the firewall, but not from outside\\
       
   388   Phishing: you can look at an approved PDF, but not one from a random email\\
       
   389 
       
   390   \end{frame}}
       
   391   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   392 %
       
   393 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   394 \mode<presentation>{
       
   395 \begin{frame}[c]
       
   396 \frametitle{Shared Access Control}
       
   397 
       
   398 \begin{center}
       
   399 \includegraphics[scale=0.7]{pics/pointsplane.jpg}
       
   400 \end{center}
       
   401 
       
   402 \begin{textblock}{11}(10.5,10.5)
       
   403 \small
       
   404 To take an action you\\[-1mm] 
       
   405 need at least either:
       
   406 \begin{itemize}
       
   407 \item 1 CEO\\[-5mm]
       
   408 \item 2 MDs, or\\[-5mm]
       
   409 \item 3 Ds
       
   410 \end{itemize}
       
   411 \end{textblock}
       
   412 
       
   413 \end{frame}}
       
   414 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   415 
       
   416 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   417 \mode<presentation>{
       
   418 \begin{frame}[c]
       
   419 \frametitle{Lessons from Access Control}
       
   420 
       
   421 Not just restricted to Unix:
       
   422 
       
   423 \begin{itemize}
       
   424 \item if you have too many roles (i.e.~too finegrained AC), then 
       
   425 	hierarchy is too complex\\
       
   426 	\textcolor{gray}{you invite situations like\ldots let's be root}\bigskip
       
   427 
       
   428 \item you can still abuse the system\ldots
       
   429 
       
   430 \end{itemize}
       
   431 
       
   432 \end{frame}}
       
   433 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   434 
       
   435  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   436   \mode<presentation>{
       
   437   \begin{frame}[t]
       
   438   \frametitle{Protocols}
       
   439  
       
   440 \mbox{} 
       
   441   
       
   442 \begin{tabular}{l}
       
   443 {\Large \bl{$A\;\text{sends}\; B : \ldots$}}\\
       
   444 \onslide<2->{\Large \bl{$B\;\text{sends}\; A : \ldots$}}\\
       
   445 \onslide<2->{\Large \;\;\;\;\;\bl{$:$}}\bigskip
       
   446 \end{tabular}  
       
   447   
       
   448  \begin{itemize}
       
   449  \item by convention \bl{$A$}, \bl{$B$} are named principals \bl{Alice\ldots}\\
       
   450  but most likely they are programs, which just follow some instructions (they are more like roles)\bigskip
       
   451 \item<2-> indicates one ``protocol run'', or session,  which specifies some 
       
   452 order in the communication
       
   453 \item<2-> there can be several sessions in parallel (think of wifi routers) 
       
   454 \end{itemize} 
       
   455   
       
   456   \end{frame}}
       
   457   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   458   
       
   459 
       
   460 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   461 \mode<presentation>{
       
   462 \begin{frame}[c]
       
   463 \frametitle{A mutual authentication protocol}
       
   464 
       
   465 \begin{center}
       
   466 \begin{tabular}{ll}
       
   467 \bl{$A \rightarrow B$:} & \bl{$N_a$}\\  
       
   468 \bl{$B \rightarrow A$:} & \bl{$\{N_a, N_b\}_{K_{ab}}$}\\
       
   469 \bl{$A \rightarrow B$:} & \bl{$N_b$}\\
       
   470 \end{tabular}
       
   471 \end{center}
       
   472 
       
   473 Explain how an attacker \bl{$B'$} can launch an impersonation attack by 
       
   474 intercepting all messages for \bl{$B$} and make \bl{$A$} decrypt her own challenges.
       
   475 
   328 \end{frame}}
   476 \end{frame}}
   329 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
   477 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
   330 
   478 
       
   479 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   480 \mode<presentation>{
       
   481 \begin{frame}[c]
       
   482 \frametitle{Nonces}
       
   483 
       
   484 \begin{enumerate}
       
   485 \item I generate a nonce (random number) and send it to you encrypted with a key we share
       
   486 \item you increase it by one, encrypt it under a key I know and send
       
   487 it back to me
       
   488 \end{enumerate}
       
   489 
       
   490 
       
   491 I can infer:
       
   492 
       
   493 \begin{itemize}
       
   494 \item you must have received my message
       
   495 \item you could only have generated your answer after I send you my initial
       
   496 message
       
   497 \item if only you and me know the key, the message must have come from you
       
   498 \end{itemize}
       
   499 
       
   500 \end{frame}}
       
   501 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   502 
       
   503 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   504 \mode<presentation>{
       
   505 \begin{frame}[c]
       
   506 
       
   507 \begin{center}
       
   508 \begin{tabular}{l}
       
   509 \bl{$A \rightarrow S :$} \bl{$A, B, N_A$}\\
       
   510 \bl{$S \rightarrow A :$} \bl{$\{N_A, B, K_{AB},\{K_{AB}, A\}_{K_{BS}} \}_{K_{AS}}$}\\
       
   511 \bl{$A \rightarrow B :$} \bl{$\{K_{AB}, A\}_{K_{BS}} $}\\
       
   512 \bl{$B \rightarrow A :$} \bl{$\{N_B\}_{K_{AB}}$}\\
       
   513 \bl{$A \rightarrow B :$} \bl{$\{N_B-1\}_{K_{AB}}$}\pause\\
       
   514 \hspace{5cm}compromise \bl{$K_{AB}$}\pause\\
       
   515 \bl{$A \rightarrow S :$} \bl{$A, B, N'_A$}\\
       
   516 \bl{$S \rightarrow A :$} \bl{$\{N'_A, B, K'_{AB},\{K'_{AB}, A\}_{K_{BS}} \}_{K_{AS}}$}\pause\\
       
   517 \bl{$I(A) \rightarrow B :$} \bl{$\{K_{AB}, A\}_{K_{BS}} $}\hspace{0.5cm} replay of older run\pause\\
       
   518 \bl{$B \rightarrow I(A) :$} \bl{$\{N'_B\}_{K_{AB}}$}\\
       
   519 \bl{$I(A) \rightarrow B :$} \bl{$\{N'_B-1\}_{K_{AB}}$}\
       
   520 \end{tabular}
       
   521 \end{center}\pause
       
   522 
       
   523 \bl{$B$} believes it is following the correct protocol,
       
   524 intruder \bl{$I$} can form the correct response because it knows \bl{$K_{AB}$} and
       
   525 talks to \bl{$B$} masquerading as \bl{$A$}
       
   526 \end{frame}}
       
   527 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   331 
   528 
   332 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   529 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   333 \mode<presentation>{
   530 \mode<presentation>{
   334 \begin{frame}[c]
   531 \begin{frame}[c]
   335 \frametitle{\begin{tabular}{c}Privilege Separation in\\ OpenSSH\end{tabular}}
   532 \frametitle{\begin{tabular}{c}Privilege Separation in\\ OpenSSH\end{tabular}}
   389 \end{itemize}
   586 \end{itemize}
   390 
   587 
   391 
   588 
   392 \end{frame}}
   589 \end{frame}}
   393 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
   590 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
   394 
       
   395 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   396 \mode<presentation>{
       
   397 \begin{frame}[c]
       
   398 \frametitle{\begin{tabular}{@ {}c@ {}}Other Problems\end{tabular}}
       
   399 
       
   400 There are thing's you just cannot solve on the programming side:\bigskip
       
   401 
       
   402 \begin{itemize}
       
   403 \item for system maintenance you often have \texttt{cron}-jobs cleaning \texttt{/tmp}\medskip
       
   404 \begin{itemize}
       
   405 \item attacker:\\ 
       
   406 \texttt{mkdir /tmp/a; cat > /tmp/a/passwd}
       
   407 \item root:\\\texttt{rm /tmp/*/*}:
       
   408 \item attacker:\\
       
   409 \texttt{rm /tmp/a/passwd; rmdir /tmp/a;}\\\texttt{ln -s /etc /tmp/a}
       
   410 \end{itemize}
       
   411 \end{itemize}
       
   412 
       
   413 \end{frame}}
       
   414 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   415 
   591 
   416 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   592 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   417 \mode<presentation>{
   593 \mode<presentation>{
   418 \begin{frame}[c]
   594 \begin{frame}[c]
   419 \frametitle{\begin{tabular}{@ {}c@ {}}Security Levels\end{tabular}}
   595 \frametitle{\begin{tabular}{@ {}c@ {}}Security Levels\end{tabular}}