Blog

10 Jahre Passwort Sicherheit

Warum benötigt man mindestens 9 Zeichen um die Passwort Sicherheit zu gewährleisten?

Passwörter werden nicht verschlüsselt sondern es wird ein Hash Wert für ein Passwort erstellt. Der Unterschied zu einer Verschlüsselung liegt daran dass man mit keinem Schlüssel zurück auf das Passwort rechnen kann. Mann kann nur versuchen ein Passwort zu erraten. Dazu gibt es einfache Programme (HashCat, Mimikatz, etc.) die das machen.

Allerdings benötigt man dafür Rechenleistung. Jedes Jahr werden die Rechner immer Schneller. Daher müssen die Sicherheitskriterien immer wieder angepasst werden.

Wieviel Zeit benötigt ein Rechner für das Brute Forcen bzw. erraten eines Passwortes?

Die Zeit für das Brute Forcing ist nicht nur von der Länge, vom Zeichensatz und den eingesetzten Algorithmen und deren Parametern abhängig, sondern auch von der Rechnerkapazität

Daher ist eine genaue Angabe von Zeiten sehr schwierig. 

Die Zeit kann aber über folgende Formel berechnet werden. 

Annahme die GPU kann 100 Millionen Hashes pro Sekunde 

Die Anzahl der Kombinationen beträgt damit: 

104 = 10.000 Kombinationen 

Zeit =

Anzahl der KombinationenHashes pro SekundeAnzahl der KombinationenHashes pro Sekunde

=

10.000100.000.00010.000100.000.000 = 0,0001 Sekunden 

Mit dieser Formel lässt sich somit jede beliebige Zeit anhand der Leistung (Hashes pro Sekunde) und Länge und Zeichensatz (Anzahl der Kombinationen) berechnen. 

Hier wird zuerst eine Mathematische Methode beschrieben, um die theoretische Aussage der Passwort Komplexität zu berechnen.

Es werden 3 Beispiele angeführt. 

10 Jahre entsprechen 315.576.000 Sekunden  

Für eine maximale Zeit von 315.576.000 Sekunden und einer Anzahl von 100.000.000 Hashes pro Sekunde werden also mindestens 3.15576e+16 Kombinationen benötigt (31.557.600.000.000.000). 

Die Länge je Zeichensatz kann durch folgende Formel berechnet werden: 

L = log(Anzahl Zeichen im Zeichensatz)(Zeit) 

Beispiele für verschiedene Passwort Längen in den verschiedenen Zeichensätzen: 

Ziffern 0-9 (10 Zeichen):  
 
L=log(10)(31.557.600.000.000.000) ≈≈ 16 

Groß und Kleinbuchstaben (52 Zeichen):  
 
L=log(52)(31.557.600.000.000.000) ≈≈ 9,4 

Alle Zeichen inkl. Sonderzeichen (95 Zeichen):  
 
L=log(95)(31.557.600.000.000.000) ≈≈ 7,7 

Es wird also je nach Zeichensatz eine Länge von 8 bis 16 Zeichen benötigt, wenn man nach diesen Berechnungen und den Beispielangaben (Hashes pro Sekunde) folgt. 

Allerdings werden von verschiedenen Institutionen andere Empfehlungen herausgegeben die ich wie folgt anführen möchte. 

NIST: 


Die NIST empfiehlt eine Maximale Zeichenlänge von 8 Zeichen (Stand Oktober 2024).
https://pages.nist.gov/800-63-3/sp800-63b.html  

Anmerkung: Diese Zeichenlänge reicht jedoch laut HIVE nicht mehr aus.  

HIVE: 


Fazit für Ihre Passwort Sicherheit:

Es wird eine Zeichenlänge von mindestens 9 Zeichen und ein Zeichensatz von mindestens Groß und Kleinschreibung verlangt, um auf eine Sicherheit von mindestens 10 Jahren zu kommen. 

Einführung in das STRIDE-Model: Ein Framework zur Identifizierung von Sicherheitsbedrohungen

In der heutigen digitalen Welt spielt Cybersicherheit eine immer wichtigere Rolle. Mit der zunehmenden Komplexität von Anwendungen und Netzwerken wird es für Entwickler und Sicherheitsexperten unerlässlich, potenzielle Sicherheitslücken bereits in der Entwurfsphase zu erkennen. Eines der etablierten Frameworks zur Identifizierung von Sicherheitsbedrohungen ist das STRIDE-Modell. In diesem Blogbeitrag möchten wir dir einen Überblick darüber geben, was STRIDE ist, welche Bedrohungen es abdeckt und wie es dir helfen kann, deine Systeme besser zu schützen.

Stride Framework

Was ist das STRIDE-Modell?

  • Tampering (Manipulation)
  • Repudiation (Abstreitbarkeit)
  • Spoofing (Vortäuschung)
  • Information Disclosure (Informationsoffenlegung)
  • Denial of Service (Dienstverweigerung)
  • Elevation of Privilege (Rechteausweitung)

Das STRIDE-Modell ist eine Methode, die von Microsoft entwickelt wurde, um Bedrohungen in Softwaresystemen zu identifizieren und zu klassifizieren. Es ist ein Akronym, das für sechs verschiedene Arten von Sicherheitsbedrohungen steht:

Jede dieser Kategorien repräsentiert eine spezifische Art von Angriff, der auf ein System abzielt. Lassen uns einen genaueren Blick auf die einzelnen Bedrohungskategorien werfen.

Die sechs STRIDE-Bedrohungen im Detail

1. Spoofing (Vortäuschung)

Spoofing bezieht sich auf den Versuch eines Angreifers, sich als eine andere Entität auszugeben. Dies kann durch das Fälschen von Benutzeranmeldeinformationen, IP-Adressen oder anderen Identitäten geschehen. Ein Beispiel ist das Phishing, bei dem ein Angreifer vorgibt, eine vertrauenswürdige Organisation zu sein, um an sensible Informationen zu gelangen.

Mögliche Schutzmaßnahmen:

  • Starke Authentifizierungsmechanismen wie Zwei-Faktor-Authentifizierung
  • Digitale Zertifikate und sichere Identitätsprüfung

2. Tampering (Manipulation)

Manipulation bezeichnet die unerlaubte Veränderung von Daten oder Code. Ein Angreifer könnte beispielsweise die Datenbank eines Unternehmens kompromittieren und deren Inhalte ändern oder schädlichen Code in ein Softwarepaket einschleusen.

Mögliche Schutzmaßnahmen:

  • Integritätsprüfung durch Hashing und Signaturen
  • Verwendung von Verschlüsselung zum Schutz von Daten

3. Repudiation (Abstreitbarkeit)

Repudiation bedeutet, dass ein Benutzer eine Aktion abstreiten kann, die er tatsächlich durchgeführt hat. Wenn ein System nicht in der Lage ist, solche Aktionen zu protokollieren oder nachzuweisen, kann der Benutzer beispielsweise leugnen, dass er eine bestimmte Transaktion ausgeführt hat.

Mögliche Schutzmaßnahmen:
  • Implementierung von Protokollierungs- und Audit-Mechanismen
  • Verwendung von digitalen Signaturen zur Nachweisführung

4. Information Disclosure (Informationsoffenlegung)

Informationsoffenlegung bezieht sich auf das ungewollte Preisgeben von vertraulichen Informationen. Dies kann durch unsichere Kommunikation oder unsachgemäße Handhabung sensibler Daten geschehen. Beispielsweise könnten sensible Benutzerinformationen unverschlüsselt über das Internet übertragen werden.

Mögliche Schutzmaßnahmen:

  • Verschlüsselung von Daten bei der Übertragung und im Ruhezustand
  • Zugriffskontrollen, um sicherzustellen, dass nur autorisierte Personen Zugang zu vertraulichen Informationen haben

5. Denial of Service (Dienstverweigerung)

Denial of Service (DoS)-Angriffe zielen darauf ab, ein System so zu überlasten, dass es legitimen Benutzern nicht mehr zur Verfügung steht. Ein Angreifer könnte etwa eine Website mit einer Flut von Anfragen überhäufen, sodass diese abstürzt oder nicht mehr reagiert.

Mögliche Schutzmaßnahmen:

  • Implementierung von Lastverteilung (Load Balancing) und Anti-DoS-Maßnahmen
  • Überwachung und Begrenzung von Anfragen pro Benutzer

6. Elevation of Privilege (Rechteausweitung)

Rechteausweitung tritt auf, wenn ein Angreifer Zugriff auf ein System erhält und es ihm gelingt, höhere Berechtigungen zu erlangen, als ihm ursprünglich zugewiesen wurden. Dadurch kann der Angreifer kritische Aktionen ausführen, die nur privilegierten Benutzern vorbehalten sind.

Mögliche Schutzmaßnahmen:

  • Strikte Zugangskontrollen und das Prinzip der minimalen Rechtevergabe
  • Regelmäßige Sicherheitsüberprüfungen und Patch-Management

Warum ist das STRIDE-Modell wichtig?

Das STRIDE-Modell hilft Entwicklern und Sicherheitsteams, potenzielle Schwachstellen in einem System bereits in der Planungsphase zu identifizieren. Durch die Kategorisierung von Bedrohungen können sie gezielte Sicherheitsmaßnahmen ergreifen, um diese Bedrohungen zu minimieren. Ein großer Vorteil von STRIDE ist, dass es sich auf verschiedene Arten von Systemen anwenden lässt, egal ob es sich um eine Webanwendung, eine mobile App oder eine Unternehmenssoftware handelt.

Anwendung von STRIDE in der Praxis

Um STRIDE effektiv anzuwenden, empfiehlt es sich, sogenannte Threat Modeling Sessions durchzuführen. In diesen Sitzungen arbeiten Entwickler und Sicherheitsexperten zusammen, um die Architektur eines Systems zu analysieren und mögliche Bedrohungen zu identifizieren. Mithilfe des STRIDE-Modells können sie strukturiert durch den Entwurf des Systems gehen und die notwendigen Sicherheitsvorkehrungen festlegen.

Ein weiteres nützliches Werkzeug in Kombination mit STRIDE ist die Erstellung von Data Flow Diagrams (DFDs). Diese Diagramme zeigen, wie Daten durch das System fließen und wo potenzielle Angriffspunkte liegen könnten. Sobald diese Punkte identifiziert sind, wird jede Bedrohungskategorie des STRIDE-Modells auf die verschiedenen Teile des Systems angewendet.

Fazit

Das STRIDE-Modell ist ein leistungsfähiges Werkzeug, um Sicherheitsbedrohungen in der Softwareentwicklung zu identifizieren und zu klassifizieren. Es bietet eine strukturierte Herangehensweise, um sicherzustellen, dass alle relevanten Bedrohungen berücksichtigt werden und dass geeignete Maßnahmen ergriffen werden, um diese abzumildern. Durch die Anwendung von STRIDE in Kombination mit anderen Sicherheitsmethoden wie der Verschlüsselung und dem Prinzip der minimalen Rechtevergabe kann die Sicherheit moderner Systeme erheblich verbessert werden.

Wenn du ein Entwickler oder Sicherheitsexperte bist, der seine Systeme sicherer machen möchte, ist das STRIDE-Modell ein unverzichtbares Werkzeug in deinem Arsenal.

SBOM: Ein Schlüssel für sichere Softwareentwicklung und -lieferketten

In einer zunehmend digitalisierten Welt spielt Software eine zentrale Rolle in allen Bereichen des Lebens. Mit dieser Abhängigkeit von Software steigen auch die Sicherheitsrisiken. Ein entscheidender Aspekt, um diese Risiken zu minimieren, ist die Transparenz in der Softwarelieferkette. Hier kommt das Software Bill of Materials (SBOM) ins Spiel. In diesem Blogbeitrag werfen wir einen Blick darauf, was eine SBOM ist, warum sie so wichtig ist und wie sie die Sicherheit von Software verbessert.

SBOM Lieferkette

Was ist eine SBOM?

Eine Software Bill of Materials (SBOM) ist im Wesentlichen eine detaillierte Liste aller Komponenten, die in einem Softwareprodukt enthalten sind. Dazu gehören Open-Source- und proprietäre Komponenten, Bibliotheken, Abhängigkeiten, Lizenzen und Versionen. Eine SBOM gibt den Entwicklern, Benutzern und Sicherheitsexperten einen klaren Überblick darüber, was sich genau in der Software befindet und woher die einzelnen Teile stammen.

Ähnlich wie ein herkömmliches Warenverzeichnis bei der Herstellung physischer Produkte, hilft diese, die Herkunft, Version und Lizenz Anforderungen der Softwarebestandteile zu verstehen. Diese Transparenz spielt eine immer wichtigere Rolle in einer Zeit, in der Softwarelieferketten immer komplexer werden und Sicherheitslücken oft in Drittanbieterkomponenten entdeckt werden.

Warum ist eine SBOM wichtig?

Die Bedeutung von SBOMs nimmt in der Cybersicherheit rapide zu, insbesondere aus folgenden Gründen:

  1. Schutz vor Sicherheitslücken: Viele moderne Softwarelösungen bestehen aus einer Vielzahl von Abhängigkeiten und Bibliotheken, oft Open-Source-Komponenten. Da diese regelmäßig aktualisiert und manchmal Schwachstellen entdeckt werden, bietet eine SBOM die Möglichkeit, betroffene Komponenten schnell zu identifizieren und zu patchen.
  2. Transparenz in der Lieferkette: Softwarelieferketten umfassen zahlreiche Anbieter und Technologien. Eine SBOM hilft Unternehmen, einen umfassenden Überblick über die genutzten Softwarekomponenten zu behalten und sicherzustellen, dass keine unsicheren oder nicht unterstützten Bausteine verwendet werden.
  3. Compliance und Lizenzmanagement: Viele Softwareprodukte nutzen Open-Source-Bibliotheken, die unterschiedlichen Lizenzmodellen unterliegen. Mit einer SBOM können Unternehmen sicherstellen, dass sie die Lizenzanforderungen erfüllen, um rechtliche Risiken zu minimieren.
  4. Reaktionsfähigkeit bei Vorfällen: Im Fall eines Cyberangriffs oder einer Schwachstelle können Unternehmen, die eine SBOM nutzen, schnell und gezielt auf betroffene Komponenten reagieren, anstatt eine zeitaufwändige Analyse der gesamten Software durchzuführen.

SBOM in der Praxis: Wie wird sie erstellt und genutzt?

Sie wird oft automatisch mithilfe von speziellen Tools erstellt, die den Code und die Abhängigkeiten analysieren. Zu den gängigen Tools gehören z.B. CycloneDX, Syft und OWASP Dependency-Check. Diese Werkzeuge scannen den Quellcode, sammeln Informationen zu allen verwendeten Bibliotheken und Abhängigkeiten und erstellen daraus eine detaillierte Übersicht, die als SBOM dient.

Sobald die SBOM erstellt wurde, wird sie in verschiedenen Phasen des Softwareentwicklungsprozesses verwendet:

  • Entwicklung: Entwickler nutzen die SBOM, um die Sicherheitslage ihrer Software zu prüfen und Schwachstellen in den Abhängigkeiten zu erkennen.
  • Release-Management: Vor der Veröffentlichung einer Softwareversion kann eine SBOM sicherstellen, dass alle enthaltenen Komponenten auf dem neuesten Stand sind.
  • Security Audits: Sicherheitsprüfer und Compliance-Teams verwenden SBOMs, um die verwendete Software auf Schwachstellen zu überprüfen und Lizenzanforderungen zu validieren.

SBOM und die Zukunft der Cybersicherheit

Die Einführung von SBOMs könnte ein Meilenstein in der Cybersicherheit sein. Behörden wie das US-amerikanische Department of Commerce und die EU fordern bereits Transparenz in Softwarelieferketten und fördern aktiv den Einsatz von SBOMs. In einer Welt, in der Cyberangriffe immer raffinierter werden, können SBOMs dazu beitragen, die Reaktionsfähigkeit und Resilienz von Softwareentwicklern und Unternehmen zu erhöhen.

Fazit

Eine Software Bill of Materials (SBOM) ist nicht nur ein Werkzeug für Entwickler, sondern ein essenzielles Element für die Sicherheitsstrategie von Unternehmen. Sie bietet Transparenz, verbessert die Sicherheit und gewährleistet Compliance in zunehmend komplexen Softwarelieferketten. Die Implementierung in den Entwicklungsprozess ist daher ein wichtiger Schritt, um Softwareprodukte sicherer, transparenter und vertrauenswürdiger zu machen.

Das Thema wird in den kommenden Jahren sicherlich weiter an Bedeutung gewinnen – und Unternehmen, die frühzeitig darauf setzen, werden in der Lage sein, Cyberbedrohungen schneller und effizienter zu begegnen.

Weitere Infos finden Sie unter folgenden Links:

Bei Fragen melde dich über meine Kontakt Seite.