Skip to main content

AWS-CloudFormation-Fehlkonfigurationen mit Snyk IaC scannen

Artikel von
Headshot of Ilianna Papastefanou

Ilianna Papastefanou

Infrastructure as Code security

17. Juni 2021

0 Min. Lesezeit

Wir freuen uns, die Unterstützung für AWS CloudFormation in Snyk Infrastructure as Code bekannt zu geben. In unserem aktuellen Bericht Infrastructure as Code Security Insights haben wir festgestellt, dass 36 % der Umfrageteilnehmenden AWS CloudFormation (CF) als primäres Infrastructure-as-Code-Tool verwendeten. Mit Snyk Infrastructure as Code können Sie Ihre CF-YAML- oder JSON-Vorlagen jetzt anhand unseres umfassenden Satzes an AWS-Sicherheitsregeln überprüfen.

Mit diesen neuen Funktionen können Sie Ihre CloudFormation-Dateien wie jeden anderen Code behandeln und die Sicherheit frühzeitig im Entwicklungsprozess berücksichtigen. So wird Sicherheit zu einem integralen Bestandteil Ihrer Infrastrukturentwicklungs- und Deployment-Pipelines.

Integrieren, wo es darauf ankommt

Die Funktion ist sowohl beim Importieren eines Repositorys als auch über unsere CLI verfügbar. So können Sie sie überall integrieren – von der lokalen Entwicklung bis hin zur Versionsverwaltung und Ihren CI/CD-Pipelines.

Mit diesem Beispiel-Repository, das unsichere CloudFormation-Vorlagendateien enthält, haben wir das Repository von GitHub in Snyk integriert und eine Reihe von Problemen in den CF-Dateien erkannt.

Snyk-Projekt-Dashboard mit snyk/snyk-iac-cloudformation, das Schweregrad-Zahlen und einen Link „Bericht anzeigen“ zeigt.

Sie können das Repository in Snyk aufklappen, um die Liste der gescannten Konfigurationsdateien anzuzeigen. Im folgenden Bildschirm haben wir die Datei db.yml ausgewählt. Hier sehen Sie die gefundenen Konfigurationsprobleme, die den entsprechenden Zeilen in der ursprünglichen CF-Vorlage zugeordnet sind:

AWS-CloudFormation-Vorlage mit einer RDS-Konfiguration und dem Hinweis, dass die RDS-IAM-Authentifizierung deaktiviert ist

Alternativ können Sie dasselbe Feedback über die Snyk CLI erhalten, die die Dateien lokal verarbeitet. Das bedeutet, dass keine Daten an Snyk gesendet werden.

$ snyk iac test db.yml

Testing db.yml...

Infrastructure as code issues:
  ✗ Non-encrypted RDS instance at rest [Medium Severity] [SNYK-CC-TF-201] in RDS
    introduced by Resources[Database] > Properties > StorageEncrypted

  ✗ RDS IAM authentication is disabled [Medium Severity] [SNYK-CC-AWS-414] in RDS
    introduced by Resources[Database] > Properties > EnableIAMDatabaseAuthentication

  ✗ Non-Encrypted SNS Topic [Medium Severity] [SNYK-CC-TF-55] in SNS
    introduced by Resources > DatabaseAlarmTopic > Properties > KmsMasterKeyId

  ✗ SNS topic is not encrypted with customer managed key [Low Severity] [SNYK-CC-AWS-422] in SNS
    introduced by Resources[DatabaseAlarmTopic] > Properties > KmsMasterKeyId

Organization:      mycompany.test
Type:              CloudFormation
Target file:       db.yml
Project name:      cloudformation-example
Open source:       no
Project path:      /Users/iliana/workspace/snyk-iac-cloudformation

Tested db.yml for known issues, found 4 issues

AWS Cloud Development Kit verwenden

Das AWS Cloud Development Kit (AWS CDK) ist ein Open-Source-Framework für die Softwareentwicklung, mit dem Sie die Ressourcen Ihrer Cloud-Anwendung in vertrauten Programmiersprachen definieren können. Mit dem AWS CDK können Sie Ihre Infrastruktur beispielsweise in TypeScript oder Python definieren, statt YAML zu schreiben. Dieser Ansatz bietet mehr Flexibilität und Zugänglichkeit: Entwicklerinnen und Entwickler können eine Sprache und IDE verwenden, mit denen sie bereits vertraut sind, und Programmierkonstrukte einsetzen, um auf Vorlagen für YAML-Dateien zu verzichten.

Sie können Ihre AWS-CDK-Dateien auch mit der Funktion iac test in der Snyk CLI scannen. Konvertieren Sie sie dazu zunächst mit dem integrierten Unterbefehl synth des AWS CDK in eine JSON-Datei.

Mit einem weiteren Beispiel, in dem TypeScript zur Definition einer Infrastruktur verwendet wird, können Sie die folgenden Befehle ausführen, um die Konfigurationen in Ihren Pipelines mit der Snyk CLI zu testen:

# install your dependencies
npm install
# convert your typescript to a CloudFormation json file
cdk synth

# scan the rendered json file using the Snyk IaC CLI
snyk iac test cdk.out/VpcStackWithIssues.template.json

Testing VpcStackWithIssues.template.json...

Infrastructure as code issues:
  ✗ Security Group allows open ingress [Medium Severity] [SNYK-CC-TF-1] in VPC
    introduced by Resources > SSHSG26D56496 > Properties > SecurityGroupIngress[0]

  ✗ AWS Security Group allows open egress [Low Severity] [SNYK-CC-TF-73] in VPC
    introduced by Resources[SSHSG26D56496] > Properties > SecurityGroupEgress[0] > CidrIp

  ✗ Rule allows open egress [Low Severity] [SNYK-CC-TF-72] in VPC
    introduced by Resources[SSHSG26D56496] > Properties > SecurityGroupEgress[0]

Organization:      mycompany.test
Type:              CloudFormation
Target file:       cdk.out/VpcStackWithIssues.template.json
Project name:      cdk.out
Open source:       no
Project path:      cdk.out/VpcStackWithIssues.template.json

Tested VpcStackWithIssues.template.json for known issues, found 3 issues

Dieser Workflow eignet sich hervorragend für eine Build-Pipeline, in der er bei jedem Pull Request vollständig automatisiert ausgeführt werden kann. Zum Zeitpunkt der Veröffentlichung lassen sich AWS-CDK-Dateien nur über einen CLI-gesteuerten Workflow scannen.

Umfassende Sicherheitsregeln für Konfigurationen

Umfassende Sicherheitsrückmeldungen setzen eine große Bandbreite und Tiefe an Sicherheitsregeln voraus. Snyk verfügt über ein eigenes Security-Engineering-Team, das neue Regeln recherchiert, validiert und kontinuierlich zum Produkt hinzufügt – für AWS gibt es bereits über 100, und es werden immer mehr.

Beim Hinzufügen von Regeln stellen wir eine angemessene Abdeckung sicher, indem wir bewährte Best Practices mit unserer eigenen Sicherheitsforschung kombinieren. Best Practices leiten sich sowohl aus den Standards der Cloud-Anbieter als auch aus Community-Standards ab – zum Beispiel aus CIS-Benchmarks sowie Kubernetes- und AWS-Best-Practices. Unsere eigene Sicherheitsforschung umfasst Methoden wie Threat-Modeling-Übungen zu wichtigen Nutzungsmustern. So untersuchen wir beispielsweise Einstellungen in verwalteten Kubernetes-Angeboten, um herauszufinden, wo sich Schwachstellen durch eine geeignete IaC-Härtung vermeiden lassen.

Sie können den Schweregrad der Snyk-IaC-Regeln anzeigen und ändern. Navigieren Sie dazu in Ihrer Snyk-Organisation zu Einstellungen und wählen Sie im linken Menü Infrastructure as Code aus. Wenn Sie die Ansicht auf AWS CloudFormation beschränken möchten, wählen Sie unter den Einstellungen für den Schweregrad den Tab AWS und dann CloudFormation (oder Terraform, falls Sie dies bevorzugen). Wir bemühen uns, formatunabhängige Regeln zu schreiben. Daher werden die meisten Regeln unabhängig davon angezeigt, welche Optionen Sie auswählen.

AWS-Schweregradeinstellungen mit CloudFormation-Prüfungen auf API-Gateway-Sicherheitsprobleme und den Schweregraden niedrig, mittel und hoch

Eine vollständige Liste unserer AWS-CloudFormation-Sicherheitsregeln finden Sie öffentlich im Bereich Security Rules auf unserer Website.

Snyk-Seite zu AWS CloudFormation mit API-Gateway-Sicherheitsregeln, darunter TLS-Richtlinie, anonymer Zugriff, X-Ray-Tracing sowie Prüfungen von Protokollierung und Verschlüsselung.

Kostenlos mit Snyk IaC loslegen

Diese neuen Funktionen können alle ausprobieren, auch Nutzerinnen und Nutzer eines kostenlosen Plans. So legen Sie ganz einfach los:

  • Wenn Sie noch kein Snyk-Konto haben, registrieren Sie sich kostenlos.

  • Installieren Sie die Snyk CLI. Wenn Sie die Snyk CLI bereits installiert haben, stellen Sie sicher, dass Sie Version 1.629.0 oder höher verwenden, um diese Funktionen nutzen zu können.

  • Scannen Sie Ihre CloudFormation-Dateien. Der Hauptbefehl zum Scannen von IaC mit den neuen Funktionen lautet: snyk iac test <path-to-file-or-folder>

Weitere Informationen zu den verschiedenen Scan-Optionen finden Sie in der Snyk-Dokumentation oder in der CLI-Dokumentation. Führen Sie dazu Folgendes aus: snyk iac --help

Wir freuen uns über Ihr Feedback! Wenn Sie bereits Snyk-Kunde sind, ist Ihr Customer-Success-Team eine gute Anlaufstelle für Produktfeedback. Kommentare von allen sind aber auch in unserem Snyk-Community-Forum willkommen.

Sichern Sie Ihre Infrastruktur an der Quelle

Snyk automatisiert die IaC-Sicherheit und Compliance in Workflows und erkennt abweichende sowie fehlende Ressourcen.

Gepostet in: