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