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 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.05.23
Blog 11.05.23

Intershop: KI & Personalisierung für mehr ROI im E-Commerce

Tobias Giese, der Executive VP Customer Success von Intershop und ich sprechen in dieser insights!-Folge über den Einsatz von künstlicher Intelligenz (KI) bei Intershop, den Mehrwert für den Endkunden durch effiziente Personalisierung und daraus resultierende Wettbewerbsvorteile.

Blog 27.04.23
Blog 27.04.23

Datensouveränität vs. Cloud für deine E-Commerce-Strategie

Heute spreche ich mit Marc Achsnich, unserem Teameiter von Managed Services & Software Development, über das durchaus aktuelle und unumgängliche Thema Datensouveränität. Wir besprechen, welche Probleme amerikanische Anbieter mit sich bringen, warum unsere Entscheidung auf die OVH Cloud fiel, und welche Komponenten dabei beachtet werden sollen. Auch die entsprechenden Kosten europäischer Alternativen werden ausführlich besprochen. Du kannst mehr in der neuen Folge erfahren.

Blog 20.04.23
Blog 20.04.23

Warum dein Onlineshop ohne Personalisierung scheitern wird

Im Rahmen unseres zweiten gemeinsamen ,,insights!‘‘-Podcasts stürze ich mich gemeinsam mit UX-Expertin Katja Moritz auf das Thema Informationsverarbeitung im menschlichen Gehirn. Aus diesem Wissen lässt sich für Onlineshop-Betreiber ableiten, welche Fehler beim Aufbau einer Seite vermieden werden können, damit der Kunde sich nicht vorzeitig ausklingt. Eine breite Produktpalette mag durchaus seine Vorzüge haben, überfordert sie den Surfer jedoch, winkt der erfahrungsgemäß schnell ab und verabschiedet sich. Damit der Kunde bis zum Check-out an der Stange bleibe, müssten sich Shop-Betreiber etwas einfallen lassen, sagt die für das Kölner Unternehmen brytes tätige User Experience Managerin.

Blog 13.04.23
Blog 13.04.23

Mit Digital Nudging lenkst du deinen Kunden zum Kauf

brytes-UX Managerin Katja Moritz und mir gehen die Themen rund um E-Commerce nicht aus. Nach den ersten zwei Gesprächsrunden, in denen wir uns mit Nudging und Informationsverarbeitung beschäftigt haben, widmen wir uns heute dem Treffen von Entscheidungen. Welche Strategien führen dazu, dass der Kunde sich für ein Produkt entscheidet und beim Check-out munter mit der Kreditkarte wedelt? So viel sei schon mal verraten: Dem Käufer sollte immer das Gefühl vermittelt werden, dass er bei dem Tausch Bares gegen Ware als Gewinner dasteht.

Blog 12.04.23
Blog 12.04.23

OVHcloud: Schutz vertraulicher Infos für Unternehmen

Die digitale Transformation hat in den letzten Jahren zu einem rasanten Anstieg der Datenmengen geführt, die Unternehmen und Organisationen auf der ganzen Welt verarbeiten und speichern müssen. In diesem Zusammenhang wird die Datensouveränität zu einem immer wichtigeren Thema, insbesondere wenn es darum geht, vertrauliche Informationen sicher und geschützt zu halten. Hier kommt die OVHcloud ins Spiel - ein europäischer Cloud-Service-Anbieter, der sich dem Schutz der Datensouveränität verschrieben hat.

Blog 06.04.23
Blog 06.04.23

Metaverse: B2B und B2C Unternehmen maximieren ihren ROI

Das Metaverse verspricht der Gamechanger für die Zukunft der virtuellen Realität und der digitalen Interaktion zu werden und hat das Potenzial Handel, Arbeitswelt und Freizeit nachhaltig zu verändern. Metaverse-Plattformen können Unternehmen dabei helfen, innovative Geschäftschancen zu schaffen und neue Kundengruppen zu erschließen. In diesem Kontext bieten sie die nächste große Chance für Unternehmen im E-Commerce, um wettbewerbsfähig zu bleiben und dein Geschäft auszubauen. Was es mit Metaverse genau auf sich hat, wie Unternehmen von der Metaverse-Revolution profitieren können und was wir von den Vorreitern lernen können, lernst du in der neuen insights!-Folge mit Christian Gleich.

Blog 30.03.23
Blog 30.03.23

Verbesserung der Customer Experience durch digitale Empathie

Im Gespräch widmen sich Katja Moritz und ich dem Phänomen der digitalen Körpersprache in der Online-Welt. Der technologische Fortschritt hat es inzwischen so weit gebracht, dass der Kunde im wahrsten Sinne des Wortes gläsern ist. Was in der Offline-Welt die Mimik ist, ist im Netz der Mausklick an der entsprechenden Stelle. Wie Shop-Betreiber die Wünsche und Bedürfnisse ihrer Kunden entschlüsseln, darüber gibt die Kölner User Epxerience Managerin heute Auskunft.

Blog 23.03.23
Blog 23.03.23

Managed Services im E-Commerce: Der Weg zu mehr Umsatz?

Recht technisch geht es heute beim Gespräch zwischen mir und dem Teamleiter von Managed Services & Software Development, Marc Achsnich, zu. Die beiden Kenner der E-Commerce-Branche fachsimpeln vor dem Mikrofon darüber, wie sich Onlineshops auf unerwartete Stoßzeiten vorbereiten können, in welchem Umfang die Systeme überwacht werden sollten und wie ein guter Kundensupport auszusehen hat.

Blog 15.07.22
Blog 15.07.22

Was Software-Entscheider von der Formel 1 lernen können

Die Auswahl der richtigen Software gehört zu den anspruchsvollsten Aufgaben im Digitalisierungsgeschäft. Schließlich ist die Tragweite der Entscheidung sowohl strategisch als auch finanziell enorm. Ein iBusiness Expert Talk mit Synaigy-Chef Joubin Rahimi über das richtige Vorgehen.

Blog 28.06.22
Blog 28.06.22

Webinar: „Shopware auf der Überholspur“

Erfahre in einem ersten Überblick mehr über die Komponenten für einen erfolgreichen Onlineshop-Hosting-Betrieb und die wesentlichen Faktoren für ein performantes System.

Blog 04.07.22
Blog 04.07.22

Facebook und der weltweite Ausfall

Facebook hat eine fehlerhafte Konfigurationsänderung für einen fast sechsstündigen Ausfall am Montag verantwortlich gemacht. Die 3,5 Milliarden Nutzer des Unternehmens konnten in dieser Zeit die Dienste Facebook, WhatsApp, Instagram und Messenger nicht erreichen.

Blog 13.06.22
Blog 13.06.22

Shopware 6 mit Kubernetes

In diesem Artikel stellen wir euch vor, wie Shopware 6 in Kubernetes betrieben werden kann und warum dies sinnvoll ist. Wir zeigen euch Codeauszüge und eine kurze Anleitung mit Tipps und Tricks.

Blog 30.05.22
Blog 30.05.22

Brand Experience und Strategie

Als Unternehmen und Marke lässt man ungern Margen bei Händler liegen, das gilt für die analoge und digitale Welt gleichermaßen. Als Marke willst du logischerweise direkt zum Endkunden.

Blog 17.05.22
Blog 17.05.22

Betriebsausflug 2022

Zusammenhalt im Team und abteilungsübergreifendes Netzwerken wird bei uns großgeschrieben! Dafür sind Teamevents besonders wichtig. Es war nun nach zwei Jahren Pandemie endlich soweit und wir konnten alle bei einem mehrtätigen Betriebsausflug zusammenkommen. Da in der Zwischenzeit viele neue Kollegen und Kolleginnen die synaigy bereichern und sich z.T. nur virtuell kennenlernen konnten, war der Betriebsausflug der Anlass zum Networking, zum Teambuilding und zur persönlichen Weiterentwicklung.

Blog 25.04.22
Blog 25.04.22

Was ist die DNA der GAFA-Unternehmen?

Wie sieht es ganz tief im Inneren der GAFAs aus? Welche einzelnen Bausteine führen deren DNA seit Jahren von Erfolg zu Erfolg? Ich habe mir Facebook, Apple und Co. mal genauer angesehen.

Blog 22.04.22
Blog 22.04.22

Individuelle Kundenansprache

Wer sich als Unternehmer von den Tech-Giganten und den Mitbewerbern auf eine positive Weise abheben möchte, muss für eine gute Customer Experience sorgen. Der Weg zum Herz des Kunden führe letztlich über die sogenannte empathische Personalisierung.

Blog 21.04.22
Blog 21.04.22

Geschichten vs. Zahlen und Fakten

Man müsse Elon Musk nicht mögen, aber der Tesla-Gründer ist ein Meister der Selbstdarstellung. Er ist ein begnadeter Geschichtenerzähler, das mag bisweilen übertrieben sein, wie er das macht, aber schlussendlich transportiert er seine Geschichte auf eine grandiose Art. Im Marketing könne dieses Visionary Storytelling entscheidend für den Erfolg eines Unternehmens sein. Schön und gut, wenn Menschen mit einer neuen Idee kommen, wenn sie diese aber mit einer Geschichte untermalen können, umso besser.

Blog 19.04.22
Blog 19.04.22

Vertikalisierung von Unternehmen

Nicht wenige Unternehmen, die mit Erfolg ein Produkt im Markt eingeführt haben, geben sich damit bereits zufrieden. Dabei wäre über die Vertikalisierung des Geschäftsmodells vielleicht noch mehr drin. Dabei nutzt du bereits bestehende Kundenbeziehungen, um eine neue Wertschöpfung für deine Kunden und für dich zu generieren. Diese Diversifizierung macht ein Unternehmen stabiler und gleichzeitig wertvoller.

Blog 16.03.23
Blog 16.03.23

Wie die MACH-Architektur und API-First helfen können

Heute habe ich Sven Baumgart, Gründer und CEO von Tremaze, zu Gast. Gemeinsam mit Sven tauchen wir in die Welt der App-Entwicklung ein. Tremaze hat zwei Anwendungen, Tremaze und Tagea, entwickelt. In der neuen insights!-Folge verrät Sven, wie sie bei der App-Entwicklung mit nur vier Vollzeitentwicklern vorgehen und wie die MACH-Architektur und der API-First Ansatz helfen können, kostengünstig Apps zu aufzubauen. Außerdem geht Sven auf ihre Herausforderungen und Best Practises ein.

Jetzt Blog abonnieren und keine News mehr verpassen

✔️kostenlos ✔️jede Woche News ✔️Expertenwissen