SPRG - HSLU 19

Prüfungsvorbereitung für Sicheres Programmieren an der HSLU.

Prüfungsvorbereitung für Sicheres Programmieren an der HSLU.


Fichier Détails

Cartes-fiches 79
Utilisateurs 11
Langue Deutsch
Catégorie Informatique
Niveau Université
Crée / Actualisé 03.06.2019 / 27.06.2023
Lien de web
https://card2brain.ch/box/20190603_sprg_hslu_19
Intégrer
<iframe src="https://card2brain.ch/box/20190603_sprg_hslu_19/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Erklären Sie den Unterschied zwischen Security und Safety und wie die beiden Begriffe zusammenhängen.

Security: Defending systems against humans with malicious or criminal intent

Safety: Defending humans and the environment against malfunctioning systems.

Zusammenhang: Security breaches may have serious safety consequences!

Was versteht man unter Perimeter Security und warum reicht die nicht aus?

Premitere Security: Herkömmliche Security an den Aussengrenzen mit Accescontrol, Firewall, Antivirus.

 

-Applications are doors in the walls.

-More and more applications offer direct
access to users outside.

-There are not many simple holes in the wall
(the operating system) any more: It’s easier
to attack the applications (the doors).

Erklären Sie die Begriffe Vulnerability (Schwachstelle) und Exploit.

Vulnerabilities. Programmierfehler oder Fehler in der Konfiguration.

Exploit: Exploiting weak points of systems or applications

Erkären Sie den Begriff Malware

Malicious Software. ... just software doing something the user or owner of the computer does not like.

(Virus, worm, trojan etc)

In welcher Phase sollte man sich in einem Projekt um die Security kümmern und warum?

Von Beginn an.

Weil Fehler je länger sie bestehen teurer werden. Das grundlegende Design kann später nicht mehr geändert werden

Woher kommen die meisten Bugs in Software übicherweise?

Nennen Sie die verschiedenen Process Models sowie Ihre Eigenschaften

Waterfall: Linear, einfache definition von Meilensteine, nicht flexibel

Prototyping: Iterativ, mehr Freiheit für Entwickler, Schwierig zu managen.

Unified processing: Kompromiss zwischen Waterfall und Prototype. In einigen Situationen zu mühsam.

Agile Development: Funktional und Kundenorientiert.

SCRUM: Processmodel  for agile methods.

Was ist der Hauptunterschied zwischen Unified Process und Scrum?

Unified Process is function oriented
Scrum is time oriented

Erklären Sie den Unterschied zwischen Anforderungsanalyse, Spezifikation und Design.

Anforderungsanalyse: Was will der Kunde?
Spezifikation: Was muss sie können?
Design: Wie wird sie implementiert?

Was sind die 7 Phasen des MS Security Development Lifecycles (SDL) und erklären sie diese kurz.

Training: Schulung von  Security und Privacy inkl. Trends für Entwickler.
Requirements: Security und Privacy Anforderungen bestimmen, Bug Bars setzen.
Design: Attack surface analyisiere, Threat Modeling.
Implementation: Prozesse, Dokumentation und Tools für sichere Porgrammiern & Betrieb bestimmen.
Verification: Security Response Planning, Fuzz Testing.
Release: Klare Support Policy definieren, SDL requirements übeprüfen, keine relevanten Vulnerabilities übrig.
Response: Wartung, Response betreffend Security Respone Planning.

Welche Festlegungen müssen im Trainingsprogramm für SDL getroffen werden?

Was wird trainiert, wie häufig wird trainiert, wie viele Prozent der Entwickler trainiert

Was ist eine Bug Bar und nennen Sie ein Beispiel.

Fehlerschranke: Wie viele der Threads die definiert sind müssen behandelt sein, damit die verlangte Sicherheit erreicht ist.

Example Bug Bar: no known vulnerabilities in the applicationwith a “critical” or “important” rating at time of release.

Was ist der Unterschied zwischen funktionalen und nicht-funktionalen Sicherheitsanforderungen? Geben Sie jeweils einige Beispiele.

NF: Beschreibt, wie ein System eine Aufgabe durchführt. Teilweise schwierig zu testen (Beispiel: Performance, Robustness, Safety, Effieciency)

Functional: Funktional haben Akzeptanzkriterien => als Funktion implementierbar z.B. Passwortmindestanforderungen

Nennen Sie die drei Grundziele der Security

CIA (Confidentiality, Integrity, Availability)

Was versteht man unter Threat Modeling?

Das Herausfinden von Bedrohungen für ein System => Bedrohungsanalyse

Aus der Sicht des Angreifers

Threat klassifizieren: STRIDE, Attack tree

Threat bewerten: DREAD

Welche Hilfsmittel/Dokumente können zum Identifizieren von Bedrohungen herangezogen werden?

OWASP TOP10, SDLC, BSI Grundschutz, NIST, ISO27002

Common Criteria => Sicherheitsstandards sehr allgemein für alle Arten von Software (Ergänzen durch Schutzprofil)

Was versteht man unter einem Protection Profile (Schutzprofil)? Nennen sie zumindest zwei Beispiele für Schutzprofile.

Ausformulierung der Common Criteria (Mindeststandards) für eine bestimme Anwendung.
Z.B. Kreditkarten, Smart Meter Gateways, Fahrtenschreiber von LKW, E-Pass etc.

Gibt es gesetzliche Vorschriften, die Security-Maßnahmen bei der Software-Entwicklung erfordern? Geben Sie zumindest 2 Beispiele.


-PCI DSS: Payment Card Industry Data Security Standard

- Sarbanes Oxley Act: Accounting of stock listed companies
(Section 404 segregation of duties)

-HIPAA: Health Insurance Portability and Accountability Act

-Basel II

-DSGVO

Nennen Sie die Bestandteile vom Threat Modeling

  • Asset: Objekt, welches wir schützen müssen.
  • Vulnerability: Schwachstelle im System.
  • Threat: Eine Gefahr im Zusammenhang mit der Schwachstelle. Jemand oder etwas attackiert das System
  • Expoit: Wenn ein threat real wird -> Angriff
  • Mitigate: Gegenmassnahme: Eintrittswahrscheinlichkeit und Schaden begrenzen

Nennen Sie die Prozesselement vom Threat Modeling

-Diagram

-Identify Threats

-Mitigate

-Validate

Was ist der Unterschied zwischen einem Threat (Bedrohung), einer Vulnerability (Schwachstelle) und einer Mitigation?

Vulnerability: Schwachstelle im System
Threat: Ausnutzung der Schwachstelle
Mitigation: Behandlung des Threats. (Gegenmassnahme)

Was sind Trust Boundaries?

Dort wo zwei Vertrauensgrenzen aneinander stossen. Z.B. zwischen eigenem System und zugekaufter Software. Der zugekaufter Software kann nicht gleich vertraut werden. => wo habe ich Einfluss auf Sicherheit

Für was steht STRIDE? Nennen Sie für jeden Punkt die Eigenschaft sowie ein Beispiel.

  • Spoofing: Authentication: Sich als etwas / jemand anderen ausgeben.
  • Tampering: Integrity: Daten oder Code ändern.
  • Repudiation: Non-Repudiation : Sagen, etwas nicht getan zu haben.
  • Information Disclosure: Confidentiality: Informationen für jemand zugänglich machen, der nicht dafür berechtigt ist.
  • Denial of Service: Availability: Service für Users nicht verfügbar.
  • Elevation of Privilege: Authorization: Rechte ohne Authorisierung erhalten.

Mitigation für Spoofing und Tampering?

Mitigation für Repudiation und Information Disclosure?

Mitigation für Denial of Service und Elevation of Privilege?

Nennen Sie die Bestandteile eines DREAD-Ratings und erklären Sie diese.

Jeder Threat wird in die Kategorien aufgeteilt (Rating High, Medium, Low)

  • Damage: Wie schädlich ist ein Angriff?
  • Reproducibility: Wie einfach kann man den Angriff weiderholen?
  • Exploitability: Wie gross ist der Aufwand für den Angriff?
  • Affected users: Wie viele Leute wären betroffen?
  • Discoverability: Wie einfach ist der Threat erkennbar?

Erklären Sie das OWASP Risk Rating.

OWASP Risk Rating: 4x4 Faktoren werden evaluiert (1-9 Punkte). Meidum-High-Critical.OWASP Risk Rating
Threat Agent: Skill level, Motive, Opportunity, Size
Vulnerability: Ease of discovery, Ease of exploit, Awareness,Intrusion detection
Technical Impact: Loss of confidentiality, Loss of integrity, Loss of availability, Loss of accountability
Business Impact: Financial damage, Reputation damage, Noncompliance, Privacy violation

Was ist ein Attack Tree? Welche Node Typen gibt es?

Attack trees are conceptual diagrams showing how an asset, or target, might be attacked.

Es gibt AND sowie OR Nodes.

Nennen Sie einige Beispiel für Values eines Attack Trees.

 

Bestimmen Sie die Werte des folgenden Attack Tree's:

Für was steht UML und was ist es?

Was ist ein Use Case Diagram (UCD) Und aus welchen 4 Hauptelementen besteht es?

Use Case's helfen bei der Visualisierung von funktionalen Anforderungen mittels UML.

Besteht aus:

  • Actor: Personen oder Systeme, welche mit dem beschriebenen System interagieren. (User)
  • Systemboundaries: Systemgrenzen (Rechtecke)
  • Use case: Der eigentliche Anwendungsfall (Rund)
  • Lines: Für Die verbindung der Elemente. (Linie)

 

Was ist der Unterschied zwischen Use Case und User-Stories?

Warum sind Systeme vulnerable?

Systems consist of components:

-Components are developed independently

-Components have input data

-Components exchange data

Components need interfaces:

-The rules for the input data define a language

-The language must be defined exactly

-The language must be interpreted exactly in the same way on
both sides of the interface

Nennen Sie die aktuellen OWASP Top 10 der Reihe nach

1. Injection

2. Broken Authentication

3. Sensitive Date Exposure

4. XML External Entities (XXE)

5. Broken Access Control

6. Security Misconfiguration

7. Cross Site Scripting (XSS)

8. Insecure Deserialization

9. Using Components with Known Vulnerabilities

10. Insufficient Logging & Monitoring

Nennen Sie die vier Typen von Injection und erklären Sie diese.

  • In-Band Injection: Attacker gets the result of injection in a different channel as the one used for sending the malicious payload.
  • Out-of-Band Injection: Attacker gets the result of injection in a different channel as the one used for sending the malicious payload.(For example, sends SQL injection with HTTP OIST request to a notification service and receives data he should not the email sent by the notification system.)
  • Inferential or Blind Injection: Attacker does not receive the outcome of the injection but can observe state changes in the system triggered by the injection and make inferences based on this observation. (Beispiel: sleep(10))
  • 2nd order Injection: Attacker does not send the malicious payload directly to the target system, but to an intermediate system first. Unlike, the previous types of injections the attacker may not even directly target a given system.

Nennen Sie Beispiele einer SQL Injection

Smith’ OR ‘1’ = ‘1
results in "SELECT * FROM users WHERE name = 'Smith' OR TRUE; and that way will return all entries from the users table

Smith’ OR 1 = 1; --
results in "SELECT * FROM users WHERE name = 'Smith' OR TRUE;--'; and that way will return all entries from the users table

Smith’; DROP TABLE USERS; truncate audit_log; --
chains multiple SQL-Commands and deletes the USERS table as well as entries from the audit_log

Welche Arten von Injection kennen Sie noch (Neben SQLi)

  • LDAP Query Injection
  • OS command Injection
  • XML / XPath Injection

Nennen Sie Mitigations gegen Injection.

Input

•Sanitize, to eliminate dangerous char sequences

•Validate, to make sure data is syntactically and semantically correct

•Encode, so that data is handled only as data (i.e. URL encoding, HTML encoding)

Use safe parameterized interfaces

•SQL: Parameterized queries, ORM mapping tools

Reduce attack surface

•Disable non standard functions

•Only standard SQL if possible