CWE-Referenz › CWE-339: Small Seed Space in PRNG
CWE-339: Small Seed Space in PRNG
CWE ID: 339
Name: Small Seed Space in PRNG
Beschreibung
Ein Pseudo-Random Number Generator (PRNG) verwendet einen relativ kleinen Seed-Space, was ihn anfälliger für Brute-Force-Angriffe macht.
Erweiterte Beschreibung
Sobald ein PRNG mit einem Seed versehen wurde, ist er vollständig deterministisch, was bedeuten sollte, dass es äußerst schwierig sein sollte, den Seed zu erraten. Sollte ein Angreifer die Ausgaben eines PRNG sammeln und anschließend den Seed durch Brute-Force-Methoden erraten, indem er alle Möglichkeiten ausprobiert, um den passenden Seed zu finden, der mit der beobachteten Ausgabe übereinstimmt, dann kennt der Angreifer die Ausgabe aller nachfolgenden Aufrufe des PRNG. Ein kleiner Seed-Space impliziert, dass der Angreifer deutlich weniger mögliche Werte ausprobieren muss, um alle Möglichkeiten zu erschöpfen.
Risikominderungsmaßnahmen
Maßnahme (Architecture and Design)
Effektivität: Unknown
Beschreibung: Verwenden Sie etablierte und gut geprüfte Pseudo-Random Number Generating Algorithmen mit ausreichender Seed-Länge. Pseudo-Random Number Generators können vorhersagbare Zahlen erzeugen, wenn der Generator bekannt ist und der Seed erraten werden kann. Ein 256-Bit Seed ist ein guter Ausgangspunkt, um eine “random enough” Zahl zu generieren.
Maßnahme (Architecture and Design)
Effektivität: Unknown
Beschreibung: Nutzen Sie Produkte oder Module, die den Vorgaben von FIPS 140-2 [REF-267] entsprechen, um offensichtliche Entropieprobleme zu vermeiden, oder verwenden Sie, wenn möglich, die aktuellere Version FIPS 140-3 [REF-1192].
Verwandte Schwachstellen
Ist Ihre IT-Infrastruktur betroffen?
Schwachstellen wie CWE-339: Small Seed Space in PRNG werden von Angreifern gezielt gesucht — meist automatisiert und ohne Rücksicht darauf, wie groß das betroffene Unternehmen ist. Ob eine solche Lücke bei Ihnen tatsächlich offen steht, lässt sich nur durch Prüfung feststellen:
- Schwachstellen-Scan — wiederkehrende Prüfung Ihrer Infrastruktur auf bekannte Lücken wie diese
- Penetrationstest — manuelle Prüfung eigener Software auf Schwachstellen, die kein Werkzeug findet
- Threat Modeling — Schwachstellenklassen im Entwurf vermeiden, statt sie später zu suchen