Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Application Security

No description
by

Veit Richter

on 6 January 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Application Security

Funktionsweise
Programmierer fügt "Post"-Parameter direkt in SQL ein.

SQL Statement:

Select * From login a Where a.User = "Param_User" and a.Password = "Post_Param_Password"
"There are really two types of organization –

those who don't know their code is insecure

and those that do."

Network Security
ABC
A1 Injection
A2 Broken Authentication and Session Management
A3 Cross-Site Scripting (XSS)
A4 Insecure Direct Object References
A5 Security Misconfiguration
A6 Sensitive Data Exposure
A7 Missing Function Level
Access Control
A8 Cross-Site Request Forgery (CSRF)
A9 Using Components with
Known Vulnerabilities
A10 Unvalidated Redirects and Forwards
A1 Injection (SQL-Injection)
Funktionsweise
Livebeispiel
Fehlerursache
Kein Kompilieren von SQL-Code
Einsatz von direkten SQL Commands

Beispiel

Login eines Unternehmens
Funktionsweise
Programmierer fügt "Post"-Parameter direkt in SQL ein.

SQL Statement:

Select * From login a Where a.User = "Param_User" and a.Password = "Post_Param_Password"
Funktionsweise
"Legal" ausgefülltes SQL-Statement:

Select * From login a Where a.User = 'Neville Bartholomew' and a.Password = '!GeheimesPasswort!'
Funktionsweise
Kompromittieren des Statements

Statt !Geheimes Passwort! : a' or '1' = '1

Entstehendes Statement:
Select * From login a Where a.User = 'Neville Bartholomew' and a.Password = '
a or '1' = '1
'
Gegenmaßnahmen
SQL-Parameter vor dem Absenden auf Schlüsselwörter überprüfen:

Verwendung von APIs
-'- Zur Vermeidung von a' or '1' = '1
Numerischer Cast bei erwarteten Zahlenwerten
Escape Zeichen / Kommentarzeichen abfangen
Social Engineering
zwischenmenschliche Beeinflussungen mit dem Ziel, bei Personen bestimmte Verhalten hervorzurufen

Ausspionieren des persönlichen Umfeld des Opfers
Vortäuschen von Identitäten
Ausnutzen bestimmter Verhaltensweisen
Grundmuster
fingierter Telefonanruf:
Social Engineer ruft Mitarbeiter an und gibt sich als Techniker/Kollege aus, der vertrauliche Zugangsdaten benötigt, um wichtige Arbeiten abzuschließen

im Vorfeld: zusammentragen kleiner Informationsfetzen über Verfahrensweisen, tägliches Bürogerede und Unternehmenshierarchie
Verwirrung durch Fachjargon
Smalltalkt
Ausnutzen von Autoritätsrespekt
Weitere Formen
Phishing
: fingierte E-Mails mit vertrauenserweckender Aufmachung
Link zu einer Kopie einer originalen Webseite des Serviceanbieters mit der Aufforderungen seine Daten einzugeben
vermeintlicher Administrator fordert dazu auf, Logindaten als Antwort zurückzusenden


Weitere Formen
Dumpster Diving
: Müll wird durchwühlt um nach Hinweisen und Anhaltspunkten über das soziale Umfeld zu suchen
wird verwendet um bei einem darauf folgenden Anruf Vertrauen zu erschleichen.

Nutzen von sozialen Netzwerken:
ausspähen nützlicher Informationen ohne persönlichen Kontakt aufzunehmen (Hobbys, Arbeitsplatz...)
Auswirkungen
Preisgabe von vertraulichen Informationen
Betrug
Verbreitung von Viren und Trojanischen Pferden
Maßnahmen
Misstrauen
bei zweifelhafter Identität ein Absenders
Keine
scheinbar unwichtige
Daten
an Unbekannte
weitergegeben

Bei Antworten auf eine E-Mail-Anfrage
niemals

persönliche
oder
finanzielle Daten preisgeben
Keine

Links aus E-Mails verwenden
, die persönliche Daten als Eingabe verlangen
Bei Unklarheit über die Echtheit des
Absenders
diesen telefonisch
kontaktieren
Bei sozialen Netzwerken
sparsam
mit
persönlichen Daten
umgehen,
Privatsphäre schützen
und
sicheres Passwort
wählen
PPLICATION SECURITY
Social
Engineering

Web
Security

Websecurity
Bedrohungen für Webanwendungen ändern sich permanent:
durch schnelle, allerdings wenig nachhaltige Entwicklungszyklen,
Verwendung neuer Technologien und
schnelles Lernvermögen der Angreifer.

Es existieren verschiedene Angriffsmöglichkeiten:
einfach bis sehr schwierig zu finden und auszunutzen
Schadenspotenzial: von nicht nennenswerten Auswirkungen bis zum nicht kalkulierbaren Verlust aller Informationen bzw. Daten.
Risikoanalyse aller relevanten Faktoren kann für Klarheit beim Stand der Sicherheit sorgen
OWASP

veröffentlicht regelmäßig die Top 10 der größten Risiken für Webanwendungen und stellt dazu ausführliche Informationen zur Verfügung, die mit Hilfe des folgenden Bewertungsschema charakterisiert werden:
Open Web Application Security Project
Top 10 2013
1. Injection
2. Broken Authentication and Session
3. Cross-Site Scripting (XSS)
4. Insecure Direct Object References
5. Security Misconfiguration
6. Sensitive Data Exposure
7. Missing Function Level Access Montreal
8. Cross-Site Request Forgery (CSRF)
9. Using Known Vulnerable Components
10. Unvalidated Redirects and Forwards
Penetrationstest
Eindringen in Systeme durch manuelle Methoden

Vulnerability Assessments
bekannte Schwachstellen werden, meist unterstützt durch Tools, identifiziert

direktes umsetzen von Schutzmaßnahmen während der Entwicklung
Input / Output Validierung
Whitelisting / Blacklisting
Serverseitige Validierung
usw
Werkzeuge / Tools
Netsparker
websecurify
Wapiti
N-Stalker
Skipfish
Scrawler
Vorbeugende Maßnahmen
A3 Cross-Site Scripting (XSS)
Funktionsweise
Livebeispiel
Fehlerursache
XSS flaws occur whenever an application takes untrusted data and sends it to a web browser without proper validation or escaping. XSS allows attackers to execute scripts in the victim’s browser which can hijack user sessions, deface web sites, or redirect the user to malicious sites.
Funktionsweise
Angreifer schleust direkte script Befehle ein

Einfache Ziele: Textfelder

Browser eines Dritten führt automatisch eingeschleuste script-Befehle aus
Funktionsweise
"Legal" ausgefülltes Textfeld:

Titel: Anfrage an den Support

Text: Bitte mal mailen zu Problem xy...
Funktionsweise
Direktes einfügen von Javascript:

<script type="text/javascript">
alert(document.cookie);
</script
Gegenmaßnahmen
Escapen von HTML context (head, body, javascript, CSS, URL)

Eingabenlängen und Inhalte prüfen

Verwendung von Content Security Policy (CSP)
Gegenmaßnahmen
A4 Insecure Direct Object References
Funktionsweise
Livebeispiel
Fehlerursache
A direct object reference occurs when a developer exposes a reference to an internal implementation object, such as a file,
directory
, or database key. Without an access control check or other protection, attackers can manipulate these references to access unauthorized data.
Funktionsweise bsp. REST
Angreifer verändert URL gering, um auf andere Objekte zuzugreifen

Ob Zugriff legitim ist, wird oft nicht extra abgesichert

=> Angreifer kann mit dem nicht autorisierten Objekt arbeiten
Funktionsweise
Legaler REST Zugriff:

http://www.example.com/products/66432

Veränderung des Produktes:

http://www.example.com/products/66
2
32
Funktionsweise
Legaler URL-Zugriff:

www.amazon.de/login

Veränderte URL:

www.amazon.de/
adminconfig
Gegenmaßnahmen
Direkte Ressourcen (URL / Objekte) nur mit erneuter Eingabe von Benutzerdaten erlauben
Config => nur mit Adminlogin

Session / User Referenzen verwenden
www.example.com/2354config statt www.example.com/config
Fehlerursache
Injection flaws, such as SQL, OS, and LDAP injection occur when untrusted data is sent to an interpreter as part of a command or query. The attacker’s hostile data can trick the interpreter into executing unintended commands or accessing data without proper authorization.
es gibt viele Angebote an Tools die dabei unterstützen, Sicherheitslücken aufzudecken. Die meisten spezialisieren sich auf SQL Injections und XSS
Fehlerursache
Offene Schnittstellen, geringe Absicherung (bsp. REST)

Im Beispiel eines Weblinks:

Verwendung von erratbaren Links
Fehlende absicherung / User Identifikation
Watcher
x5s
Exploit-Me
WebScarab
Acunetix
WebGoat
Fehlerursache
Automatische Ausführung von Javascript o.Ä. im Browserfenster
Gegenmaßnahmen
Angriff = nicht autorisierter Zugriff bzw. Zugriffsversuch.
mehrere Möglichkeiten, IT-Systeme zu manipulieren oder zu schädigen bzw. einen Angriff auf IT-Systeme vorzubereiten
Angriffe über das Netzwerk oder Social Engineering

Struktur des Internet
dezentrale Struktur
administrative Autonomie
Freiheit, beliebige Dienste anzubieten
kaum technische Hürden
Bedrohungen
Bedrohungsarten
Netzstruktur Allgemein
Nachrichtenmanipulation
Schutzmechanismen
Anonymität
Manipulation beim Routing
Leiten des Verkehrs über einen durch den Angreifer kontrollierten Rechner
Stören des Routings
Schwachstellen und Risiken
MAC Adress Spoofing
Manipulation beim Routing
ARP Spoofing
IP Spoofing
DNS-Spoofing
Definition
Umfasst alle Maßnahmen zur Planung, Ausführung und Überwachung der Sicherheit in Netzwerken
Maßnahmen beziehen sich auch auf Organisation, Betrieb und Recht
durch Verschlüsselung
durch Authentifikation
kryptografische Methoden
Schutzmechanismen
Anonymität
Ip-Adresse-->Standortbestimmung
Reverse-DNS-Lookup
Bedrohungsarten
Nachrichtenmanipulation
MAC-Adress-Spoofing
MAC-Ardresse wird zur Authentifikation und Identifikation eingesetzt
Klonen der MAC-Adresse durch sehr einfach
DNS-Spoofing
Diskussion


Wie kann man ein unsicheres Produkt sicher machen?
Diskussion


Wie kann man Application Security, Netzwerk Security und Social Engineering bereits während der Entwicklung integrieren?
(Stichwort Prohylaxe)
Diskussion


Ist Application Security, Netzwerk Security und vor allem Social Engineering auch bei Big Data von Bedeutung?
Diskussion


Persönliche Meinungen, Erfahrungen, Beispiele

http://prezi.com/bugbounty/


Vielen Dank für die Aufmerksamkeit!
Jennifer Röller, Jonas Kupijai, Veit Richter 10.12.2013
Ein Schlüssel für Sender und Empfänger
Kommunikationspartner müssen Schlüssel geheim halten
Transport des Schlüssels ist schwierige (key exchange protocols
Verschlüsseln und signieren möglich
Zwei Schlüssel (Schlüsselpaar)
Was der eine verschlüsselt, kann der andere entschlüsseln
--> Kaufhausbesuch ist häufig anonymer,
als der Besuch der Website eines Shops
--> der Manipulationsweg von Paketen durch das Netzwerk ist sehr vielfältig
-->Authentifkation anhand MAC-Adresse ist aus der sicherheitsprespektive betrachtet nutzlos
Das ARP-Protokoll dient zum Übersetzen einer IP-Adresse in eine MAC-Adresse für direkt im gleichen LAN betriebene Rechner.
ARP-Spoofing
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
http://www.kuketz-blog.de/penetrationstest-sicherheit-von-webanwendungen-teil4/
https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/Studien/WebSec/WebSec_pdf.pdf?__blob=publicationFile
http://www.webresourcesdepot.com/10-free-web-application-security-testing-tools/
http://de.wikipedia.org/wiki/Social_Engineering_%28Sicherheit%29
Full transcript