Amazon Web Services

Verdächtige Aktivitäten im AWS Account aufspüren

Michael Wittig

© Shutterstock / bouybin

CloudTrail verfolgt alle Änderungen in Ihrem Amazon Webservice Account. Das funktioniert auch in Echtzeit und mit eigenen Regeln.

Durch die gemeinsame Nutzung von CloudTrail, S3, SNS und Lambda-Funktionen können Sie bei jeder Änderung an Ihrem AWS Account ein Programm ausführen, das die API-Aktivitäten prüft. CloudTrail stellt dazu ca. alle fünf Minuten einen Report zur Verfügung. Dieser Artikel liefert eine Lösung zum Überwachen der Tags Ihrer EC2-Instanzen, um auffällige Aktivitäten in Ihrem Account zu entdecken aus.

So werden AWS Services miteinander verwendet. © Michael Wittig

So werden AWS Services miteinander verwendet. © Michael Wittig

Schauen wir uns ein konkretes Beispiel an.

Was ist eine auffällige API-Aktivität?

CloudTrail zeichnet eine Menge API-Aktivitäten auf. Ihre Aufgabe ist es, die auffälligen Aktivitäten darin zu entdecken. Zum Beispiel:

  • Eine Security Group wurde geändert und erlaubt nun eingehenden Datenverkehr aus dem Internet (0.0.0.0/0)
  • Ein IAM User wurde außerhalb der üblichen Arbeitszeiten angelegt.
  • Eine EC2-Instanz wurde gestartet, die nicht mit den üblichen Tags versehen wurde (zum Beispiel Kostenstelle oder verantwortliches Team).

Das folgende Beispiel implementiert die Beobachtung von EC2-Instanz-Tags.

EC2 Instanz Tags beobachten

Immer wenn CloudTrail einen neuen Bericht in S3 abgespeichert hat, wird eine Lambda-Funktion ausgeführt. Die Lambda-Funktion muss dann:

  1. Die SNS Nachricht verstehen.
  2. Die komprimierten CloudTrail-Berichte von S3 herunterladen.
  3. Die Berichte auspacken.
  4. Über API-Aktivitäten iterieren und nach Events Ausschau halten, die EC2-Instanz-Tags betreffen, wie: RunInstances, CreateTags und DeleteTags.
  5. Eine Warnung senden, wenn die Tags nicht wie erwartet sind.

Glücklicherweise wurde die Lambda-Funktion schon geschrieben, sodass wir uns nicht mit Node.js Code herumschlagen müssen. Wir gehen dafür näher auf das Deplyoment der Lösung ein.

Die Lösung ausliefern

Eine Lambda-Funktion kann fast komplett mit CloudFormation ausgeliefert werden.  Nur wenige Schritte sind nötig, um alles vorzubereiten:

  1. Wählen Sie die AWS-Region,  in der Sie die API-Aktivitäten beobachten wollen (im Folgenden als $region bezeichnet).
  2. Erstellen Sie ein SNS Topic in $region und abonnieren Sie das Topic per E-Mail. Warnungen werden dann via E-Mail verschickt.
  3. Laden Sie den Code herunter, indem Sie wget https://github.com/widdix/aws-tag-watch/archive/master.zip in Ihrem Terminal ausführen.
  4. Entpacken Sie den Code mit unzip master.zip.
  5. Wechseln Sie in das entpackte Verzeichnis mit cd aws-tag-watch-master/.
  6. Führes Sie npm install in aus, um die Node.js-Abhängigkeiten zu installieren.
  7. Bearbeiten Sie die Datei config.json. Setzen Sie den Wert für region auf $region und alertTopicArn auf den ARN des SNS Topics aus Schritt 1.
  8. Führen Sie ./bundle.sh aus.
  9. Speichern Sie die Datei aws-tag-watch.zip in einem S3 Bucket. Das Bucket muss in der Region $region angelegt werden.
  10. Erzeugen Sie einen CloudFormation Stack basierend auf dem Template template.json.
  11. Leider ist die Lambda-Unterstützung in CloudFormation noch nicht perfekt. Sie müssen dem SNS Topic erst erlauben die Lambda-Funktion aufzurufen.
# --function-name Bitte auf den Output LambdaFunctionName des CloudFormation Stacks setzen
# --source-arn Bitte auf den Output TrailTopicArn des CloudFormation Stacks setzen
aws lambda add-permission --function-name "..." --statement-id "s1" --action "lambda:invokeFunction" --principal "sns.amazonaws.com" --source-arn "..."  

Ab sofort wird Ihr AWS Account in $region beobachtet. Wenn Sie eine EC2-Instanz starten oder die Tags einer existierenden Instanz ändern, prüft die Lambda-Funktion, ob der in config.json konfigurierte Tag existiert.

Raum für Verbesserungen

Eine Warnung via E-Mail zu verschicken ist nicht sehr hilfreich, wenn Sie in einem Team arbeiten. In diesem Fall ist OpsGenie eine bessere Lösung, da das Tool sehr gut mit SNS zusammenarbeitet.

wittig-meapWollen Sie mehr über Amazon Web Services erfahren? Andreas und Michael Wittig schreiben ein Buch mit dem Titel Amazon Web Services in Action. Das Buch erscheint in englischer Sprache und wurde für Entwickler und Administratoren mit Interesse an der DevOps-Bewegung geschrieben. Ohne Vorkenntnisse vorauszusetzen wird gezeigt, wie verteilte Anwendungen auf der AWS-Plattform betrieben werden.

Aufmacherbild: High angle view of storm von Shutterstock / Urheberrecht: bouybin

Verwandte Themen:

Geschrieben von
Michael Wittig
Michael Wittig
Michael Wittig migrierte in einem kleinen Team die IT der ersten Bank in Deutschland komplett in die AWS-Cloud. Er hat einen starken Hintergrund im algorithmischen Handel, wo er tausende Gigabytes an Finanzmarkt­zeitreihen analysierte. Er benutzt die AWS-Cloud für die historische und Echtzeitanalyse von Finanzmarktdaten mit einer Vielzahl an Technologien und Programmiersprachen. Heute berät er zusammen mit seinem Bruder andere Unternehmen, wie sie die AWS-Cloud nutzen können, um ihren Datenschatz zu bergen, und er ist Entwickler der SaaS-Zeitreihen­datenbank „TimeSeries.Guru“.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: