
Eine Überprüfung von WhiteSource ergab, welche der Programmiersprachen die größten Sicherheitslücken aufweisen. Der Gewinner des Anti-Ratings ist C. Dies ist jedoch nur der Anfang der Geschichte.
Die gesamte Technologie steckt voller Sicherheitslücken. Auf einer niedrigen Ebene sind dies Hardwarefehler. So war es auch mit Intel-Schwachstellen und Spectre-Fehlern. Etwas höher sind Lücken in der Sicherheit von Programmiersprachen. Und es gibt viele von ihnen!
Vor kurzem hat OpenSource WhiteSource, ein Sicherheitsunternehmen, in den letzten zehn Jahren Schwachstellenforschung in sieben der gängigsten Programmiersprachen durchgeführt. Das Unternehmen verwendete seine Sprachsicherheitsdatenbank, um Fehler zu erkennen. Es enthält Open Source-Schwachstellen aus verschiedenen Quellen, z. B. die National Vulnerability Database (NVD), Sicherheitsanweisungen, GitHub'a-Tracker und Open Source-Projekte.
Das Unternehmen identifizierte die folgenden Sprachen: C, Java, JavaScript, Python, Ruby, PHP und C ++. Und das ist nicht überraschend. Zum Beispiel, welche Sprache die meisten Sicherheitsfehler aufweist. Mit großem Abstand ist dies X. Mehr als 50% der erkannten Sicherheitslücken befanden sich darin.
Wie Kees "Case" Cook, ein Linux Linux-Kernel-Sicherheitsingenieur bei Google, kürzlich feststellte: "C ist ein verbesserter Assembler. Fast ein Maschinencode. " Darüber hinaus „trägt C störendes Gepäck, vages Verhalten und andere Schwachstellen, die zu Sicherheitslücken und Sicherheitslücken in der Infrastruktur führen.“
WhiteSource behauptet jedoch: „Man kann nicht sagen, dass C weniger sicher ist als andere Sprachen. Eine große Anzahl von Schwachstellen im Open Source C-Code kann durch eine Reihe von Faktoren erklärt werden. Für den Anfang wurde C länger verwendet als die anderen Sprachen, die wir untersucht haben. Es hat die größte Menge an geschriebenem Code. Es ist auch eine der Sprachen hinter so wichtigen Infrastrukturen wie OpenSSL und dem Linux-Kernel. Diese Kombination aus Volumen und Mittelposition erklärt die große Anzahl bekannter Open-Source-Schwachstellen. “
WhiteSource hat es verstanden. Aber trotz jahrzehntelanger Programmierung und des Umgangs mit C gibt es in dieser Sprache wirklich Möglichkeiten, schreckliche Sicherheitsfehler zu leicht zu machen. Zum Beispiel gibt es in C eine große Anzahl von Beispielen für undefiniertes Verhalten, das Möglichkeiten für alle Arten von Problemen eröffnet.
Gleichzeitig wurde C ++ in den letzten fünf Jahren für Schwachstellen mit dem höchsten Gefährdungsgrad bekannt. Pufferfehler, die C lange Zeit geplagt haben, werden in C ++ häufig erkannt.
Die Zahlen spiegeln nicht das ganze Bild wider, wenn wir darüber sprechen, welche Sprache am meisten oder am wenigsten geschützt ist.
(Bild WhiteSource)Davon abgesehen ist JavaScript wahrscheinlich die beliebteste Sprache. Und die einzige, die "einen kontinuierlichen Anstieg der Anzahl von Sicherheitslücken in den letzten 10 Jahren" zeigte.
WhiteSource betont, dass diese Ergebnisse irreführend sind, bevor Sie JavaScript verspotten. Der größte Teil der allgemeinen Schwachstellenaufzählung in JavaScript besteht aus Exits aus dem angegebenen Verzeichnis und Lücken im kryptografischen Schutz von JavaScript-Paketen, die kaum verwendet und unterstützt werden.
Warum sind dann diese und andere Sprachprobleme in Sicht? Neue automatisierte Programme wie Source Code Analysis Tools entdecken Schwachstellen, die sonst übersehen würden.
Die einzige Sprache, die sich in Bezug auf Sicherheitslücken bewährt hat, ist (Drum Roll!) - Python. Ja, guter alter, oft verspotteter Python.
Fast alle Sprachen tragen zur allgemeinen Sicherheitslücke bei. Zwei Fehler aus der Liste waren führend und wurden in 70% der Fälle gemeldet: Crossite Scripting (XSS), auch bekannt als CWE-79, und Inadequate Input Validation (CWE-20).
Andere häufige Fehler: Leck / Offenlegung (CWE-200), Verzeichnis außerhalb der Grenzen (CWE-22) und CWE-264 - Berechtigungen, Berechtigungen und Zugriffskontrollen. Letzteres wurde kürzlich durch seinen spezifischeren und engeren Verwandten - Unsachgemäße Zugangskontrolle (CWE-284) - ersetzt.
Aber ist C wirklich das Schlimmste und Python das Beste? WhiteSource ist der Ansicht, dass dies eine zu einfache Schlussfolgerung ist: "Obwohl das Spiel" Meine Programmiersprache ist sicherer als Ihre "definitiv eine unterhaltsame Art ist, Zeit zu verbringen ... scheint die Antwort Ihnen nicht dabei zu helfen, innovativere oder sicherere Software zu erstellen."
Umgekehrt sollten Sie mehr Zeit damit verbringen, "auf dem neuesten Stand der Open Source-Schwachstellen zu bleiben und die Stärken und Schwächen der von Ihnen und Ihrem Team verwendeten Programmiersprache zu verstehen".
Letztendlich kommt es bei der Sicherheit nicht auf Programmiersprachen an, sondern darauf, wie Sie sie verwenden.
→
AKTION: 40% Rabatt auf IaaS für Entwickler.Steven J. Vaughan-Nichols für Linux und Open Source
Originalartikel