Security für DevOps Engineers
Wie du dich vor Supply Chain Attacken schützt
Unternehmensnetzwerke sind wie Festungen aufgebaut, mit dem Ziel, die Bösewichte draussen zu halten, während sich die Guten darin frei bewegen können. Dieses Modell des Perimeterschutzes ist veraltet und nicht mehr wirksam, um effektiv Angriffe zu verhindern. Denn Angreifer kommen längst nicht mehr nur von aussen – die grösste Gefahr kommt aus dem Inneren des Unternehmens. In diesem Blog zeige ich, wie sich Schwachstellen in der Software Supply Chain effektiv vermeiden lassen, indem Zero Trust-Prinzipien auf den Software-Entwicklungsprozess angewendet werden. Dadurch lässt sich das Ausmass eines Security Incidents reduzieren und den internen Angreifer in Schach halten.
Autor: Dominik Liebmann
Warum sollte ich mich als Entwickler für Supply Chain-Attacken interessieren?
Software is eating the world. Überall ist Software drin. Software ist DER differenzierende Faktor, wenn es um die Gunst der Kundin geht.
Als Entwickler schreibst du nur einen kleinen Teil deiner Anwendung selbst. Für den grössten Teil greifst du auf fertige Libraries und SDKs zurück. Damit bist du nicht alleine. Kommerzielle, Open Source und Individualentwicklung setzen auf Libraries.
Woher weisst du aber, dass du deinen Libraries vertrauen kannst? Woher weisst du, dass die Libraries frei von Schadcode sind? Selbst wenn du nur vertrauenswürdige Quellen (Repositories) wie NPM.org oder PyPI verwendest, solltest du vorsichtig sein. Denn jeder kann auf diesen Plattformen Libraries bereitstellen – auch Angreifer. Sie können einfach Kopien populärer Libraries erstellen und darin Schadcode verstecken. Diese Einfachheit ist auch der Grund, warum die Anzahl an Supply Chain-Attacken aufgrund infizierter Software in den vergangenen Jahren durch die Decke geschossen ist.
Für Unternehmen stellt diese Entwicklung eine dramatische Situation dar, da jede dieser Attacken eine erhebliche Gefahr für das Business birgt. Ein erfolgreicher Angriff kann verheerende Folgen haben und sogar bis zur Insolvenz der ganzen Unternehmung führen. Sei es, weil die Produktion oder der Verkauf eingeschränkt ist, oder weil man beträchtliche Mittel für die Wiederherstellung und den Schutz der Systeme aufwenden muss.
Laut einer Studie von IBM betrug im Jahr 2022 der durchschnittliche Schaden eines Data Breaches 4.35 Millionen US Dollar – Tendenz steigend.
Die Gefahr kommt von innen
Supply Chain-Attacken sind so effektiv, weil sie aus dem Unternehmensnetz heraus erfolgen. Klassische Schutzmassnahmen beruhen auf Perimeterschutz, nur die Aussengrenze des Unternehmensnetzwerkes wird vor Angriffen geschützt. Wie bei einer Festung. Der Grund liegt darin, dass Unternehmen davon ausgehen, dass der Angreifer von aussen kommt. Im Falle einer Supply Chain-Attacke sind die bisherigen Schutzmassnahmen jedoch wirkungslos. Wenn du nämlich versehentlich eine schadhafte Library verwendest, kann sich der Angreifer damit direkt Zugang zum Unternehmensnetz verschaffen und alle Schutzmassnahmen umgehen. Oft genügt nur ein Tippfehler und der Angreifer ist drin (Typosquatting).
Einmal drin, kann sich der Angreifer frei im Netzwerk bewegen (lateral movement). Und wer drinnen ist, ist ja bekanntlich der „Gute” und wird in seinem Tun nicht behindert. Denn geeignete interne Schutzmaßnahmen, die dies verhindern würden, existieren in den wenigsten Fällen. Der Angreifer hat nun die Möglichkeit, Daten zu stehlen, zu verschlüsseln oder mit deren Veröffentlichung zu drohen. Unternehmen können sich glücklich schätzen, wenn der Angreifer die kompromittierten Server nur zum Bitcoin Mining nützt.
Je beliebter, desto gefährdeter
Angreifer streben nach maximaler Effektivität, indem sie mit minimalem Aufwand eine möglichst große Anzahl von Opfern erreichen wollen. Beliebte Anwendungen und Libraries sind hierfür ein geeignetes Vehikel. Ein Beispiel dazu ist CodeCov. CodeCov ist unter Entwicklern ein weit verbreitetes Werkzeug zum Ermitteln der Softwarequalität (Test Coverage). Es stellt den Testabdeckungsgrad des eigenen Codes fest.
Angreifern ist es 2021 gelungen, den Source Code des Tools anzupassen und Schadcode einzufügen³. Aufgrund der hohen Popularität des Werkzeugs waren dadurch potenziell zahlreiche Softwareprojekte betroffen. CodeCov zählt mehr als 29’000 Kunden, darunter auch zahlreiche Grossunternehmen. Es genügten nur wenige Zeilen Code, genauer gesagt zwei. Im Detail hat der Schadcode den Inhalt aller Umgebungsvariablen an einen externen Server weitergeleitet. Dies ist äusserst bedenklich, da in Umgebungsvariablen sensitive Informationen wie API Keys für den Zugriff auf andere Server, Access Tokens für Git Repositories, Benutzernamen und Passwörter für SSH Verbindungen und ähnliches gespeichert werden. Mit diesen Informationen hat ein Angreifer ein leichtes Spiel, sich weiter auszubreiten.
So schützt du dich erfolgreich vor Supply Chain Attacken
Vollständigen Schutz vor Angriffen gibt es nicht. Früher oder später ist jeder davon betroffen.
Du kannst jedoch an zwei Stellschrauben drehen, um dich zu schützen:
- Du kannst die Wahrscheinlichkeit eines erfolgreichen Angriffs reduzieren.
- Du kannst das Ausmaß des Schadens reduzieren.
Folgende 5 Best Practices solltest du für einen adäquaten Schutz anwenden:
(nicht abschliessend)
Fazit
Mit der zunehmenden Agilität von Softwareentwicklungsprojekten werden vermehrt fertige Libraries und Software eingesetzt. Diesen Trend machen sich auch Angreifer zu Nutze, indem sie versuchen, Schadcode einzuschleusen. Je beliebter die Library, desto gefährdeter ist sie für Supply Chain-Attacken. Supply Chain-Attacken sind so effektiv, weil es oft an geeigneten Schutzmassnahmen fehlt. Unternehmen schützen sich vor Angriffen von aussen. Durch schadhaften Code findet der Angriff von innen statt. Das Ausmass eines Angriffs kann dann enorm sein und bis zur Insolvenz führen⁴. In dem du Zero Trust Prinzipien auf den Software-Entwicklungsprozess anwendest, kannst du die Wahrscheinlichkeit UND das Ausmass eines Angriffs reduzieren. Die genannten Massnahmen helfen dir dabei. Ganz wesentlich dabei ist eine ganzheitliche Betrachtung. Security hört nicht am Perimeter auf, sondern muss den gesamten Entwicklungsprozess – vom Design, über Entwicklung bis zum Betrieb – adressieren.
Willst du wissen, wie es um die Sicherheit deines Entwicklungsprozesses und Infrastruktur steht? Oder willst du auf das nächste Security Level kommen? Dann melde dich für ein unverbindliches Gespräch. Ich freue mich auf dich.
Quellen
- Sonatype, Open Source Supply, Demand and Security: https://www.sonatype.com/state-of-the-software-supply-chain/open-source-supply-demand-security
- IBM, Cost of a data breach 2022: https://www.ibm.com/reports/data-breach
- GitGuardian, CodeCov Supply Chain Breach: https://blog.gitguardian.com/codecov-supply-chain-breach/
- ZDNet, Hostingdienst Code Space gibt nach Hackerangriff auf:https://www.zdnet.de/88196555/hostingdienst-code-spaces-gibt-nach-hackerangriff-auf/
Über mich
Cyber Security ist die Basis der Digitalisierung. Ohne adäquaten Schutz scheitern die besten Digitalsierungsprojekte. Darum schlägt mein Herz für Cyber Security.