CWE ID: 94
Name: Improper Control of Generation of Code (‘Code Injection’)
Das Produkt konstruiert einen oder einen Teil eines Code-Segments unter Verwendung von extern beeinflusstem Input von einer vorgelagerten Komponente, neutralisiert aber keine oder neutralisiert diese fehlerhaft, was zu einer Modifikation der Syntax oder des Verhaltens des beabsichtigten Code-Segments führen kann.
Effektivität: Unknown
Beschreibung: Bitte gib mir den ursprünglichen Code, den du refaktorieren möchtest. Ich benötige den Code, um ihn so umzugestalten, dass keine dynamische Code-Generierung mehr erforderlich ist. Ohne den Code kann ich dir keine konkrete Lösung anbieten.
Effektivität: Unknown
Beschreibung: Nutzen Sie automatisierte statische Analyse-Tools, die auf diese Art von Schwachstellen abzielen. Viele moderne Techniken verwenden Data Flow Analysis, um die Anzahl der False Positives zu minimieren. Dies ist keine perfekte Lösung, da eine 100%ige Genauigkeit und Abdeckung nicht realisierbar sind.
Effektivität: Unknown
Beschreibung: Setzen Sie dynamische Tools und Techniken ein, die mit dem Produkt interagieren und große Testsuiten mit vielfältigen Inputs verwenden, wie beispielsweise Fuzz Testing (Fuzzing), Robustness Testing und Fault Injection. Der Betrieb des Produkts kann sich verlangsamen, aber es sollte nicht instabil werden, abstürzen oder falsche Results generieren.
Effektivität: Unknown
Beschreibung: Führen Sie den Code in einer Umgebung aus, die automatische Taint Propagation durchführt und die Ausführung von Befehlen verhindert, die mit tainted Variablen arbeiten, beispielsweise durch die Verwendung von Perl’s “-T” Switch. Dies zwingt das Programm, Validierungsschritte durchzuführen, um den Taint zu entfernen, wobei jedoch Vorsicht geboten ist, um sicherzustellen, dass gefährliche Inputs nicht versehentlich als untainted markiert werden (siehe CWE-183 und CWE-184).
Effektivität: Unknown
Beschreibung: Führen Sie den Code in einer Umgebung aus, die automatische Taint Propagation durchführt und die Ausführung von Befehlen verhindert, die mit tainted Variablen arbeiten, beispielsweise durch die Verwendung von Perl’s “-T” Switch. Dies zwingt das Programm, Validierungsschritte durchzuführen, um den Taint zu entfernen, wobei jedoch Vorsicht geboten ist, um sicherzustellen, dass gefährliche Inputs nicht versehentlich als untainted markiert werden (siehe CWE-183 und CWE-184).