Um ein AppArmor-Profil zu erzeugen, müssen Sie zunächst Snort installieren. Hier können Sie auf die Distributionspakete zurückgreifen. Sie sollten aber immer bedenken, dass neue Versionen von Snort häufig auch neue Angriffe erkennen können. Ein reines Update der Regeln genügt in vielen Fällen nicht, da ein großer Teil der Intelligenz in den Präprozessoren verborgen ist.
Nach der Installation können Sie zunächst den Befehl genprof aurufen:
# genprof /usr/bin/snort Setting /usr/bin/snort to complain mode. Please start the application to be profiled in another window and exercise its functionality now. Once completed, select the "Scan" button below in order to scan the system logs for AppArmor events. For each AppArmor event, you will be given the opportunity to choose whether the access should be allowed or denied. Profiling: /usr/bin/snort [(S)can system log for SubDomain events] / (F)inishNun starten Sie nach Anpassung der Konfiguration den Snort-Dienst über das Startskript:
# /etc/init.d/snort startAnschließend können Sie direkt durch Auswahl von Scan bei Genprof das Profil erzeugen. Ein typisches Snort-Profil ist im folgenden angegeben:
# vim:syntax=apparmor
# Last Modified: Tue Aug 8 17:00:49 2006
#include <tunables/global>
/usr/bin/snort {
#include <abstractions/base>
#include <abstractions/nameservice>
capability dac_override,
capability net_raw,
capability setgid,
capability setuid,
/etc/snort/*.conf r,
/etc/snort/*.config r,
/etc/snort/rules/*.rules r,
/etc/snort/unicode.map r,
/usr/bin/snort r,
/var/log/snort/* w,
/var/run/snort_*.pid w,
}
Dieses Profil sollte für die meisten Einsatzzwecke mit Snort
ausreichen. Unangenehm ist jedoch die Tatsache dass der Snort-Prozess Zugriff
auf die Capability CAP_DAC_OVERRIDE benötigt. Eine Analyse der
Fehlermeldungen bei deaktivierter Capability durch AppArmor zeigt, dass diese
Capability benötigt wird, damit der Benutzer root Zugriff auf das Verzeichnis
/var/log/snort erhält. Dieses Verzeichnis ist bei SUSE nur mit Rechten
für den Benutzer snort versehen. Dies kann bei dem Start von Snort aus
folgender Protokollmeldung abgelesen werden:
Aug 8 17:15:14 samson snort: FATAL ERROR: log directory '/var/log/snort' does not existFolgender Trick löst das Problem:
# chown root.snort -R /var/log/snort/ # chmod 770 -R /var/log/snort/So erhalten sowohl der Benutzer root, als auch die Gruppe snort, zu der auch der Benutzer snort gehört, Schreibzugriff auf das Verzeichnis /var/log/snort. Dann kann in dem Profil auf die Capability CAP_DAC_OVERRIDE verzichtet werden.
Ralf Spenneberg 2007-11-13