Under Construction

Anwenden eines Sicherheits-Levels

Bevor man einen der vordefinierten Sicherheits-Level auf ein System anwendet, sollte man diesen auf einem Test-System ausgiebig untersucht haben. Insbesondere bei höheren Sicherheits-Leveln ist es sonst schnell möglich den Zugriff auf das System unbeabsichtigt eingeschränkt zu haben, oder im schlimmsten Fall alle Zugriffsmöglichkeiten zu verlieren.

Auf der IBM Website AIX Security Expert – IBM Documentation sind alle Sicherheitseinstellungen für alle vordefinierten Sicherheitslevel dokumentiert. Diese sollte man unbedingt vorher angeschaut haben!

Um zu demonstrieren das bei Anwendung eines Sicherheits-Levels tatsächlich Sicherheitseinstellungen auf einem System geändert werden, lassen wir uns den Default-Wert des Benutzer-Attributs histsize anzeigen:

# lssec -f /etc/security/user -s default -a histsize
default histsize=1
#

Aktuell darf immer nur das zuletzt verwendete Passwort nicht erneut verwendet werden.

Bevor wir im folgenden den Sicherheits-Level low (LLS) anwenden, werfen wir noch schnell einen Blick auf einige Unterverzeichnisse von /etc/security/aixpert:

/etc/security/aixpert # find core log undo -type f -ls
1762  245 -r-x------  1 root      system      249969 Oct  6 10:32 core/aixpertall.xml
/etc/security/aixpert #

Ein vordefinierter Sicherheits-Level kann mit dem Kommando aixpert und der Option „-l“ (level) angewendet werden:

# aixpert -l low
do_action(): rule(lls_tcbupdate): warning.
do_action(): Warning: Prereq failed for prereqtcb
do_action(): rule(lls_loginherald): warning.
do_action(): Warning: Prereq failed for prereqlh
do_action(): rule(lls_ISSServerSensorFull): warning.
do_action(): Warning: Prereq failed for prereqRSSSFull
do_action(): rule(lls_ISSServerSensorLite): warning.
do_action(): Warning: Prereq failed for prereqRSSSLite
Processedrules=50       Passedrules=44  PrereqFailedrules=4     Failedrules=2   Level=LLS
        Input file=/etc/security/aixpert/core/aixpertall.xml
#

Für den angegebene Sicherheits-Level low (LLS) wurden 50 Regeln abgearbeitet, wovon 44 erfolgreich abgearbeitet werden konnten. Von den 6 fehlgeschlagenen Regeln waren 4 Regeln Prerequisite-Regeln.

Hinweis: Wir gehen an späterer Stelle auf die fehlgeschlagenen Regeln und Prereq-Regeln genauer ein.

Nachdem nun ein Sicherheits-Level angewendet wurde, überprüfen wir erneut den Wert des Attributes histsize:

# lssec -f /etc/security/user -s default -a histsize
default histsize=4
#

Der Wert wurde von 1 auf 4 abgeändert, gemäß der entsprechenden Regel (lls_histsize) des Sicherheits-Levels low.

Überprüfen wir die oben angegebenen Unterverzeichnisse von /etc/security/aixpert:

/etc/security/aixpert # find core log undo -type f -ls
1762  245 -r-x------  1 root      system      249969 Oct  6 10:32 core/aixpertall.xml
1761   34 -rw-------  1 root      system       34183 Dec 10 11:59 core/appliedaixpert.xml
4746   21 -rw-------  1 root      system       20541 Dec 10 11:59 core/undo.xml
4130    1 -rw-------  1 root      system         377 Dec 10 11:59 log/FAILEDRULES.log
4160    3 -rw-------  1 root      system        2097 Dec 10 11:59 log/PASSESRULES.log
4161  462 -rw-------  1 root      system      472373 Dec 10 11:59 log/aixpert.log
4555    2 -rwx--x---  1 root      system        1803 Dec 10 11:59 undo/Undolls_crontabperm
4663    1 -rwx--x---  1 root      system         286 Dec 10 11:59 undo/Undolls_filepermgr1670669942
4750    1 -rwx--x---  1 root      system         299 Dec 10 11:59 undo/Undolls_rmdotfrmpathroot1670669944
4670    1 -rwx--x---  1 root      system         220 Dec 10 11:59 undo/Undolls_rmetchostsequiv1670669942
4662    1 -rwx--x---  1 root      system         316 Dec 10 11:53 undo/Undolls_rmsuidfrmrcmds1670669581
4749    1 -rwx------  1 root      system         988 Dec 10 11:59 undo/data/rmdotfrmpathroot_.kshrc.1670669944
4667    1 -rwx------  1 root      system         907 Dec 10 11:59 undo/data/rmdotfrmpathroot_.profile.1670669944
4541    2 -rw-------  1 root      system        2048 Dec 10 11:59 undo/data/rmetchostsequiv_hosts.equiv.1670669942
/etc/security/aixpert#

Im Unterverzeichnis core wurden die beiden Dateien appliedaixpert.xml und undo.xml angelegt. Die Datei appliedaixpert.xml enthält alle Sicherheitseinstellungen (Regeln) aus aixpertall.xml, welche zum Sicherheits-Level low gehören. Die Datei gibt an welche Regeln auf das System angewendet wurden und dient später bei Überprüfungen als Referenz (Soll-Zustand).

Beim Anwenden von Regeln, wird, wann immer das möglich ist, der Ausgangszustand vor der Änderung der Sicherheitseinstellung festgehalten. Das ermöglicht es später, auf einfache Weise, geänderte Sicherheitseinstellungen bei Bedarf wieder auf den Ausgangszustand zu bringen. Hierzu werden entsprechende Regeln in die Datei undo.xml eingetragen. Um den Ausgangszustand wieder herzustellen dient „aixpert -u“ (undo).

Im Unterverzeichnis log werden Informationen zum Lauf von aixpert festgehalten. Regeln die bei der Anwendung zu einem Fehler geführt haben, werden in log/FAILEDRULES.log mitprotokolliert:

/etc/security/aixpert # cat log/FAILEDRULES.log
do_action(): rule(prereqtcb) :Warning: Prereq failed for prereqtcb.
do_action(): rule(lls_binaudit) : failed.
do_action(): rule(lls_crontabperm) : failed.
do_action(): rule(prereqlh) :Warning: Prereq failed for prereqlh.
do_action(): rule(prereqRSSSFull) :Warning: Prereq failed for prereqRSSSFull.
do_action(): rule(prereqRSSSLite) :Warning: Prereq failed for prereqRSSSLite.
/etc/security/aixpert #

Die Regel prereqtcb beispielsweise ist fehlgeschlagen, da TCB auf dem System nicht konfiguriert ist.

Regeln die erfolgreich ausgeführt werden konnten, werden in log/PASSESRULES.log festgehalten:

/etc/security/aixpert # cat log/PASSESRULES.log
process_entry():: rule(lls_maxage):PASSED.
process_entry():: rule(lls_maxexpired):PASSED.
process_entry():: rule(lls_minlen):PASSED.
process_entry():: rule(lls_minalpha):PASSED.

/etc/security/aixpert #

Der Log log/aixpert.log enthält einen Mitschnitt der von den Regeln ausgeführten Skripte (Debug-Ausgabe der Skripte):

/etc/security/aixpert # cat log/aixpert.log
+ date
Sat Dec 10 11:52:50 CET 2022
+ echo /etc/security/aixpert/bin/chusrattr maxage=13 ALL lls_maxage AIXPERT_CHECK_REPORT= BASE_REPT= DETAILED_REPT=
/etc/security/aixpert/bin/chusrattr maxage=13 ALL lls_maxage AIXPERT_CHECK_REPORT= BASE_REPT= DETAILED_REPT=
+ [ 3 -lt 2 ]
+ [ 3 -gt 3 ]
+ [ ALL != ALL ]
+ undo=0
+ retc=0
+ + echo
report=
+ + echo
BrType=
+ + echo
DrType=
+ + echo maxage=13
+ awk -F = {print $1; if(NF != 2) exit 1}
usrattr=maxage
+ [ 0 -ne 0 ]
+ [ maxage =  ]
+ + echo maxage=13
+ awk -F = {print $2}
value=13
+ [ 3 -eq 3 ]
+ cat /etc/passwd
+ grep -v ^\+
+ awk -F : { print $1 }
+ read username
+ /bin/lslpp -h ios.cli.rte
+ 2> /dev/null + [ 1 -eq 0 ]

/etc/security/aixpert #

Dies dürfte in der Regel aber nur bei der Fehlersuche interessant sein.

Im Unterverzeichnis undo werden automatisch generierte Skripte und Daten abgelegt, die für die Wiederherstellung des Ausgangszustands benötigt werden. Diese werden über entsprechende Einträge in der XML-Datei core/undo.xml aufgerufen.