\contentsline {section}{\numberline {1}Introduction}{2}{section.1}
\contentsline {section}{\numberline {2}Overview}{2}{section.2}
\contentsline {section}{\numberline {3}The AppArmor Security Model}{3}{section.3}
\contentsline {subsection}{\numberline {3.1}Symbolic Links}{3}{subsection.3.1}
\contentsline {subsection}{\numberline {3.2}Namespaces}{4}{subsection.3.2}
\contentsline {subsection}{\numberline {3.3}Disconnected Files and Pseudo File Systems}{4}{subsection.3.3}
\contentsline {subsection}{\numberline {3.4}Mount}{5}{subsection.3.4}
\contentsline {subsection}{\numberline {3.5}The Kernel NFS Daemon}{5}{subsection.3.5}
\contentsline {subsection}{\numberline {3.6}Why are the computed pathnames meaningful?}{5}{subsection.3.6}
\contentsline {subsection}{\numberline {3.7}Path Permission Checking}{6}{subsection.3.7}
\contentsline {subsection}{\numberline {3.8}Profile Permissions}{7}{subsection.3.8}
\contentsline {subsection}{\numberline {3.9}System Calls Taking File Handles, At System Calls}{8}{subsection.3.9}
\contentsline {subsection}{\numberline {3.10}File Descriptor Passing and Revalidation}{8}{subsection.3.10}
\contentsline {subsection}{\numberline {3.11}Deleted Files}{8}{subsection.3.11}
\contentsline {subsection}{\numberline {3.12}The access System Call}{9}{subsection.3.12}
\contentsline {subsection}{\numberline {3.13}The ptrace System Call}{9}{subsection.3.13}
\contentsline {subsection}{\numberline {3.14}Secure Execution}{9}{subsection.3.14}
\contentsline {subsection}{\numberline {3.15}Exec Mode Merging in Profiles, Exact Matches}{10}{subsection.3.15}
\contentsline {subsection}{\numberline {3.16}Capabilities}{10}{subsection.3.16}
\contentsline {subsection}{\numberline {3.17}The sysctl System Call and /proc/sys}{10}{subsection.3.17}
\contentsline {subsection}{\numberline {3.18}Subprofiles aka. Hats}{10}{subsection.3.18}
\contentsline {subsection}{\numberline {3.19}Association of Profiles with Processes}{11}{subsection.3.19}
\contentsline {subsection}{\numberline {3.20}Profile Loading, Replacement, and Removal}{11}{subsection.3.20}
\contentsline {section}{\numberline {4}AppArmor Walk-Through}{12}{section.4}
\contentsline {subsection}{\numberline {4.1}Kernel Patches and Configuration}{12}{subsection.4.1}
\contentsline {subsection}{\numberline {4.2}The securityfs file system}{13}{subsection.4.2}
\contentsline {subsection}{\numberline {4.3}Profile Loading}{13}{subsection.4.3}
\contentsline {subsection}{\numberline {4.4}Anatomy of a Profile}{13}{subsection.4.4}
\contentsline {subsection}{\numberline {4.5}Logging}{15}{subsection.4.5}
\contentsline {subsection}{\numberline {4.6}Generating Profiles By Hand}{15}{subsection.4.6}
