10.07.2021
Code-Sicherheit
Probleme mit der Code-Sicherheit vermeiden
Autor: Bernhard Lauer
![](/img/1/5/8/2/5/7/0/0101_w320_h200.jpg)
![](/img/1/5/8/2/5/7/0/0101_w480_h300.jpg)
![](/img/1/5/8/2/5/7/0/0101_w640_h400.jpg)
veracode.com
Der Online-Dienst Jaxenter.com hat vier häufige Probleme bei der Software-Sicherheit untersucht und gibt Hinweise darauf, wie man sie vermeiden kann.
Der Prozess der Verwaltung und Wartung sicherer Software kann unerwartete Hürden für Entwickler darstellen, die versuchen, Funktionen so schnell wie möglich zu liefern. Untersuchungen zeigen, dass 59 Prozent der Unternehmen heute mehrmals täglich, einmal täglich oder einmal alle paar Tage Code bereitstellen. Da Software jedoch zum Rückgrat moderner Unternehmen geworden ist, sind Cyberattacken zu einer allgegenwärtigen Bedrohung geworden, die Anwendungssicherheit zu einer kritischen Notwendigkeit macht, um die Geschäftskontinuität zu gewährleisten.
1. Sicherheitslücken beheben dauert zu lange
Eine der häufigsten Herausforderungen sowohl für Entwickler als auch für Sicherheitsteams sind Sicherheitsschulden. Um zu vermeiden, dass sie zu den Sicherheitsschulden beitragen, können Entwickler automatisiertes Scannen und Testen implementieren. Je mehr Automatisierung, desto besser: Der "State of Software Security (SoSS) Report" hat herausgefunden, dass Unternehmen, die dynamische Analyse (DAST) mit statischer Analyse (SAST) kombinieren, die Hälfte ihrer Sicherheitslücken deutlich schneller beheben – im Schnitt um 24,5 Tage schneller.
Eine weitere Möglichkeit, neue Schwachstellen schneller zu finden und zu beheben, besteht darin, häufiger zu scannen. Zudem kann eine gleichmäßige Scan-Kadenz dem Team helfen, sinnvolle Veränderungen im Anteil der Fehlertypen zu sehen und die Sicherheitsschulden im Laufe der Zeit zu reduzieren.
2. Gängige Code-Sicherheitslücken verstehen
Dieselben vier Schwachstellen tauchen Jahr für Jahr in den Top 10 des Sicherheitsberichts auf, was auf eine Lücke im Bewusstsein und in der Ausbildung der Entwickler hinweist. In der Tat ist das Sicherheitstraining für Entwickler möglicherweise die größte Herausforderung von allen. Nicht nur, dass sicheres Coding nicht regelmäßig an der Universität gelehrt wird, auch Training on the job ist schwer zu bekommen, da der Großteil der Anwendungssicherheit beim Sicherheitsteam liegt. Um Entwickler in die Lage zu versetzen, Schwachstellen im Code zu verhindern, zu finden und zu beheben, müssen Unternehmen umsetzbare, praxisnahe Schulungen anbieten, die Entwickler sofort anwenden können, um das Gelernte zu festigen und es zu einem Teil ihrer täglichen Routine zu machen.
3. Abhängigkeit von Open-Source-Bibliotheken
Open-Source-Code ist fast überall im Einsatz. Und wenn man bedenkt, dass viele Open-Source-Bibliotheken nicht direkt von den Entwicklern ausgewählt werden – 46,6 Prozent der unsicheren Open-Source-Bibliotheken in Anwendungen werden von einer anderen verwendeten Bibliothek in die Anwendung eingebracht – ist es leicht zu verstehen, wie Open-Source-Code die Angriffsfläche innerhalb von Anwendungen vergrößert. Die Integration eines Scan-Tools wie Software Composition Analysis (SCA) kann helfen, Open-Source-Schwachstellen mit größerer Genauigkeit zu erkennen. Und da 74 Prozent der Open-Source-Schwachstellen mit einem Patch, einer Revision oder einem Major/Minor-Versions-Update behoben werden können, ermöglicht dieser Prozess eine effiziente Schadensbegrenzung.
4. Fehler mit hohem und sehr hohem Schweregrad
Unabhängig davon, welche Sprache Sie bevorzugen, hilft Ihnen das Verständnis der Fehler, die sie am meisten betreffen. Untersuchungen haben gezeigt, dass
- Fast 60 Prozent der C++-Anwendungen Fehler mit hohem und sehr hohem Schweregrad aufweisen; zu den häufigsten Fehlern gehören Fehler bei der Fehlerbehandlung, Fehler bei der Pufferverwaltung, numerische Fehler und Fehler bei der Umgehung von Verzeichnissen.
- 52,6 Prozent der PHP-Anwendungen weisen Fehler mit hohem und sehr hohem Schweregrad auf; zu den am häufigsten gefundenen Fehlern gehören Cross-Site-Scripting (XSS), kryptografische Probleme, Fehler beim Directory Traversal und Schwachstellen durch Informationsabfluss.
- Java leidet unter CRLF-Injection-Fehlern, Code-Qualitätsproblemen, Informationslecks und kryptografischen Problemen. Java-Anwendungen bestehen zu 97 Prozent aus Drittanbieter-Code und bergen ein größeres, nicht sichtbares Risiko.
Durch die Untersuchung der Fehlerhäufigkeitstrends in verschiedenen gängigen Sprachen haben Entwickler ein besseres Verständnis für die alltäglichen Risiken, denen sie beim Programmieren ausgesetzt sind, und können dieses Wissen nutzen, um diesen Fehlern zuvorzukommen, bevor sie zu einem Problem werden. Die Implementierung von sicheren Kodierungspraktiken und die Nutzung von praktischen Schulungen zur Erweiterung des Know-hows tragen dazu bei, dass die Sicherheit von Anwendungen mit den modernen Entwicklungsanforderungen Schritt halten kann. Wenn Entwickler in die Lage versetzt werden, Fehler in ihrem Code nicht nur zu finden, sondern auch zu beheben, sind sie auf dem besten Weg, sicherheitsbewusste Entwickler zu werden.
Den kompletten englischsprachigen Artikel zum Thema finden Sie hier.
Übernahme
Mimecast baut Human Risk Management-Plattform mit Kauf von Code42 und Aware aus
Mimecast Limited (Mimecast) übernimmt Code42 und Aware. Code42 bietet Lösungen zum Management von Insider-Bedrohungen und Datenverlusten (Data Loss Protection, DLP). Aware ist eine KI-Sicherheitsplattform für Collaboration Tools.
>>
Technische Schuld
Gutes vs. Schlechtes Refactoring - wie man die richtige Entscheidung trifft
Refactoring ist ein wesentlicher Bestandteil der Softwareentwicklung, aber nicht jedes Refactoring bringt Verbesserungen mit sich. Ein Artikel erläutert die häufigsten Fehler und wie man sie vermeidet.
>>
KI für Musikempfehlungen
Transformer-Modelle revolutionieren Musikempfehlungssysteme
Eine neue Methode nutzt Transformer-Architekturen zur Verbesserung von Musikempfehlungen, indem sie das Nutzerverhalten in verschiedenen Kontexten besser versteht.
>>
Verteilte Anwendungen
Dockerfiles in .NET Aspire
Microsoft hat neue Möglichkeiten zur Integration von Dockerfiles in .NET-Aspire-Anwendungen vorgestellt. Sie sollen das Build-Management deutlich flexibler gestalten.
>>