Slides/Slides1.thy
changeset 18 cfd4b8219c87
child 19 c3517b281164
equal deleted inserted replaced
17:a87e2181d6b6 18:cfd4b8219c87
       
     1 (*<*)
       
     2 theory Slides1
       
     3 imports "../rc_theory" "../final_theorems" "../rc_theory" "../os_rc" 
       
     4 begin
       
     5 
       
     6 notation (Rule output)
       
     7   "==>"  ("\<^raw:\mbox{}\inferrule{\mbox{>_\<^raw:}}>\<^raw:{\mbox{>_\<^raw:}}>")
       
     8 
       
     9 syntax (Rule output)
       
    10   "_bigimpl" :: "asms \<Rightarrow> prop \<Rightarrow> prop"
       
    11   ("\<^raw:\mbox{}\inferrule{>_\<^raw:}>\<^raw:{\mbox{>_\<^raw:}}>")
       
    12 
       
    13   "_asms" :: "prop \<Rightarrow> asms \<Rightarrow> asms" 
       
    14   ("\<^raw:\mbox{>_\<^raw:}\\>/ _")
       
    15 
       
    16   "_asm" :: "prop \<Rightarrow> asms" ("\<^raw:\mbox{>_\<^raw:}>")
       
    17 
       
    18 notation (Axiom output)
       
    19   "Trueprop"  ("\<^raw:\mbox{}\inferrule{\mbox{}}{\mbox{>_\<^raw:}}>")
       
    20 
       
    21 notation (IfThen output)
       
    22   "==>"  ("\<^raw:{\normalsize{}>If\<^raw:\,}> _/ \<^raw:{\normalsize \,>then\<^raw:\,}>/ _.")
       
    23 syntax (IfThen output)
       
    24   "_bigimpl" :: "asms \<Rightarrow> prop \<Rightarrow> prop"
       
    25   ("\<^raw:{\normalsize{}>If\<^raw:\,}> _ /\<^raw:{\normalsize \,>then\<^raw:\,}>/ _.")
       
    26   "_asms" :: "prop \<Rightarrow> asms \<Rightarrow> asms" ("\<^raw:\mbox{>_\<^raw:}> /\<^raw:{\normalsize \,>and\<^raw:\,}>/ _")
       
    27   "_asm" :: "prop \<Rightarrow> asms" ("\<^raw:\mbox{>_\<^raw:}>")
       
    28 
       
    29 notation (IfThenNoBox output)
       
    30   "==>"  ("\<^raw:{\normalsize{}>If\<^raw:\,}> _/ \<^raw:{\normalsize \,>then\<^raw:\,}>/ _.")
       
    31 syntax (IfThenNoBox output)
       
    32   "_bigimpl" :: "asms \<Rightarrow> prop \<Rightarrow> prop"
       
    33   ("\<^raw:{\normalsize{}>If\<^raw:\,}> _ /\<^raw:{\normalsize \,>then\<^raw:\,}>/ _.")
       
    34   "_asms" :: "prop \<Rightarrow> asms \<Rightarrow> asms" ("_ /\<^raw:{\normalsize \,>and\<^raw:\,}>/ _")
       
    35   "_asm" :: "prop \<Rightarrow> asms" ("_")
       
    36 
       
    37 consts DUMMY::'a
       
    38 
       
    39 abbreviation
       
    40   "is_parent f pf \<equiv> (parent f = Some pf)"
       
    41 
       
    42 context tainting_s_sound begin 
       
    43 
       
    44 notation (latex output)
       
    45   source_dir ("anchor") and
       
    46   SProc ("P_\<^bsup>_\<^esup>") and
       
    47   SFile ("F_\<^bsup>_\<^esup>") and
       
    48   SIPC ("I'(_')\<^bsup>_\<^esup>") and
       
    49   READ ("Read") and 
       
    50   WRITE ("Write") and
       
    51   EXECUTE ("Execute") and
       
    52   CHANGE_OWNER ("ChangeOwner") and
       
    53   CREATE ("Create") and
       
    54   SEND ("Send") and
       
    55   RECEIVE ("Receive") and
       
    56   DELETE ("Delete") and
       
    57   compatible ("permissions") and
       
    58   comproles ("compatible") and
       
    59   DUMMY  ("\<^raw:\mbox{$\_$}>") and
       
    60   Cons ("_::_" [78,77] 79) and 
       
    61   Proc ("") and
       
    62   File ("") and
       
    63   File_type ("") and
       
    64   Proc_type ("") and
       
    65   IPC ("") and
       
    66   init_processes ("init'_procs") and
       
    67   os_grant ("admissible") and
       
    68   rc_grant ("granted") and
       
    69   exists ("alive") and
       
    70   default_fd_create_type ("default'_type") and
       
    71   InheritParent_file_type ("InheritPatentType") and
       
    72   NormalFile_type ("NormalFileType") and
       
    73   deleted ("deleted _ _" [50, 100] 100) and
       
    74   taintable_s ("taintable\<^sup>s") and
       
    75   tainted_s ("tainted\<^sup>s") and
       
    76   all_sobjs ("reachable\<^sup>s") and
       
    77   init_obj2sobj ("\<lbrakk>_\<rbrakk>") and
       
    78   erole_functor ("erole'_aux") 
       
    79 
       
    80 declare [[show_question_marks = false]]
       
    81 
       
    82 abbreviation
       
    83   "is_process_type s p t \<equiv> (type_of_process s p = Some t)"
       
    84 
       
    85 abbreviation
       
    86   "is_current_role s p r \<equiv> (currentrole s p = Some r)"
       
    87 
       
    88 abbreviation
       
    89   "is_file_type s f t \<equiv> (etype_of_file s f = Some t)"
       
    90 
       
    91 
       
    92 lemma osgrant10: (* modified by chunhan *)
       
    93   "\<lbrakk>p \<in> current_procs \<tau>; p' \<notin> current_procs \<tau>\<rbrakk> \<Longrightarrow> os_grant \<tau> (Clone p p')"
       
    94 by simp 
       
    95 
       
    96 lemma rcgrant4:
       
    97   "\<lbrakk>is_current_role s p r; is_file_type s f t; (r, File_type t, EXECUTE) \<in> compatible\<rbrakk>
       
    98    \<Longrightarrow> rc_grant s (Execute p f)"
       
    99 by simp
       
   100 
       
   101 (*>*)
       
   102 
       
   103 text_raw {*
       
   104   \tikzset{alt/.code args={<#1>#2#3#4}{%
       
   105   \alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path
       
   106   }}
       
   107   \renewcommand{\slidecaption}{CPP, 13 December 2013}
       
   108   \newcommand{\bl}[1]{\textcolor{blue}{#1}}                        
       
   109   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   110   \mode<presentation>{
       
   111   \begin{frame}
       
   112   \frametitle{%
       
   113   \begin{tabular}{@ {\hspace{-2mm}}c@ {}}
       
   114   \\[-3mm]
       
   115   \Large A Formalisation of an\\[-1mm] 
       
   116   \Large Access Control Framework
       
   117   \end{tabular}}
       
   118   
       
   119   \begin{center}
       
   120   \begin{tabular}{c@ {\hspace{15mm}}c}
       
   121   \includegraphics[scale=0.034]{chunhan.jpg} &
       
   122   \includegraphics[scale=0.034]{xingyuan.jpg}\\[-3mm]
       
   123   \end{tabular}
       
   124   \end{center}
       
   125  
       
   126   \begin{center}
       
   127   \small joint work with Chunhan Wu and Xingyuan Zhang from the PLA
       
   128   University of Science and Technology in Nanjing
       
   129   \end{center}
       
   130 
       
   131   \begin{center}
       
   132   \small Christian Urban\\
       
   133   \small King's College London
       
   134   \end{center}
       
   135 
       
   136   \end{frame}}
       
   137   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   138 *}
       
   139 
       
   140 text_raw {*
       
   141   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   142   \begin{frame}[c]
       
   143   \frametitle{Access Control}
       
   144 
       
   145 \only<1>{
       
   146   Perhaps most known are
       
   147 
       
   148   \begin{itemize}
       
   149   \item Unix-style access control systems\\ 
       
   150   (root super-user, setuid mechanism)\bigskip
       
   151 
       
   152   \begin{center}\footnotesize
       
   153   \begin{semiverbatim}
       
   154 > ls -ld . * */*
       
   155 
       
   156 drwxr-xr-x 1 alice staff\ \ \ \  32768\ \ Apr\ \  2 2010 .
       
   157 
       
   158 -rw----r-- 1 alice students 31359\ \ Jul 24 2011 manual.txt
       
   159 
       
   160 -rwsr--r-x 1 bob\ \ \  students 141359 Jun\ \  1 2013 microedit
       
   161 
       
   162 dr--r-xr-x 1 bob\ \ \  staff\ \ \ \  32768\ \ Jul 23 2011 src
       
   163 
       
   164 -rw-r--r-- 1 bob\ \ \  staff\ \ \ \  81359\ \ Feb 28 2012 src/code.c
       
   165 \end{semiverbatim}
       
   166   \end{center}
       
   167 \end{itemize}}
       
   168 
       
   169 \only<2->{
       
   170 More fine-grained access control is provided by\medskip
       
   171 
       
   172 \begin{itemize}
       
   173   \item SELinux\\ (security enhanced Linux devloped by the NSA;\\ mandatory access control system)\bigskip 
       
   174   \item Role-Compatibility Model\\ (developed by Amon Ott;\\ main application in the
       
   175   Apache server) 
       
   176   \end{itemize}}
       
   177 
       
   178   \end{frame}
       
   179   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   180 
       
   181 *}
       
   182 
       
   183 text_raw {*
       
   184   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   185   \mode<presentation>{
       
   186   \begin{frame}[c]
       
   187   \frametitle{Operations in the OS}
       
   188   \bigskip
       
   189 
       
   190   using Paulson's inductive method a \alert{\bf state of the system} is 
       
   191   a \alert{\bf trace}, a list of events (system calls):
       
   192 
       
   193   \begin{center}\large
       
   194   \bl{$[e_1,\ldots, e_2]$}
       
   195   \end{center}\bigskip
       
   196   
       
   197 
       
   198    \begin{isabelle}\small
       
   199   \mbox{
       
   200   \begin{tabular}{@ {}r@ {\hspace{1.5mm}}c@ {\hspace{1.5mm}}l@ {\hspace{2mm}}l@ 
       
   201                      {\hspace{1.5mm}}l@ {\hspace{2mm}}l@ {\hspace{1.5mm}}l@ 
       
   202                      {\hspace{2mm}}l@ {}}
       
   203   @{text e} 
       
   204   & @{text "::="} & @{term "CreateFile p f"} & @{text "|"} & @{term "ReadFile p f"} & @{text "|"} & @{term "Send p i"}     \\
       
   205   & @{text "|"} & @{term "WriteFile p f"}    & @{text "|"} & @{term "Execute p f"} & @{text "|"} & @{term "Recv p i"}\\
       
   206   & @{text "|"} & @{term "DeleteFile p f"}   & @{text "|"} & @{term "Clone p p'"} & @{text "|"} & @{term "CreateIPC p i"}  \\
       
   207   & @{text "|"} & @{term "ChangeOwner p u"}  & @{text "|"} & @{term "ChangeRole p r"} & @{text "|"} & @{term "DeleteIPC p i"}\\
       
   208   & @{text "|"} & @{term "Kill p p'"}
       
   209   \end{tabular}}
       
   210   \end{isabelle}
       
   211   \end{frame}}
       
   212   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   213 
       
   214 *}
       
   215 
       
   216 
       
   217 
       
   218 text_raw {*
       
   219   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   220   \mode<presentation>{
       
   221   \begin{frame}[c]
       
   222   \frametitle{Valid Traces}
       
   223 
       
   224   we need to restrict the traces to \alert{\bf valid traces}:\bigskip\bigskip\bigskip 
       
   225 
       
   226   
       
   227   \begin{center}
       
   228   \begin{tabular}{@ {}c@ {}}
       
   229   \bl{@{thm [mode=Axiom] valid.intros(1)}}\hspace{5mm}
       
   230   \bl{@{thm [mode=Rule] valid.intros(2)}} 
       
   231   \end{tabular}
       
   232   \end{center}
       
   233 
       
   234   \begin{textblock}{3}(9,6.1)
       
   235   \onslide<2-3>{
       
   236   \begin{tikzpicture}
       
   237   \node at (0,0) [single arrow, fill=red,text=white, rotate=50, shape border rotate=180]{OS};
       
   238   \end{tikzpicture}}
       
   239   \end{textblock}
       
   240 
       
   241   \begin{textblock}{3}(6,11.2)
       
   242   \only<3>{
       
   243   \begin{tikzpicture}
       
   244   \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
       
   245   {\normalsize\color{darkgray}
       
   246   \begin{minipage}{5.6cm}\raggedright
       
   247   \bl{@{thm[mode=Rule] osgrant10[of _ "s"]}}
       
   248   \end{minipage}};
       
   249   \end{tikzpicture}}
       
   250   \end{textblock}
       
   251 
       
   252   \begin{textblock}{6}(12.6,6.1)
       
   253   \onslide<4->{
       
   254   \begin{tikzpicture}
       
   255   \node at (0,0) [single arrow, fill=red,text=white, rotate=50, shape border rotate=180]{RC};
       
   256   \end{tikzpicture}}
       
   257   \end{textblock}
       
   258 
       
   259   \begin{textblock}{3}(4,11.3)
       
   260   \only<4->{
       
   261   \begin{tikzpicture}
       
   262   \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
       
   263   {\normalsize\color{darkgray}
       
   264   \begin{minipage}{8.5cm}\raggedright
       
   265   \bl{@{thm[mode=Rule] rcgrant4}}
       
   266   \end{minipage}};
       
   267   \end{tikzpicture}}
       
   268   \end{textblock}
       
   269 
       
   270 
       
   271   \end{frame}}
       
   272   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   273 
       
   274 *}
       
   275 
       
   276 
       
   277 text_raw {*
       
   278   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   279   \mode<presentation>{
       
   280   \begin{frame}[c]
       
   281   \frametitle{Design of AC-Policies}
       
   282 
       
   283   \Large
       
   284   \begin{quote}
       
   285   ''what you specify is what you get but not necessarily what you want\ldots''
       
   286   \end{quote}
       
   287 
       
   288   \end{frame}}
       
   289   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   290 
       
   291 *}
       
   292 
       
   293 text_raw {*
       
   294   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   295   \mode<presentation>{
       
   296   \begin{frame}[c]
       
   297   \frametitle{Testing Policies}
       
   298 
       
   299   \begin{center}
       
   300   \begin{tikzpicture}[scale=1]
       
   301   %\draw[black!10,step=2mm] (-5,-3) grid (5,4);
       
   302   %\draw[black!10,thick,step=10mm] (-5,-3) grid (5,4);
       
   303   \draw[white,thick,step=10mm] (-5,-3) grid (5,4);
       
   304 
       
   305   \draw [black!20, line width=1mm] (0,0) circle (1cm);
       
   306   \draw [line width=1mm] (0,0) circle (3cm);
       
   307   \node [black!20] at (0,0) {\begin{tabular}{c}core\\[-1mm] system\end{tabular}};
       
   308   
       
   309   \draw [red, line width=2mm, <-] (-2.1,2.1) -- (-3.5,3.2);
       
   310   \node at (-3.5,3.6) {your system};
       
   311   \node at (-4.8,0) {\Large policy $+$};
       
   312 
       
   313   
       
   314   \only<2>{
       
   315   \draw [black, fill=red, line width=0.5mm] (2,1) circle (3mm);
       
   316   \draw [red, line width=2mm, <-] (2.3,1.2) -- (3.5,2);
       
   317   \node at (3.8,2.3) {a seed};}
       
   318 
       
   319   \only<3>{
       
   320   \draw [black, fill=red, line width=0.5mm] (2,1) circle (7mm);
       
   321   \node[white] at (2,1) {\small tainted};}
       
   322 
       
   323   \only<4>{
       
   324   \begin{scope}
       
   325   \draw [clip] (0,0) circle (2.955cm);
       
   326   \draw [black, fill=red, line width=0.5mm] (2,1) circle (9mm);
       
   327   \node[white] at (2,1) {\small tainted};
       
   328   \end{scope}}
       
   329 
       
   330   \only<5->{
       
   331   \begin{scope}
       
   332   \draw [clip] (0,0) circle (2.955cm);
       
   333   \draw [black, fill=red, line width=0.5mm] (2,1) circle (13mm);
       
   334   \node[white] at (2,1) {\small tainted};
       
   335   \end{scope}}
       
   336 
       
   337   \only<6->{
       
   338   \draw[fill=white, line width=1mm] (1.265,2.665) arc (-35:183:5mm);
       
   339   \draw[fill=white, line width=1mm] (1.25,3.25) arc (-35:183:3mm);
       
   340   \node[black, rotate=10] at (1.9,3.6) {\LARGE\ldots};
       
   341   }
       
   342 
       
   343   \end{tikzpicture}
       
   344   \end{center}
       
   345 
       
   346 
       
   347   \begin{textblock}{3}(1,11.9)
       
   348   \only<5->{
       
   349   \begin{tikzpicture}
       
   350   \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
       
   351   {\normalsize\color{darkgray}
       
   352   \begin{minipage}{6.9cm}\raggedright\small
       
   353   \bl{@{thm [mode=Rule] tainted.intros(6)}}
       
   354   \end{minipage}};
       
   355   \end{tikzpicture}}
       
   356   \end{textblock}
       
   357 
       
   358   \end{frame}}
       
   359   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   360 *}
       
   361 
       
   362 text_raw {*
       
   363   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   364   \mode<presentation>{
       
   365   \begin{frame}[c]
       
   366   \frametitle{\begin{tabular}{@ {}c@ {}}A Sound and Complete Test\end{tabular}}
       
   367 
       
   368   \begin{itemize}
       
   369   \item working purely in the \emph{dynamic world} does not work -\!-\!- infinite state space\bigskip
       
   370 
       
   371   \item working purely on \emph{static} policies also does not\\ work -\!-\!- because of over approximation
       
   372   \smallskip
       
   373   \begin{itemize}
       
   374   \item suppose a tainted file has type \emph{bin} and
       
   375   \item there is a role \bl{$r$} which can both read and write \emph{bin}-files\pause
       
   376   \item then we would conclude that the tainted file can spread\medskip\pause
       
   377   \item but if there is no process with role \bl{$r$} and it will never been
       
   378   created, then the file actually does not spread
       
   379   \end{itemize}\bigskip\pause
       
   380 
       
   381   \item \alert{our solution:} take a middle ground and record precisely the information
       
   382   of the initial state, but be less precise about every newly created object.
       
   383   \end{itemize}
       
   384 
       
   385   \end{frame}}
       
   386   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   387 *}
       
   388 
       
   389 text_raw {*
       
   390   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   391   \mode<presentation>{
       
   392   \begin{frame}[c]
       
   393   \frametitle{Results about our Test}
       
   394 
       
   395   \begin{itemize}
       
   396   \item we can show that the objects (files, processes, \ldots) we need to consider 
       
   397   are only finite (at some point
       
   398   it does not matter if we create another \emph{bin}-file)
       
   399   \end{itemize}
       
   400 
       
   401   \colorbox{cream}{
       
   402   \begin{minipage}{10.5cm}
       
   403   {\bf Thm (Soundness)}\\ If our test says an object is taintable, then 
       
   404   it is taintable, and we produce a sequence of events that show how it can
       
   405   be tainted.
       
   406   \end{minipage}}\bigskip\pause
       
   407 
       
   408   \colorbox{cream}{
       
   409   \begin{minipage}{10.5cm}
       
   410   {\bf Thm (Completeness)}\\ 
       
   411   If an object is taintable and \emph{undeletable$^\star$}, then 
       
   412   our test will find out that it is taintable.
       
   413   \end{minipage}}\medskip
       
   414 
       
   415   \small
       
   416   $^\star$ an object is \emph{undeleteable} if it exists in the initial state,
       
   417   but there exists no valid state in which it could have been deleted
       
   418 
       
   419   \end{frame}}
       
   420   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   421 *}
       
   422 
       
   423 text_raw {*
       
   424   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   425   \mode<presentation>{
       
   426   \begin{frame}[c]
       
   427   \frametitle{Why the Restriction?}
       
   428 
       
   429   \begin{itemize}
       
   430   \item assume a process with \bl{\emph{ID}} is tainted but gets killed by another process
       
   431   \item after that a proces with \bl{\emph{ID}} gets \emph{re-created} by cloning an untainted process\medskip
       
   432   \item clearly the new process should be considered untainted\pause
       
   433   \end{itemize}
       
   434 
       
   435   unfortunately our test will not be able to detect the difference (we are 
       
   436   less precise about newly created processes)\bigskip\medskip\pause
       
   437 
       
   438   \alert{Is this a serious restriction? We think not \ldots}
       
   439   
       
   440   \end{frame}}
       
   441   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   442 *}
       
   443 
       
   444 text_raw {*
       
   445   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   446   \mode<presentation>{
       
   447   \begin{frame}[c]
       
   448   \frametitle{Core System}
       
   449 
       
   450   Admins usually ask whether their policy is strong enough to protect their
       
   451   core system?
       
   452   
       
   453   \begin{center}
       
   454   \begin{tikzpicture}[scale=0.8]
       
   455 
       
   456   \draw [black!100, line width=1mm, fill=red] (0,0) circle (1.2cm);
       
   457   \draw [line width=1mm] (0,0) circle (3cm);
       
   458   \node [white] at (0,0) {\begin{tabular}{c}core\\[-1mm] system\end{tabular}};
       
   459   
       
   460   \begin{scope}
       
   461   \draw [clip] (0,0) circle (2.955cm);
       
   462   \draw [black, fill=red, line width=0.5mm] (2,1) circle (10mm);
       
   463   \node[white] at (2,1) {\small tainted};
       
   464   \end{scope}
       
   465 
       
   466   \end{tikzpicture}
       
   467   \end{center}
       
   468 
       
   469   core system files are typically undeletable
       
   470 
       
   471   \end{frame}}
       
   472   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   473 *}
       
   474 
       
   475 text_raw {*
       
   476   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   477   \mode<presentation>{
       
   478   \begin{frame}[c]
       
   479   \frametitle{Conclusion}
       
   480 
       
   481   \begin{itemize}
       
   482   \item we considered Role-Compatibility Model for the Apache Server\medskip \\
       
   483   13 events, 13 rules for OS admisibility, 14 rules for RC-granting, 10 rules for 
       
   484   tainted
       
   485   \end{itemize}\bigskip
       
   486 
       
   487   \begin{itemize}
       
   488   \item we can scale this to SELinux\medskip\\
       
   489   more fine-grainded OS events (inodes, hard-links, shared memory, \ldots)
       
   490   \end{itemize}\pause\bigskip
       
   491 
       
   492   \begin{itemize}
       
   493   \item hard sell to Ott (who designed the RC-model)
       
   494   \item hard sell to the community working on access control (beyond \emph{good science})
       
   495   \end{itemize}
       
   496   \end{frame}}
       
   497   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   498 *}
       
   499 
       
   500 
       
   501 
       
   502 (*<*)
       
   503 end
       
   504 end
       
   505 (*>*)
       
   506 
       
   507