Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 1 » Prüfungsprotokoll/Braindump mündl. Prüfung vom 2012-03-13 (Übersicht)
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
pruefungen:hauptstudium:ls1:appitesec_20120313_2 [22.03.2012 18:38] – neverpanic | pruefungen:hauptstudium:ls1:appitesec_20120313_2 [26.09.2012 19:43] (aktuell) – mich | ||
---|---|---|---|
Zeile 24: | Zeile 24: | ||
=====Organisatorisches===== | =====Organisatorisches===== | ||
- | P: (sicherheitshalber) Prüfung für " | + | P: (sicherheitshalber) Prüfung für " |
- | schon mal mündl. Prüfung gehabt ?\\ | + | schon mal mündl. Prüfung gehabt? |
Wenn Frage nicht verstanden, nochmal nachfragen.\\ | Wenn Frage nicht verstanden, nochmal nachfragen.\\ | ||
Wenn Wissenslücke bei best. Frage/ | Wenn Wissenslücke bei best. Frage/ | ||
Zeile 32: | Zeile 32: | ||
=====1.Softwaresicherheit===== | =====1.Softwaresicherheit===== | ||
- | P: Mit welchem Gebiet beginnen ?\\ | + | P: Mit welchem Gebiet beginnen? |
S: Softwaresicherheit\\ | S: Softwaresicherheit\\ | ||
- | P: Haben versch. Schwachstellen kennengelernt. Welche hat ihnen am besten gefallen ?\\ | + | P: Haben versch. Schwachstellen kennengelernt. Welche hat ihnen am besten gefallen? |
S: Stack-Overflow\\ | S: Stack-Overflow\\ | ||
- | P: Klassiker. Erklären, was ist ein Stack-Overflow, | + | P: Klassiker. Erklären, was ist ein Stack-Overflow, |
S: Prinzipiell Versuch, mit schlecht geprüften Eingaben/ | S: Prinzipiell Versuch, mit schlecht geprüften Eingaben/ | ||
Bei return aus aktueller Funktion wird dann zu Adresse in RIP gesprungen.\\ | Bei return aus aktueller Funktion wird dann zu Adresse in RIP gesprungen.\\ | ||
Zeile 52: | Zeile 52: | ||
P: ...(überlegt nächste Frage)\\ | P: ...(überlegt nächste Frage)\\ | ||
S: noch was eingefallen: | S: noch was eingefallen: | ||
- | * wenn " | + | |
- | * evtl. Address-Space-Randomization ausschalten | + | * evtl. Address-Space-Randomization ausschalten |
- | * evtl. canaries(stack-guards) berücksichtigen | + | * evtl. canaries(stack-guards) berücksichtigen |
- | P: Warum Stack-Overflow schwerer mit Address-Layout-Randomization ?\\ | + | P: Warum Stack-Overflow schwerer mit Address-Layout-Randomization? |
S: genau weiß ichs nicht, aber prinzipiell werden Adressen/ | S: genau weiß ichs nicht, aber prinzipiell werden Adressen/ | ||
P: hmm ungefähr. Wichtig v.A., dass Adressen vom selben Programm auf eigenem Rechner nicht gleich sind auf anderem Rechner.\\ | P: hmm ungefähr. Wichtig v.A., dass Adressen vom selben Programm auf eigenem Rechner nicht gleich sind auf anderem Rechner.\\ | ||
note: TODO: | note: TODO: | ||
gilt das nur fürs Neu-compilen(=> | gilt das nur fürs Neu-compilen(=> | ||
- | oder auch auch für fertige binaries(=> | + | oder auch auch für fertige binaries(=> |
- | P: Was wenn Intel damals Architektur anders entworfen hätte ? z.B. RIP am unteren Ende des Stack-Frames oder Schreibrichtung Speicher von max.2min.\\ | + | // |
- | Hätte man Problem, in aktueller Funktion eigenen RIP zu überschreiben ?\\ | + | |
+ | P: Was wenn Intel damals Architektur anders entworfen hätte? z.B. RIP am unteren Ende des Stack-Frames oder Schreibrichtung Speicher von max.2min.\\ | ||
+ | Hätte man Problem, in aktueller Funktion eigenen RIP zu überschreiben? | ||
S: Prinzipiell kann man rel. zum ebp/esp alle Adressen auf Stack ansprechen.\\ | S: Prinzipiell kann man rel. zum ebp/esp alle Adressen auf Stack ansprechen.\\ | ||
(war etwas verwirrt, hab gezögert und nochmal nachgefragt und nicht gleich gerafft worauf Prüfer hinaus wollte)\\ | (war etwas verwirrt, hab gezögert und nochmal nachgefragt und nicht gleich gerafft worauf Prüfer hinaus wollte)\\ | ||
- | P: Wie würde man denn buf bei normaler Architektur konkret überschreiben ?\\ | + | P: Wie würde man denn buf bei normaler Architektur konkret überschreiben? |
Schreiben sie mal so ein minimal-sicheres Programm hin. (note: gemeint war, Programm anfällig für Stack-Overflow)\\ | Schreiben sie mal so ein minimal-sicheres Programm hin. (note: gemeint war, Programm anfällig für Stack-Overflow)\\ | ||
S: | S: | ||
Zeile 74: | Zeile 76: | ||
} | } | ||
</ | </ | ||
- | P: genau. Wie könnte man aus strcpy heraus RIP von strcpy überschreiben, | + | P: genau. Wie könnte man aus strcpy heraus RIP von strcpy überschreiben, |
S: achso, wenn buf call-by-ref übergeben wird, kann buf den RIP von der anderen Seite aus überschreiben.\\ | S: achso, wenn buf call-by-ref übergeben wird, kann buf den RIP von der anderen Seite aus überschreiben.\\ | ||
note: egal wie genau eine Architektur jetzt schreibt oder den Stack-Frame zusammensetzt, | note: egal wie genau eine Architektur jetzt schreibt oder den Stack-Frame zusammensetzt, | ||
Zeile 80: | Zeile 82: | ||
und das ABI der Architektur (z.B. CDECL c calling convention wird vom gcc verwendet) | und das ABI der Architektur (z.B. CDECL c calling convention wird vom gcc verwendet) | ||
z.B. Reihenfolge die Parameter-Ablage, | z.B. Reihenfolge die Parameter-Ablage, | ||
- | P: Haben sie Erfahrung aus der Praxis, sind Stack-Overflows immer noch relevant ?\\ | + | P: Haben sie Erfahrung aus der Praxis, sind Stack-Overflows immer noch relevant?\\ |
- | S: Hmm nicht sicher, aber ich glaub die LSASS-Schwachstelle in einer der Windows-DLLs war einer ?\\ | + | S: Hmm nicht sicher, aber ich glaub die LSASS-Schwachstelle in einer der Windows-DLLs war einer? |
note: und afaik war auch der vom Sapphire genutzte Exploit im MS-SQL-Server einer\\ | note: und afaik war auch der vom Sapphire genutzte Exploit im MS-SQL-Server einer\\ | ||
Zeile 87: | Zeile 89: | ||
=====2. Cybercrime===== | =====2. Cybercrime===== | ||
- | P: Wenn sie so eine Schwachstelle entdeckt haben, wie können sie das zu Geld machen ?\\ | + | P: Wenn sie so eine Schwachstelle entdeckt haben, wie können sie das zu Geld machen? |
S: Mehrere Wege.\\ | S: Mehrere Wege.\\ | ||
Erstmal grob entscheiden ob auf " | Erstmal grob entscheiden ob auf " | ||
Zeile 96: | Zeile 98: | ||
In der Vorlesung steht dazu bestimmt noch mehr. | In der Vorlesung steht dazu bestimmt noch mehr. | ||
Mit ner vulnerability ist man erst mal auf der " | Mit ner vulnerability ist man erst mal auf der " | ||
- | " | + | " |
und dann mittels einer Sicherheitslücke z.B. Geld von Konten mit ausgespähtem Login an mein schweizer Konto überweise.\\ | und dann mittels einer Sicherheitslücke z.B. Geld von Konten mit ausgespähtem Login an mein schweizer Konto überweise.\\ | ||
note: wie gesagt, das passt so noch nicht. | note: wie gesagt, das passt so noch nicht. | ||
- | P: Ja, das war jetzt schon eher in die Richtung, was sie mit der Schwachstelle anfangen. Wenn sie nur Schachstelle entdecken, gibts Parteien, die ihnen für diese Information Geld geben würden ?\\ | + | P: Ja, das war jetzt schon eher in die Richtung, was sie mit der Schwachstelle anfangen. Wenn sie nur Schachstelle entdecken, gibts Parteien, die ihnen für diese Information Geld geben würden? |
S: Ja, z.B. das SW-Unternehmen, | S: Ja, z.B. das SW-Unternehmen, | ||
P: Ja, das war jetzt sozusagen die " | P: Ja, das war jetzt sozusagen die " | ||
note: Erpressung hatte ich nicht explizit erwähnt | note: Erpressung hatte ich nicht explizit erwähnt | ||
- | Aber wichtige Persönlichkeiten oder Privat-Leute wollen doch eher wissen, wie sie sich schützen und nicht wie der Exploit geht ?\\ | + | Aber wichtige Persönlichkeiten oder Privat-Leute wollen doch eher wissen, wie sie sich schützen und nicht wie der Exploit geht? |
S: Natürlich kaufen das auch Leute um illegales zu tun.\\ | S: Natürlich kaufen das auch Leute um illegales zu tun.\\ | ||
P: Genau, also z.B. Kriminelle aber auch Geheimdienst-Mitarbeiter\\ | P: Genau, also z.B. Kriminelle aber auch Geheimdienst-Mitarbeiter\\ | ||
=====3. ethische/ | =====3. ethische/ | ||
- | P: Wir haben auch Gesetzgebung angeschaut. Haben sie Lieblings-Paragraph z.B. " | + | P: Wir haben auch Gesetzgebung angeschaut. Haben sie Lieblings-Paragraph z.B. " |
S: Leider nicht so genau. Aber grundsätzl. wichtig war Unterscheidung, | S: Leider nicht so genau. Aber grundsätzl. wichtig war Unterscheidung, | ||
sonder schon wenn man das vorbereitet/ | sonder schon wenn man das vorbereitet/ | ||
- | P: OK. Aber wenn sie jetzt z.B. eine Sicherheitslücke finden und an so eine " | + | P: OK. Aber wenn sie jetzt z.B. eine Sicherheitslücke finden und an so eine " |
S: Hmm, also im Graubereich ist es auf jeden Fall. Intuitiv wärs für mich schon eher illegal. Aber nach Wortlaut eines Paragraphen weiß ich nicht.\\ | S: Hmm, also im Graubereich ist es auf jeden Fall. Intuitiv wärs für mich schon eher illegal. Aber nach Wortlaut eines Paragraphen weiß ich nicht.\\ | ||
Zeile 119: | Zeile 121: | ||
* gemeinsames Geheimnis k | * gemeinsames Geheimnis k | ||
* Haben Message Authentication Codes kennen gelernt. | * Haben Message Authentication Codes kennen gelernt. | ||
- | * Was ist das und wofür ist das gut ? | + | * Was ist das und wofür ist das gut? |
S: kryptographischer Hash abhäng. von symm. Schlüssel und Nachrichten-Inhalt. Unklar ob immer mit oder ohne plain-text von m. Glaub mit.\\ | S: kryptographischer Hash abhäng. von symm. Schlüssel und Nachrichten-Inhalt. Unklar ob immer mit oder ohne plain-text von m. Glaub mit.\\ | ||
- | P: Mal aufschreiben. Warum wird authenticity gewährleistet ?\\ | + | P: Mal aufschreiben. Warum wird authenticity gewährleistet? |
S: | S: | ||
A->B | A->B | ||
Zeile 131: | Zeile 133: | ||
=> authentisch, | => authentisch, | ||
Zusätzlich integrity von m. | Zusätzlich integrity von m. | ||
- | P: Was, wenn nicht h_k() verwenden sondern h() ?\\ | + | P: Was, wenn nicht h_k() verwenden sondern h()? |
A: am einfachsten z.B. k konkatenieren mit h(k||m)\\ | A: am einfachsten z.B. k konkatenieren mit h(k||m)\\ | ||
- | P: Zwar authenticity, | + | P: Zwar authenticity, |
A: Mehrere Mögl., prinzipiell muss man MAC zustands-abhäng. machen.\\ | A: Mehrere Mögl., prinzipiell muss man MAC zustands-abhäng. machen.\\ | ||
- | - | ||
Zeile 168: | Zeile 170: | ||
P: Nachfrage (weil zu schwammig. Weiß nicht mehr was genau, was gefragt wurde.)\\ | P: Nachfrage (weil zu schwammig. Weiß nicht mehr was genau, was gefragt wurde.)\\ | ||
P: Genau, also als Einmal-Passwörter. \\ | P: Genau, also als Einmal-Passwörter. \\ | ||
- | Und wenn sich B die Kette merkt (note: oder wars nur h_n oder h_1 ? Würde evtl. schon ausreichen), | + | Und wenn sich B die Kette merkt (note: oder wars nur h_n oder h_1? Würde evtl. schon ausreichen), |
note: und Änderung der Sequenz-Reihenfolge | note: und Änderung der Sequenz-Reihenfolge | ||
S: Mit der rekursiven Verschachtelung kann man auch MAC-Ketten berechnen (siehe pdf S.13)\\ | S: Mit der rekursiven Verschachtelung kann man auch MAC-Ketten berechnen (siehe pdf S.13)\\ | ||
note: dann ist replay erkennbar und Manipulation des Inhalts oder der Reihenfolge einer Message-Sequenz. | note: dann ist replay erkennbar und Manipulation des Inhalts oder der Reihenfolge einer Message-Sequenz. | ||
Vorteil ist hier auch, dass die Kette (theoret.) beliebig lang sein kann. | Vorteil ist hier auch, dass die Kette (theoret.) beliebig lang sein kann. | ||
- | P: Das hatten wir aber nicht in der Vorlesung dran ?\\ | + | P: Das hatten wir aber nicht in der Vorlesung dran? |
S: Nein , nur in der Übungs-Lösung.\\ | S: Nein , nur in der Übungs-Lösung.\\ | ||
P: Zwar authenticity und integrity der Nachricht gegeben, aber immer noch gemeinsames Geheimnis k. Um auch das Problem zu lösen, braucht man z.B. Zertifikate. Erklären bitte ...\\ | P: Zwar authenticity und integrity der Nachricht gegeben, aber immer noch gemeinsames Geheimnis k. Um auch das Problem zu lösen, braucht man z.B. Zertifikate. Erklären bitte ...\\ | ||
Zeile 183: | Zeile 185: | ||
note: z.B. Signaturen vom e-mails etc. | note: z.B. Signaturen vom e-mails etc. | ||
- | P: Vor- & Nachteile von Zertifikaten gegenüber Ansätzen mit symm. Verschlüsselung ?\\ | + | P: Vor- & Nachteile von Zertifikaten gegenüber Ansätzen mit symm. Verschlüsselung? |
S: | S: | ||
* Vorteile: kein shared key | * Vorteile: kein shared key |