Sicherheitsarchitektur und -design Flashcards
Was ist der Secure Software Development Lifecycle (SSDLC)?
Ein strukturierter Prozess, der Sicherheitsaspekte in jede Phase der Softwareentwicklung integriert, von der Planung bis zum Betrieb.
Software-Beispiele:
OWASP Dependency-Check (Open Source, prüft auf bekannte Sicherheitslücken in Abhängigkeiten) Veracode (Kommerziell, statische Codeanalyse für sichere Softwareentwicklung) SonarQube (Open Source, überprüft Code auf Schwachstellen)
Praxisbeispiele:
Eine Firma setzt automatisierte Sicherheits-Scans in der CI/CD-Pipeline ein, um Schwachstellen frühzeitig zu erkennen. Entwickler führen Bedrohungsmodellierung durch, bevor sie eine neue API entwickeln. Ein Unternehmen verlangt Sicherheits-Reviews als Teil des Entwicklungsprozesses.
Was sind die Prinzipien des sicheren Systemdesigns?
Prinzipien wie Least Privilege, Defense in Depth, Fail-Secure Defaults helfen, Systeme resilient gegen Angriffe zu machen.
Software-Beispiele:
SELinux (Open Source, Linux-Sicherheitsmodul für Zugriffskontrolle) AppArmor (Open Source, verstärkt den Schutz von Linux-Programmen) AWS Well-Architected Tool (Kommerziell, hilft beim sicheren Cloud-Design)
Praxisbeispiele:
Ein Webserver akzeptiert nur HTTPS-Verbindungen und blockiert unsichere Anfragen. Ein Unternehmen setzt mehrere Sicherheitsmechanismen (z. B. Firewall, IDS/IPS) ein, um verschiedene Angriffsebenen zu schützen. Ein Systemdesign erlaubt es nur autorisierten Admins, sensible Konfigurationsdateien zu ändern.
Was ist Kryptografie?
Kryptografie schützt Informationen durch mathematische Verfahren wie Verschlüsselung, Signaturen und Hashing.
Software-Beispiele:
OpenSSL (Open Source, bietet TLS-Verschlüsselung) GnuPG (GPG) (Open Source, für E-Mail- und Datei-Verschlüsselung) HashiCorp Vault (Kommerziell, sichert Geheimnisse und Schlüssel)
Praxisbeispiele:
Eine Bank verschlüsselt Kundendaten mit AES-256, um Datenschutzrichtlinien zu erfüllen. Ein Unternehmen nutzt digitale Signaturen, um sicherzustellen, dass E-Mails nicht manipuliert wurden. Ein Online-Shop speichert Passwörter nur als gehashte Werte mit Salt, um Brute-Force-Angriffe zu erschweren.
Was ist AES (Advanced Encryption Standard)?
Eine symmetrische Verschlüsselungsmethode, die für ihre hohe Sicherheit und Effizienz bekannt ist.
Software-Beispiele:
OpenSSL (Open Source, verwendet AES für TLS/SSL-Verschlüsselung) BitLocker (Kommerziell, Microsofts Laufwerksverschlüsselung) VeraCrypt (Open Source, Festplattenverschlüsselung mit AES-256)
Praxisbeispiele:
Ein Unternehmen verschlüsselt Festplatten mit AES-256, um Datenverlust bei Diebstahl zu verhindern. Eine VPN-Verbindung nutzt AES-256 zur Absicherung der Kommunikation. Ein Cloud-Speicheranbieter sichert Kundendaten mit AES-256-Verschlüsselung.
Was ist RSA (Rivest-Shamir-Adleman) und wie funktioniert es?
RSA ist ein asymmetrisches Kryptosystem, das für die sichere Datenübertragung genutzt wird. Es verwendet ein Schlüsselpaar: einen öffentlichen Schlüssel zum Verschlüsseln und einen privaten Schlüssel zum Entschlüsseln.
Software-Beispiele:
OpenSSL (Open Source, für RSA-basierte Verschlüsselung) PGP (Pretty Good Privacy) (Open Source, verwendet RSA für sichere Kommunikation) AWS KMS (Kommerziell, bietet RSA-basierte Verschlüsselung für Cloud-Daten)
Praxisbeispiele:
Eine Organisation nutzt RSA zur sicheren Übertragung von Verschlüsselungsschlüsseln in einer VPN-Verbindung. Ein Online-Banking-Service verwendet RSA zur Absicherung von Transaktionsdaten. Eine E-Commerce-Plattform verwendet RSA-basierte digitale Signaturen, um Transaktionen zu authentifizieren.
Was sind die Grundlagen des Hashing und wofür wird es verwendet?
Hashing ist ein Einweg-Verschlüsselungsprozess, der eine Eingabedatenmenge in eine feste Länge umwandelt, ohne dass die ursprünglichen Daten wiederhergestellt werden können.
Software-Beispiele:
bcrypt (Open Source, für Passwort-Hashing) Argon2 (Open Source, sicherer Hashing-Algorithmus) SHA-3 (Open Source, neuerer Standard für Hashing)
Praxisbeispiele:
Ein Online-Shop speichert Passwörter als Hashwerte, um die Sicherheit der Nutzerkonten zu erhöhen. Eine Anwendung verwendet Hashing, um die Integrität von heruntergeladenen Dateien zu überprüfen. Ein Unternehmen nutzt Hashing zur Verifizierung von Software-Patches.
Was ist Public Key Infrastructure (PKI)?
PKI ist ein System, das Public-Key-Kryptografie verwendet, um die Verwaltung von digitalen Zertifikaten und Schlüsseln zu ermöglichen.
Software-Beispiele:
Microsoft Active Directory Certificate Services (Kommerziell, bietet PKI-Management) EJBCA (Open Source, eine PKI-Lösung) DigiCert (Kommerziell, ein Anbieter von SSL/TLS-Zertifikaten)
Praxisbeispiele:
Eine Bank nutzt PKI für die digitale Signatur von Transaktionen und zur Authentifizierung von Nutzern. Ein Unternehmen implementiert PKI für die Verwaltung von VPN-Zugangszertifikaten. Eine Regierungsbehörde verwendet PKI, um sichere E-Mail-Kommunikation zwischen Institutionen zu ermöglichen.
Was ist der Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung?
Symmetrische Verschlüsselung nutzt denselben Schlüssel für Ver- und Entschlüsselung, während asymmetrische Verschlüsselung ein Schlüsselpaar verwendet: einen öffentlichen und einen privaten Schlüssel.
Software-Beispiele:
OpenSSL (Open Source, unterstützt sowohl symmetrische als auch asymmetrische Verschlüsselung) GnuPG (Open Source, verwendet RSA für asymmetrische und AES für symmetrische Verschlüsselung) VeraCrypt (Open Source, nutzt AES für symmetrische Verschlüsselung)
Praxisbeispiele:
Ein Unternehmen nutzt AES für die schnelle Verschlüsselung großer Datenmengen und RSA für die sichere Übertragung des Verschlüsselungsschlüssels. Eine Anwendung nutzt symmetrische Verschlüsselung für die Speicherung von Daten und asymmetrische Verschlüsselung für die sichere Kommunikation mit anderen Systemen. Ein Cloud-Service verwendet symmetrische Verschlüsselung zur Sicherung von Kundendaten und asymmetrische Verschlüsselung für den sicheren Schlüsselaustausch.
Was sind Prinzipien des sicheren Softwaredesigns?
Prinzipien wie modularer Aufbau, minimaler Zugriff und Codeüberprüfungen fördern die Entwicklung sicherer Software.
Software-Beispiele:
GitHub (Kommerziell, bietet Codeüberprüfungs- und Sicherheitsfunktionen) SonarQube (Open Source, hilft bei der Identifizierung von Sicherheitslücken im Code) JFrog Xray (Kommerziell, prüft Abhängigkeiten auf Sicherheitslücken)
Praxisbeispiele:
Ein Softwareentwickler prüft alle Änderungen am Code auf Sicherheitslücken, bevor sie in die Produktion gehen. Ein Unternehmen trennt sensible Funktionen in isolierte Module, um die Angriffsfläche zu minimieren. Eine Anwendung verwendet Sicherheitsarchitekturen wie Zero Trust, um den Zugriff auf sensible Daten zu steuern.
Wie implementiert man ein sicheres Benutzer-Authentifizierungssystem?
Ein sicheres Authentifizierungssystem verwendet starke Passwörter, Multi-Faktor-Authentifizierung und sichere Passwortspeicherung.
Software-Beispiele:
Okta (Kommerziell, bietet sichere Authentifizierung und Single Sign-On) Auth0 (Kommerziell, bietet Authentifizierungslösungen und API-Schutz) Keycloak (Open Source, identitätsbasierte Sicherheitslösung)
Praxisbeispiele:
Ein Unternehmen implementiert Multi-Faktor-Authentifizierung (MFA) für den Zugang zu sensiblen Systemen. Eine Webanwendung speichert Passwörter mit Hashing-Algorithmen wie bcrypt. Ein Online-Dienst verwendet OAuth2, um Benutzerauthentifizierung und -autorisierung zu steuern.
Was ist eine Bedrohungsmodellierung und warum ist sie wichtig?
Bedrohungsmodellierung hilft, potenzielle Sicherheitsrisiken in einem System zu identifizieren und entsprechende Schutzmaßnahmen zu ergreifen.
Software-Beispiele:
Microsoft Threat Modeling Tool (Kommerziell, bietet Werkzeuge zur Bedrohungsmodellierung) ThreatModeler (Kommerziell, automatisierte Bedrohungsmodellierung) OWASP Threat Dragon (Open Source, ein Tool zur Bedrohungsmodellierung)
Praxisbeispiele:
Entwickler erstellen ein Bedrohungsmodell für eine neue Webanwendung, um mögliche Sicherheitslücken zu erkennen. Ein Unternehmen führt regelmäßig Bedrohungsmodellierungen durch, um neue Angriffsvektoren zu identifizieren. Ein Team verwendet die Bedrohungsmodellierung, um sicherzustellen, dass ein neues System sicher in die bestehende Infrastruktur integriert wird.
Was sind sichere Entwicklungspraktiken und wie unterstützt der Secure Software Development Lifecycle (SSDLC) diese?
Sichere Entwicklungspraktiken beinhalten Codeüberprüfungen, sichere APIs und kontinuierliche Sicherheitsprüfungen. SSDLC integriert diese Praktiken in jede Phase der Entwicklung.
Software-Beispiele:
Checkmarx (Kommerziell, bietet statische Codeanalyse zur Sicherheitsprüfung) Fortify (Kommerziell, für Sicherheitsanalyse während der Softwareentwicklung) Snyk (Kommerziell, analysiert Code und Abhängigkeiten auf Schwachstellen)
Praxisbeispiele:
Ein Unternehmen führt regelmäßige Sicherheitsprüfungen des Codes durch, um Sicherheitslücken zu identifizieren. Entwickler nutzen automatisierte Sicherheitstools in der CI/CD-Pipeline, um Schwachstellen im Code frühzeitig zu erkennen. Ein Team setzt Peer-Reviews ein, um den Code auf Sicherheitslücken und Best Practices zu überprüfen.
Was ist “Security by Design” und warum ist es wichtig?
Security by Design bedeutet, Sicherheitsaspekte von Anfang an in den Entwicklungsprozess zu integrieren, anstatt sie später hinzuzufügen.
Software-Beispiele:
OWASP ZAP (Open Source, ein Tool zur Sicherheitsprüfung von Webanwendungen) Veracode (Kommerziell, bietet Sicherheitsbewertungen während der Entwicklung) AppScan (Kommerziell, für die Sicherheitsanalyse von Anwendungen)
Praxisbeispiele:
Ein Unternehmen nutzt verschlüsselte Kommunikationsprotokolle und sichere Authentifizierungsverfahren von Beginn an. Ein Entwicklerteam stellt sicher, dass alle Anwendungen die Prinzipien der sicheren Softwareentwicklung berücksichtigen. Ein Softwarearchitekt entwirft Systeme mit mehreren Sicherheitsmechanismen, um Angriffe zu erschweren.
Was ist eine Sicherheitsrichtlinie und wie wird sie implementiert?
Eine Sicherheitsrichtlinie legt fest, wie Sicherheitsmaßnahmen in einem Unternehmen durchgeführt und durchgesetzt werden, um Risiken zu minimieren.
Software-Beispiele:
RSA SecurID (Kommerziell, für die Umsetzung von Sicherheitsrichtlinien in Unternehmen) Centrify (Kommerziell, zur Verwaltung von Zugangskontrollen) OpenDXL (Open Source, zur Orchestrierung von Sicherheitsrichtlinien)
Praxisbeispiele:
Ein Unternehmen entwickelt eine Richtlinie für die Nutzung von Passwörtern und Multi-Faktor-Authentifizierung. Eine Organisation implementiert eine Sicherheitsrichtlinie, die den sicheren Umgang mit Unternehmensdaten vorschreibt. Ein Team erstellt Richtlinien zur sicheren Nutzung von Cloud-Ressourcen und zur Implementierung von Zugriffskontrollen.
Wie schützt man ein System vor Cross-Site Scripting (XSS)?
XSS wird durch die unkontrollierte Eingabe von Daten in eine Webanwendung ermöglicht. Schutzmaßnahmen umfassen Input-Validierung und das Escaping von Benutzereingaben.
Software-Beispiele:
OWASP ZAP (Open Source, zur Erkennung von XSS-Schwachstellen) Burp Suite (Kommerziell, bietet Tools zur Sicherheitsanalyse, einschließlich XSS) Content Security Policy (CSP) (Open Source, schützt vor XSS-Angriffen)
Praxisbeispiele:
Eine Webanwendung filtert und validiert alle Benutzereingaben, um XSS-Angriffe zu verhindern. Ein Unternehmen verwendet CSP, um die Ausführung von schadhafter JavaScript in seinen Webanwendungen zu verhindern. Entwickler setzen sichere Codierungspraktiken wie Output-Encoding ein, um XSS-Risiken zu minimieren.
Was ist eine SQL-Injection und wie kann man sich davor schützen?
SQL-Injection tritt auf, wenn Angreifer schadhafter SQL-Code in eine Datenbankanfrage einschleusen. Schutzmaßnahmen umfassen Prepared Statements und ORM-Frameworks.
Software-Beispiele:
SQLMap (Open Source, ein Tool zum Testen auf SQL-Injections) MySQL Enterprise Firewall (Kommerziell, schützt vor SQL-Injections) Microsoft SQL Server (Kommerziell, unterstützt Prepared Statements und Parameterbindung)
Praxisbeispiele:
Entwickler verwenden Prepared Statements, um SQL-Injections zu verhindern. Eine Webanwendung nutzt ein ORM wie Django, um Datenbankabfragen sicher zu generieren. Eine Anwendung validiert alle Benutzereingaben, bevor sie sie in SQL-Abfragen verwendet.
Was ist die Rolle von Firewalls im Sicherheitsdesign?
Firewalls kontrollieren den Datenverkehr zwischen Netzwerken und verhindern unautorisierten Zugriff auf interne Systeme.
Software-Beispiele:
pfSense (Open Source, bietet eine Firewall-Lösung für Netzwerke) Cisco ASA (Kommerziell, ein Firewall-Produkt für Unternehmen) AWS Network Firewall (Kommerziell, schützt Netzwerke in der Cloud)
Praxisbeispiele:
Ein Unternehmen setzt Firewalls ein, um den Zugang zu sensiblen Daten von außen zu blockieren. Ein Team konfiguriert Firewalls so, dass nur autorisierte IP-Adressen auf bestimmte Dienste zugreifen können. Eine Organisation nutzt Cloud-basierte Firewalls, um ihre Infrastruktur vor externen Bedrohungen zu schützen.
Was ist eine Zero-Trust-Architektur?
Zero Trust basiert auf der Annahme, dass keine Entität innerhalb oder außerhalb des Netzwerks vertrauenswürdig ist, und verlangt kontinuierliche Authentifizierung und Autorisierung.
Software-Beispiele:
Zscaler (Kommerziell, bietet Zero-Trust-Sicherheitslösungen) Palo Alto Networks Prisma (Kommerziell, Zero-Trust-Sicherheitsplattform) Google BeyondCorp (Kommerziell, Implementierung von Zero Trust für Unternehmen)
Praxisbeispiele:
Ein Unternehmen implementiert Zero Trust, indem es sicherstellt, dass alle Benutzer und Geräte kontinuierlich authentifiziert werden. Eine Organisation nutzt Multi-Faktor-Authentifizierung (MFA) als Teil der Zero-Trust-Architektur. Eine Bank setzt Zero Trust um, indem sie den Zugriff auf ihre Systeme strikt nach dem Prinzip der minimalen Berechtigungen gewährt.
Wie schützt man Daten im Ruhezustand?
Daten im Ruhezustand können durch Verschlüsselung, Zugriffskontrollen und sichere Speicherlösungen geschützt werden.
Software-Beispiele:
BitLocker (Kommerziell, verschlüsselt Daten auf Festplatten) VeraCrypt (Open Source, verschlüsselt Festplatten und Partitionen) Amazon S3 (Kommerziell, bietet Verschlüsselung für gespeicherte Daten)
Praxisbeispiele:
Ein Unternehmen verschlüsselt alle Festplatten mit AES-256, um Daten im Falle eines Diebstahls zu schützen. Eine Organisation verwendet sichere Cloud-Dienste, die automatische Verschlüsselung für gespeicherte Daten bieten. Ein Unternehmen setzt Zugriffskontrollen ein, um sicherzustellen, dass nur berechtigte Personen auf verschlüsselte Daten zugreifen können.
Wie schützt man APIs vor Angriffen?
APIs können durch Authentifizierung, Autorisierung, Input-Validierung und Rate-Limiting geschützt werden.
Software-Beispiele:
API Gateway (Kommerziell, schützt APIs durch Authentifizierung und Rate-Limiting) Kong (Open Source, API-Management-Tool) OAuth 2.0 (Open Source, für sicheres API-Management)
Praxisbeispiele:
Ein Unternehmen implementiert OAuth 2.0, um APIs sicher zu authentifizieren. Eine Anwendung setzt Rate-Limiting und API-Schlüssel ein, um Missbrauch zu verhindern. Eine API validiert alle Benutzereingaben, um sicherzustellen, dass sie keine SQL-Injections oder XSS-Angriffe ermöglichen.