banner
Nachrichtenzentrum
Sofortige Lieferung

Sicherheits-Think Tank: Um Code effektiv zu sichern, überprüfen Sie ihn bei jedem Schritt

Jun 23, 2023

Maksim Kabakou – Das Beste von Maksim Kabakou

Es ist schon eine ganze Weile her, seit ich mich mit dem Codieren beschäftigt habe, und während ich mich mit der Codierung auf Maschinenebene beschäftigt habe, wurden mir zunächst Algol und Fortran beigebracht, beides Hochsprachen.

In meinen über 20 Jahren in der Informationssicherheit und -sicherung hat das Thema sichere Codierung immer mehr an Bedeutung gewonnen. Viele erfolgreiche Sicherheitsverletzungen sind auf mangelhafte Codierung und Verwaltungsverfahren zurückzuführen, doch die Rolle der Betriebsumgebung und etwaiger Verwaltungsfunktionen im Hintergrund sollten nicht übersehen werden, denn sie können tatsächlich von entscheidender Bedeutung sein.

Ein großer Teil der sicheren Codierung besteht darin, sicherzustellen, dass jede Eingabe in einen Codeabschnitt nur aus einer bekannten – verifizierten – Quelle stammen darf und dass die Eingabe einer strengen Grenz- und Inhaltsprüfung unterzogen wird und, falls die Eingabe nicht konform ist, dann überprüft wird dass die Daten vollständig zerstört werden.

Ebenso sollte die Ausgabe eines Codeabschnitts nur aus dem Code selbst stammen und an bekannte – verifizierte – Ziele gesendet werden und es darf kein Speicher außerhalb des zugewiesenen Bereichs verwendet werden. Der Code selbst sollte nur auf zugewiesene Speicherorte und System-E/A zugreifen und diese nutzen. Verwaltungsfunktionen sollten auch alle temporären Speicherorte nach der Verwendung bereinigen.

Das Betriebssystem, unter dem jeder Code ausgeführt wird, sollte die Speichernutzung zuweisen, überwachen und steuern, um zu verhindern, dass ein Codeabschnitt den Speicher verletzt, der anderen Codeabschnitten zugewiesen ist.

Das Betriebssystem sollte nur die Ausführung von verifiziertem (zertifiziertem oder gekennzeichnetem) Code zulassen, nicht verifizierter Code sollte isoliert, an der Ausführung und an der Ausgabe eines Fehlers gehindert werden.

Es ist zu beachten, dass dies ein mehrstufiger Vorgang sein kann, bei dem Sie beispielsweise über ein Hostsystem und ein Betriebssystem verfügen, auf dem mehrere virtuelle Hosts ausgeführt werden oder mehrere Container unterstützt werden – nicht zu vergessen, dass auch ein virtueller Host ausgeführt werden kann Eine Reihe von Containern sorgen für eine sehr komplexe Umgebung.

Es gibt eine ganze Reihe von Tools zum Testen von Software, Containern und Betriebssystemen auf dem Markt. Wenn Ihr Unternehmen jedoch nicht über eine eigene IT-Abteilung verfügt, die Code entwickelt, pflegt und bereitstellt, werden Sie wahrscheinlich alle erforderlichen Test- und Überprüfungsarbeiten an eine kompetente Agentur auslagern.