Datenschutzverletzungen und Cyberangriffe sind inzwischen an der Tagesordnung. Secure Coding ist daher so wichtig wie nie zuvor. Unternehmen, Behörden und Einzelanwender:innen kommen kaum noch ohne digitale Plattformen aus, weshalb die Software, die solchen Plattformen zugrunde liegt, ein besonders attraktives Ziel für Cyberkriminelle sind. Die große Herausforderung besteht darin, Software weiterhin in kürzester Zeit, aber mit bestmöglicher Sicherheit bereitzustellen. Dieser Leitfaden gibt Ihnen die notwendigen Strategien und Tools an die Hand, um beide Ziele zu erreichen und mit Secure Coding für rasche Deployments zu sorgen, ohne die Sicherheit aufs Spiel zu setzen.

Schwachstellen im Code

Was sind Code-Schwachstellen?

Schwachstellen im Code sind die Achillesferse eines Softwaresystems. Dabei handelt es sich um Fehler oder Sicherheitslücken, die besonders leicht ausgenutzt werden können. Sie haben die unterschiedlichsten Ursachen, ob schlechte Programmierpraktiken, mangelnde Eingabevalidierung oder veraltete Bibliotheken bzw. Abhängigkeiten.

Die häufigsten Anfälligkeiten im Code

  • Remote Code Execution (RCE): Die Remotecodeausführung oder RCE erlaubt einem Angreifer die Ausführung beliebigen Codes im betroffenen System, oft mit umfassenden Zugriffsrechten. Die Schwachstelle, die dies ermöglicht, tritt in der Softwareentwicklung besonders häufig auf, und zwar wenn Benutzereingaben von einer Anwendung direkt als Code ausgeführt werden oder wenn die Eingabe Teil eines Systembefehls ist. Durch gezieltes Ausnutzen einer RCE-Schwachstelle können Unbefugte immensen Schaden anrichten, beispielsweise vertrauliche Daten stehlen, Dateien löschen oder Malware installieren – oft wird durch solche Angriffe das gesamte System in Mitleidenschaft gezogen. 
  • Injection-Angriffe: Dabei werden schädliche Daten oder Code in ein Softwaresystem eingeschleust. Bei SQL-Injection-Angriffen beispielsweise wird schädlicher SQL-Code über Eingabefelder in Datenbanken eingeschleust, sodass potenziell sensible Daten preisgegeben werden.

Die Folgen für Anwendungssicherheit und Benutzerdaten

Schwachstellen-Exploits können verheerenden Schaden anrichten. Durch unbefugten Datenzugriff gelangen eventuell sensible Informationen an die Öffentlichkeit, während beschädigte Daten möglicherweise dazu führen, dass eine Anwendung gar nicht mehr funktioniert. Im Extremfall können die Angreifer ein ganzes System kapern und ihr Unwesen treiben. Die kurzfristigen Folgen von unerlaubten Datenzugriffen oder Systemabstürzen sind offensichtlich, aber Schwachstellen können Unternehmen auch langfristig Schaden zufügen, denn Datenschutzverletzungen sind rufschädigend, führen zu finanziellen Einbußen und können sogar rechtliche Konsequenzen haben. Den Schaden eines Exploits zu beheben, sowohl in Sachen Systemintegrität als auch Markenreputation, ist in jedem Fall eine langwierige und teure Angelegenheit.

Best Practices für die Entwicklung von sicherem Code

Was ist Secure Coding?

Beim Secure Coding geht es nicht nur darum, durch sichere Softwareentwicklung Angriffe zu verhindern, sondern das Ziel ist eine Software, die bereits von Grund auf so konzipiert ist, dass sie Angriffen standhält. Das bedeutet, dass potenzielle Gefahren vorhergesehen und Systeme entwickelt werden müssen, die dagegen auch unter unvorhersehbaren Umständen gewappnet sind. Ein wichtiger Baustein bei der Entwicklung widerstandsfähiger Software ist die Etablierung von Sicherheitstests als Teil des Software-Entwicklungszyklus (SDLC). Durch frühzeitiges und kontinuierliches Testen (auch als Shift-Left-Ansatz bekannt) können Entwickler:innen Schwachstellen und Sicherheitslücken von Anfang an erkennen und beheben – nicht erst nach Abschluss des Projekts. Die Sicherheit sollte ein fester Bestandteil des Entwicklungsprozesses sein, damit Störungen gegen Ende und damit eine verspätete Bereitstellung minimiert werden. Entwickler:innen, für die Sicherheitsmaßnahmen und Tests im gesamten SDLC Routine sind, können Software schaffen, die nicht nur sicher ist, sondern auch zuverlässig funktioniert und gegen aktuelle ebenso wie zukünftige Bedrohungen gewappnet ist. Dieser ganzheitliche Ansatz sorgt für Software, die Angriffen von Natur aus standhält und Benutzer:innen sowie Unternehmen zuverlässigen Schutz vor immer neuen Angriffsmethoden bietet.

Leitlinien und Maßgaben für das Secure Coding

  • OWASP Top 10: Das Open Web Application Security Project (OWASP) veröffentlicht in regelmäßigen Abständen eine Liste der 10 kritischsten Sicherheitsrisiken für Webanwendungen. Unternehmen nutzen diese Liste als Anhaltspunkt, wenn sie den Schutz ihrer Webanwendungen verbessern möchten.

Eingabevalidierung und Bereinigungsverfahren

  • Positiv- und Negativlisten: Während mit Negativlisten bekannte schädliche Eingaben geblockt werden, ist das Führen einer Positivliste eine strengere Methode, bei der ausschließlich bestimmte sichere Eingaben erlaubt sind. Diese Methode wird auch als Whitelisting bezeichnet und gilt als die sicherere, da sie keine umfassende Bewertung aller möglichen schädlichen Eingaben erfordert.
  • Bereinigung: Vor der Verarbeitung einer Benutzereingabe muss diese bereinigt werden. Dabei werden alle potenziell schädlichen Daten entfernt, die für einen Injection-Angriff oder andere Exploits genutzt werden könnten.

Sichere Handhabung vertraulicher Daten

  • Verschlüsselung: Bei der Datenverschlüsselung werden sensible Informationen in ein codiertes Format umgewandelt, sodass nur Personen mit dem Entschlüsselungsschlüssel auf die Originaldaten zugreifen können.
  • Hashing: Hashing ist besonders für die Passworthandhabung wichtig. Dabei werden Daten in scheinbar zufällige Zeichenketten mit einer festgelegten Länge umgewandelt. Im Gegensatz zur Verschlüsselung ist das Hashing nur in eine Richtung möglich.

Richtige Handhabung von Fehlern und Ausnahmen

  • Keine detaillierten Fehlermeldungen: Fehler treten bei der Softwareentwicklung unweigerlich auf. Wie ein System allerdings auf solche Fehler reagiert, kann die Sicherheit massiv beeinflussen. Wird in Fehlermeldungen zu viel preisgegeben, erhalten potenzielle Angreifer wertvolle Informationen, und Ausnahmen, die nicht angemessen gehandhabt werden, können zu Systemabstürzen oder Exploits führen.

Sicheres Konfigurationsmanagement

  • Least-Privilege-Prinzip: Dieses Prinzip wird auch als Principle of Least Privilege oder PoLP bezeichnet. Dabei werden Benutzer:innen jeweils nur die zur Ausführung einer Aufgabe notwendigen Rechte gewährt – so sinkt die Gefahr des Missbrauchs.

Tools und Technologien für das Secure Coding

Übersicht der Secure-Coding-Tools

Entwickler:innen haben ein ganzes Arsenal an Maßnahmen gegen Sicherheitslücken an der Hand. New Relic tut sich dabei als eine umfassende Lösung hervor, die nicht nur das Monitoring der App-Performance übernimmt, sondern auch Einblicke in potenzielle Gefährdungen liefert. Die New Relic Observability- und Security-Toolsets bieten einen integrierten Ansatz zur Erkennung und Behebung von Schwachstellen.

Tools für die statische Codeanalyse

Beim statischen Anwendungssicherheitstest (SAST) wird der Quellcode, Bytecode oder binäre Code einer Anwendung analysiert, ohne dass sie ausgeführt wird. SAST durchsucht den Code nach Mustern oder Strukturen, die auf potenzielle Sicherheitslücken hindeuten.

  • SonarQube: Scannt Ihre Codebase auf Schwachstellen und liefert detaillierte Berichte, anhand derer Sie Fehler beheben können, bevor sie sich zu Problemen auswachsen.
  • Snyk Code: Analysiert den Quellcode einer Anwendung, um Sicherheitslücken zu identifizieren, und liefert Entwickler:innen umsetzbare Einblicke zur Fehlerbehebung.

Statische Codeanalyse mit New Relic: Die New Relic Observability-Plattform lässt sich in verschiedene Tools integrieren, z. B. SonarQube, und bietet so eine nahtlose Umgebung, mit der Sie die Codebase scannen, potenzielle Schwachstellen identifizieren und Best Practices sicherstellen können.

Tools für die dynamische Codeanalyse

Mit dynamischen Anwendungstests (DAST) wird die Anwendung in der Laufzeitumgebung getestet. Dabei wird simuliert, wie externe Angreifer (ohne Zugang zum zugrundeliegenden Code) potenzielle Schwachstellen auszunutzen versuchen.

  • OWASP ZAP: Testet die Sicherheit einer Webanwendung und kann Schwachstellen in laufenden Anwendungen erkennen.
  • Checkmarx: Identifiziert Schwachstellen in laufenden Anwendungen in Echtzeit und gibt Aufschluss darüber, wie externe Angreifer Schwachstellen in einer Live-Umgebung ausnutzen könnten.

Dynamische Codeanalyse mit New Relic: Die native dynamische Codeanalyse von New Relic liefert zusätzlich zur statischen Analyse Einblicke in die Laufzeit-Performance und mögliche Sicherheitsrisiken. Durch das Echtzeit-Monitoring der Anwendungen kann New Relic Schwachstellen erkennen, die sonst erst während der Ausführung offensichtlich würden.

Sicherheit als festes Kettenglied im Dev-Lifecycle

So wichtig ist sicheres Codemanagement

Codemanagement ist mehr als nur das Schreiben von Code. New Relic eröffnet Entwickler:innen daher Zugang zum New Relic Vulnerability Management, das weitere Aspekte des Codemanagements abdeckt: Versionskontrolle, Patch-Management und bewährte Sicherheitsverfahren. Diese Features sorgen dafür, dass die Sicherheit im gesamten Verlauf der Codeentwicklung immer obenan steht.

Secure Coding in Agile- und DevOps-Umgebungen

In der Entwicklungsmethodik wird der Schwerpunkt inzwischen zunehmend auf den sogenannten Shift-Left-Ansatz gelegt, bei dem Sicherheitsmaßnahmen von Anfang an in den Dev-Lifecycle integriert werden. Anstatt erst zum Schluss als Listenpunkt abgehakt zu werden, sind Sicherheitsüberlegungen von der Konzeption an eng mit dem Prozess verflochten.

New Relic unterstützt und erweitert den Shift-Left-Ansatz. Durch Echtzeit-Monitoring und -Feedback können Dev-Teams potenzielle Schwachstellen frühzeitig während der Entwicklung erkennen und beheben. Nicht nur sinkt dadurch die Gefahr von Sicherheitsverletzungen, dies führt auch zu effizienteren Dev-Cycles, da Fehler früh genug aus dem Weg geräumt werden – bevor sie sich fest in den Code eingenistet haben.

Zudem lassen sich die New Relic Toolsets nahtlos in agile und DevOps-Workflows integrieren, sodass die Security während der gesamten Entwicklung und Bereitstellung höchste Priorität hat. Ob durch automatische Scans, Performance-Monitoring oder Vulnerability Assessments: New Relic hilft Teams, einen Shift-Left-Ansatz zu verfolgen und in kürzester Zeit sichere, zuverlässig funktionierende Software zu liefern.

CI/CD – Überlegungen im Kontext der Sicherheit

  • Automatisierte Sicherheitsscans in CI-Pipelines: Einer der größten Vorteile der Continuous Integration (CI) ist wohl die Fähigkeit, Codeänderungen automatisch zu testen. Durch die Integration automatischer Sicherheitsscans in CI-Pipelines können Teams sicherstellen, dass Schwachstellen frühzeitig aufgedeckt werden. Und New Relic bietet Integrationen für zahlreiche beliebte Scan-Tools wie GitHub Dependabot und Aqua Trivy, sodass Entwickler:innen sofortiges Feedback erhalten und Sicherheitslücken noch vor dem Zusammenführen von Code schließen können.
  • Sichere Deployment-Praxis beim CD: Mit dem Continuous Deployment (CD) werden Releases automatisiert. So gelangen neue Features, Bugfixes und Updates schnellstmöglich zu den Benutzer:innen. Dabei kann allerdings die Sicherheit auf der Strecke bleiben. Nicht so bei New Relic: Die Teams können Deployments in Echtzeit überwachen, damit keine Regressionsfehler eingeführt werden. Wird nach dem Deployment eine Schwachstelle entdeckt, geben die New Relic Monitoring-Toolsets sofort Alerts aus, sodass Teams rasch aktiv werden können.
  • Umgebungsisolierung und Sicherheit: In CI/CD sind mehrere Umgebungen die Regel, z. B. Entwicklung, Staging und Produktion. Diese Umgebungen müssen isoliert und gut geschützt werden. Mit New Relic erhalten Sie Einblick in Performance und Sicherheitsstatus der einzelnen Umgebungen. So lässt sich verhindern, dass potenzielle Schwachstellen in einer Umgebung eine andere beeinträchtigen.
  • Feedbackschleifen und Sicherheitserkenntnisse: Ein solider CI/CD-Prozess baut auf Feedbackschleifen auf. Denn Entwickler:innen müssen über die Auswirkungen ihrer Änderungen im Bilde sein – und zwar nicht nur im Hinblick auf die Funktionen, sondern auch hinsichtlich der Sicherheit. Die Dashboards und Alert-Mechanismen von New Relic liefern unmittelbares Feedback zu den Sicherheitsimplikationen jeglicher Codeänderungen. Langfristig wird damit eine Kultur geschaffen, in der Sicherheit und Performance stets Hand in Hand gehen.
  • Integration von Threat Intelligence in CI/CD: Angesichts ständig neuer Cyberbedrohungen müssen Entwickler:innen immer auf dem neuesten Stand sein. Durch die Integration von Threat-Intelligence-Plattformen und CI/CD-Pipelines sind Sie immer im Bilde, was neue Sicherheitslücken und Bedrohungen angeht. Mit Integrationen für verschiedene Threat-Intelligence-Tools sorgt New Relic dafür, dass sich die Entwicklungs- und Bereitstellungsprozesse immer auf die neuesten Sicherheitsdaten stützen können.

Fazit

Die digitale Welt entwickelt sich rasant weiter. Deshalb muss Code immer in kürzester Zeit bereitgestellt werden – aber die Sicherheit sollte dadurch nicht aufs Spiel gesetzt werden. Indem Entwickler:innen Best Practices befolgen, sich fortlaufend über die aktuellen Sicherheitsrisiken informieren und die neuesten Tools und Technologien einsetzen, können sie diesem Anspruch gerecht werden. Mit den New Relic Toolsets für Observability und Security erhalten Sie eine integrierte Lösung, die die schnelle Bereitstellung sicheren Codes enorm erleichtert.