Under Construction

XML-Dateien mit Sicherheitsrichtlinien

Die Sicherheitsrichtlinien werden beim AIX Security Expert über XML-Dateien definiert. Die von AIX Security Expert standardmäßig unterstützten Sicherheitsstufen low, medium, high, usw., sind über die im Fileset bos.aixpert.cmds enthaltene Datei /etc/security/aixpert/core/aixpertall.xml definiert. Es können beliebige weitere Sicherheitsrichtlinien vom Administrator definiert werden. Die zugehörigen XML Dateien müssen dabei der DTD (Dokumenttypdefinition) von IBM für den AIX Security Expert genügen. Die DTD kann mit dem Kommando aixpert und der Option „-d“ angezeigt werden:

# aixpert -d
<?xml version='1.0'?>

<!ELEMENT AIXPertSecurityHardening (AIXPertEntry+)>

<!ELEMENT AIXPertEntry (AIXPertRuleType,
    AIXPertDescription, AIXPertPrereqList, AIXPertCommand,
    AIXPertArgs,AIXPertGroup)


<!ATTLIST AIXPertEntry
   name ID #REQUIRED
   function CDATA ""


<!ELEMENT AIXPertRuleType EMPTY>
<!ATTLIST AIXPertRuleType
type  CDATA #REQUIRED

<!ELEMENT AIXPertDescription (#PCDATA)>
<!ATTLIST AIXPertDescription
   catalog CDATA ""
   setNum CDATA ""
   msgNum CDATA ""

<!ELEMENT AIXPertPrereqList (#PCDATA)>
<!ELEMENT AIXPertCommand (#PCDATA)>
<!ELEMENT AIXPertArgs (#PCDATA)*>
<!ELEMENT AIXPertGroup (#PCDATA)*>

#

Eine Sicherheitsrichtlinien XML Datei besteht danach aus dem Element AIXPertSecurityHardening, welches beliebig viele Elemente vom Typ AIXPertEntry enthalten kann. Ein AIXPertEntry besteht dabei aus den Elementen AIXPertRuleType, AIXPertDescription, AIXPertPrereqList, AIXPertCommand, AIXPertArgs und AIXPertGroup. Nachfolgend ist ein solcher Eintrag aus der aixpertall.xml Datei gezeigt:

<AIXPertEntry name="hls_minage" function="minage">
   <AIXPertRuleType type="HLS"/>
   <AIXPertDescription catalog="aixpert.cat" setNum="101" msgNum="15">
      Minimum age for password: Specifies the minimum number of weeks to 1 week, before a password can be changed.
   </AIXPertDescription>
   <AIXPertPrereqList>
      bos.rte.date,bos.rte.commands,bos.rte.security,bos.rte.shell,bos.rte.ILS
   </AIXPertPrereqList>
   <AIXPertCommand>
      /etc/security/aixpert/bin/chusrattr
   </AIXPertCommand>
   <AIXPertArgs>
      minage=1 ALL hls_minage
   </AIXPertArgs>
   <AIXPertGroup>
      Password policy rules
   </AIXPertGroup>
</AIXPertEntry>

Hinweis: Bei der Ausgabe oben wurde die Formattierung für bessere Lesbarkeit leicht geändert, was aber nichts am Inhalt ändert.

Jeder Eintrag/Regel (AIXPertEntry) hat einen eindeutigen Namen, hier hls_minage, und eine Funktionsbezeichnung, hier minage. Als erstes wird der Typ (AIXPertRuleType) der Regel angegeben. Von IBM vordefiniert sind die Werte DLS (default level security), HLS (high level security), LLS (low level security), MLS (medium level security), SCBPS (SOX-COBIT) und Prereq (für Voraussetzungen). Der Typ einer Regel gibt an zu welcher Sicherheitsstufe die Regel gehört. In eigenen Definitionen kann eine eigene Bezeichnung für den Typ verwendet werden. Als nächstes folgt eine Beschreibung der Regel. Die Attribute catalog, setNum und msgNum werden verwendet um Beschreibungen in verschiedenen Sprachen zu unterstützen. Es wird eine Default Beschreibung in englischer Sprache angegeben. Diese beschreibt welchen Zweck die Regel hat.

Eine Regel kann Abhängigkeiten besitzen. Z.B. zu anderen Regeln oder zu installierten Filesets. Diese Abhängigkeiten können über das Element AIXPertPrereqList angegeben werden. Hier können mehrere Abhängigkeiten, durch Komma getrennt, angegeben werden.

Die Umsetzung der Regel erfolgt letztlich über ein Kommando (in den meisten Fällen ein Shell-Skript). Über das Element AIXPertCommand wird das Kommando für die Umsetzung der Regel mit absolutem Pfad angegeben. Die von IBM mitgelieferten Kommandos/Skripte sind unter /etc/security/aixpert/bin zu finden. In vielen Fällen erfordert der Kommando-Aufruf die Angabe von Argumenten, wie z.B. im obigen Fall. Falls Argumente notwendig sind, dann werden diese über das Element AIXPertArgs angegeben. Sind keine Argumente notwendig, dann bleibt das Element einfach leer („<AIXPertArgs/>“).

Als letztes können die Regeln in verschiedene Gruppen aufgeteilt werden. In einer Gruppe werden typischerweise Regeln zusammengefasst, die sich auf den gleichen Bereich beziehen. Im obigen Beispiel ist dies die Gruppe „Password policy rules“, zu der eine Reihe von weiteren Regeln gehören, wie z.B. hls_maxage, hls_maxexpired, hls_minlen und weitere.

Um eigene Sicherheitsregeln in einer eigenen XML-Datei zu definieren, empfiehlt es sich entweder einen XML-Editor zu verwenden, oder in einem Text-Editor bestehende Regeln zu kopieren und dann entsprechend abzuändern.