Linux: Das Setzen der richtigen Extended Attributes verbessert die Dateisicherheit
Die Extended Attributes verbessern die Sicherheit bei Dateien unter Linux. Das gilt aber nur, wenn das Dateisystem diese Funktionen auch unterstützen.
Die Extended Attributes in Linux schützen Dateien vor unbeabsichtigten oder auch schädlichen Änderungen. Die Sicherheits-Funktionen lassen sich mit ein paar einfachen Befehlen in Betrieb nehmen.
In den Anfängen von Unix wurde die Sicherheit durch drei Rechte gesetzt. Diese wurden auf Anwender, Gruppe und andere Einheiten angewendet. Linux ersetzte im Laufe der Zeit Unix weitgehend und Data-Security wurde immer wichtiger. Aus diesem Grund wurden die erweiterten Attribute oder auch Extended Attributes unter Linux erschaffen.
Der wichtigste Unterschied zwischen Rechten und Attributen ist, dass letztere nicht von einem Benutzerkonto abhängen. Aus diesem Grund gelten Änderungen an den Attributen für alle Anwender inklusive dem Superuser oder Systemverwalter root. Sie können die Attribute verwenden, um Dateien vor unbeabsichtigtem Löschen zu schützen. Das gilt natürlich auch für unerwünschte Änderungen.
Um die Extended Attributes verwenden zu können, muss das unter Linux verwendete Dateisystem diese auch unterstützen. Bei Dateisystemen der Typen ext3 und ext4 können Sie die Unterstützung mithilfe des Befehls tune2fs -l überprüfen. Verifizieren Sie die Mount-Optionen, die per Standard aktiv sind (Default mount options). Sollten Sie die erweiterten Attribute nicht finden können, aktivieren Sie diese mittels Befehl tune2fs -o user_xattr /dev/<Ihr Dateisystem>. Alternativ können Sie user_xattr als eine Mount-Option in der zuständigen Datei fstab verwenden.
Sobald die Extended Attributes auf dem Dateisystem aktiviert sind, können Sie diese mit chattr festlegen. Dafür brauchen Sie allerdings root-Rechte. Im Hinblick auf Linux-Sicherheit sind nachfolgende Attribute am interessantesten:
- Appen only (a): Damit können Sie einer Datei weitere Inhalte anfügen. Bereits bestehende Inhalte lassen sich nicht entfernen. Die Datei selbst kann nicht gelöscht werden.
- Immutable (i): Verhindert jegliche Modifizierung oder auch das Löschen der Datei.
- Secure deletion (s): Stellt sicher, dass die Datei unwiederbringlich gelöscht wird. Die Inhalte lassen sich nicht wieder herstellen.
- Undeletable (u): Der Inhalte der Datei lässt sich verändern. Ein Löschen der Datei ist allerdings nicht möglich.
Wollen Sie einer Datei zum Beispiel das Attribut Immutable anfügen, geschieht das mit nachfolgendem Befehl: chattr +i <Datei>.
Wollen Sie überprüfen, welche Attribute auf eine Datei bereits angewendet wurden, benutzen Sie hierfür lsattr (Listing 1). Mithilfe von lsattr können Sie auch verifizieren, wie die Attribute angewendet wurden. Ist das Attribut Immutable aus dem obigen Beispiel gesetzt, darf nicht einmal der Systemverwalter root die Datei löschen.
[root@iad data]# chattr +i <Datei>
[root@iad data]# lsattr <Datei>
----i--------e-- <Datei>
[root@iad data]# rm -f <Datei>
rm: das Entfernen von '<Datei>' ist nicht möglich: Die Operation ist nicht erlaubt
Listing 1: Überprüfen und Setzen der Rechte unter Linux mithilfe der Extended Attributes.
Die Linux Extended Attributes sind eine nützliche Erweiterung hinsichtlich Sicherheit. Sie erweitern oder wirken den Standard-Funktionalitäten des jeweils eingesetzten Dateisystems entgegen. Um das Beispiel von oben zu erweitern, können Sie das Extended Attribut "i" als eine zusätzliche Schutzschicht für Dateien verwenden. Benutzen Sie das Attribut auf einem Home-Ordner eines Anwenders, kann der entsprechende Benutzer keine Dateien in seinem Home-Verzeichnis löschen. Das gilt auch dann, wenn der Anwender per Standard eigentlich das Recht zum Löschen dieser Dateien hätte.
Weitere Extended Attributes
Bei einem Dateisystem des Typs ext4 ist bei allen Dateien das erweiterte Attribut (e - Extent) per Standard gesetzt. Der Grund ist, dass ext4 diese benutzt, um die Dateien zu speichern. Diese Extents haben eine Belegungs-Größe von zwei MByte. Bei einem traditionellen Dateisystem ist ein System-Block lediglich vier KByte groß. Diese erweiterte Dateisystem-Funktion wird über die Attribute implementiert.
Auf der Hauptseite des chattr-Befehls sind einige Attribute aufgelistet, die sich eigentlich gar nicht benutzen lassen. Jede Funktionalität dieser Attribute muss vom darunterliegenden Dateisystem unterstützt werden. Sollte das nicht der Fall sein und die jeweilige Funktion nicht unterstützt werden, können Sie das Attribut dennoch setzen. Allerdings hat das keine weiterführenden Auswirkungen.