\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{ven. juin 2 11:46:51 CEST 2017}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={audit.rules},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Jeu de règles chargés dans le système d'audit},
CreationDate={D:20170602114651},
ModDate={D:20170602114651},
Keywords={audit;Linux;security;auditd;logs}
}}
\begin{document}
 
\begin{center}
{\Huge audit.rules }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Jeu de règles chargés dans le système d'audit}
 
\vspace{10mm}
 
\hspace{1mm}  Le fichier audit.rules est un fichier contenant des règles d'audit chargés par auditd au démarrage. auditctl est utilisé pour cette opération. Les régles d'audit sont de 3 type: control, file, et syscall
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge contrôle }
 
\
 
\hspace{1mm}  Les commandes de contrôle configurent le système d'audit. Ces commande incluent typiquement la suppression de toutes les règles, définir la taille de file backlog, définir le mode d'erreur, etc.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Système de fichier }
 
\
 
\hspace{1mm}  Ces régles sont parfois appelées des watchs. Ces règles sont utilisée pour auditer les accès à des fichiers particuliers. La syntaxe suit généralement ce format: \textbf{-w path-to-file -p permissions -k keyname} où les permissions sont une des suivantes: r,w,x,a
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge appels système }
 
\
 
\hspace{1mm}  Ces règles sont chargées dans un moteur qui intercepte chaque syscall que tous les programmes font dans le système. Noter que cela impacte les performances.
\vspace{5mm} \\
\hspace{1mm}  Le kernel a 4 règles: task, exit, user et exclude.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} task]{Cette liste est vérifie seulement durantles syscall fork ou clone. Rarement utilisé en pratique.}
\item[\hspace{1mm} exit]{Est l'endroit où tous les syscall et requêtes d'audit système sont évalués}
\item[\hspace{1mm} user]{Utilisé pour filtrer (supprimer) certains évènements qui viennent du userspace.}
\item[\hspace{1mm} exclude]{Utilisé pour exclure certains évènements. Le champ msgtype est utilisé pour indiquer au kernel les types de message à ne pas enregistrer.}
\end{description}
 
\hspace{1mm}  Les règles syscall prenne la forme générale:\textbf{-a action,list -S syscall -F field=value -k keyname}
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} -a]{indique d'ajouter une règle à la fin de la liste.}
\item[\hspace{1mm} action et list]{sont séparés par une virgule. les listes valides sont task, exit, user et exclude, les actions valide sont always ou never (créer un évènement)}
\item[\hspace{1mm} ]{La suite de la règle est normalement -S, qui peut être soit un nom ou un numéro de syscall.}
\item[\hspace{1mm} ]{L'option -F affine le matche. Voir auditctl pour une liste complète de champ.}
\end{description}
 
\vspace{1cm}{\huge Notes }
 
\
 
\hspace{1mm} En faisant une investigation, on commence normalement avec aureport pour avoir une idée de ce qui se passe dans le système. Ce rapport indique principalement les évènements hardcodés par le système d'audits tels que les login/logout, authentifications, anomalies système, etc. \\
\hspace{1mm} \textbf{aureport --start this-week} \\
\hspace{1mm} Ensuit, pour obtenir une seconde vue des règles chargées: \\
\hspace{1mm} \textbf{aureport --start this-week --key --summary} \\
\hspace{1mm} Cela donne une liste ordonnée des clés associées avec les règles Si par exemple, une règle syscall sur un échec d'ouverture d'un fichier avec EPERM, avec une clé nommée access: \\
\hspace{1mm} \textbf{-a always,exit -F arch=b64 -S open -S openat -F exit=-EPERM -k access} \\
\hspace{1mm} On peut isoler ces erreurs avec auseurch et envoyer le résultat à aureport. \\
\hspace{1mm} \textbf{ausearch --start this-week -k access --raw | aureport --file --summary} \\
\hspace{1mm} Supposons que l'on souhaite voir quels utilisateurs se sont vu refuser l'accès: \\
\hspace{1mm} \textbf{ausearch --start this-week -k access --raw | aureport --user --summary} \\
\hspace{1mm} Pour afficher beaucoups d'accès échoués à un fichier particulier, on peut lancer un rapport pour voir qui le fait: \\
\hspace{1mm} \textbf{ausearch --start this-week -k access -f /path-to/file --raw | aureport --user -i} \\
\hspace{1mm} Ce rapport donne les tentatives d'accès par personne. Pour voir un évènement particulier, regarder la date et l'heure. Assumant que l'évènement est le 822 à 2:30 le 09/01*2009. \\
\hspace{1mm} \textbf{ausearch --start 09/01/2009 02:30 -a 822 -i --just-one} \\
\hspace{1mm} Sélectionne le premier évènement de ce jour. \\
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} La règle suivante montre comment auditer les erreurs d'accès aux fichiers à cause de problèmes de permission. Noter que ça demande 2 règles pour chaque architecture: \\
\hspace{1mm} \textbf{-a always,exit -F arch=b32 -S open -S openat -F exit=-EACCES -k access} \\
\hspace{1mm} \textbf{-a always,exit -F arch=b32 -S open -S openat -F exit=-EPERM -k access} \\
\hspace{1mm} \textbf{-a always,exit -F arch=b64 -S open -S openat -F exit=-EACCES -k access} \\
\hspace{1mm} \textbf{-a always,exit -F arch=b64 -S open -S openat -F exit=-EPERM -k access} \\
\end{flushleft}
\end{document}
