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 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 12.04.22
Blog 12.04.22

Likeability-Faktor

Ist Ihnen schon aufgefallen, dass erfolgreiche Unternehmen zumeist von menschlichen Aushängeschildern vertreten werden? Mal ist es ein Steve Jobs, mal ein Zuckerberg, in letzter Zeit immer öfter ein Elon Musk. Meist sind es Menschen, mit denen sich Nutzer und Kunden am besten identifizieren können. Natürlich ist es hilfreich, als Unternehmen über einen hohen Likeability-Faktor zu verfügen. Wer ist schon nicht gerne beliebt!

Blog 04.04.22
Blog 04.04.22

Der Benjamin-Button-Effekt

Wer hat es nicht schon selbst am eigenen Leib erfahren müssen: Kaum steige ich ins neu gekaufte Auto, fahre zweimal um den Block und schon hat es deutlich an Wert verloren. Traditionelle Produkte haben es deutlich schwieriger, sich am Markt zu behaupten als digitale, sich gegen den Wertverlust zu stemmen, ist fast aussichtslos.

Blog 29.03.22
Blog 29.03.22

Interview mit Dagmar Groß-Böker

„Hybride Arbeitsmodelle haben wir Corona zu verdanken“ Corona hat eine Vielzahl von Unternehmen stark gebeutelt, sowohl aus Sicht der Mitarbeiter, als auch aus der Perspektive der Organisationsleitung. Doch die Pandemie habe auch ihre gute Seite, sagt die HR-Expertin Dagmar Groß-Böker. Im Gespräch mit Joubin Rahimi, Geschäftsführer der synaigy GmbH, erzählt sie, welchen Nutzen ihrer Meinung nach Corona für die Zukunft der Arbeit gebracht hat und woran es Führungskräften in unsicheren Zeiten oft noch mangelt.

Blog 21.03.22
Blog 21.03.22

Good and bad profits – der Fokus auf Gewinne ist nicht alles

Was sind Good and bad profits? Gewinne sind zwar auf den ersten Blick per se etwas Postives, die Art und Weise, wie sie zustande kommen, kann mittel- und langfristig für ein Unternehmen aber entscheidend sein. Hier ein konkretes Beispielen, was für mich den Unterschied zwischen „guten“ und „schlechten“ Gewinnen darstellt.

Blog 23.02.23
Blog 23.02.23

Geschäftsmodell-Transformation: Erfolgsfaktoren im Commerce

In der heutigen insights!-Folge interviewe ich den General Manager Lighting Solutions & Services, Uwe Graf, von TRILUX. TRILUX hat sich erfolgreich von einem Leuchtenhersteller zu einem Elektronikproduzent transformiert und eine Geschäftsmodellveränderung sowie Vertikalisierung vollzogen. In dieser Folge erfährst du, welche Erfolgsmerkmale es bei einer Geschäftsmodellveränderung im produzierenden Gewerbe gibt und warum die Vertikalisierung des Geschäftsmodells eine entscheidende Komponente dabei ist.

Blog 16.02.23
Blog 16.02.23

KI erfasst komplexe medizinische Regularien gewinnbringend

Im Rahmen des heutigen Podcasts tauchen wir mit Vysyo-Gründer und Geschäftsführer Dr. Kai Markus in die Welt der künstlichen Intelligenz ein. Der Unternehmer steht seinen Kunden bei der Entwicklung, Markterschließung und Zulassung von medizinischen Produkten beratend bei. Mit dem Wunschdenken, weite Teile seiner datengetriebenen Arbeit effizienter zu gestalten, sprang Dr. Kai Markus vor etwa anderthalb Jahren auf den Zug der künstlichen Intelligenz auf. Im Gespräch mit Joubin Rahimi teilt er seine Erfahrungen über die ersten Gehversuche.

Blog 09.02.23
Blog 09.02.23

Symbiose von Vertrieb und Marketing für Umsatzsteigerung

Im Gespräch zwischen dem Head of Sales & Marketing, Ali Saffari, und Joubin Rahimi dreht sich alles um die Symbiose zwischen Marketing und Vertrieb und wie diese in der heutigen, digitalen Welt gelingen kann. Außerdem erfährst du, inwiefern datengetriebenes Arbeiten zu einer vollen Pipeline für den Vertrieb führen kann.

Blog 26.01.23
Blog 26.01.23

Hackathon statt Kriterienkatalog bei Softwareauswahl?

In der heutigen insights!-Folge hat Joubin Rahimi, Nam Hoang Dong zu Gast. Die beiden Digitalisierungsexperten werfen einen Blick auf den Dauerbrenner „Software-Auswahl“ und seine Tücken. Welche innovativen Methoden eingesetzt werden können, um die Software-Auswahl sowohl an das Team als auch an das Unternehmen auszurichten. Wie beispielsweise Nam das Thema herangegangen ist, lernst du in dieser Folge.

Blog 19.01.23
Blog 19.01.23

Wie löst man den IT-Fachkräftemangel in IT-Systemen?

Nam Hoang Dong und Joubin Rahimi diskutieren in der neuen insights!-Folge über die Anforderungen und Herausforderungen in der IT-Leitung. Einen besonderen Fokus legen die Digitalisierungsexperten auf den Fachkräftemangel sowie auf die Ablösung von Legacy-Systemen in Unternehmen. Mit welchen Mitteln diese Engpässe gelöst werden könnten, erfährst du in dieser insights!-Folge.

Blog 12.01.23
Blog 12.01.23

Head of Product: Produktverantwortlicher oder Team-Dirigent?

Gastgeber und synaigy-CEO Joubin Rahimi und der Mitbegründer der Berliner Digital Vikings können voneinander nicht lassen: Zum vierten und vorerst letzten Mal tauschen sich heute die beiden Veteranen der Digitalisierung im Rahmen der Podcast-Serie ,,insights!‘‘ aus. Diesmal werfen sie einen näheren Blick auf die Rolle des Head of Product. Dessen Bezeichnung führt oftmals in die Irre, denn ein Produkt im eigentlichen Sinne verantworten nur die wenigsten von ihnen. Lars Rabe hält ihn gewissermaßen für einen Dirigenten und Übersetzer innerhalb der Organisationsstruktur eines Unternehmens. Bei einer derartigen Facettenreichhaltigkeit verwundert es nicht, dass es den klassischen Werdegang für einen Head of Product nicht gibt.

Blog 29.12.22
Blog 29.12.22

Diversity, Equity & Inclusion erfolgreich integrieren

Weil die beiden ersten Podcasts ungewöhnlich gut bei den Zuhörern angekommen sind, haben sich synaigy-CEO Joubin Rahimi und Digital Vikings-Mitbegründer Lars Rabe ein drittes Mal zusammen ans Mikrofon gesetzt. Und auch heute haben die beiden wieder ein Thema im Gepäck, das derzeit in aller Munde ist: Diversity im Unternehmen. Nicht wenige denken dabei zunächst an einen ausgeglichenen Anteil an weiblichen und männlichen Mitarbeitern. Oder an die Einführung des Genderns. Tatsächlich umfasst eine divers ausgerichtete Unternehmensphilosophie aber weit mehr und tiefgründigere Aspekte.

Blog 22.12.22
Blog 22.12.22

Wer braucht einen Chief Digital Officer und was macht er?

In ihrem Treffen tauschten sich Joubin Rahimi und digital vikings-Mitbegründer Lars Rabe über moderne Organisationsstruktur im digitalen Zeitalter aus. Jetzt haben sich die beiden Unternehmer ein zweites Mal vor dem Mikrofon getroffen. Diesmal gehen der Kölner und der Wikinger der Frage nach, wofür ein Chief Digital Officer, kurz CDO, eigentlich gut ist. Eine Frage, die sich manches Unternehmen auch heute noch stellt, denn in der Hierarchie der Organisationsstruktur hatte es der CDO in den Anfangsjahren nicht leicht.

Blog 19.12.22
Blog 19.12.22

Social Proof: So steigerst du deine Conversion Rate um 17 %

Nicht jeder Mensch legt gleich viel Wert auf die Meinung von anderen. Richtig eingesetzt kann Social Proof aber zum Conversion Booster in Onlineshops werden. Auf der Internationalen Eisenwarenmesse 2022 hat Joubin Rahimi einen Einblick in Prinzipien der Verhaltensökonomik gegeben und erklärt, wie man diese gewinnbringend für sich einsetzen kann.

Jetzt Blog abonnieren und keine News mehr verpassen

✔️kostenlos ✔️jede Woche News ✔️Expertenwissen