
Ein Beispiel für eine Erkennungs- und Behebungsrichtlinie.
#+Title: CVE-2016-2118 Inventarisierung und Behebung #+SETUPFILE: ~/src/org-html-themes/setup/theme-readtheorg.setup
[[file:./media/badlock.png]]
Diese Richtlinie erkennt Hosts, die anfällig für [[https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2118][CVE-2016-2118]] (allgemein bekannt als [[http://badlock.org][Badlock]]) sind, indem sie prüft, ob eine bekannte anfällige Paketversion derzeit installiert ist. Die Behebungsrichtlinie hält =samba= auf der =neuesten= verfügbaren Version.
Hinweis: Diese Richtlinie deckt derzeit CentOS 5 und 6 ab. Bitte erwägen Sie, Unterstützung für weitere Plattformen beizutragen.
Diese Richtlinie wird mithilfe eines traditionell (aber schrecklich geschriebenen) [[file:Makefile][Makefile]] installiert. Zum Installieren einfach dieses Repository klonen und dann make install MASTERFILES=</path/to/policy_root> ausführen.
Zum Beispiel: #+BEGIN_SRC sh :results raw :wrap EXAMPLE make install MASTERFILES=/tmp/example-a10042 #+END_SRC
#+RESULTS: #+BEGIN_EXAMPLE mkdir -p /tmp/example-a10042/services/cfengine-CVE-2016-2118/cfengine-CVE-2016-2118 rsync -avz --exclude /home/nickanderson/vagrant/tmp/eia/CVE/masterfiles/services/cfengine-CVE-2016-2118/* /tmp/example-a10042/services/cfengine-CVE-2016-2118/ sending incremental file list Makefile README.org main.cf data/ data/centos_5.json data/centos_6.json media/ media/badlock.png
sent 19,776 bytes received 165 bytes 39,882.00 bytes/sec total size is 29,079 speedup is 1.46 find /tmp/example-a10042/services/cfengine-CVE-2016-2118/ -type f | xargs chmod 600 find /tmp/example-a10042/services/cfengine-CVE-2016-2118/ -type d | xargs chmod 700 #+END_EXAMPLE
Nach der Installation der Richtlinie in Ihren Richtliniensatz müssen Sie sie zu den inputs hinzufügen, damit sie analysiert wird.
Wenn Sie CFEngine =3.7.3=, =3.8.1= oder neuer ausführen, können Sie die [[https://docs.cfengine.com/docs/master/reference-language-concepts-augments.html][Augments-Datei]] verwenden, um sie zu den inputs hinzuzufügen.
Zum Beispiel: #+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ] } #+END_SRC
** =inventory_CVE_2016_2118=
Dieses Bundle prüft, ob die installierte Version von Samba mit einer bekannten anfälligen Version übereinstimmt, wie sie in =data/$(sys.flavor).json= definiert ist, zum Beispiel: =data/centos_6.json=. Es gibt natürlich auch andere Methoden, etwa einen Paketmanager selbst, um nach anfälligen Versionen zu suchen.
Dies ist ein Autorun-Bundle. Wenn Sie also das [[https://github.com/cfengine/masterfiles/][Masterfiles Policy Framework]] verwenden (die Standardrichtlinie, die CFEngine mitliefert), können Sie einfach die Klasse =services_autorun= definieren.
#+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ], "classes": { "services_autorun": [ "any" ] } } #+END_SRC
Hinweis: Wenn die Richtlinie ausgeführt wird und einen anfälligen Host erkennt, gibt sie einen Bericht aus und definiert die Klasse =CVE_2016_2118=.
Zum Beispiel:
#+BEGIN_EXAMPLE R: Detected Vulnerability: CVE-2016-2118 #+END_EXAMPLE
CFEngine-Enterprise-Benutzer sehen die Inventarberichts-Schnittstelle im Mission Portal, erweitert um ein neues Attribut =Vulnerable CVE(s)=.
Zum Beispiel:
[[file:./media/vulnerable_cves_inventory_attribute.png]]
[[file:./media/inventory_report_vulnerable_cves.png]]
[[file:./media/inventory_report_vulnerable_cves_chart.png]]
[[file:./media/define_alert.png]]
[[file:./media/alert_status_vulnerable_hosts.png]]
** =remediate_CVE_2016_2118=
=remediate_CVE_2016_2118= ist ebenfalls ein Autorun-Bundle, aber nur, wenn die Klasse =remediate_CVE_2016_2118= definiert ist.
Es gibt zahlreiche Möglichkeiten, flexibel festzulegen, welche Hosts und in welchen Zeiträumen eine automatische Behebung erlaubt ist.
Wenn Sie =3.7.3=, =3.8.1= oder neuer ausführen, können Sie es für Ihre gesamte Infrastruktur aktivieren, indem Sie es zur [[https://docs.cfengine.com/docs/master/reference-language-concepts-augments.html][Augments-Datei]] hinzufügen.
#+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ], "classes": { "services_autorun": [ "any" ], "remediate_CVE_2016_2118": [ "any" ] } } #+END_SRC
Die Richtlinie sucht in einer JSON-Datendatei, die nach dem System-Flavor benannt ist, wie er durch =$(sys.flavor)= identifiziert wird, nach der Liste der Pakete, die bekanntermaßen anfällig sind, zum Beispiel [[file:data/centos_6.json][=centos_6=]].