Wie sollten wir die unveränderliche Infrastruktur automatisch wiederherstellen, wenn neue Pakete verfügbar sind?

7

Wir werden Terraform verwenden, um unsere Infrastrukturbereitstellung zu automatisieren, und Packer, um die von Terraform bereitgestellten Maschinenabbilder zu erstellen. Indem wir den Prinzipien des unveränderlichen Infrastrukturdesigns folgen, implementieren wir das Patchen, indem wir ein neues Image mit dem angewendeten Patch erstellen und dann unsere Infrastruktur erneut bereitstellen.

Gibt es bei diesem Setup zusätzliche Tools, mit denen wir automatisch erkennen können, wann ein Paket oder das Betriebssystem selbst in unserem Basisimage aktualisiert und die Build-Pipeline ausgelöst werden muss?

Chef Automate scheint dem nahe zu sein, wonach ich suche. Es scheint jedoch laufende Knoten auf Konformität zu scannen, anstatt das Bildmanifest selbst zu analysieren.

Vielen Dank!

Thuy Guevarra
quelle
machine images, By following immutable infrastructure design principles, Chef Automate seems close to what I'm looking for, base image. Bitte klären Sie.
030
Ja, scannen Sie einen Knoten mit dem Image. Wenn der Knoten ausfällt, ist das Image ebenfalls veraltet. Automatisieren bringt einen Workflow, der auch ausgelöst werden kann, um das Basis-Image neu zu
erstellen

Antworten:

6

Ein Teil der Übernahme des Musters der unveränderlichen Infrastruktur besteht darin, Ihr System in kleine verwaltbare Teile zu zerlegen, die sich sehr schnell durch die CI / CD-Pipeline bewegen können. Dies bedeutet, dass Betriebssystem-Patches schnell und kontrolliert durchgeführt werden können. Ich sehe oft Kunden, die in einem Zwischenhaus landen, in dem die Infrastruktur größtenteils unveränderlich ist.

Es gibt jedoch einige Ansätze, die ich bei umfangreichen Bereitstellungen von Cloud-Architekturen verwendet habe. In der Regel implementiere ich mehrere als Teil einer Strategie zur Tiefenverteidigung :

  • Sicherheitsinformations- und Ereignisverwaltung (SIEM) : Diese Produkte, z. B. LogRhythm Security Intelligence Platform und allgemeinere Produkte wie ElasticStack, beziehen Feeds vom Betriebssystem, einschließlich der Ausgabe einer häufigen Überprüfung auf Aktualisierungen. Der Trick dabei besteht darin, schnell und automatisch Informationen darüber zu erhalten, was gepatcht werden soll, um Entscheidungen darüber zu treffen, wann diese durch Ihre Pipeline gerollt werden sollen.

  • Vulnerability Management- Systeme sind insofern maßgeschneiderter als SIEM, als sie sich nur auf Schwachstellen im gesamten System konzentrieren, sodass Probleme mit Bibliotheken auftreten können, die als Teil der auf dem System bereitgestellten Software installiert, aber nicht vom Betriebssystem verwaltet werden. Dies könnte Schwachstellen hervorheben, für die es (noch ... hoffentlich) keinen Patch gibt.

  • Tools zur Abhängigkeitsprüfung sind Teil Ihrer Pipeline und können so konfiguriert werden, dass der Build fehlschlägt, wenn beim Einchecken Schwachstellen hinzugefügt werden. Dies funktioniert auch, wenn dem Tool seit dem letzten Einchecken eine neue Schwachstelle hinzugefügt wurde.

Richard Slater
quelle
1

Sie können mit AWS Inspector einen Schwachstellenscan durchführen und nach CVE-Schwachstellen suchen. Inspector verfügt über eine CloudWatch-Metrik, die eine Aktion auslöst, wenn Ergebnisse vorliegen. Es wäre schwierig festzustellen, welche Pakete aktualisiert werden müssen, aber Sie könnten einfach alles aktualisieren. Sie müssen Inspector nicht verwenden. Jedes Tool zum Scannen von Sicherheitslücken, an das Sie sich anschließen können, würde funktionieren. Das Scannen von Sicherheitslücken ist im Allgemeinen eine bewährte Methode.

Eine andere Idee wäre, einen Cron-Job einzurichten, der apt-get update && apt-get upgrade ausführt - trocken ausführen> Sachen, die aktualisiert werden sollten.txt und die Textdatei zu analysieren, um eine Liste der zu aktualisierenden Pakete zu erhalten Geben Sie dies in Ihren Erstellungsprozess zurück.

Myron-Semack
quelle
0

Dieser Ansatz versucht, Ihren Zweck mithilfe des Chef-Audits zu lösen, hat jedoch seine eigenen Probleme. https://joshuakugler.com/using-chef-zero-audit-mode-and-packer.html

Eine benutzerdefinierte Lösung - Wenn Sie eine Konformitätsrichtlinie (z. B. CIS, HIPPA) verwenden möchten, erstellen Sie einen Job, der den Audit-Parser beim Ausführen von Paketabbildern ausführt und eine Aktualisierungsaufgabe benachrichtigt, wenn kein Beschwerdezustand vorliegt. Für die oben genannten Richtlinien stehen OVAL-Parser und OVAL-Definition kostenlos zur Verfügung. Für benutzerdefinierte Aduit-Richtlinien können Sie Ihren eigenen Parser schreiben und das Image überwachen.

prashant tyagi
quelle
1
Der Audit-Modus in Chef wird zugunsten des Audit-Kochbuchs und der Verwendung von Inspec, für das mehrere CIS-Profile verfügbar sind, nicht mehr empfohlen.
Tensibai