Shopware auf der Überholspur - Sicherer Betrieb durch Modsecurity mit Elastic und Kubernetes

Lernen Sie in diesem Artikel, wie Ihre Daten und die Ihrer Kunden sicher mit einer internen Web Application Firewall (WAF) geschützt werden können und warum dies sinnvoll ist. Wir zeigen Ihnen Codeauszüge innerhalb einer kurzen Anleitung mit Tipps und Tricks.

Setup

In unserem hier dargestellten Szenario haben wir folgende Komponenten im Einsatz:

  • Shopware
  • NGINX Webserver
  • ModSecurity v3
  • Managed Kubernetes (Openstack by OVHcloud)
  • ELK Stack

Die spezielle Herausforderung hierbei liegt bei der Trennung der Logs, da das Standardlogging rein über stdout funktioniert.

Warum eine Web Application Firewall sinnvoll ist und was sie genau macht

Das Open Web Application Security Project (OWASP) kategorisiert jährlich die größten Gefahren im Internet mit dem Ziel für mehr Sicherheit in Anwendungen und Diensten des World Wide Webs zu sorgen

Die aktuellen OWSAP TOP 10 besteht aus folgenden Gefahrenquellen:

  • Injektion
  • Defekte Authentifizierung
  • Offenlegung sensibler Daten
  • Externe XML Entitäten (XXE)
  • Defekte Zugriffskontrolle
  • Fehlkonfiguration
  • Cross-site-Scripting
  • Unsichere Deserialisierung
  • Verwendung von Komponenten mit bekannten Schwachstellen
  • Unzureichende Protokollierung und Überwachung

Eine Studie von Verizon verdeutlicht einen Anstieg von Angriffen auf Webanwendungen von 48 % auf 80 % innerhalb von 2020 auf 2021. Die Tendenz für 2022 ist steigend.

Aus diesem Grund ist eine Absicherung Ihrer E-Commerce-Plattform essenziell für die Datensicherheit. Folgende Abbildung veranschaulicht diese Absicherung mit einer zweistufigen WAF. Die Abbildung veranschaulicht exemplarisch den Datenverkehr von echten Usern und Angriffszenarien und den Schutz durch eine Web Application Firewall.

Ein echter User geht über ihre Domain zum Shopsystem. Ein Hackangriff kann wahlweise über die Domain URL oder der IP Range vom Hostingprovider stattfinden. Daher ist es ratsam ein zweistufiges WAF-Konzept zu betreiben. Eine externe (bspw. mit Cloudflare) und eine interne, innerhalb des LAN vor der Anwendung (mit modsecurity).  

Wir nutzen in diesem Fall ModSecurity als interne WAF. ModSecurity ist eine regelbasierte Engine, die Webanfragen mit ein Regelwerk filtert. Wenn die Prüfung erfolgreich ist, wird die HTTP-Anfrage an den Shop weitergeleitet. Wenn sie fehlschlägt, blockiert sie die Anfrage.

Über das Regelwerk lassen sich folgende Schwachstellen überwachen: 

  • SQL injection and Blind SQL injection.
  • Cross Site Scripting (XSS).
  • OS Command Injection and remote command access.
  • File name injection.
  • ColdFusion, PHP and ASP injection.
  • E-Mail Injection
  • HTTP Response Splitting.
  • Universal PDF XSS.
  • Trojans & Backdoors Detection

Die externe WAF, welche in der Regel von einem Anbieter gemanaged wird, würde zudem einen erweiterten Schutz bedeuten, mit dem auch beispielsweise Zero-Day Attacken frühzeitig geblockt werden können.

Doch was ist notwendig, um die interne Web Application Firewall aufzusetzen? Im Folgenden zeigen wir dir, wie du es umsetzen kannst!

Konfiguration Modsecurity

Für eine einfache Übermittlung wurde die ModSecurity so eingestellt, dass die Einträge im JSON Format gespeichert werden. Hierdurch wird im weiteren Verlauf die Transformation in die ELK Stack Objekte sehr vereinfacht.

Folgende Annotations müssen am Ingress hinzugefügt werden, damit Modsecurity aktiviert ist:

ModSecurity Config:

Weiterhin muss der Ingress Controller so angepasst werden, dass er zwischen reinen NGINX Logs und denen von Modsecurity unterscheidet. Hierfür muss folgender Auszug integriert werden.

Dem Pod wird ein weiterer Container hinzugefügt, welcher die ModSecurity Logs seperiert:

Konfiguration Filebeat

Für die Überführung der Log Einträge aus dem modsecurity Audit log gibt es 2 Varianten.

  • Elastic Agent: ModSecurity Audit log
  • File Beat

Da die Realisierung über File Beat für Kubernetes besser geeignet ist, gehen wir im weiteren Verlauf auf diese Variante ein.

Um die zuvor seperierten Logs in den ELK Stack zu übertragen, verwenden wir die filebeat.autodiscover Funktion. 

Wir trennen die Logs über das Label "kubernetes.container.name". Dies ist notwendig, da das Audit File ansonsten mit dem aktuellen Standard NGINX Pipeline von elastic verarbeitet werden würde und dieses mit jedem neuen Release automatisch überschrieben wird. Damit wir die Nachrichten besser von einander trennen können, haben wir zudem, wie oben beschrieben, Modsecurity die Erweiterung "mod-security-logger" in Kubernetes angefügt.

Konfiguration Elastic Pipeline

Da wir, wie oben beschrieben, JSON Formate übermitteln, ist die Pipeline in Elastic rein auf die Transformation dieses Objektes beschränkt. Hierfür bietet elastic eine vordefinierte Methode "json" an. Diese muss zweimal hintereinander ausgeführt werden, um eine automatische Transformation durchzuführen. Warum das so ist, fragen Sie bitte nicht ;).

Folgend dargestellt ein beispielhafter Angriff, der die ".env" Datei versucht zu öffnen.

{"transaction":{"client_ip":"5.147.64.XXX","time_stamp":"Tue Jun 28 20:47:07 2022","server_id":"ffbd70bb61277107b0608c3d2be5824751fecdce","client_port":58758,"host_ip":"10.2.0.XXX","host_port":443,"unique_id":"70b0ae977efcb4521a4795c94bc87c9b","request":{"method":"GET","http_version":2.0,"uri":"/Products/RNA-Extraction/.env"},"response":{"http_code":403},"producer":{"modsecurity":"ModSecurity v3.0.5 (Linux)","connector":"ModSecurity-nginx v1.0.2","secrules_engine":"Enabled","components":["OWASP_CRS/3.3.2\""]},"messages":[{"message":"Restricted File Access Attempt","details":{"match":"Matched \"Operator `PmFromFile' with parameter `restricted-files.data' against variable `REQUEST_FILENAME' (Value: `/Products/RNA-Extraction/.env' )","reference":"o24,5v4,29t:utf8toUnicode,t:urlDecodeUni,t:normalizePathWin,t:lowercase","ruleId":"930130","file":"/etc/nginx/owasp-modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf","lineNumber":"105","data":"Matched Data: /.env found within REQUEST_FILENAME: /products/rna-extraction/.env","severity":"2","ver":"OWASP_CRS/3.3.2","rev":"","tags":["application-multi","language-multi","platform-multi","attack-lfi","paranoia-level/1","OWASP_CRS","capec/1000/255/153/126","PCI/6.5.4"],"maturity":"0","accuracy":"0"}},{"message":"Inbound Anomaly Score Exceeded (Total Score: 5)","details":{"match":"Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `5' )","reference":"","ruleId":"949110","file":"/etc/nginx/owasp-modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf","lineNumber":"80","data":"","severity":"2","ver":"OWASP_CRS/3.3.2","rev":"","tags":["application-multi","language-multi","platform-multi","attack-generic"],"maturity":"0","accuracy":"0"}}]}}

Aus diesem JSON Array sind für die weitere Analyse folgende Attribute besonders wichtig:

  • modsecurity.transaction.client_ip - Angreifer ip
  • modsecurity.transaction.messages.details.file - Angreifer Name
  • modsecurity.transaction.messages.details.ruleId <- modsecurity regel
  • modsecurity.transaction.messages.details.match: Detailinformationen
  • modsecurity.transaction.request.uri - URL Aufruf

Ausnahmen hinzufügen

Nach Aktivierung der WAF kann es vorkommen, dass einige gewollte Zugriffe blockiert werden.
Diese unterscheiden sich je nach Applikation und eingesetzten Erweiterungen und müssen daher individuell ermittelt werden.
Will man Ausnahmen für diese Zugriffe hinzufügen, ist folgendes zu tun:

  1. modsecurity.transaction.messages.details.ruleId - aus diesem Feld kann die ID der Regel entnommen werden. Beispiel: "932115"

Nun folgenden Eintrag unterhalb von "nginx.ingress.kubernetes.io/modsecurity-snippet: |" hinzufügen:

SecRuleRemoveById 932115

Konfiguration Elastic Kibana Dashboard

Für die Aufbereitung der Log im ELK Stack stellen wir euch folgendes von uns definiertes Dashboard zur Verfügung: Dieses zeigt eine Gruppierung der Angreifer nach Uhrzeit, Angriffstyp , Angriffsregion sowie die eigentlichen Angriffe.

Marc Achsnich
Team Leadsynaigy GmbHKontakt

Vertiefe dein Wissen mit uns

Blog 14.10.24
Blog 14.10.24

203 Mrd. Euro Schaden:Cyberkriminalität als größte Bedrohung

Der Blogbeitrag warnt vor der zunehmenden Bedrohung durch Cyberkriminalität für deutsche Unternehmen. Im Jahr 2022 waren 84 % aller deutschen Unternehmen von Cyberangriffen betroffen, was zu enormen finanziellen Schäden führte.

Blog 03.09.21
Blog 03.09.21

Multichannel Day

Die GAFAs dieser Welt leben Innovation nach innen und außen! Ein spannendes Thema, das wir auf dem Multichannel Day in unserer Workshop Lounge aufbereitet haben.

Blog 26.07.21
Blog 26.07.21

Lufthansa zeigt, was Bad Profits sind

Auf meinem Weg nach Athen zeigte die Lufthansa par excellence, was Bad Profits sind.

Blog 16.12.20
Blog 16.12.20

Das synaigy-Framework Teil 3

Der priorisierte Matchplan ist Grundlage für die in den einzelnen Phasen einzuführenden Systeme. Er ist sozusagen die Übersichtskarte der nun folgenden Schritte in großem Maßstab. Die Karte wird durch die in den nächsten Schritten erstellten Konzepte Stück für Stück höher aufgelöst.

Blog 10.05.20
Blog 10.05.20

Das synaigy-Framework Teil 2

Zur Erarbeitung eines kundenindividuellen Matchplans werden verschiedene Werkzeuge aus dem synaigy Methodenkoffer kombiniert. Ein Fokus liegt hierbei auf kreativen Workshops. Hierzu finden sich abteilungsübergreifend Mitarbeiter des Kunden sowie Experten der synaigy zusammen, um Geschäftswissen und Expertenwissen interaktiv zu vereinen.

Blog 07.11.24
Blog 07.11.24

Warum der Cultural Change so schwer für uns ist

In unserem Gespräch ging es um Wandel und Transformation in Unternehmen. Ein kleiner Spoiler: Veränderungen sind oft unbequem, aber genau da beginnt der spannende Change-Prozess!

Blog 31.10.24
Blog 31.10.24

Wie wird AI den E-Commerce weiter transformieren?

In der neusten insights!-Folge, in der diesmal Sonja Fuhrmann, TV-Moderatorin, Joubin Rahimi interviewed, gehen die beiden u.a. auf die Frage ein, inwiefern KI den E-Commerce weiter transformieren wird. Von Manipulation bis hin zur Entmenschlichung – sie erkunden dieses Themengebiet gezielter.

Blog 29.10.24
Blog 29.10.24

KI - Was Deutschland tun muss, um den Tech-Turbo zu zünden

Mit Philipp Klöckner haben wir uns auf der BE.INSIDE über die Zukunft von AI und deren Rolle in Europa unterhalten. Eine zentrale Erkenntnis: Microsoft verbraucht allein so viel Strom verbraucht wie drei abgeschaltete deutsche Kernkraftwerke!

Blog 14.11.24
Blog 14.11.24

Hans Sarpei über KI, Fußball und den inneren Schweinehund

Wir sprechen mit Hans Sarpei über seinen Weg vom Profisportler zum Unternehmer und Social-Media-Profi, Daten im Sport & gesellschaftliche Verantwortung.

Blog 17.10.24
Blog 17.10.24

IoT und Edge AI: Technologien für die smarte, morgige Welt

Wie schafft man den Sprung von einer Idee zu einem marktfähigen Produkt? Gaylord Aulke, CEO von der 100 DAYS software projects GmbH, hat in der neusten insights!-Folge genau darüber gesprochen und erklärt, warum Edge AI – die Verarbeitung von Daten direkt am Gerät – der Schlüssel zu schnelleren Innovationen und mehr Datenschutz ist. Durch schnelle Prototypen, frühes Testen und flexible Anpassungen können Unternehmen agil bleiben und sich den Herausforderungen der modernen Technologie stellen.

Blog 22.10.24
Blog 22.10.24

Zukunftsforschung: Wie KI und Technologie uns verändert

In der neuen Insights-Folge haben wir Zukunftsforscher Dirk Herrmann zu Gast! Sein Fazit? KI wird die Welt so radikal verändern wie einst die Elektrizität – und das viel schneller, als wir denken!

Blog 24.10.24
Blog 24.10.24

So transformierst du dein Unternehmen mit KI

Viele reden über KI, aber nur wenige setzen wirklich schon konkrete Projekte um! Genau darum geht es in dieser insights!-Folge mit Oliver Hoeck, Gründer von Digital DNA.

Blog 21.11.24
Blog 21.11.24

Erfolgreich, nachhaltig, authentisch–Geschichte von Veganbox

In unserer neuesten Folge Insights erzählt die Gründerin von Veganbox und Oh Shanti, Katharina Geib, wie sie ihre Business-Idee vom Familientisch bis zur erfolgreichen Marke brachte – und das alles ohne große Investoren aber mit viel Herzblut.

Blog 09.01.25
Blog 09.01.25

OVHcloud – die europäische Antwort auf den Daten-Dschungel

In der heutigen Insights!-Folge gibt Falk Weinreich uns spannende Einblicke in die Welt von nachhaltigen Rechenzentren und Gaia X.

Blog 16.01.25
Blog 16.01.25

OVHcloud bringt die Cloud-Zukunft - KI & Cloud im Fokus

In der neuesten Episode von insights! spricht Falk Weinreich von OVHcloud über die spannenden Themen AI und Datensouveränität. Wie schafft OVHcloud es seine Kunden sicher durch eine datengesteuerte Welt zu navigieren und was hat das Ganze mit dem Eiffelturm zu tun? Schau rein und find es heraus

Blog 23.01.25
Blog 23.01.25

Local Zones krempeln die Regeln der Internationalisierung um

In dieser Episode von insights! gibt Falk Weinreich von OVHcloud spannende Einblicke in die Internationalisierung von Cloud-Diensten. Wir diskutieren unter anderem über die neuen Local Zones und deren Vorteile für Kunden weltweit.

Blog 06.02.25
Blog 06.02.25

Daten sind mächtig, aber nur wenn du sie richtig nutzt!

Erfolgreiche Entscheidungen basieren nicht nur auf Bauchgefühl, sondern vor allem auf einer klugen Nutzung von Daten. Es geht nicht darum, möglichst viele Zahlen zu sammeln, sondern sie richtig zu interpretieren und daraus konkrete Maßnahmen abzuleiten.

Blog 29.01.25
Blog 29.01.25

Globale Performance, lokale Stärke: OVHcloud macht’s möglich

OVHcloud unterstützt den deutschen Mittelstand mit globalem Mesh-Netzwerk und Visualisierungen, um Datenverfügbarkeit, Disaster Recovery und internationale Expansion zu sichern.

Blog 29.02.24
Blog 29.02.24

Mit KI-Suche zu personalisierten Sucherlebnissen

In der heutigen digitalen Welt ist Zeit kostbar und Auswahl überwältigend. Deshalb ist eine intelligente Suchfunktion im E-Commerce entscheidend! In der aktuellen insights!-Folge hatte ich das Vergnügen, Christina Schönfeld von Algolia zu Gast zu haben. Sie erläutert uns, warum die SaaS-Such- und Entdeckungs-Plattform den Unterschied macht und welche Auswirkungen AI Driven Search in der Customer Journey hat.

Blog 11.07.24
Blog 11.07.24

Mit modernen Order-Management-Systemen zu zufriedenen Kunden

In dieser Folge von insights! hatte ich das Vergnügen, Linda Kuhr, die Gründerin und Geschäftsführerin von Fulfillmenttools, zu Gast zu haben. Sie teilt ihre Erfahrungen und Einblicke in die Welt des modernen Order Managements und die Herausforderungen, die dabei gemeistert werden müssen.

Jetzt Blog abonnieren und keine News mehr verpassen

✔️kostenlos ✔️jede Woche News ✔️Expertenwissen