AWS re:Invent 2021: Amazon CodeGuru erhält KI-Spürhund für Hartkodiertes

AWS hat Karpenter vorgestellt, einen Kubernetes-Cluster-Autoscaler, und CodeGuru kann hartkodierte Secrets erkennen. Neues gibt es auch beim Quantencomputing.

In Pocket speichern vorlesen Druckansicht 7 Kommentare lesen
Foto von der AWS re:Invent 2021

(Bild: AWS re:Invent 2021)

Lesezeit: 8 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Während der aktuell in Las Vegas und hybrid laufenden Entwicklerkonferenz AWS re:Invent präsentiert Amazon Web Services (AWS) 2021 wieder ein Kaleidoskop an Neuem. Für Entwicklerinnen und Entwickler dürften drei Ankündigungen aus den Bereichen Machine Learning, Containertechnologie und Quantentechnik besonders relevant sein:

Die Review-Software CodeGuru kann ab sofort hartkodierte Secrets identifizieren sowie mit dem AWS Secrets Manager absichern, und für Kubernetes gibt es mit Karpenter einen neuen quelloffenen, hochleistungsfähigen Cluster-Autoscaler. Zudem hat AWS Amazon Braket Hybrid Jobs vorgestellt, ein Werkzeug zum Aufsetzen, Überwachen und Betreiben hybrider Workloads im Quantencomputing.

Das automatisierte Tool namens Secrets Detector ist Teil der Software-Suite Amazon CodeGuru und ermöglicht es Entwicklerinnen und Entwicklern, im Quellcode und in Konfigurationsdateien Secrets wie Passwörter, API-Schlüssel, SSH-Keys sowie Zugangs-Token ausfindig zu machen. Die Reviewing-Software scannt Java- und Python-Applikationen und ist darauf ausgelegt, potenzielle Fehler im eigenen Code zu entdecken. Entwicklungsteams können damit unter anderem Schwachstellen suchen, Leaks eingrenzen, Probleme bei der Nebenläufigkeit (Concurrency) erkennen, das fehlerhafte Validieren von Eingaben sowie Abweichungen von den Best Practices feststellen.

Das direkte Einbetten (Hartkodieren) von beispielsweise Keys oder Passwörtern in Klartext statt deren Bezug aus externen Quellen oder das Generieren zur Laufzeit gilt nicht unbedingt als Best Practice, findet aber beispielsweise aus Zeitgründen zur Abkürzung im Entwickleralltag real statt. Mitunter sind hartkodierte Werte bewusst gesetzt, um Software vor Manipulation zu schützen. Auch beim Testen der Software haben sie ihre Berechtigung, bleiben allerdings mitunter unbeabsichtigt im Quellcode stehen und sind nachträglich nicht leicht wiederzufinden. Der neue Detektor im CodeGuru ist laut AWS-Blogeintrag durch Machine Learning (ML) geschult, um bei der Code-Review hartkodierte Secrets zu erkennen und zur Überprüfung anzubieten. Somit sollen die Anwenderinnen und Anwender vor dem Mergen und Deployen neuer Codepartien sicherstellen können, dass sich keine Anwendungsdaten mehr ungewollt im Quellcode befinden.

CodeGuru findet mit dem Secrets Detector neuerdings hartkodierte Passwörter und Zugangsdaten im Quellcode – Entwickler können den Kontext prüfen und bei Handlungsbedarf eingreifen.

(Bild: AWS)

Wird der Spürhund fündig, schlägt er Abhilfe wie das Sichern der Fundstücke im AWS Secrets Manager vor, einem verwalteten Dienst zum automatisierten Speichern, Rotieren, Verwalten und Wiederfinden von Zugangsdaten und API-Keys. Der Secrets Detector unterstützt demzufolge zahlreiche häufig verwendete API-Anbieter wie Atlassian, Datadog, Databricks, GitHub, Slack und Tableau von Haus aus. Das neue Feature ist bereits im CodeGuru Reviewer enthalten und sein Einsatz soll laut Blogeintrag keine zusätzlichen Kosten verursachen. Wer sich genauer dafür interessiert, findet Anwendungs- und Codebeispiele in der Blogankündigung zum Amazon CodeGuru Secrets Detector.

Im Rahmen der Hauskonferenz hat AWS auch ein neues Tool zum Autoskalieren von Kubernetes-Clustern vorgestellt: Karpenter ist Open Source unter der Apache-Lizenz 2.0 und soll dem Blogeintrag zufolge die Verfügbarkeit der Cluster erhöhen und den Ressourceneinsatz planbarer machen – durch das automatisierte Bereitstellen der benötigten Rechenkapazität für fallweise schwankende Workloads. Die Ressourcen soll Karpenter just in time bereitstellen und dabei den energetischen Fußabdruck sowie Kosten reduzieren helfen.

AWS geht nach eigener Auskunft mit dem Tool auf Kundenwünsche ein, da Kubernetes-Nutzer die bisherigen Möglichkeiten zum dynamischen Anpassen der Rechenkapazität für ihre Cluster als mühsam und zu restriktiv empfunden hätten. Sobald Karpenter im Cluster installiert ist, beobachtet es alle Ereignisse sowie den Ressourcenbedarf ungeplanter Pods und steuert das Hochfahren neuer Knoten sowie das Beenden von Pods. Dafür sendet das Tool Befehle an den Rechendienst des zugrundeliegenden Cloud-Anbieters, im Falle von AWS also an Amazon Elastic Compute Cloud (EC2). Grundsätzlich soll Karpenter laut Blogeintrag anbieterneutral sein und nicht nur mit Public-Cloud-Anbietern, sondern auch on Premises laufen. Wer zu dem Projekt etwas beisteuern möchte, kann sich auf GitHub an Karpenters Entwicklung beteiligen.

Karpenter ist ein quelloffenes, produktionsreifes Werkzeug zum automatisierten Skalieren der benötigten Rechenkapazität von Kubernetes-Clustern – nicht nur, aber auch bei Cloud-Anbietern wie AWS.

(Bild: AWS)

Bereits auf der re:Invent 2019 hatte AWS den verwalteten Quantencomputing-Dienst Braket vorgestellt, der das Erstellen, Testen und Ausführen von Quantenalgorithmen auf Simulatoren und Quantencomputern ermöglicht. Die neuen Algorithmen beruhen auf Quantenbits (Qubits), die das duale Konzept der Bits (mit dem Wert 0 oder 1) um eine Kombination aus zwei verschiedenen Quantenzuständen erweitern. Der Wert eines Qubits kann einer von zwei möglichen Zuständen sein, und Qubits lassen sich miteinander verbinden. Die Wahrscheinlichkeit eines Zustands hängt von der Kombination der Zustände aller verbundenen Qubits ab, und die Änderung eines Qubits (beispielsweise beim Ablesen seines Werts) ändert bereits die Zustände der anderen. Das Konzept ist aus der theoretischen Physik von der Quantenmechanik bekannt.

Die mit Qubits neu entwickelten Algorithmen haben das Potenzial, deutlich schneller zu sein als bei klassischen Computern. Quantenalgorithmen erfordern allerdings die Ausführung von Hunderttausenden bis Millionen von Quanten-Gates. Zurzeit unterliegt das Generieren von Quantum Processing Units (QPU) noch einem Rauschen, das Fehler verursacht, die den Betrieb auf einige hundert bis höchstens Tausende von Gates beschränken. Jenseits dieser Dimensionen gewinnen laut AWS-Blogeintrag die Fehler die Oberhand.

Hybride Algorithmen: klassische Rechenvorgänge mit GPU im Machine Learning und Quantencomputing mit QPU im Vergleich

(Bild: AWS)

Ein Lösungsansatz liegt im Machine Learning: Statt fester Quantenkreise, die sich an der Logik des Algorithmus orientieren, lässt sich ein Algorithmus durch das Anpassen der Parameter auch als "lernfähig" konzipieren. Wenn Entwicklerinnen und Entwickler es dem Algorithmus erlauben, die Schaltung für bestimmte Probleme selbst zu optimieren, lässt sich das Rauschen je nach Gerät anpassen (selbstlernende Quantenalgorithmen). Ähnlich wie beim Training von Modellen für Computervision "lernen" ML-Algorithmen dabei die richtigen Merkmale, indem sie die Parameter ihres neuronalen Netzes iterativ nachjustieren.

Hybride Algorithmen verwenden QPUs (die von den Quantencomputern eingesetzten Prozessoren) auf ähnliche Weise wie Machine Learning mit GPU funktioniert. Sie beruhen auf schnellen, iterativen Berechnungen zwischen klassischen Computern und QPUs, was technisch nicht ganz einfach zu bewerkstelligen ist. QPUs sind gemeinsam genutzte, unelastische Ressourcen, die miteinander um Zugang konkurrieren. Die Qualität der Ergebnisse und die Kosten können offenbar teils unvorhersehbar schwanken, wenn große Workloads anderer Kunden den Algorithmus ausbremsen und die Gesamtlaufzeit verlängern, mitunter auch abbrechen.

Hier setzen die auf der re:Invent 2021 vorgestellten Hybrid Jobs an, die als neues Feature bei Amazon Braket das Einrichten, Überwachen und Ausführen hybrider Algorithmen (in der Kombination aus Quanten- und klassischer Technik) übernehmen. Laut Blogpost lassen sich Aufträge vollständig verwalten, der Zugriff auf QPUs soll priorisiert und nach Bedarf erfolgen. Beim Erstellen eines Jobs kümmert sich Braket um die Auftragsinstanz und stellt eine CPU-Umgebung basierend auf Amazon EC2 bereit, führt den Algorithmus mit Quantenhardware oder Simulatoren aus und gibt nach Abschluss des Jobs die Ressourcen wieder frei, sodass die Kosten sich an der tatsächlichen Nutzung orientieren.

Schematischer Ablauf hybrider Jobs bei Amazon Braket mit der dazugehörigen Schnittstelle

(Bild: AWS)

Es soll auch möglich sein, benutzerdefinierte Metriken für die Algorithmen festzulegen, die Amazon CloudWatch protokolliert und mit angeblich geringer Latenz in der Konsole während der Ausführung anzeigt. Das Definieren von Algorithmen lässt sich nicht nur mit dem Braket SDK, sondern auch mit einer Open-Source-Bibliothek für hybrides Quantencomputing wie Penny Lane durchführen. Wer tiefer in die Materie eintauchen will, kann sich die Praxisbeispiele im Blogeintrag zu Gemüte führen.

Die diesjährige zehnte Ausgabe der Entwicklerkonferenz AWS re:Invent läuft seit dem 29. November und noch bis zum 3. Dezember 2021. Wer sich zu den wichtigsten Ankündigungen auf dem Laufenden halten mag, findet einen Sammelblogeintrag der Veranstalter zu den (aus ihrer Sicht) Highlights der Konferenz. Von dem Verteilerbeitrag aus lassen sich einzelne oder auch alle Tech-News aufrufen, und es gibt einen flankierenden Podcast, der die Keynotes der re:Invent aufgreift.

(sih)