CWE ID: 117
Name: Improper Output Neutralization for Logs
Das Produkt konstruiert eine Log-Message aus externen Eingaben, neutralisiert diese jedoch nicht oder neutralisiert sie fehlerhaft, wenn die Message in eine Log-Datei geschrieben wird.
Effektivität: Unknown
Beschreibung: Es ist unerlässlich, eine Output-Encoding zu verwenden und anzugeben, die von der nachgelagerten Komponente, die die Ausgabe verarbeitet, unterstützt wird. Häufig verwendete Encodings sind ISO-8859-1, UTF-7 und UTF-8. Wenn keine Encoding angegeben wird, kann die nachgelagerte Komponente eine andere Encoding wählen, entweder durch Annahme einer Standard-Encoding oder durch automatische Inferenz der verwendeten Encoding, was zu Fehlinterpretationen führen kann. Bei inkonsistenten Encodings kann die nachgelagerte Komponente bestimmte Zeichen oder Byte-Sequenzen fälschlicherweise als spezielle Elemente behandeln, selbst wenn sie in der ursprünglichen Encoding keine Sonderbedeutung haben. Angreifer könnten diese Diskrepanz ausnutzen, um Injection-Angriffe durchzuführen und sogar Schutzmechanismen zu umgehen, die davon ausgehen, dass die nachgelagerte Komponente die gleiche Encoding verwendet.
Effektivität: Unknown
Beschreibung: Eingaben sollten vor der Validierung (CWE-180) in die aktuelle interne Repräsentation der Anwendung dekodiert und kanonisiert werden. Stellen Sie sicher, dass die Anwendung eine Eingabe nicht doppelt dekodiert (CWE-174). Solche Fehler könnten dazu verwendet werden, Allowlist-Validierungsschemata zu umgehen, indem gefährliche Eingaben nach der Prüfung eingeführt werden.
Anwendungen nutzen typischerweise Logdateien, um eine Historie von Ereignissen oder Transaktionen für spätere Überprüfungen, die Erfassung von Statistiken oder das Debugging zu speichern. Je nach Art der Anwendung kann die Überprüfung der Logdateien manuell nach Bedarf erfolgen oder durch ein Tool automatisiert werden, das Logs automatisch nach wichtigen Ereignissen oder Trendinformationen durchsucht.