SlideShare ist ein Scribd-Unternehmen logo
Wieso Informatiker bei der
Informationssicherheit scheitern
Ein Erklärungsversuch für die Realität
• Bitte keine Gegenstände werfen
RAHMENBEDINGUNGEN
Management
• Geld / Zeit
• Sicherheitsschulungen
• Zu viele/wenige/generelle
Sicherheitsrichtlinien
• Outsourcing
Programmierung
Unsicherer
Code
Fehler
Nicht
funktionsfähiger
Code
„Hacking ist nicht real“
• Hacking-Agnostiker gibt es tatsächlich noch
• Statistiken
• Medien
– Jailbreak
– Anonymous
• Verborgenheit
– Argument der Eintretenswahrscheinlichkeit
– Dunkelziffer
Komplexität
• Abstraktion ist König
• Fehler: Erwarten valide Inputs
ONLINE
Informationsquelle
Why it’s easy being a hacker [1]
Why it’s easy being a hacker [1]
• Google „How to use PHP with MySQL“
• Min. 5 von 10 SQL Injection
Datei-Upload
• Google „How to do a file upload in PHP“
• Min. Sicherheitskriterien
– Dateiendung überprüfen
– MIME-type überprüfen
– Nicht in Web Root ablegen
– Keine Manipulation des Speicherorts
• 6 von 10 unsicher
Datei-Upload
• Web Root, keine Checks (Security
Warnung)
• Web Root, keine Checks
• Web Root, keine Checks, chmod 777, XSS
• Web Root, kein MIME-Check, XSS
• Irrelevant
• Video
• Keine Checks, XSS
• Web Root, keine Checks, SQL Injection,
Manipulation Speicherort
• Web Root, keine Checks, chmod 777,
Manipulation Speicherort
• Web Root, keine Checks, Manipulation
Speicherort
Wikipedia
BÜCHER
Dann eben doch die Informationsquelle
Why it’s easy being a hacker [1]
• 3 von 6 SQL Injection
Programming Python S. 18
• "[…] eval call […] is potentially unsafe; you
shouldn't use eval if you can't be sure [...]
won't contain malicious code […]"
• Ähnlich auf Seite 49
Programming Python S. 38/39
• eval(benutzereingabe)
• Demo 1
Programming Python Autor
• "eval() reflects a classic tradeoff between
security and power. In an early book example,
security seems a minor topic, and perhaps less
important to illustrate than language power."
Die Suche nach dem sicheren eval
• Google „python safe eval“
– eval(benutzereingabe,{"__builtins__":None},{})
– Demo 2
Exploit
[x for x in (1).__class__.__base__.__subclasses__() if
x.__name__ ==
'Pattern'][0].__init__.__globals__['__builtins__']['__impo
rt__']('os').system('cd /; python -m SimpleHTTPServer')
PROGRAMMIER-BIBLIOTHEKEN
Oder Hilfsmittel
OpenSSL [2]
• Rückgabewert von SSL_connect
– Kann OK (1) zurückgeben
• Setzt intern aber "verify result" flags
• SSL_get_ verify_result nötig
• Opfer
– Trillian
GnuTLS [2]
• Rückgabewert von
gnutls_certificate_verify_peers2(tls_status)
– Kann OK (0) zurückgeben
• tls_status enthält jedoch Fehler Code
• Opfer
– Lynx Browser
cURL [2]
• CURLOPT_SSL_VERIFYPEER
– Richtig: True
• CURLOPT_SSL_VERIFYHOST
– Richtig: 2
• Opfer
– Amazon Flexible Payments Service SDK für PHP
– PayPal Payments Standard
– PayPal Invoicing für PHP
– PayPal IPN in ZenCart
Java Secure Socket Extension (JSSE) [2]
• Grundsätzlich keine Hostnamenüberprüfung für
SSLSocketFactory
– Java 6  Exception wenn Protokoll unklar (HTTPS/LDAPS)
– Java 7  Keine Exception
• Opfer
– Apache HttpClient Version 3
• Weberknecht
• Apache Axis
– PayPal’s Java SDKs
• Apache Axis 2
• Codehaus XFire <= 1.2.6
– Amazon EC2 API Tools
– Amazon Flexible Payments Service
• ...
SAML-Frameworks [3]
• 11 von 14 enthielten Schwachstellen
• Beispiel Opfer:
– OpenSAML
• Shibboleth
– SuisseID
HERSTELLERDOKUMENTATIONEN
Aber wenigstens
Nochmal SSL [2]
• Apache XFire  Apache CXF
Apple Idiotenvektor [4]
• InitialisierungsVektor (IV)
• 1 von 2 Programmierbüchern
Letzthin im #python IRC-Chat
• Unterschied von input() in Python2 und
Python3
• "the fact that we didn't remove input() from
python2 a long time ago is crazy.“
DEP, ASLR und Konsorten
• Müssen aktiviert werden
• 2 unabhängige Buffer Overflows
– Auf 3 von 4 Plattformen à la 1995
PROGRAMMIERUNG GEHT AUCH
OHNE SECURITY
Leider,
Referent – meine erste Homepage
• Passwörter im Klartext
<form name="gbook" method="post" action="<?php echo
$_SERVER['PHP_SELF']; ?>">
Kryptografischer Horror
Passwort MD5 Resultat: MD5 HASH von Passwort
CRC32 Resultat: CRC32 vom MD5 Hash
SHA1
Resultat: SHA1 Hash von CRC32
substr($input, 0, 3) substr($input, 4)
$cryptedpw = $part2 + $part1 + $part2
Beispiel:
"00FE" + "12AB" = "12"
Richtig wäre:
"00FE" . "12AB" = "00FE12AB"
CRC32 Resultat: CRC32
Web Server Horror
#!/usr/bin/perl -w
use strict 'vars'; use strict 'subs'; use CGI ':standard’;
use CGI::Carp qw(fatalsToBrowser);
use constant DOWNLOAD_DIR => q{/tmp/path/};
my $B = param('B');
$B =~ s/^/+//g;
my $filen = DOWNLOAD_DIR . "/" . $B;
my $basename = `basename $B`;
my $size = (stat($filen))[7];
open(DLFILE, "<$filen") or Error("Kann $B nicht
oeffnen.");
if($B =~ /.sik$/o) {} else { unlink($filen);}
my $filedata = do { local $/; <DLFILE> };
print "Content-Length: $sizen";
print $filedata;
exit 0;
FAZIT
Und jetzt?
Gegenmassnahmen
• KISS
• Kein blindes kopieren unabhängig von Quelle
– Verstand/Sicherheitssicht/Kollegen nutzen
• Sicherheitsmechanismen an lassen
• Sicherheitsmechanismen an machen
• Sicherheitsthemen zur Arbeit suchen
• Schulungen
– Awareness
– Eigene Security-Tests, richtige Hilfsmittel
– Secure Development
• Penetration Testing
int 3
• Twitter: @floyd_ch
• tobias@modzero.ch
• Twitter: @mod0
• http://www.modzero.ch
Quellen
• [Pointing finger picture] http://www.workingkansans.com/2012/03/house-
republicans-pointing-fingers-after-failing-to-read-2-page-bill/
• [bobby tables] http://xkcd.com/327/
• [APT1] http://intelreport.mandiant.com/Mandiant_APT1_Report.pdf
• [Suspicious owl] http://www.troll.me/2012/03/01/a-suspicious-owl/everythings-
just-fine-thats-suspicious/
• [Skimasken-Hacker] http://best9.wordpress.com/2011/01/16/top-10-hackers/
• [Not funny when you‘re next] http://thepowerofapostrophe.blogspot.no/
• [Executing 41414141] http://nickfnord.wordpress.com/2008/10/17/buffer-
overflow-basics-part-1/
• [1] http://www.securesolutions.no/why-its-easy-being-a-hacker/
• [2] https://crypto.stanford.edu/~dabo/pubs/abstracts/ssl-client-bugs.html
• [3] http://www.nds.rub.de/research/publications/BreakingSAML/
• [4]
http://www.modzero.ch/modlog/archives/2011/11/04/the_apple_idioten_vektor
_iv/index.html
• [5] http://www.opensource.apple.com/source/CommonCrypto/CommonCrypto-
36064/CommonCrypto/CommonCryptor.h

Weitere ähnliche Inhalte

Andere mochten auch

Mtwst 2
Mtwst 2Mtwst 2
Mtwst 2
Nour Elbader
 
199 primaire2016
199 primaire2016199 primaire2016
199 primaire2016
Nour Elbader
 
Pemp
PempPemp
195 moyen opt
195 moyen opt195 moyen opt
195 moyen opt
Nour Elbader
 
ابتدائي مستغانم
ابتدائي مستغانمابتدائي مستغانم
ابتدائي مستغانم
Nour Elbader
 
تمرانست
تمرانستتمرانست
تمرانست
Nour Elbader
 
Ppep
PpepPpep
Btdyy 2
Btdyy 2Btdyy 2
Btdyy 2
Nour Elbader
 
Pepp
PeppPepp
Btdyy1
Btdyy1Btdyy1
Btdyy1
Nour Elbader
 
197 secondaire2016
197 secondaire2016197 secondaire2016
197 secondaire2016
Nour Elbader
 
Pesp
PespPesp
نتائج استاذ رئيسي
نتائج استاذ رئيسينتائج استاذ رئيسي
نتائج استاذ رئيسي
Nour Elbader
 
البويرية
البويريةالبويرية
البويرية
Nour Elbader
 
إدارة العدوة
إدارة العدوة إدارة العدوة
إدارة العدوة
Nour Elbader
 

Andere mochten auch (15)

Mtwst 2
Mtwst 2Mtwst 2
Mtwst 2
 
199 primaire2016
199 primaire2016199 primaire2016
199 primaire2016
 
Pemp
PempPemp
Pemp
 
195 moyen opt
195 moyen opt195 moyen opt
195 moyen opt
 
ابتدائي مستغانم
ابتدائي مستغانمابتدائي مستغانم
ابتدائي مستغانم
 
تمرانست
تمرانستتمرانست
تمرانست
 
Ppep
PpepPpep
Ppep
 
Btdyy 2
Btdyy 2Btdyy 2
Btdyy 2
 
Pepp
PeppPepp
Pepp
 
Btdyy1
Btdyy1Btdyy1
Btdyy1
 
197 secondaire2016
197 secondaire2016197 secondaire2016
197 secondaire2016
 
Pesp
PespPesp
Pesp
 
نتائج استاذ رئيسي
نتائج استاذ رئيسينتائج استاذ رئيسي
نتائج استاذ رئيسي
 
البويرية
البويريةالبويرية
البويرية
 
إدارة العدوة
إدارة العدوة إدارة العدوة
إدارة العدوة
 

Ähnlich wie Wieso Informatiker bei der Informationssicherheit scheitern

Javascript done right
Javascript done rightJavascript done right
Javascript done right
Dirk Ginader
 
OpenCL Grundlagen
OpenCL GrundlagenOpenCL Grundlagen
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterDer oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerter
Gunther Pippèrr
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershell
Creasoft AG
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
NETWAYS
 
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan KapsDevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
Stephan Kaps
 
Python Mike Müller
Python Mike MüllerPython Mike Müller
Python Mike Müller
Aberla
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
Sebastian Springer
 
Kryptografie und Zertifikate (Cryptoparty)
Kryptografie und Zertifikate (Cryptoparty)Kryptografie und Zertifikate (Cryptoparty)
Kryptografie und Zertifikate (Cryptoparty)
tschikarski
 
Production-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 WochenProduction-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 Wochen
André Goliath
 
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-FreaksSEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEARCH ONE
 
Source-Code-Analyse – ein praktikabler Ansatz
Source-Code-Analyse – ein praktikabler AnsatzSource-Code-Analyse – ein praktikabler Ansatz
Source-Code-Analyse – ein praktikabler Ansatz
Digicomp Academy AG
 
PowerShell Sicherheit in 6 Schritten produktiv absichern
PowerShell Sicherheit in 6 Schritten produktiv absichernPowerShell Sicherheit in 6 Schritten produktiv absichern
PowerShell Sicherheit in 6 Schritten produktiv absichern
Attila Krick
 
Automatisierte Linux Administration mit (R)?ex
Automatisierte Linux Administration mit (R)?ex Automatisierte Linux Administration mit (R)?ex
Automatisierte Linux Administration mit (R)?ex
Jan Gehring
 
MySQL Security SLAC 2015
MySQL Security SLAC 2015MySQL Security SLAC 2015
MySQL Security SLAC 2015
FromDual GmbH
 
Sichere Passwörter
Sichere PasswörterSichere Passwörter
Sichere Passwörter
Björn Wibben
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
Jens Siebert
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
Christian Mücke
 
Webinar: Online Security
Webinar: Online SecurityWebinar: Online Security
Webinar: Online Security
kuehlhaus AG
 
Backend-Services mit Rust
Backend-Services mit RustBackend-Services mit Rust
Backend-Services mit Rust
Jens Siebert
 

Ähnlich wie Wieso Informatiker bei der Informationssicherheit scheitern (20)

Javascript done right
Javascript done rightJavascript done right
Javascript done right
 
OpenCL Grundlagen
OpenCL GrundlagenOpenCL Grundlagen
OpenCL Grundlagen
 
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterDer oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerter
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershell
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
 
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan KapsDevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
 
Python Mike Müller
Python Mike MüllerPython Mike Müller
Python Mike Müller
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
 
Kryptografie und Zertifikate (Cryptoparty)
Kryptografie und Zertifikate (Cryptoparty)Kryptografie und Zertifikate (Cryptoparty)
Kryptografie und Zertifikate (Cryptoparty)
 
Production-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 WochenProduction-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 Wochen
 
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-FreaksSEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
 
Source-Code-Analyse – ein praktikabler Ansatz
Source-Code-Analyse – ein praktikabler AnsatzSource-Code-Analyse – ein praktikabler Ansatz
Source-Code-Analyse – ein praktikabler Ansatz
 
PowerShell Sicherheit in 6 Schritten produktiv absichern
PowerShell Sicherheit in 6 Schritten produktiv absichernPowerShell Sicherheit in 6 Schritten produktiv absichern
PowerShell Sicherheit in 6 Schritten produktiv absichern
 
Automatisierte Linux Administration mit (R)?ex
Automatisierte Linux Administration mit (R)?ex Automatisierte Linux Administration mit (R)?ex
Automatisierte Linux Administration mit (R)?ex
 
MySQL Security SLAC 2015
MySQL Security SLAC 2015MySQL Security SLAC 2015
MySQL Security SLAC 2015
 
Sichere Passwörter
Sichere PasswörterSichere Passwörter
Sichere Passwörter
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
Webinar: Online Security
Webinar: Online SecurityWebinar: Online Security
Webinar: Online Security
 
Backend-Services mit Rust
Backend-Services mit RustBackend-Services mit Rust
Backend-Services mit Rust
 

Mehr von Digicomp Academy AG

Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Digicomp Academy AG
 
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Digicomp Academy AG
 
Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018
Digicomp Academy AG
 
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handoutRoger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Digicomp Academy AG
 
Roger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handoutRoger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handout
Digicomp Academy AG
 
Xing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit xXing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit x
Digicomp Academy AG
 
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Digicomp Academy AG
 
IPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe KleinIPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe Klein
Digicomp Academy AG
 
Agiles Management - Wie geht das?
Agiles Management - Wie geht das?Agiles Management - Wie geht das?
Agiles Management - Wie geht das?
Digicomp Academy AG
 
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi OdermattGewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Digicomp Academy AG
 
Querdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING ExpertendialogQuerdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING Expertendialog
Digicomp Academy AG
 
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickelnXing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
Digicomp Academy AG
 
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingSwiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Digicomp Academy AG
 
UX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital BusinessUX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital Business
Digicomp Academy AG
 
Minenfeld IPv6
Minenfeld IPv6Minenfeld IPv6
Minenfeld IPv6
Digicomp Academy AG
 
Was ist design thinking
Was ist design thinkingWas ist design thinking
Was ist design thinking
Digicomp Academy AG
 
Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich
Digicomp Academy AG
 
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)CommerceXing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Digicomp Academy AG
 
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloudZahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
Digicomp Academy AG
 
General data protection regulation-slides
General data protection regulation-slidesGeneral data protection regulation-slides
General data protection regulation-slides
Digicomp Academy AG
 

Mehr von Digicomp Academy AG (20)

Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
 
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
 
Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018
 
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handoutRoger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
 
Roger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handoutRoger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handout
 
Xing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit xXing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit x
 
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
 
IPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe KleinIPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe Klein
 
Agiles Management - Wie geht das?
Agiles Management - Wie geht das?Agiles Management - Wie geht das?
Agiles Management - Wie geht das?
 
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi OdermattGewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
 
Querdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING ExpertendialogQuerdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING Expertendialog
 
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickelnXing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
 
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingSwiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
 
UX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital BusinessUX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital Business
 
Minenfeld IPv6
Minenfeld IPv6Minenfeld IPv6
Minenfeld IPv6
 
Was ist design thinking
Was ist design thinkingWas ist design thinking
Was ist design thinking
 
Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich
 
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)CommerceXing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
 
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloudZahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
 
General data protection regulation-slides
General data protection regulation-slidesGeneral data protection regulation-slides
General data protection regulation-slides
 

Wieso Informatiker bei der Informationssicherheit scheitern

  • 1. Wieso Informatiker bei der Informationssicherheit scheitern
  • 2. Ein Erklärungsversuch für die Realität • Bitte keine Gegenstände werfen
  • 4. Management • Geld / Zeit • Sicherheitsschulungen • Zu viele/wenige/generelle Sicherheitsrichtlinien • Outsourcing
  • 6. „Hacking ist nicht real“ • Hacking-Agnostiker gibt es tatsächlich noch • Statistiken • Medien – Jailbreak – Anonymous • Verborgenheit – Argument der Eintretenswahrscheinlichkeit – Dunkelziffer
  • 7. Komplexität • Abstraktion ist König • Fehler: Erwarten valide Inputs
  • 9. Why it’s easy being a hacker [1]
  • 10. Why it’s easy being a hacker [1] • Google „How to use PHP with MySQL“ • Min. 5 von 10 SQL Injection
  • 11. Datei-Upload • Google „How to do a file upload in PHP“ • Min. Sicherheitskriterien – Dateiendung überprüfen – MIME-type überprüfen – Nicht in Web Root ablegen – Keine Manipulation des Speicherorts • 6 von 10 unsicher
  • 12. Datei-Upload • Web Root, keine Checks (Security Warnung) • Web Root, keine Checks • Web Root, keine Checks, chmod 777, XSS • Web Root, kein MIME-Check, XSS • Irrelevant • Video • Keine Checks, XSS • Web Root, keine Checks, SQL Injection, Manipulation Speicherort • Web Root, keine Checks, chmod 777, Manipulation Speicherort • Web Root, keine Checks, Manipulation Speicherort
  • 14. BÜCHER Dann eben doch die Informationsquelle
  • 15. Why it’s easy being a hacker [1] • 3 von 6 SQL Injection
  • 16. Programming Python S. 18 • "[…] eval call […] is potentially unsafe; you shouldn't use eval if you can't be sure [...] won't contain malicious code […]" • Ähnlich auf Seite 49
  • 17. Programming Python S. 38/39 • eval(benutzereingabe) • Demo 1
  • 18. Programming Python Autor • "eval() reflects a classic tradeoff between security and power. In an early book example, security seems a minor topic, and perhaps less important to illustrate than language power."
  • 19. Die Suche nach dem sicheren eval • Google „python safe eval“ – eval(benutzereingabe,{"__builtins__":None},{}) – Demo 2
  • 20. Exploit [x for x in (1).__class__.__base__.__subclasses__() if x.__name__ == 'Pattern'][0].__init__.__globals__['__builtins__']['__impo rt__']('os').system('cd /; python -m SimpleHTTPServer')
  • 22. OpenSSL [2] • Rückgabewert von SSL_connect – Kann OK (1) zurückgeben • Setzt intern aber "verify result" flags • SSL_get_ verify_result nötig • Opfer – Trillian
  • 23. GnuTLS [2] • Rückgabewert von gnutls_certificate_verify_peers2(tls_status) – Kann OK (0) zurückgeben • tls_status enthält jedoch Fehler Code • Opfer – Lynx Browser
  • 24. cURL [2] • CURLOPT_SSL_VERIFYPEER – Richtig: True • CURLOPT_SSL_VERIFYHOST – Richtig: 2 • Opfer – Amazon Flexible Payments Service SDK für PHP – PayPal Payments Standard – PayPal Invoicing für PHP – PayPal IPN in ZenCart
  • 25. Java Secure Socket Extension (JSSE) [2] • Grundsätzlich keine Hostnamenüberprüfung für SSLSocketFactory – Java 6  Exception wenn Protokoll unklar (HTTPS/LDAPS) – Java 7  Keine Exception • Opfer – Apache HttpClient Version 3 • Weberknecht • Apache Axis – PayPal’s Java SDKs • Apache Axis 2 • Codehaus XFire <= 1.2.6 – Amazon EC2 API Tools – Amazon Flexible Payments Service • ...
  • 26. SAML-Frameworks [3] • 11 von 14 enthielten Schwachstellen • Beispiel Opfer: – OpenSAML • Shibboleth – SuisseID
  • 28. Nochmal SSL [2] • Apache XFire  Apache CXF
  • 29. Apple Idiotenvektor [4] • InitialisierungsVektor (IV) • 1 von 2 Programmierbüchern
  • 30. Letzthin im #python IRC-Chat • Unterschied von input() in Python2 und Python3 • "the fact that we didn't remove input() from python2 a long time ago is crazy.“
  • 31. DEP, ASLR und Konsorten • Müssen aktiviert werden • 2 unabhängige Buffer Overflows – Auf 3 von 4 Plattformen à la 1995
  • 32. PROGRAMMIERUNG GEHT AUCH OHNE SECURITY Leider,
  • 33. Referent – meine erste Homepage • Passwörter im Klartext <form name="gbook" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  • 34. Kryptografischer Horror Passwort MD5 Resultat: MD5 HASH von Passwort CRC32 Resultat: CRC32 vom MD5 Hash SHA1 Resultat: SHA1 Hash von CRC32 substr($input, 0, 3) substr($input, 4) $cryptedpw = $part2 + $part1 + $part2 Beispiel: "00FE" + "12AB" = "12" Richtig wäre: "00FE" . "12AB" = "00FE12AB" CRC32 Resultat: CRC32
  • 35. Web Server Horror #!/usr/bin/perl -w use strict 'vars'; use strict 'subs'; use CGI ':standard’; use CGI::Carp qw(fatalsToBrowser); use constant DOWNLOAD_DIR => q{/tmp/path/}; my $B = param('B'); $B =~ s/^/+//g; my $filen = DOWNLOAD_DIR . "/" . $B; my $basename = `basename $B`; my $size = (stat($filen))[7]; open(DLFILE, "<$filen") or Error("Kann $B nicht oeffnen."); if($B =~ /.sik$/o) {} else { unlink($filen);} my $filedata = do { local $/; <DLFILE> }; print "Content-Length: $sizen"; print $filedata; exit 0;
  • 37. Gegenmassnahmen • KISS • Kein blindes kopieren unabhängig von Quelle – Verstand/Sicherheitssicht/Kollegen nutzen • Sicherheitsmechanismen an lassen • Sicherheitsmechanismen an machen • Sicherheitsthemen zur Arbeit suchen • Schulungen – Awareness – Eigene Security-Tests, richtige Hilfsmittel – Secure Development • Penetration Testing
  • 38. int 3 • Twitter: @floyd_ch • tobias@modzero.ch • Twitter: @mod0 • http://www.modzero.ch
  • 39. Quellen • [Pointing finger picture] http://www.workingkansans.com/2012/03/house- republicans-pointing-fingers-after-failing-to-read-2-page-bill/ • [bobby tables] http://xkcd.com/327/ • [APT1] http://intelreport.mandiant.com/Mandiant_APT1_Report.pdf • [Suspicious owl] http://www.troll.me/2012/03/01/a-suspicious-owl/everythings- just-fine-thats-suspicious/ • [Skimasken-Hacker] http://best9.wordpress.com/2011/01/16/top-10-hackers/ • [Not funny when you‘re next] http://thepowerofapostrophe.blogspot.no/ • [Executing 41414141] http://nickfnord.wordpress.com/2008/10/17/buffer- overflow-basics-part-1/ • [1] http://www.securesolutions.no/why-its-easy-being-a-hacker/ • [2] https://crypto.stanford.edu/~dabo/pubs/abstracts/ssl-client-bugs.html • [3] http://www.nds.rub.de/research/publications/BreakingSAML/ • [4] http://www.modzero.ch/modlog/archives/2011/11/04/the_apple_idioten_vektor _iv/index.html • [5] http://www.opensource.apple.com/source/CommonCrypto/CommonCrypto- 36064/CommonCrypto/CommonCryptor.h