Rechnersicherheit Mitschrift
Inhaltsverzeichnis
2012-06-07 Thu
Execution-Based Information Flow Control
- Fixed security classes y, y y := x x ≤ y
- dynamic security classes y, y y := x x := y
- unterbindet expliziten und impliziten flow
Singe Accumulator Machine
- LOAD x … acc := x , acc := x (least upper bound) PC
2012-05-31 Thu
Flow Control Mechanisms: Security vs. precision
- Information Flows:
- all flows F
- authorized flows P
- executable flows E
- authorized flows P
- all flows F
- Secure: E ⊆ P
- Precise: E = P
- Example: y := k*x
- k ≤ y , x > y
- k = ∅
- H(x) = ∅
2012-05-21 Mon Tutorium
Nächstes Übungsblatt
- Für zwei Wochen
- Information Flow
- lattice (least upper bound finden)
- Vergliech von direkten und impliziten Flüßen (entropie und laufzeitanalyse)
2012-05-15 Tue
Lattice model of information flow
verband, least upper bound
- fixes or constant security classes
- variable security classes
- variable x
- security class x
- y := y
- if (y ≥ x) y ← x
- y := y
state transition model
States s, s': s |-α s'
- variable x is state
- xs
- class Xs
Entropy
- Maß über die Ungewissheit über eine Zufallsvariable
- H(X) = - ∑p∈ X p(x)log(p(x))
- I = H(X|Y=ys) - H(X|Ys')
Coditional Entropy
- Der Informationsgehalt von X, wenn wir davon ausgehen, dass wir Y kennen.
- H(X|Y) = ∑y∈ Y p(y)H(X|Y=y)
- if y does not exist in state s then H(X|Y) = H(X)
Kanalkapazität
- C(α,x,y) = max I(α,x,y,s,s')
Example
- y := x
- Suppose x ∈ [0,15], all values equally likely.
- Let Pi denote Pr[X=i]
- Pi = 1/16 if 0≤ i ≤ 15; else 0
- H(H|Y) = H(X) = ∑iPi log(1/pi) = 16 (1/16)log(16) = 4
2012-05-14 Mon - Tutorium
Übungsblatt
- covered channels
- bell-LaPadula
- chinese wall model
- verpflichtende assembler aufgaben
- prgramm, das seinen eigenen Quelltext ausgibt.
2012-05-10 Thu
- Trojan Horse
- side channels
- Backdoors
- Manipulierter Compiler
2012-05-08 Tue
Begriffe
- MILS: Multiple Independent Level of Security
- Die nächste Stufe ist ein MLS.
Bell-LaPadula model
Mehrere Kategorien neben security levels.
- security levels L
- F: S ∪ S → L
- State V = (F,M)
- transition function T
- T: C × R → V
- requests R
- A state is read-secure (simple security)
- iff ∀ s ∈ S, o ∈ O: read ∈ Ms,o → F(s) ≥ F(o)
- A state is write-secure (*-property)
- iff ∀ s ∈ S, o ∈ O: write ∈ Ms,o → F(o) ≥ F(s)
- state secure ↔ read/write secure
- secure ↔ V0 is state secure and every state reachable from V0 is state secure.
A Comparison in the Bell-LaPadula model
- For a set S, a relation R is a subset S × S For convinience if (a,b) ∈ R we write aRb.
- reflexive: aRa for all a ∈ S
- antisymmetric: aRb ∧ bRa → a=b
- transitive: aRb ∧ bRc → aRc
- upperbound:
- a,b ∈ S → ∃ u ∈ S aRu ∧ bRu
- u is upperbound
- least upper bound
- Let U be the set of upper bounds of a,b
- let u ∈ U be s.t. ¬∃ t ∈ u: tRu
- then u is the l.u.b. or a ⊗ b
Biba model
Umdrehung des Bell-LaPadula models. Ziel: integrität. (gegenüber vertraulichkeit)
- in der Realität haben Subjekte 2 Labels. Eins für Vertraulichkeitsanforderungen und eins für Integritätsanforderungen.
- Heutzutage verwendet man eine Kombination aus Bell-LaPadula
Chinese Wall Security Model
Es gibt eine Menge von CDs(company dataset). Gruppiere die CDs in COIs (conflict of intrest class).
- Als user darf man sich immer nur ein mal einen CD in einem COI wählen. Kurz: ein user hat immer nur auf einen CD in einem COI Zugriff.
- N: boolean matrix
- Ns,o = true if S has previously accessed o
- x: COI class
- y: CD
- Read access to o (simple security rule)
- ¬∃ p ∈ O: Ns,p = true ∧ x(p) = x(o)
- OR
- ∀ p∈ O: Ns,p = true ∧ x(p) = x(o) → y(p) = y(o)
- Aufgabe:
- Welche sinnvolle Formulierungen der *-property im CW Modell gibt es?
2012-05-07 Mon - Tutorium
Übungsblatt
- Take-Grant model
- bridges
- wichtiger unterschied zur access matrix: rechte können nicht verloren gehen.
- rekursive funmktion in C gegeben
- kompilieren
- disassemblieren
- analysieren
2012-05-03 Thu
Vorlesung verpasst :(
2012-04-30 Mon - Tutorium
Access Control Matrix
- Es gibt keine impliziten Annahmen über existierende Rechte. Es ist stark abhängig davon was man modelieren will, was es für Rechte gibt.
- Eine Matrix ist erstmal leer, außer es ist etwas anderes vorgegeben
Assembly
- bei x64 ist der Stack 16 byte aligned
- deswegen war in dem Beispiel auch
- sub $8, %rsp
- add $8, %rsp
- deswegen war in dem Beispiel auch
- folgendes war unter linux nötig um es zu kompilieren:
.data _hello: .asciz "Hello, world\n" .text .globl main .globl _main main: sub $8, %rsp lea _hello(%rip), %rdi call printf add $8, %rsp ret
Übungsblatt
- Access Control Matrix als Turingmaschine
- Es lohnt sich das Buch von Gasser zu lesen
- es gibt 2 programm dumps (gdb ausgaben)
- man soll ein Programm schreiben, dass die gleiche ausgabe produziert
- die Befehle in gdb:
- gdb programm
- break main
- run
- disassemble
- info registers
2012-04-26 Thu
Definition: Protection System
- finite set of generic reghts
- finite set of commands
- command α(X1,…,Xk)
- if r1 in (Xs1, Xo1)
- …
- rm in(Xsm,Xom)
- then
- op1
- …
- opn
- primitive operations
- enter r in (X,Y)
- delete r from (X,Y)
- create subject x | object X
- destroy subject x | object X
- command α(X1,…,Xk)
Definition: Configuration
is a triple (S,O,P) where
- S: subjects
- O: objects
- P: Matrix
Example
generic rights own, read, …
- Command CREATE(process,file)
- create object file
- enter own into (process,file)
- command CONFERr (owender,friend,file)
- if own in (owner,file) then
- enter r into (friend,file)
- if own in (owner,file) then
- Def: Q=(S,O,P)
- (a) Q |-α (x1,…,xk) Q'
- konkrete Operation α mit konkreten Parametern
- (a) Q |-α Q'
- es existiert eine Operation \alpa, so dass Q' erreicht wird
- (a) Q |-α (x1,…,xk) Q'
- command iREAD(S1,S2,o)
- if read in (S2,o) | iread i (S1,S2) then
- enter read into (S1,o)
- delete read from (S_,o)
- if read in (S2,o) | iread i (S1,S2) then
A system, that differentiates betweet owener rights and 'all' (as a group) rights
- command letaread(u,f)
- if own in (u,f) then
- enter aread into (f,f)
- if own in (u,f) then
- command READ1(u,f)
- if own in (u,f) ∧ oread in (f,f)
- enter read into (u,f)
- if own in (u,f) ∧ oread in (f,f)
- command READ2(u,f)
- if aread in (f,f)
- …
- if aread in (f,f)
Was ist Sicherheit?
- Kann ein Recht an eine Stelle der Matrix gelangen, wo es nicht hingehört, nachdem alle vertrauenswürdigen Subjekte entfernt wurden.
- Definition: A protection System leaks a generic right r from configuration Q if α, when run on Q, can execute a primitive op which enters r into a cell of the matrix that did not contain r before
- Definition: Mono-operational protection system
- Each command's bady contains a single promitive operation
Proof (obeservations)
- no testing for "absence" of rights allows removing delete and destroy commands
- no create object + enter rights allows removing multiple creates
Entscheidbar
Allgemein
Zurückführbar auf das Halteproblem
W | own | ||
x,q | own | ||
y | own | ||
z,E |
2012-04-24 Tue
- Sichere Identifikation
- Begrifflichkeiten (Um was gehts?)
- Rollen/Gruppen
- Objekte
- Personenx
- Identitätsträger/Chipsicherheit
Biometrie
- Überprüfung der Identität von Personen anhand ihrer physiologischen Merkmale.
- Es werden Referenzmuster erfasst.
- Anforderungen
- Gewünschte Eigenschaften
- Eignungsmerkmale
- universal
- einzigartig
- beständig
- technisch erfassbar
- Benutzerakzeptanz
- Performante technische Umsetzung
- Sicherheit vor Überwindung(!)
- Seiteneffekte: Fehlermaße
- Eignungsmerkmale
- Staatliche Anwendung
- ePass, nPA und eAT
- EasyPASS
- EU-Visa-Informationssystem
- Soll Übertragbarkeit erschweren
- Kommerzielle Anwendungen
- Rechner
- Gebäude
- Banking
- Anwenungsklassen
- Verfikation: 1:1 Vergleich (Referenzwert ?=? Istwert)
- Identifikation: 1:n Vergleich
- Gewünschte Eigenschaften
- Biometrische Modalitäten
- Iris (Auge)
- Gesichtsform
- Venen
- Finger
- Fehlermaße
- Wo ist Akzeptanzschwelle
- Equal Error Rate (ERR)
- False Enrolement Rate (FER)
- Ich denke das nennt mach auch False Discovery Rate (FDR)
- Biometrische Fakes
- Finger-Fakes
- Gesichts-Fakes
- Fakebehandlung
- Bedrohungsanalyse
- Technische Abwehr
- Prüfen & Zertifizieren
- Finger-Fake-Erkennung
- Organisatorische Maßnahmen (da guckt noch einer)
- Scanner Daten nutzen (Hautverformung beim Auflegen? Poren vorhanden?)
- Spezielle Sensorik
- Live-Merkmale
- Puls, Elektrokordiale-Aktivität
- Blutdruck
- etc.
- Biometrische Risiken
- Identitätsdiebstahl durch Angriffe auf Referenzdaten
- Wunsch: Rückrufbarkeit der biometrischen Referenz
- Biometrische Kryptosysteme
- Fuzzy Vault
- Identitätsdiebstahl durch Angriffe auf Referenzdaten
Zusammenfassung
- Steigerung Fläschungssicherheit biometrischer Erfassungssysteme ist notwendig
- Template-Protection-Verfahren sind eine wichtige Ergänzung für biometrische
Systeme
- Höhere Sicherheit
- Pseudonyme Identifikation
2012-04-23 Mon - Tutorium
Übungszettel
- Abgabe in Zweiergruppen
- Werden im Tutorium abgegeben
- Zwei Teile: 1 pflicht, 1 optional
- Es wird eine Aufgabe ausgewählt, die korrigiert wird
- Übungszettel kommen wöchentlich raus
- Es wird Lesestoff verlinkt, den man lesen sollte
- Tutor kompilliert Beispiele MAC und 64 bit.
- Wir verwenden gcc incl. GNU Assembler
Fragen zur Vorlesung
- Was hat es mit "no read up" und "no write down" Regeln auf sich?
- Es soll nichts aus oberen Sicherheitsebenen nach unten geleaked werden.
- Info Flow Model ist ne alte Sache, die zur Zeit nicht so richtig umgesetzt wirde.
Übungsblatt
- Access Control Matrix kommt im Übungsblatt dran. (am besten das entsprechende Kapitel lesen)
- Rainbow Table ist in einer anderen Aufgabe dran.
- die Regenerationsfunktion ist magic.
- diese Aufgabe kann mann auch mit Stift und Papier lösen
- Optionale Assembler Aufgabe. Soll sehr einfach sein, wenn man schon mal was mit Assembler gemacht hat.
Begriff
- Stack, Heap
- Stack wächst von hohen Adressen, Strings und andere Daten werden von den niedrigen zu den hohen Adressen geschrieben
- Stackframe
- Stackalignment
- PUSH, POP
- Register
64bit 32bit 16bit 8bit RAX EAX AX AL/AH - Argumente werde heutzutage über den Stack aufgerufen.
- heutzutage call statt int(errupt)
- mov $1 %EAX
- verschiebe den Wert 1 nach eax
2012-04-19 Thu
Scurity Models
- Properties
- precise, unambiguous
- simple, abstract, easy to comprehend
- generic, security properties only
- "obvious" representation of the security policy
- Reasons for insecurity
- bug in security controls
- flaw in the definition of what "secure" means
- Informal development path
- security requirements <–|demonstation|– functional specification <–|testing|– implementation
- formal development path
- abstract model <–|proof|– fomal specification <–|proof|– implementation
- Types of security models
- state machine (access matrix HRU)
- information flow
- non-interference
- State machine models
- define state variables
- s Subjects
- o Objects
- sclass(s) access class of subject
- oclass(o) access class of object
- A(s,o) set of modes {r},{rw},{w},{}
- contents(o)
- subj. active subject
- security state invariant
- invariant: the system is secure iff
- ∀ s ∈ S, o ∈ O:
- if r∈ A(s,o) then sclass(s) >= oclass(o)
- if w∈ A(s,o) then oclass(o) >= sclass(s)
- invariant: the system is secure iff
- state transition functions
- createobject(o,c)
- if o ∉ O then
- 'O = O u {0} and 'oclass(o)=0 and ∀ s∈ S 'A(s,o)={}
- if o ∉ O then
- setaccess(s,o,modes)
- create/changeobject(o,c)
- 'oclass(o) = c AND if o ∉ then 'o=O u {o} and ∀ s ∈ S: 'A(s,o)={}
- constraint: ∀ o ∈ O: 'oclass(o) >= oclass(o)
- createobject(o,c)
- prove security functions secure
- Invariant AND Funtion => 'Invariant
- define the initial state
- prove initial state secure
- define state variables
- Policy: A person may read a document only if the person's clearance is greater or equal to the classification of the document. No read up.
- Properties:
- read ony if access class of subject is >= access class of obj.
- write only if access class of abj. >= access class of subj.
- The access class of an object cannot decrease
- A subj may modifiy another sbject's access … only if the first subj. can read the object
- im buch ist ein fehler bei constraint 3 auf Seite 120
2012-04-17 Tue
- Tutoriumstermine haben sich verschoben
- Sicherheitsziele
- vertraulichkeit
- integrität
- verfügbarkeit
- Zwei Sichtweisen
- Random Faliures (Murphys Law)
- Sicherheitsfunktionen
- prevention
- detection
- reaction
- recovery
- deterrent (audit-trail)
- Interne- und Extere Sicherheit
- Grenzen vom System ermittlen
- system boundary
- security perimeter in computer: OS?
- Prozedurale Sicherheit
- Mit welchen Prozess wir der Zugang zu einem System gewährt
- Wer darf Hardware an einen Rechner anschließen?
- Risiko Analyse
- Die höhe des Risikos kann nur in groben Stufen geschätzt werden
- Effekt Analyse
- so wie oben
- Jemand hat gesagt, es gibt 2 Sicherheitsmechanismen
- reference monitor
- cryptography
- Wir brauchen beide. 2. Erweitert 1. auf das Netzwerk.
- Identifikation
- Wer ist das?
- ID
- Authentisierung
- Ist ers wirklich?
- Authorisierung
- Jetzt soll er das machen können, was er darf.
- Policy vs. Mechanism
- Policy: beliebig schwammige Formulierung der Ziele. Muss präzise für den Rechner übersetzt werden.
- Mechanism: Umsetzung einer Policy in einem Rechner
- Assumptions & Trust
- Wir müssen Annahmen über die Umgebung treffen.
- Wir nehmen implizit an, dass Speicher korrekt funktioniert.
- Nicht vertrauenswürde Software
- benign software (harmlos)
- malign software (absichtlich eingeschleuste schadsoftware)
- Noch eine weitere Dimension
- Assurence: ist schwer
- müssen uns mit weniger zufrieden geben
- Die höchst zusicherung im orange book:
- Formelle spezifikation
- Beweis des Models
- Beweis, dass die Implementierung mit dem Model korrespondiert
- Die ganze entwicklungskette muss zertifiziert sein.
- discretionary security policy vs mandatory ….
- discretionary: jeder nutzer setzt die lese rechte selbst
- mandatory: nicht
- Passwörter:
- remote vs. local zugang
- rainbow table
2012-04-12 Thu
- Tutorium am Montag
- wird wohl noch ein tutorium eingerichtet (auch am Montag)
- Die andere Vorlesung am Dienstag
- Aktive Teilnahme: 50% der Übungsleistungen erbringen
- Anwesenheit wird nicht erfasst
- man muss c-code schreiben
- gcc, gdb, make, latex, graphiz, git, ascii, qemu
- Quellen:
- portal.acm.org/dl.cfg
- aus dem uninetz entgeltfrei
- scholar.google.com
- www.informatik.uni-trier.de/
- ~ley/db
- DBLP
- portal.acm.org/dl.cfg
- honor code: www.acm.org/about/code-of-ethics
- Bei gruppenarbeit: "Mein Anteil an dieser Arbeit ist X"
- Übungen starten am 2012-04-23 Mon
Datum: 2012-06-20 12:14:33 CEST
Org version 7.6 with Emacs version 23