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
16605  245 -r-x------  1 root      system      249969 Nov 19 10:28 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_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=45  PrereqFailedrules=3     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 45 erfolgreich abgearbeitet werden konnten. Von den 5 fehlgeschlagenen Regeln waren 3 Regeln Prerequisite-Regeln.

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
16605  245 -r-x------  1 root      system      249969 Nov 19 10:28 core/aixpertall.xml
16411   34 -rw-r--r--  1 root      system       34721 Nov 19 10:39 core/appliedaixpert.xml
4669   21 -rw-r--r--  1 root      system       20986 Nov 19 10:39 core/undo.xml
4451    1 -rw-r--r--  1 root      system         311 Nov 19 10:39 log/FAILEDRULES.log
4541    3 -rw-r--r--  1 root      system        2145 Nov 19 10:39 log/PASSESRULES.log
4656  430 -rw-r--r--  1 root      system      440066 Nov 19 10:39 log/aixpert.log
4658    2 -rwxr-xr--  1 root      system        1803 Nov 19 10:39 undo/Undolls_crontabperm
4662    1 -rwxr-xr--  1 root      system         286 Nov 19 10:39 undo/Undolls_filepermgr1668850753
4668    1 -rwxr-xr--  1 root      system         184 Nov 19 10:39 undo/Undolls_loginherald1668850756
4671    1 -rwxr-xr--  1 root      system         299 Nov 19 10:39 undo/Undolls_rmdotfrmpathroot1668850757
4666    1 -rwxr-xr--  1 root      system         220 Nov 19 10:39 undo/Undolls_rmetchostsequiv1668850753
4661    1 -rwxr-xr--  1 root      system         316 Nov 19 10:34 undo/Undolls_rmsuidfrmrcmds1668850445
4670    1 -rwxr--r--  1 root      system         988 Nov 19 10:39 undo/data/rmdotfrmpathroot_.kshrc.1668850757
4667    1 -rwxr-----  1 root      system         907 Nov 19 10:39 undo/data/rmdotfrmpathroot_.profile.1668850757
4657    2 -rw-r--r--  1 root      system        2048 Nov 19 10:39 undo/data/rmetchostsequiv_hosts.equiv.1668850753
/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(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 Nov 19 10:33:34 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.