What is the role of the Security Champion within a development team?
Rolle des Security Champions: Er fungiert als Sicherheitsexperte innerhalb des Teams, der als Multiplikator für Sicherheitswissen dient und die Brücke zwischen dem Team und der Sicherheitsabteilung schlägt. Er ist ein Sparringspartner für das Team, der Argumente für Sicherheitsmaßnahmen liefert und selbst Teil des Entwicklungsteams bleibt.
Why is security important?
Wichtigkeit von Security: Unternehmen sind zunehmend durch Gesetze (z. B. NIS 2, Cyber Resilience Act) und Standards verpflichtet, ihre Produkte zu schützen. Zudem nehmen die Häufigkeit von Angriffen und die Fähigkeiten der Angreifer stetig zu.
Anzahl der Vulnerability steigt immer
What consequences can result if security is not suficiently considered?
Konsequenzen bei Missachtung: Es können finanzielle Schäden bis hin zur Insolvenz, rechtliche Konsequenzen (Gefängnisstrafen), Reputationsschäden sowie Schäden für Kunden und Dritte entstehen.
Why are penetration tests not enough to ensure secure software?
Unzulänglichkeit von Penetrationstests: Tests können nur die Existenz von Fehlern aufzeigen, nicht deren Abwesenheit. Viele Sicherheitsprobleme liegen „unter der Haube“ (Designfehler) und sind von außen durch reine Tests schwer zu finden.
Tests beweisen keine Fehlerfreiheit: Ein Penetrationstest findet zwar Schwachstellen, aber wenn er nichts findet, bedeutet das nicht, dass das System sicher ist. Er kann nur die Existenz von Fehlern aufzeigen, niemals deren Abwesenheit
Probleme „unter der Haube“: Penetrationstests betrachten das System meist von außen (Black Box). Viele kritische Probleme sind jedoch Designfehler, die tief in der Architektur vergraben liegen und von außen kaum sichtbar sind
Später Zeitpunkt: Penetrationstests finden meist erst am Ende des Entwicklungszyklus statt. Sicherheit sollte jedoch von Anfang an („Security by Design“) in jede Phase einfließen, von der Planung bis zum Betrieb
Die 50%-Regel: Schätzungen zeigen, dass Designfehler für etwa 50 % aller Sicherheitsprobleme verantwortlich sind. Solche Mängel lassen sich oft nicht durch reines Testen des fertigen Codes finden, sondern erfordern ein tieferes Verständnis des Systementwurfs
Stell dir das wie bei einem Haus vor: Ein Tester kann prüfen, ob die Tür verschlossen ist, aber er sieht von außen nicht, ob das Fundament morsch ist.
What is the relationship between the terms threat, asset, vulnerability, countermeasure and attack with regard to software security?
Verhältnis der Begriffe: Ein Adversary (Angreifer) führt einen Attack/Exploit über einen Attack Vector aus, um eine Vulnerability (Schwachstelle) eines Assets (Wertes) auszunutzen, was eine Threat (Bedrohung) darstellt. Countermeasures (Gegenmaßnahmen) dienen dazu, die Wahrscheinlichkeit oder Auswirkung dieser Bedrohung zu minimieren.
What is the CIA triad? Explain its general meaning and then its three components.
CIA-Triade: Dies steht für die drei Schutzziele der Informationssicherheit: Confidentiality (Vertraulichkeit – Schutz vor unbefugter Preisgabe), Integrity (Integrität – Schutz vor unbefugter Änderung) und Availability (Verfügbarkeit – Gewährleistung der Nutzung bei Bedarf).
What is the AAA principle? Explain its general meaning and then its three components.
AAA-Prinzip: Es umfasst Authentication (Authentifizierung – Identität prüfen), Authorization (Autorisierung – Rechte prüfen) und Accountability (Zurechenbarkeit – Nachvollziehbarkeit von Aktionen).
At what points in development must security be considered? Please explain your answer in detail.
Zeitpunkte im Entwicklungsprozess: Sicherheit muss über den gesamten Lebenszyklus („Security by Design“) betrachtet werden: von der Planung und Anforderungsanalyse über Design und Implementierung bis hin zu Deployment, Betrieb und Wartung.
What are the types of hackers and how do they differ?
Typen von Hackern: Black Hats agieren mit böswilliger/illegaler Absicht für persönlichen Gewinn. White Hats sind ethische Hacker, die legal im Auftrag handeln. Grey Hats testen Systeme oft ohne Zustimmung, informieren aber danach die Besitzer; ihr Handeln ist dennoch illegal.
Which goals do attackers pursue?
Ziele von Angreifern: Finanzieller Profit, Sabotage oder Verursachung von Schaden, Diebstahl geheimer Informationen oder schlicht die Herausforderung („das Spiel“).
What are Evil User Stories? How can they be used in planning secure software?
Evil User Stories: Sie beschreiben Angriffe aus der Sicht eines Angreifers im Format einer User Story („Als Angreifer möchte ich..., um...“). Sie helfen dabei, die Angreiferperspektive bereits bei der Planung von Anforderungen einzunehmen.
What is a risk analysis? Why is it necessary? What are the steps of a risk analysis according to the BSI 200-3?
Risikoanalyse: Sie ist notwendig, um die erwartete Eintrittswahrscheinlichkeit und die Konsequenzen von Angriffen auf Assets zu bewerten.
Schritte nach BSI 200-3: 1. Gefährdungen identifizieren (Elementar- und Zusatzgefährdungen), 2. Risiken klassifizieren (bewerten und einschätzen), 3. Risiken behandeln.
A risk depends on the potential damage and frequency of occurrence. Explain the two terms. Moreover, explain why are these appropriate to evaluate a risk.
Schadensausmaß und Eintrittshäufigkeit: Das Schadensausmaß (Impact) beschreibt die negativen Folgen eines Vorfalls (finanziell, Reputation). Die Eintrittshäufigkeit bewertet, wie oft ein Angriff wahrscheinlich erfolgreich ist, basierend auf den Fähigkeiten des Angreifers und der Attraktivität des Assets. Beide Werte zusammen ergeben das Gesamtrisiko.
What is threat modeling? What is it used for?
Threat Modeling: Eine Methode zur systematischen Identifikation von Bedrohungen durch die Analyse von Systemdarstellungen (z. B. Datenflussdiagramme). Es dient dazu, frühzeitig Designfehler zu finden.
What is STRIDE? Explain each category with one sentence.
STRIDE:
◦ Spoofing: Vortäuschen einer fremden Identität.
◦ Tampering: Unbefugtes Manipulieren von Daten.
◦ Repudiation: Abstreiten einer durchgeführten Aktion.
◦ Information Disclosure: Unbefugte Offenlegung von Informationen.
◦ Denial of Service: Dienstverweigerung durch Überlastung des Systems.
◦ Elevation of Privilege: Unbefugtes Ausweiten von Berechtigungen.
How can risks be treated?
Risiken können durch:
Vermeidung (Funktion entfernen),
Reduktion (Maßnahmen ergreifen),
Teilung/Transfer (z. B. Versicherung) oder
Akzeptanz (bewusstes Inkaufnehmen) behandelt werden.
What are the advantages and disadvantages of protection poker?
Protection Poker: Vorteile sind die Zugänglichkeit der Risikoanalyse für das Team und die Förderung gemeinsamer Diskussionen über Bedrohungen. Ein wesentliches Merkmal ist, dass sowohl das Schadensausmaß als auch die Eintrittshäufigkeit getrennt bewertet werden.
What is the general purpose of Secure Design principles?
Secure design principles provide guidance!
Secure Design Prinzipien sind bewährte Methoden und Strategien, die einen Prozess unterstützen, bei dem Sicherheit in jeder einzelnen Designentscheidung berücksichtigt wird. Das Ziel ist es, die Möglichkeiten zur Ausnutzung des Systems zu reduzieren und die Auswirkungen eines erfolgreichen Angriffs zu minimieren.
Explain the Secure Design principles presented in the training in your own words.
Least Privilege: Jeder Benutzer oder jedes Modul erhält nur die minimal notwendigen Berechtigungen.
◦ Defense in Depth: Man verlässt sich nicht auf eine einzelne Sicherheitsmaßnahme, sondern implementiert mehrere Ebenen (ähnlich einer mittelalterlichen Burg).
◦ Fail Securely: Bei einem Systemfehler (z. B. Exceptions) muss das System in einen sicheren Zustand übergehen, ohne Informationen preiszugeben.
◦ No Security by Obscurity: Die Sicherheit darf nicht von der Geheimhaltung des Designs abhängen; das System sollte auch dann sicher sein, wenn ein Angreifer das Design vollständig kennt.
◦ Detect and Record: Ungewöhnliche Ereignisse müssen erkannt und protokolliert werden, um Angriffe bemerken und im Nachhinein analysieren zu können.
◦ Don’t Trust / Keep it Simple: Gehe davon aus, dass alles und jeder dem System schaden will (Eingaben validieren) und halte das System so einfach wie möglich, da Komplexität das Verständnis und damit die Sicherheit erschwert
Discuss the following statement: A consistent implementation of the Security by Obscurity principle is sufficient to ensure the security of an application.
Diese Aussage ist falsch. Ein offenes Design (Open Design) ist vorzuziehen, da Geheimhaltung oft scheitert (z. B. durch Insider oder Raten). Sicherheit sollte auf dem Schutz der Schlüssel basieren, nicht auf der Verheimlichung der Algorithmen (Kerckhoffs’ Prinzip)
Describe the concept of Distrustful Decomposition. Which design principles are implemented? How can processes communicate with each other?
Das System wird in separate Prozesse (nicht Threads, da diese Speicher teilen) mit jeweils eigenen, minimalen Berechtigungen zerlegt. Implementiert werden dabei die Prinzipien Least Privilege, Defense in Depth und Don’t Trust. Die Prozesse kommunizieren über Interprozesskommunikation (IPC) wie Files, Sockets oder REST-APIs und misstrauen einander grundsätzlich.
What is Defensive Coding? How does it relate to secure design and risk analysis?
Es bedeutet vorausschauendes Programmieren unter der Annahme, dass Aufrufer einer Methode das System angreifen wollen. Es setzt das sichere Design und die Risikoanalyse auf Code-Ebene um, indem es interne Schwachstellen vermeidet und Code als das oft „schwächste Glied“ absichert.
Name and explain two Defensive Coding Guidelines.
Know your APIs: Nutze Bibliotheken nur in ihrem korrekten Kontext und verstehe sie vollständig, bevor du sie einsetzt (z. B. XML-Parser-Konfiguration).
Minimize Attack Surface: Füge keine Eingabefelder oder Funktionen hinzu, die nicht zwingend erforderlich sind, um die Angriffsfläche klein zu halten.
Defensive Coding Guidelines (Richtlinien für defensives Programmieren)
Diese Strategien helfen dir, Code von Anfang an robuster gegen Angriffe zu machen:
Know your APIs: Du solltest APIs und Bibliotheken nur in ihrem vorgesehenen Kontext nutzen und ihre Dokumentation genau kennen, da du nichts absichern kannst, was du nicht verstehst
Attack Surface (Angriffsfläche minimieren): Reduziere die Anzahl der Eingabepunkte (Formularfelder, Uploads etc.) auf das absolute Minimum, um Angreifern weniger Gelegenheiten zu bieten
Complexity (Komplexität reduzieren): Da Komplexität der Feind der Sicherheit ist, solltest du strukturelle und kognitive Komplexität aktiv verringern, um Fehlerquellen zu vermeiden
Input Validation (Eingabevalidierung): Schreibe niemals eigene Sanitzer oder Validierer, sondern nutze spezialisierte Bibliotheken, um jeden potenziellen Einstiegspunkt zu prüfen
Character Conversion: Verwende durchgehend standardisierte Kodierungen wie UTF-8 oder UTF-16 und führe keine Normalisierungen nach einer Validierung durch
Concurrency Awareness: Behandle parallele Prozesse mit Misstrauen, um Race Conditions (DoS) oder den Zugriff auf gemeinsam genutzten Speicher (Information Disclosure) zu verhindern
Unencrypted Storage: Alle Daten, die auf Festplatten geschrieben werden, sollten verschlüsselt und authentifiziert werden, da Root-Exploits sonst Zugriff auf den gesamten Speicher gewähren
Immutability (Unveränderlichkeit): Nutze unveränderliche Attribute und Schlüsselwörter wie final (in Java), damit bösartige Unterklassen keine sensiblen Methoden überschreiben können
final
Config & Install: Überprüfe Konfigurationsdateien (z. B. auf zu kleine Log-Größen oder hartkodierte Credentials) und vermeide veraltete Abhängigkeiten bei der Installation
HTTP-GET: Verwende HTTP-Methoden nur für ihren vorgesehenen Zweck (z. B. GET nur zum Abrufen, nicht zum Senden sensibler Daten)
Name and explain two Common Vulnerabilities.
SQL-Injection: Angreifer schleusen bösartigen Code über Eingabefelder ein, um Datenbankabfragen zu manipulieren.
Hardcoded Credentials: Passwörter oder Schlüssel werden direkt im Quelltext gespeichert, was sie für jeden auslesbar macht, der Zugriff auf die Binärdatei oder den Code hat
Name and explain all Common Vulnerabilities leaned
Diese Fehler treten in der Praxis immer wieder auf und sollten gezielt vermieden werden:
Hardcoded Credentials: Passwörter oder Schlüssel werden direkt im Quellcode gespeichert und sind so in Binärdateien auslesbar
Hashing without Salt: Das Speichern von Hashes ohne Salt macht Passwörter anfällig für Wörterbuch- oder Brute-Force-Angriffe
Integer Overflow: Fehlende Plausibilitätsprüfungen bei Zahlenwerten können dazu führen, dass Werte „umkippen“ (z. B. negative Kontostände)
Buffer Overflow: Wenn ohne Bereichsprüfung über Puffergrenzen hinaus geschrieben wird, kann dies das Programm korrumpieren
Format String Corruption: Benutzereingaben werden direkt als Format-String (z. B. in printf) verwendet, was Speicherzugriffe ermöglicht
printf
Log Neutralization: Fehlende Bereinigung von Eingaben vor dem Loggen erlaubt es Angreifern, Log-Einträge zu fälschen
Log Overflow: Ein Angreifer flutet das System mit Log-Daten, um Beweise zu überschreiben oder einen Absturz zu provozieren
Open Redirect: Nutzer werden über URL-Parameter unkontrolliert auf externe Phishing-Seiten weitergeleitet
Path Traversal: Durch Sequenzen wie ../ greifen Angreifer auf Dateien außerhalb des vorgesehenen Verzeichnisses zu
../
Insecure PRNGs: Die Nutzung nicht-kryptographischer Zufallszahlengeneratoren für Sicherheitszwecke macht kryptographische Werte vorhersagbar
Reflection Abuse: Über die Java-Reflection-API können private oder finale Variablen unbefugt geändert werden
SQL Injection: Schadcode in Eingabefeldern manipuliert Datenbankabfragen
XML Embedded DTD (XXE): Durch Dokumenttyp-Definitionen können lokale Dateien referenziert oder das System angegriffen werden
NoSQL Injection: Ähnlich wie bei SQL werden hier NoSQL-Abfragen (z. B. MongoDB) durch präparierte Eingaben manipuliert
Cross-Site Scripting (XSS): Bösartige Skripte werden in Webseiten eingeschleust und im Browser anderer Nutzer ausgeführt
Explain the sentence: Complexity is the enemy of security.
Komplexität erschwert das Verständnis des Systems. Was man nicht versteht, kann man nicht effektiv absichern. Fehler in komplexem Code oder komplexen Architekturen führen unweigerlich zu Sicherheitslücken.
Why do inputs need to be validated? What types of validation exist?
Jede Eingabe ist ein potenzieller Einstiegspunkt für Angreifer. Die Validierung stellt sicher, dass nur korrekt formatierte Daten verarbeitet werden. Man sollte niemals eigene Validierer schreiben, sondern etablierte Bibliotheken nutzen.
Define CIA security objectives in the context of cryptography.
◦ Vertraulichkeit (Confidentiality): Nur beabsichtigte Parteien können den Inhalt lesen.
◦ Integrität (Integrity): Jede Modifikation des Inhalts wird erkannt.
◦ Authentizität (Authenticity): Die Urheberschaft einer Nachricht kann verifiziert werden.
◦ Verbindlichkeit (Accountability): Der Autor kann seine Urheberschaft im Nachhinein nicht leugnen.
What is Kerckho s' principle? Why is it useful?
Ein kryptographisches System muss auch dann sicher sein, wenn alle Details (außer den Schlüsseln) öffentlich bekannt sind. Es ist nützlich, weil es Peer-Reviews der Algorithmen ermöglicht und "Security by Obscurity" vermeidet.
was ist CSPRNG?
CSPRNG steht für Cryptographically Secure Pseudo Random Number Generator. Für Sicherheitszwecke (wie Schlüsselgenerierung) muss immer ein CSPRNG verwendet werden, da dieser Hardware-Entropie (z. B. thermisches Rauschen) nutzt, um Vorhersagbarkeit zu verhindern. In Java ist dies beispielsweise java.security.SecureRandom, während das einfache java.util.Random nicht sicher ist
java.security.SecureRandom
java.util.Random
Was ist CTR und GCM?
CTR (Counter Mode): Dieser Modus verwandelt eine Blockchiffre in eine Stromchiffre, indem ein Zähler verschlüsselt und mit dem Klartext XOR-verknüpft wird. Er ermöglicht es, Datenzeichen sofort zu verarbeiten
GCM (Galois/Counter Mode): GCM wird als gängiges Beispiel für einen modernen, strombasierte Verschlüsselungsmodus aufgeführt, der oft für AES verwendet wird. Er kombiniert Verschlüsselung mit Authentifizierung (AEAD)
What is "good" randomness?
Kryptographisch sichere Zufallswerte (CSPRNG) müssen so beschaffen sein, dass sie von echtem Zufall nicht unterscheidbar sind und Angreifer sie nicht mit vertretbarem Aufwand erraten können.
What are block ciphers? How do they di er from stream ciphers?
Sie verarbeiten Daten in Blöcken fester Größe (z. B. 128 Bit). Der Betriebsmodus (z. B. CTR, GCM) bestimmt, wie die Blöcke miteinander verknüpft werden.
How do symmetric and asymmetric encryption differ?
Symmetrische Verfahren nutzen denselben geheimen Schlüssel für Ver- und Entschlüsselung.
Asymmetrische Verfahren (Public-Key) nutzen ein Schlüsselpaar: einen öffentlichen Schlüssel zum Verschlüsseln und einen privaten zum Entschlüsseln.
Assymetric
Explain the problem of key distribution.
Bei symmetrischen Verfahren müssen die Partner den Schlüssel vorab über einen sicheren Kanal austauschen.
Bei n Teilnehmern werden n(n−1)/2 Schlüssel benötigt, was die Skalierung erschwert.
What is hybrid encryption?
Die eigentliche Nachricht wird effizient mit einem symmetrischen Schlüssel verschlüsselt. Dieser symmetrische Schlüssel wird dann asymmetrisch verschlüsselt und mit der Nachricht übertragen.
What is hashing? How can it be used to achieve the security goals of condentiality and integrity?
Hashing ist eine Einwegfunktion, die Daten beliebiger Größe in einen festen Hashwert umwandelt.
◦ Integrität: Änderungen am Original führen zu einem anderen Hashwert.
◦ Vertraulichkeit: Es ermöglicht den Beweis eines Geheimnisses (z. B. Passwort), ohne das Geheimnis selbst preiszugeben.
Explain the principle of digital signatures.
Der Absender berechnet eine Signatur basierend auf der Nachricht und seinem privaten Schlüssel. Jeder kann die Signatur mit dem öffentlichen Schlüssel des Absenders verifizieren, um Authentizität und Integrität sicherzustellen.
Name three of the five presented methods to analyze the software security of a product and brie y discuss their advantages and disadvantages.
Penetrationstests: Sie bieten einen realistischen Black-Box-Angriff durch Experten. Nachteile sind die hohen Kosten und die seltene Durchführung (meist nur einmal jährlich).
Statische Analyse (SAST): Diese Methode ist hochgradig skalierbar und findet gängige Fehler wie SQL-Injection direkt im Quellcode. Ein Nachteil ist die hohe Rate an Falsch-Positiven und die Unfähigkeit, Laufzeitprobleme zu finden.
Manuelles Code-Review: Es ist sehr effektiv beim Finden von Logik- und Designfehlern, die Tools übersehen. Der größte Nachteil ist, dass es nicht automatisch abläuft und zeitintensiv ist.
How do automated tests differ from a manual code review? Name the advantages and disadvantages of each with regard to software security.
Automatisierte Tests (wie Unit-Tests oder SAST) sind schnell, in die CI/CD-Pipeline integrierbar und skalierbar für den gesamten Code.
Sie finden jedoch keine komplexen semantischen Designfehler. Manuelle Reviews können genau diese Design- und Logikfehler identifizieren, sind aber subjektiv, langsamer und hängen stark von der Erfahrung des Reviewers ab.
What is static code analysis? Name 3 advantages and disadvantages of this method.
Vorteile:
Sie skaliert gut über große Codebasen,
bietet präzises Feedback zur exakten Codezeile und
findet viele Standard-Schwachstellen früh im Lebenszyklus.
Nachteile:
Sie erzeugt oft viele Falsch-Positive,
kann keine Konfigurationsfehler in der Umgebung erkennen und
findet keine dynamischen Probleme wie fehlerhafte Authentifizierungsabläufe
What is dynamic code analysis? Name 3 advantages and disadvantages of this method.
Sie findet komplexe semantische Fehler (z. B. im Authentifizierungsfluss),
berücksichtigt Fehlkonfigurationen der Umgebung und
benötigt keinen Zugriff auf den Quellcode.
Sie erfordert eine voll funktionsfähige,
laufende Anwendung, ist sehr ressourcenintensiv und
deckt meist nur Web-Schnittstellen ab.
Name 3 arguments for why software security tools should be used in the DevOps pipeline
Sicherheitswerkzeuge sollten in der Pipeline genutzt werden, um sofortiges Feedback an Entwickler zu geben, die Kosten für Fehlerbehebungen durch Früherkennung zu minimieren und eine hohe Durchlaufrate bei gleichzeitig geprüfter Sicherheit zu garantieren
Name 3 measures to make it more dificult for attackers to target your log.
1. Sicherheitskritische Aktionen detailliert geloggt und für ausreichende Zeit gespeichert werden.
2. Die Log-Datenbank so konfiguriert werden, dass Löschen oder Ändern unmöglich ist (WORM-Prinzip).
3. Professionelle Log-Management-Lösungen zur automatischen Erkennung verdächtiger Aktivitäten eingesetzt werden.
Name 5 arguments why it is dificult to detect an attack.
1. Logs oft unzureichende Details enthalten.
2. Alarme nicht die richtigen Personen erreichen oder ignoriert werden.
3. Angreifer Beweise durch gezielte Log-Overflows löschen können.
4. Rice's Theorem besagt, dass das Verhalten von nicht-trivialem Code nicht sicher vorhergesagt werden kann.
5. Falsch-Negative in Tools dazu führen, dass Schwachstellen unentdeckt bleiben.
What are the Common Vulnerabilities and Exposures (CVE)? What is their purpose?
CVE ist ein System zur eindeutigen Identifizierung und Dokumentation konkret gefundener Schwachstellen in Softwareprodukten.
Ihr Zweck ist die Standardisierung, damit Teams die Kritikalität für ihre eigenen Produkte besser bewerten und priorisieren können.
What is the Common Weakness Enumeration (CWE)? Why can it be helpful in developing secure software?
CWE ist eine Liste von Schwachstellentypen (z. B. Pufferüberlauf oder SQL-Injection).
Sie hilft bei der Entwicklung sicherer Software, indem sie Entwicklern ermöglicht, aus Fehlern der Vergangenheit zu lernen und systematische Schwachstellenmuster im eigenen Code zu vermeiden.
How does the assessment of vulnerabilities work according to the Common Vulnerability Scoring System (CVSS)?
Das Common Vulnerability Scoring System berechnet einen Score von 0.0 bis 10.0. Es besteht aus drei Teilen: dem Base Score (Angreifbarkeit und Auswirkung), dem Temporal Score (Verfügbarkeit von Exploits/Fixes) und dem Environmental Score (individuelle Kritikalität im eigenen Produkt).
Explain the tasks of a Product Security Incident Response Team (PSIRT).
Ein Product Security Incident Response Team verwaltet die Identifizierung, Bewertung, Behebung und Offenlegung von Sicherheitsvorfällen. Es dient als zentrale Kontaktstelle für interne und externe Meldungen und koordiniert die gesamte Kommunikation mit allen Beteiligten.
Name at least 4 stakeholder groups that can be found in the environment of a Security Champion.
Zu den relevanten Stakeholdern gehören:
das Top-Management,
der Product Owner (PO),
das Entwicklungsteam,
die Sicherheitsabteilung (Security Department),
die Rechtsabteilung (Legal Department) sowie
externe Kunden und Softwarelieferanten.
Name 5 tips or rules that should generally be observed when speaking with other people. You are welcome to use examples from the life of a Security Champion
1. Verständliche Sprache: Wähle eine einfache Sprache, die an den Wissensstand des Gegenübers angepasst ist. Beispiel: Erkläre einem Product Owner die Auswirkung einer Sicherheitslücke in geschäftlichen Begriffen (Risiko) statt in technischem Code.
2. Kurze Sätze: Nutze kurze Sätze statt langer Schachtelsätze und packe nicht zu viele Informationen in einen Satz. Beispiel: Präsentiere eine Bedrohung im Team-Meeting prägnant in zwei Sätzen.
3. Visualisierungen: Nutze Grafiken, da diese leichter zu verstehen sind als reiner Text. Beispiel: Zeige dem Team ein Datenflussdiagramm (DFD), um Vertrauensgrenzen zu veranschaulichen.
4. Konzentration auf den Partner: Schenke deinem Gegenüber volle Aufmerksamkeit und eliminiere Ablenkungen. Beispiel: Schalte bei einem Gespräch über die Sprint-Priorisierung dein Handy aus.
5. Fragen stellen: Nutze Fragen, um das Gegenüber zu aktivieren und sicherzustellen, dass Informationen korrekt angekommen sind. Beispiel: Frage nach einer Erklärung zu STRIDE: „Wie könnten wir Spoofing in dieser Funktion verhindern?“
What makes good feedback? What should feedback givers and receivers pay attention to?
Gutes Feedback zeichnet sich dadurch aus, dass es die Sache und nicht die Person bewertet, konkret beschrieben ist und zeitnah erfolgt.
Feedback-Geber: Sollten fragen, ob Feedback erwünscht ist, mit Positivem beginnen, Ich-Botschaften verwenden und vorerst keine fertigen Lösungen diktieren. Ein bewährtes Modell ist die Drei-Schritt-Methode: Verhaltensbeschreibung, Auswirkungen benennen und einen Wunsch/eine Bitte formulieren
Feedback-Nehmer: Sollten mit Dankbarkeit und Lernbereitschaft zuhören, sich nicht sofort rechtfertigen oder verteidigen und Verständnisfragen stellen. Am Ende entscheidet der Nehmer selbst, welche Punkte er annimmt.
Name 3 types of conflict and explain each with an example from the life of a Security Champion
Sachkonflikt: Entsteht durch unterschiedliches Vorwissen oder Erfahrungen. Beispiel: Ein Security Champion und ein erfahrener Entwickler sind uneinig darüber, ob eine bestimmte Bibliothek tatsächlich eine kritische Schwachstelle für ihr spezifisches Produkt darstellt.
Zielkonflikt: Resultiert aus unterschiedlichen Prioritäten oder gegensätzlichen Zielen. Beispiel: Der Product Owner will ein neues Feature so schnell wie möglich releasen, während der Security Champion darauf besteht, zuerst eine Risikoanalyse durchzuführen.
Rollenkonflikt: Tritt auf, wenn Erwartungen an eine Rolle nicht erfüllt werden. Beispiel: Das Team erwartet vom Security Champion, dass er alle Sicherheitslücken selbst fixiert, während dieser sich eher als Multiplikator sieht, der das Team befähigen möchte, selbst sicher zu programmieren.
Tools für Statische Code Analyse?
Java: Hier sind SpotBugs und das spezialisierte Plugin FindSecBugs führend, um Fehler wie SQL-Injection oder unsichere Deserialisierung zu finden
Python: Häufig genutzt werden Bandit (speziell für Sicherheitsmuster), PyLint (für logische Fehler und Standards) sowie PyFlakes und MyPy
TypeScript: Hier ist ESLint das Standardwerkzeug zur Identifizierung von Fehlern
C: Entwickler nutzen Compiler-Warnungen (z. B. Clang mit -Wall und -Wextra) oder Werkzeuge wie clang-tidy zur Fehlererkennung
-Wall
-Wextra
Allgemein: SonarLint und Checkstyle unterstützen bei der Einhaltung von Codierungsstandards und der Reduzierung von Komplexität
Tool für dynamische Code analyse
Diese Tools testen die laufende Anwendung („Black Box“), um Laufzeitfehler und semantische Probleme wie fehlerhafte Authentifizierungsabläufe zu finden.
DAST: Bekannte Beispiele sind der OWASP Attack Proxy (ZAP), die Burp Suite, Arachni oder Qualys.
IAST: Werkzeuge wie Contrast Security nutzen Instrumentierung innerhalb der laufenden Applikation, um Datenflüsse noch genauer zu überwachen.
Information Security Management System (ISMS)
Was ist der Goal?
Goal: Protecting the information assets of an organization
Welchen Essential Anforderungen sollen Produktte mit Digitale Elemente haben?
The manufacturer shall have processes in place for the vulnerability handling. Welche sind das?
Security by Design
What are the Shostack's Four Question Frame for Threat Modeling
What are we working on?
What can go wrong?
What are we going to do about it?
Did we do a good job?
Elementary threats according to BSI (as of 2021)
Identity theft
Malware
Denial of Service
Sabotage
Social Engineering
Loss of integrity of sensitive information
How can be Threats identified
Misuse vs. Abuse?
Zuordnung STRIDE zu CIA AAA
How can be Risk calculated?
Secure Design Principle vs. Secure Patterns?
Secure Design Principles sind allgemeine, bewährte Strategien und Leitlinien, die bei jeder Entwurfsentscheidung als übergreifende Ziele dienen. Beispiele hierfür sind „Least Privilege“ oder „Defense in Depth“.
Secure Patterns hingegen sind spezifische Architekturvorlagen oder konkrete Gegenmaßnahmen, um Sicherheitsziele wie Authentifizierung oder Datenflusskontrolle praktisch umzusetzen. Während Prinzipien also die theoretische Richtung vorgeben (das „Wie“ im Sinne einer Strategie), stellen Patterns die strukturelle Lösung für ein konkretes Problem bereit (das „Was“ im Sinne einer Architektur)
Secure pattern benennen.
Im Fall von Authentication, was kann hier gemacht werden?
Was sind Setuid und Setgid?
setuid (Set User ID) und setgid (Set Group ID) sind Mechanismen, die festlegen, mit welchen Berechtigungen ein Programm während seiner Ausführung läuft
Explain the Secure Patterns: Distrustful Decomposition
Decompose the system into separate processes with separate permissions
i.e., fork(), but NOT threads. Why?
Threads still have shared memory!
Communicate via inter-process communication (IPC)
Processes distrust each other
i.e., validate input from other processes
i.e., recheck credentials and integrity mechanisms
Simplify the root-level subsystems to an extreme extent
Nenne Distrustful decomposition - Inter-Process Communication –Techniques
Files
Streams / Named Pipes: Define a “virtual file” that one process writes to and another process reads from
REST: Usually relays on HTTP, JSON and other common protocols / HTTP methods POST, GET, … are often used in restful APIs / Is an architectural style not a protocol itself (unlike SOAP)
Socket: Write to a traditional networked socket via the OS network interface
Signals: Simple messaging, sometimes data can be appended (e.g., Android) / Pre-defined by the OS (Unix has ~30 signals)
Clipbord: Can set and get clipboard programmatically
What does “defensive” mean in the context of coding?
forward-thinking, look ahead, always think about possible attacks
Assume that callers of your method want to attack your system!
What are Basic cryptographic concepts
How to ensure a Secure Software?
Last changed20 days ago