Vojtech Herout - stock.adobe.com
MitM-Attacken auf Apps und CI/CD-Toolchains verhindern
MitM-Angriffe sind eine große Gefahr für DevOps, wenn verteilte Apps und CI/CD-Toolchains eingesetzt werden. Wie sind die Attacken aufgebaut und wie können sie gestoppt werden?
Verteilte Apps und CI/CD-Toolchains (Anwendungen, die für Continuous Integration und Continuous Delivery beziehungsweise Continous Deployment genutzt werden) erzeugen eine heterogene Umgebung in Unternehmen, die für zahlreiche Bewegungen im Netzwerk sorgt. Jede der dabei genutzten Verbindungen kann jedoch durch einen MitM-Angriff (Man-in-the-Middle) missbraucht werden.
Um MitM-Angriffe erfolgreich zu verhindern, müssen sich Unternehmen mit den möglichen Angriffsvektoren auseinandersetzen, ihre Mitarbeiter schulen und zudem eine funktionierende Abwehrstrategie entwickeln. Die Schutzmaßnahmen sollten ein integraler Teil der gesamten Sicherheitsstrategie werden.
Eine hohe IT-Sicherheit ist jedoch auch in DevOps-Umgebungen nur durch eine Zusammenarbeit aller betroffenen Teams möglich. Zwei Bereiche spielen dabei eine besonders wichtige Rolle. Einerseits die CI/CD-Tools, die verwendet werden, um schnell und hoch automatisiert neuen Code produzieren zu können und andererseits die zahllosen verteilten Anwendungen, die von den DevOps-Mitarbeitern für ihre Tätigkeiten benötigt werden.
Was ist ein MitM-Angriff?
Von einem MitM-Angriff spricht man, wenn ein Hacker eine Verbindung so modifiziert, dass der Nutzer nicht mehr mit seinem ursprünglichen Ziel kommuniziert, sondern mit einem durch den Angreifer kontrollierten System.
Nicht selten täuscht das System des Angreifers dabei eine legitime Adresse vor. Beispielsweise kann ein Angreifer einen Entwickler auf eine Webseite umleiten, die genau so aussieht wie der normale Login für sein CI/CD-Tool. Nachdem sich der Angreifer einen Zugang zur CI/CD-Toolchain eines Unternehmens verschaffen konnte, kann er sensible Daten verändern oder neue Anwendungen sabotieren, bevor sie an die Endnutzer verteilt werden.
Ein MitM-Angriff erfolgt dabei üblicherweise über einen der folgenden Kanäle:
- Der Angreifer schleust Malware auf dem PC oder Mobilgerät des Entwicklers oder des Anwenders ein. Dafür werden oft Phishing-Attacken verwendet.
- Der Angreifer könnte auch das DNS-System (Domain Name System) manipulieren. Der Nutzer verbindet sich dann mit einem Server, der durch den Hacker kontrolliert wird. DNS-Spoofing kann sowohl in einem Netzwerk als auch von außen erfolgen.
- Eine weitere Möglichkeit ist das Fälschen von IP-Adressen im lokalen Netzwerk eines Unternehmens, IP-Spoofing Dabei werden manipulierte TCP-Pakete (Transmission Control Protocol) eingeschleust, um TCP/IP-Verbindungen innerhalb des Firmennetzes abzufangen.
- Manche Angreifer registrieren auch einen Domain-Namen, der dem einer vom ins Visier genommenen Unternehmen genutzten verteilten Anwendung stark ähnelt. Die dabei verwendeten Adressen werden oft durch Phishing verteilt.
- Auch über eine SQL Injection kann sich ein Angreifer Zugang zum von den Entwicklern verwendeten Server verschaffen.
- Veraltete Firmware auf einem Router oder eine mangelhafte Konfiguration sind eine weitere Möglichkeit, um sich Zugang zu einem Netzwerk zu verschaffen.
Schutz für verteilte Anwendungen
Wenn Sie den Schutz Ihrer verteilten Anwendungen vor MitM-Angriffen verbessern wollen, benötigen Sie eine robuste Sicherheitsstrategie. Außerdem sollten Sie sich vermehrt auf Ihre IT-Infrastruktur konzentrieren. So unterschiedliche Maßnahmen wie erweiterte Authentifizierungsmaßnahmen oder auch nur Barrieren, die physische Zugriffe verhindern, können hilfreich bei der Abwehr von Angreifern sein.
Verwenden Sie Plattformen wie RSA oder Verisign an geeigneten Stellen in Ihrem Application-Stack, um für eine Authentifizierung auf PKI-Basis (Public Key Infrastructure) zu sorgen. PKI stellt sicher, dass die Anwender nur mit legitimen Anwendungen kommunizieren und nicht mit Fälschungen eines Angreifers.
Aktivieren Sie HTTPS (Hypertext Transfer Protocol Secure), um Ihre bisherigen HTTP-Verbindungen zusätzlich durch Verschlüsselung zu schützen. HTTPS hindert Angreifer daran, die übertragenen Daten auszuspionieren oder zu manipulieren. Das Protokoll sollte deswegen umfassend eingeführt werden.
Konfigurieren Sie alle Access Points (APs) im Unternehmen so, dass sie nur noch verschlüsselte Verbindungen per WPA2 oder WPA3 zulassen. Dieser Bereich ist allerdings nicht mehr unter Kontrolle Ihrer IT-Abteilung, wenn auch externe Kunden auf Ihre Apps zugreifen können. Starke Verschlüsselung verhindert aber zumindest, dass sich Anwender unkontrolliert im Eingangsbereich Ihres Unternehmens oder etwa auf dem Parkplatz in Ihr WLAN einloggen können. Je stärker die Verschlüsselung Ihrer Funknetze ist, desto sicherer sind Ihre Anwender und Ihr Unternehmen insgesamt.
Gegen DNS-Spoofing hilft das Leeren des DNS-Caches Ihrer lokalen Server und Maschinen. Windows-Nutzer sollten die Domain Name Security System Extensions einsetzen. Mit ihnen lassen sich Bedrohungen für Ihr DNS-System identifizieren und eingrenzen.
Wenn ein Teil Ihrer Mitarbeiter von außen auf das Netzwerk zugreifen muss, dann bestehen Sie auf dem Einsatz von VPN-Verbindungen (Virtual Private Network). Alternativ können auch Cloud-Anwendungen von Dritt-Anbietern genutzt werden, sofern sie sich ausreichend absichern lassen und außerhalb Ihres geschützten Netzwerks befinden. Selbst wenn es einem Angreifer möglich ist, sich Zugang zum Netz zu verschaffen, kann er die verschlüsselten VPN-Daten nicht einsehen. Im Unternehmen eingesetzte tragbare Computer und mobile Endgeräte sollten so eingerichtet werden, dass sie einen direkten Zugang zum Firmen-VPN haben.
Automatisierte Security-Tools zur Abwehr von Bedrohungen wie Security Compass oder ThreatModeler unterstützen Sie ebenfalls bei der Abwehr von MitM-Angriffen. Sie sollten sich aber nicht nur auf diese Werkzeuge verlassen. Threat Modeling ist hilfreich, erfordert aber ein hohes Verständnis der vorhandenen Netzwerk- und Cloud-Infrastruktur. Darüber hinaus sollten Sie in Schulungen Ihrer Mitarbeiter investieren. Wichtig sind dabei vor allem spezialisierte Security-Themen wie die Absicherung von Cloud-Umgebungen.
Verwenden Sie außerdem Penetrationstests als weitere Sicherheitsmaßnahme, bevor Sie eine unternehmenskritische Anwendung produktiv einsetzen.
Gute Kommunikation und solides Training
Das Risiko durch MitM-Angriffe steigt, wenn sich ein Unternehmen entscheidet, seine Anwendungen nicht mehr nur lokal im eigenen Data Center zu betreiben, sondern sich stattdessen auf eine Cloud-basierte Umgebung einzulassen.
Es ist sehr viel Kommunikation nötig, wenn Sie auf verteilte Anwendungen und CI/CD setzen wollen. Wenden Sie ausreichend Zeit, Mitarbeiter und Geld auf, um ein an die realen Gegebenheiten angepasstes Security-Training zu entwickeln, dass sich unter anderem auch gezielt an Ihre Programmierer richtet.
Kommunizieren Sie die Gründe, die für die zusätzlichen Sicherheitsmaßnahmen sprechen und gehen Sie dabei auch auf die Bedürfnisse Ihrer Kollegen ein. Eine IT-Abteilung sollte immer für gute Verbindungen zwischen den Endnutzern und den Security-Teams sorgen. Zu allgemein und auch noch verpflichtend vorgeschriebene Security-Trainings bauen weder gute Beziehungen noch Vertrauen auf. Das gilt insbesondere dann, wenn dabei zu wenig kommuniziert wird.
Sicherheit für CI/CD-Toolchains
Wenn Sie MitM-Angriffe auf Ihre C//CD-Toolchain effektiv verhindern wollen, dann müssen Sie das Thema Sicherheit in alle Aspekte Ihrer DevOps-Kultur und -Technik integrieren.
Beziehen Sie alle tatsächlich genutzten DevOps-Tools und auch die aus dem Bereich der Schatten-IT mit in Ihre Überlegungen ein. Selbst wenn nur freie Tools aus dem Open-Source-Umfeld eingesetzt werden, stellt ein von einem der Programmierer „mal eben schnell“ von einer Webseite heruntergeladenes und von den Sicherheitsspezialisten nicht überprüftes Tool eine erhebliche Gefahr dar, auch wenn er es für die Beendigung eines Projekts dringend benötigt.
Von Anfang und bis zum Ende eines Projekts sollten Ihre Security-Profis mit in die Entwicklung mit einbezogen werden. Nur dann kann DevOps auf Dauer gut funktionieren. Dabei lassen sich auch viele Aufgaben automatisieren, die für die Absicherung benötigt werden.
Führen Sie konsequente und sich wiederholende Audits für alle Anwendungs- und CI/CD-Security-Tools durch. Dazu gehören auch Pentests für die von Ihrem Unternehmen verwendete Toolchains und nicht nur für die Apps, die gerade entwickelt werden. Der Einsatz einer geeigneten Cloud Management Platform kann ebenfalls dabei helfen, um mehr Kontrolle über den Prozess und die Sicherheit Ihrer in der Cloud gehosteten Anwendungen zu erhalten.
Überprüfen Sie vor allem auch immer wieder Ihre Prozesse zum Threat Modeling. Stellen Sie sicher, dass sie alle Anwendungen und Plattformen umfassen, die zu Ihrer CI/CD-Toolchain gehören. Die IT-Abteilung sollte diese Arbeiten bereits im Vorfeld erledigen. Dabei dürfen auch regelmäßig durchgeführte Penetrationstests nicht vergessen werden, mit denen Sie die DevOps-Tools überprüfen können und die so für mehr Sicherheit sorgen.