Bedrohungen durch Cyberkriminalität können in Unternehmen großen Schaden anrichten. In der Praxis steigt die Anzahl der Schadensereignisse seit vielen Jahren signifikant an. Laut BSI spitzt sich die Sicherheitslage immer weiter zu. Cyberkriminelle nutzen dabei permanent neue Sicherheitslücken in Systemen aus, um beispielsweise Daten auszuspähen, Gelder zu erpressen oder Systeme zu blockieren. Um für ständig wachsende Bedrohungen gerüstet zu sein, setzen wir bei cloudopserve im Rahmen unserer Leistung OS-Management von IT-Systemen eine Reihe von Maßnahmen um.
Eine dieser Maßnahmen ist beispielsweise die automatisierte Härtung von IT-Systemen gegen Angriffe. Mit den Härtungsmaßnahmen werden Angriffsvektoren deutlich reduziert.
Dabei richten wir unser Härtungskonzept u.a. nach dem CIS (Center for Internet Security) Standard aus. Die CIS-Benchmarks sind Konfigurationsempfehlungen für eine Vielzahl an Produktfamilien von Anbietern. Sie repräsentieren die konsensbasierten Bemühungen von Cybersicherheitsexperten weltweit, Systeme zuverlässiger vor Bedrohungen zu schützen.
Konfigurationsmanagement mit Puppet
Um diese Empfehlungen automatisiert und auditfähig umzusetzen, setzen wir Puppet ein. Puppet ist ein Administrationsprogramm, welches sich gut eignet, um automatisiert Konfigurationen bei einer Vielzahl von IT-Systemen gleichzeitig auszurollen.
Beispiel: In einer Umgebung, in der verschiedene Betriebssysteme eingesetzt werden und verschiedene Derivate, müsste man für die Automatisierung von Konfigurationen verschiedene Scripte bereitstellen, die für die verschiedenen Systeme optimiert sind. Da der Puppet-Code unabhängig von Betriebssystem o.ä. ist, besitzt dieser die Flexibilität auf den verschiedenen Systemen ausgeführt zu werden, um denselben Zielzustand zu konfigurieren.
Wie funktioniert Puppet?
Jedes System, das konfiguriert werden soll, wird mit einem Puppet Agenten bestückt. Diese Agenten holen sich in regelmäßigen Abständen vom Puppet Master ihren Katalog, der die Konfigurationen beinhaltet und führt diese auf dem System aus.
Puppet arbeitet dabei idempotent, das heißt, dass der Code kontinuierlich auf den Systemen anwendet wird, um den gewünschten Zustand des Systemen sicherzustellen (desired state configuration). Ist dieser Zustand bereits erreicht, wird Puppet keine Änderung vornehmen. Wird in der Zwischenzeit z.B. der Inhalt einer Datei verändert, die von Puppet verwaltet wird, wird Puppet im nächsten Agenten-Lauf wieder den gewünschten Zustand herstellen und die Datei überschreiben.
In Teil 2 des Beitrags gehen wir näher auf die Funktionsweise und technische Details ein.