Suchen

Secure Coding im Open-Source-Umfeld etablieren

| Autor / Redakteur: Boris Cipot * / Stephan Augsten

Sichere Software-Entwicklung ist nicht einfach nur eine Maßgabe, denn sicheres Programmieren muss man lernen. Gerade bei Open-Source-Komponenten kann es aber zu Fehlern kommen, denn in diesen Projekten hat nicht jeder das Secure Coding von der Pike auf gelernt.

Firmen zum Thema

Secure Coding lernt man nicht – oder nur selten – im Selbststudium, die Grundlagen müssen von Experten vermittelt werden.
Secure Coding lernt man nicht – oder nur selten – im Selbststudium, die Grundlagen müssen von Experten vermittelt werden.
(Bild: Christina Morillo / Pexels )

Open Source Software (OSS) wird von Communities entwickelt, die ihr Wissen und ihre Zeit in Projekte einbringen, die ihnen persönlich zusagen. Der Code darf anschließend von Einzelnen, Communities oder sogar Unternehmen in deren Produkten verwendet werden. Die einzige Verpflichtung ist es, sich an die Lizenzregeln zu halten, unter denen der Code ursprünglich veröffentlicht wurde.

Diese Art des Wissensaustauschs bringt den Anwendern einer Open Source Software einige Vorteile, denn sie beschleunigt die Entwicklungszeit. Das trägt unter anderem dazu bei, dass Unternehmen auf dem Markt relevanter und wettbewerbsfähiger sind. Aber es gibt einen Haken. Die Vorteile bringen gleichzeitig gewisse Risiken mit sich, die jeder OSS-Anwender kennen und minimieren sollte.

Ein Risiko liegt, wie schon erwähnt, in der Lizenz, unter der das ursprüngliche OSS-Projekt veröffentlicht wurde. Hält man sich nicht an diese Verpflichtung, kann dies den Verlust geistigen Eigentums oder finanzielle Einbußen zur Folge haben.

Das zweite Risiko liegt in den operativen Auswirkungen der verwendeten OSS auf ein Produkt. Hier müssen wir berücksichtigen, wie aktiv die Community ist, ob sie sich zeitnah um etwaige Probleme kümmert und ob wir die neueste, gepatchte, noch gepflegte Version verwenden. Jedes Risiko dieser Art beeinträchtigt unter Umständen, Freigabemöglichkeiten, Produktqualität und das Vertrauensverhältnis zu den Kunden.

Damit kommen wir zum dritten Risiko, das es beim Open-Source-Einsatz zu beachten gilt: die Sicherheit. Bei OSS handelt es sich oftmals um komplexe Software. Es liegt also im Bereich des Möglichen, dass eine Schwachstelle in den eigenen Quellcode eingebracht wird. Manchmal gelangen solche Sicherheitslücken durch bestehende Abhängigkeiten zwischen dem verwendeten Open Source Code und anderen OSS-Projekten in die eigenen Produkte.

Security hat nicht die höchste Priorität

Andere Schwachstellen werden unabsichtlich durch die Community selbst verursacht. Der Grund dafür ist in der Regel, dass viele Softwareentwickler – ob Profi oder Hobby-Codierer macht dabei übrigens kaum einen Unterschied – bei der Programmierung nicht primär auf Sicherheit achten. Das hat großen Einfluss auf ihre Arbeit und den jeweiligen Beitrag Open-Source-Projekten.

Es ist nicht so, dass Entwickler die Grundsätze sicheren Programmierens absichtlich missachten. Vielmehr ist sicheres Coding eine spezielle Disziplin innerhalb der Softwareentwicklung, die man erst erlernen muss, um nicht versehentlich Schwachstellen zu verursachen. Wir sollten uns bewusst sein, dass viele Entwickler Autodidakten sind, die oft privat mit dem Programmieren in Berührung gekommen sind, an Schulen oder Universitäten weitergebildet wurden und die erlernten Fähigkeiten fortan auch hobbymäßig nutzen – etwa, um zu einem OSS-Projekt beizutragen oder eigene Projekte auf den Weg zu bringen und Ideen zu verfolgen.

Viele Trainingsprogramme, Programmierkurse und Online-Tutorials vermitteln aber nach wie vor nicht einmal die Grundlagen, geschweige denn die tiefgreifenden Kenntnisse des sicheren Codings. Vielerorts fehlt schlicht das Bewusstsein dafür, wie wichtig die Disziplin ist und welche weitreichenden Auswirkungen es haben kann, wenn man sie nicht genügend beachtet.

Die Praxis zeigt, dass es auch zahlreichen Unternehmen schwerfällt, sicherheitsorientierte Programmierung in die Softwareentwicklung einzubinden, nicht nur bei der Nutzung oder eigenen Betreuung von Open-Source-Projekten. Es kommt deshalb häufig vor, dass Unternehmen uns um Hilfe bitten, diese Komponente in ihren Produktentwicklungszyklus zu integrieren. Dabei sind Schulungen ein erster Schritt, um bei Entwicklern für ein stärkeres Sicherheitsbewusstsein zu sorgen und die nötige Akzeptanz zu schaffen.

Tools und Tutorials gehen Hand in Hand

Unternehmen sollten ihrerseits über Mechanismen und Prozesse verfügen, um Schwachstellen aufzudecken, die möglicherweise durch eigene Programmierung oder fehlerhafte Open-Source-Komponenten eingebracht wurden. Werkzeuge zur statischen Code-Analyse und zur Analyse der Software-Zusammensetzung unterstützen Entwickler dabei, potenzielle Risiken in einer Software zu identifizieren.

Am effektivsten verläuft der Lernprozess in Sachen Sicherheitsdenken, wenn diese Tools mit Trainingsplattformen und/oder Beratungsdiensten verbunden sind, die auf Basis des analysierten Codes Schulungen vor Ort durchführen. Gleichzeitig ist es unerlässlich, Fehler frühzeitig im Produktentwicklungszyklus zu entdecken. In letzter Zeit gibt es deshalb verstärkt Bemühungen, Sicherheit von Anfang an mitzudenken und sie sehr viel früher in den Lebenszyklus einer Produktentwicklung einzubeziehen.

Unternehmen und eigenständige Entwickler sollten dabei allerdings nicht außer Acht lassen, dass dieses Sicherheitsdenken nicht beim Programmieren beginnt und endet. Sicherheit sollte in jeder Phase des Entwicklungszyklus, angefangen beim Softwaredesign und der Architektur, berücksichtigt werden. Dieser Prozess endet erst dann, wenn das Produkt sein „End of Life“ erreicht hat.

Alles in allem zeichnet sich aber eine positive Entwicklung ab. Immer mehr Unternehmen investieren in Schulungen für das sichere Codieren einer Software. Das wiederrum hat einen positiven Effekt auf das gesamte Softwareentwicklungs-Ökosystem einschließlich der Open-Source-Welt. In der Praxis ist es tatsächlich so, dass geschulte und sicherheitsbewusste Entwickler ihr Wissen in den Projekten weitergeben, an denen sie aktiv beteiligt sind.

Hierzu gehören dann auch Open-Source-Projekte, Online-Tutorials oder andere Ressourcen, die wiederum ein größeres Publikum erreichen und dazu beitragen, die Entwicklungskompetenz zu verbessern. So wird sich die Qualität von Open Source Software zwangsläufig verbessern und die Risiken für die Firmen, die sie einsetzen, gehen zurück. Im Endeffekt profitieren also alle Beteiligten in diesem Kreislauf.

Sicherheit geht alle an

Die Last der Verantwortung sollte allerdings nicht allein auf den Schultern der Unternehmen ruhen. Schulen, Ausbildungseinrichtungen und selbst Coding-Portale sind gleichermaßen gefragt, den Schwerpunkt auf sicheres Programmieren zu legen statt weiterhin anfällige Verfahren und Methoden in Umlauf zu bringen. Wenn jeder seinen Teil dazu beiträgt, wird das gesamte Ökosystem der Softwareentwicklung davon profitieren. Sicherheit standardmäßig zu integrieren, sorgt für qualitativ hochwertige und gleichzeitig sichere Produkte. Im Gegenzug sinken zukünftig die Kosten für sichere Softwareentwicklung.

Dieser Beitrag stammt von unserem Partnerportal Dev-insider.de.

* Boris Cipot ist Senior Sales Engineer bei Synopsys.

(ID:46367453)