Die rasante Beschleunigung der heutigen Technologie ist aufregend. Neue Produkte und Möglichkeiten für Wachstum und Innovation gibt es quasi überall. Doch diese Geschwindigkeit des Wachstums und der Veränderung hat auch ihre Schattenseiten, vor allem in Bezug auf die Sicherheit: Schon eine einzige böswillige Handlung kann zu massiven Geschäftsunterbrechungen, Rufschädigung und Umsatzeinbußen führen.
Wahrscheinlich hast du schon gehört, wie Branchenführer über die Notwendigkeit der digitalen Transformation und die besorgniserregende Abhängigkeit von veralteten oder „Legacy“-Systemen gesprochen haben. Auch wenn Legacy-Code an sich nicht problematisch ist, ist er oft nicht mit modernen Sicherheitstools kompatibel, was zu Sicherheitslücken führt, die ausgenutzt werden können. In Verbindung mit Open-Source-Code, der ständige Sicherheitsvorkehrungen erfordert, kann deine Codebase die Daten, die Benutzer(innen) und den Ruf deines Unternehmens in Gefahr bringen.
Legacy-Code ist aus Sicht der Sicherheit und der Compliance riskant und für die Entwickler(innen) teuer und zeitaufwändig zu pflegen – falls die Entwickler(innen) in deinem Team überhaupt über das nötige Wissen verfügen, um diese Arbeit zu erledigen.
Letztlich ist diese branchenweite Abhängigkeit von Legacy-Code eine bedenkliche und kostspielige Praxis. Wie können wir uns also davon befreien?
Im Folgenden gehe ich auf Legacy-Code ein und zeige, wie Unternehmen die Sicherheit ihrer Codebase durch KI-basiertes Code-Refactoring erhöhen können. Zusammen mit KI-gestützten Test- und Sicherheitsfunktionen wird das Code-Refactoring deine Codebase in die Zukunft befördern und dein ganzes Team in die Lage versetzen, nach vorne und nicht zurück zu schauen.
Was ist Legacy-Code?
Im Großen und Ganzen bezeichnet Legacy-Code eine bestehende Codebase, die ein Team von früheren Teammitgliedern geerbt hat und weiterhin nutzt und pflegt. Der Code mag gut funktionieren, aber wahrscheinlich haben im Laufe der Jahre mehrere verschiedene Entwickler(innen) daran gearbeitet. Dem aktuellen Team fällt es vielleicht schwer, zu erkennen, welche Änderungen sinnvoll sind und welche nicht. Außerdem könnte der Code mit einem veralteten Framework oder in einer Programmiersprache geschrieben worden sein, die niemand im Team kennt (egal, ob sie einfach nur alt oder völlig überholt ist).
Es mag seltsam erscheinen, dass Unternehmen immer noch auf Legacy-Code zurückgreifen. Dafür gibt es verschiedene Gründe, aber betrachte es einmal so: Du wohnst in einem alten Haus. Es ist gemütlich und vertraut, aber die Rohrleitungen sind unzuverlässig, die Verkabelung ist veraltet und jedes Mal, wenn du eine Sache reparierst, geht etwas anderes kaputt. Klar, du könntest umbauen, aber das bedeutet einen riesigen Aufwand – Handwerker(innen), Genehmigungen, monatelanges Chaos und Kosten, die außer Kontrolle geraten können.
Also flickst du alles und hoffst auf das Beste. Das ist nicht ideal, aber es funktioniert – vorerst. So ähnlich ist es auch mit Legacy-Code. Es ist die vertraute, „funktionierende“ Lösung, auch wenn sie klapprig und ineffizient ist. Den Code von Grund auf neu zu schreiben, ist eine gewaltige Herausforderung mit eigenen Risiken und Kosten. Und wer hat schon Zeit für eine umfassende Überarbeitung, wenn neue Funktionen zu entwickeln und dringende Bugs zu beheben sind?
Wenn es darum geht, Code zu aktualisieren, entscheiden sich viele Unternehmen dafür, ihren Legacy-Code beizubehalten, weil die Instandhaltung auf kurze Sicht weniger Unterbrechungen mit sich bringen kann. Die Aktualisierung des Codes ist mit viel Entwicklungs- und Testarbeit verbunden. Außerdem muss das Team geschult werden, um sicherzustellen, dass es mit der veralteten Programmiersprache oder dem veralteten Framework arbeiten kann. Wenn es keine Dokumentation gibt, kann es sogar noch schwieriger sein, sich zurechtzufinden.
Was ist das Problem mit Legacy-Code?
Wenn sich dein Unternehmen dazu entschließt, den alten Code beizubehalten – und das tun viele –, riskierst du damit eine ganze Reihe von Problemen. Da dieser Code nicht für neuere Technologien entwickelt wurde, kannst du ihn möglicherweise nicht mit der neuesten und besten Software (z. B. KI-Tools) integrieren, was sich auch auf die Leistung und Skalierbarkeit deiner Produkte auswirken kann. Das kann dich zurückwerfen und die Kundenerfahrung beeinträchtigen.
Das Schlimmste an Legacy-Code, egal ob er vor fünf oder vor 50 Jahren geschrieben wurde, ist, dass es möglicherweise keine Sicherheitsscanner gibt, die diesen Code überprüfen können. Das bedeutet, dass du Probleme bei der Aktualisierung nicht selbst erkennen kannst. Außerdem verstehen die Entwickler(innen), die diese Aktualisierungen vornehmen, die Programmiersprache oder ihre Struktur möglicherweise nicht ausreichend und könnten dabei sogar versehentlich Sicherheitslücken erzeugen. Und schließlich sind ältere Anwendungen häufig in C oder C++ geschrieben, also in speicherunsicheren Sprachen, in denen sich nachweislich 70 % der identifizierten Sicherheitslücken befinden.
Diese drei Punkte – die Tatsache, dass es möglicherweise keine Möglichkeit gibt, Legacy-Code zu schützen, dass es weniger Methoden gibt, ihn sicher zu aktualisieren, und dass das Endergebnis viel wahrscheinlicher angreifbar ist – sollten Warnsignale für Unternehmen aller Branchen sein.
Die US-Behörde für Cybersicherheit und Infrastruktursicherheit (U.S. Cybersecurity and Infrastructure Security Agency) hat einen Katalog von schlechten Praktiken erstellt, die wichtige Infrastrukturen in Gefahr bringen können:
„Die Verwendung von nicht unterstützter (oder veralteter) Software im Dienst von kritischen Infrastrukturen und staatlichen kritischen Funktionen ist gefährlich und erhöht das Risiko für die nationale Sicherheit, die nationale wirtschaftliche Sicherheit und die landesweite öffentliche Gesundheit und Sicherheit erheblich. Diese gefährliche Praxis ist besonders gravierend bei Technologien, die über das Internet zugänglich sind.“
Auch wenn du nicht im Bereich der nationalen Sicherheit oder im Bereich der nationalen öffentlichen Gesundheit und Sicherheit arbeitest, gilt diese Warnung dennoch: Die Verwendung von altem Code ist keine bewährte Methode. Es ist eine schlechte.
Die Lösung: Code-Refactoring
Der Softwareentwickler und Autor Martin Fowler sagt: „Refactoring ist eine kontrollierte Technik zur Verbesserung des Designs einer bestehenden Codebase, eine systematische Technik zur Umstrukturierung von bestehendem Code, bei der die interne Struktur verändert wird, ohne das externe Verhalten zu ändern.“
Mit anderen Worten: Mit Code-Refactoring kannst du deinen Legacy-Code schützen und modernisieren, ohne seine ursprüngliche Funktionalität zu beeinträchtigen.
Es gibt viele Refactoring-Techniken – vom Inline-Refactoring, bei dem der Code durch das Entfernen veralteter Elemente vereinfacht wird, bis zum Refactoring durch Abstraktion, bei dem doppelter Code gelöscht wird. Es ist wichtig zu wissen, dass Code-Refactoring Zeit und umfangreiche Kenntnisse in der Entwicklung erfordert, damit es gut funktioniert. Außerdem sind viele Tests erforderlich, während die Entwickler(innen) bereits mit anderen Aufgaben beschäftigt sind.
Code-Refactoring ist zwar die Lösung, um deinen Legacy-Code zukunftsfähig, lesbar, effizient und sicher zu machen, aber es ist ein Projekt für sich, vor allem im großen Maßstab.
Wie KI helfen kann
Wir wissen, dass KI den Lebenszyklus der Softwareentwicklung bereits beschleunigt – und es gibt eine Menge, was KI tun kann, um auch den Refactoring-Prozess zu beschleunigen. Tools wie GitLab Duo können zum Beispiel dabei helfen, bestehenden Code zu erklären und neuen Code zu erstellen – zwei der größten Hürden bei der Modernisierung von Legacy-Code. Wenn Entwickler(innen) mit einer Programmiersprache nicht vertraut sind, kann KI helfen, die Lücken zu füllen. In Bezug auf Tests und Sicherheit kann KI auch Ursachen analysieren, Tests generieren und Entwickler(innen) helfen, Sicherheitslücken zu beheben. Mit KI im Toolkit wird Code-Refactoring endlich zugänglicher und für Unternehmen realisierbar, sodass sie dieses Projekt endgültig aus ihrem Backlog streichen können.
Laut unserer Studie nutzen 34 % aller Befragten, die KI im gesamten Lebenszyklus der Softwareentwicklung einsetzen, KI bereits zur Modernisierung von Legacy-Code. In der Finanzdienstleistungsbranche ist dieser Anteil sogar noch höher (46 %).
Natürlich gibt es ein paar Dinge zu beachten, wenn du mit der Implementierung von KI in deiner Praxis beginnst.
KI ist nicht perfekt. Sie muss immer noch getestet, mit Leitlinien versehen und von Menschen beaufsichtigt werden. KI kann zwar einige dieser wichtigen, zeitaufwändigen manuellen Aufgaben erleichtern und beschleunigen, aber sie kann diese Arbeit nicht allein erledigen. Vor allem im Hinblick auf die Sicherheit solltest du andere Tools einsetzen, um deinen Code so sicher wie möglich zu machen. Du solltest eine dynamische Software-Stückliste (auch SBOM genannt) erstellen, damit du einen vollständigen Überblick über die Lizenz- und Sicherheitsrisiken deiner Software hast, einschließlich des eventuell vorhandenen Legacy-Codes.
Mach deine Codebase zukunftssicher
Der Sprung von der Wartung der Legacy-Codebase zur Modernisierung mag sich zwar beängstigend anfühlen, ist aber der beste Weg, wenn du die Sicherheit deines Unternehmens und deiner Benutzerdaten gewährleisten willst. Mit den richtigen Tools und Methoden kann er für deine Teams effizienter und für dein Unternehmen kostengünstiger sein.
Die gute Nachricht ist, dass deine Teams keine Zeit und Ressourcen darauf verwenden müssen, alte Programmiersprachen zu entschlüsseln und mit alten Frameworks zu arbeiten – was zu Frustration, Verzögerungen und Engpässen führt. Indem du der KI die harte Arbeit des Code-Refactorings überlässt, damit er sicher ist und so funktioniert, wie er sollte, können sich die Entwickler(innen) auf das konzentrieren, was sie am besten können: neue Produkte und Funktionen entwickeln und den Wert für die Kund(inn)en steigern.
Nächste Schritte
Source Lp How A Devsecops Platform Drives Business Success The Complete Guide
Jetzt herunterladenFrequently asked questions
Wichtigste Erkenntnisse
- Legacy-Code ist teuer und zeitaufwändig in der Wartung und kann, wenn er nicht mit den neuesten Sicherheitstools kompatibel ist, zu einer ernsthaften Belastung für Unternehmen aller Branchen werden.
- Code-Refactoring ist eine Strategie, die dazu beitragen kann, den Code lesbarer zu machen und so die Stabilität der Codebase sowie die Produktivität und Effizienz der Entwickler(innen) zu verbessern.
- Zusammen mit präventiven Sicherheitstools kann KI-gestütztes Code-Refactoring Teams dabei helfen, ihren Legacy-Code zu modernisieren und gleichzeitig das Risiko von Sicherheitslücken zu verringern.