Keynote
Heise DevSec 2017
Felix von Leitner
Gedankengang 1
Wo kommt schlechte Software her?
- Man steht morgens auf
- „Heute schreibe ich mal so richtig schlechte Software!“
- Sonderzeichen escapen kostet nur Zeit!
- Och komm, hier passt noch ein Buffer Overflow rein!
Wie viele hier im Raum haben das schon mal erlebt?
Wer hier hat schon mal vorsätzlich
schlechte
Software geschrieben?
(und zwar nicht als Hackme!)
Niemand!
Kurzer Exkurs:
Aus meinem Giftschrank: ping.c!
int main(int argc,char* argv[]) {
unsigned long _c=0,_i=1,_q=0,_s=16,_t=64;
[…]
case 's': if (optarg[scan_ulong(optarg,&_s)]) goto usage;
break;
[…]
octets=8+_s;
if (octets>65515 || octets<8 || strlen(peer)>255) {
__write2("Ilja made me check for this.\n");
return 1;
}
obuf=alloca(octets);
Meine Ausreden damals
- ping für Rescue-Umgebung, Boot-Floppy
- Nicht setuid
- „Angreifer hackt sich bloß selbst“
- ...
Merke: An schlechten Ausreden herrscht nie Knappheit!
Lassen Sie mich die Frage mal umformulieren!
Wo kommt schlechte Software her?
- Heute schreibe ich mal einen Prototyp!
- Wir arbeiten hier agil, das ist bloß ein Demonstrator!
- Das ist nur ein Mock-Up, um Funding für den Rest zu kriegen!
- Ist ein Quick Hack, machen wir später nochmal ordentlich
- Proof of Concept, Erster Versuch, nicht für den Produktivbetrieb
- Sonderzeichen escapen kostet nur Zeit!
- Der Buffer Overflow hier ist nicht schlimm, fixen wir später
Wer hier hat schon mal vorsätzlich
schlechte
Software geschrieben?
(und hat sich das mit schlechten Ausreden schöngeredet)