170 likes | 285 Views
Honeypot‘s oder Wer will an meine Honigtöpfe. Bodo Gelbe Andreas Ißleiber. Problemstellung. Zunehmende Scan‘s und Attacken auf die eigenen Systeme. Interesse des Sicherheitsbeauftragten : Wer attackiert? Welche Applikationen werden angegriffen? Welche Techniken werden angewendet?
E N D
Honeypot‘s oderWer will an meine Honigtöpfe Bodo Gelbe Andreas Ißleiber
Problemstellung Zunehmende Scan‘s und Attacken auf die eigenen Systeme. Interesse des Sicherheitsbeauftragten: • Wer attackiert? • Welche Applikationen werden angegriffen? • Welche Techniken werden angewendet? Aber: nicht gewünschte (gefährliche) Verbindungen werden (hoffentlich) durch Firewall-Komponenten abgewiesen und IDS-Systeme können nur bedingt Auskunft über die verwen- deten Techniken geben (nach welchen Userid/Passwort-Kom- binationen wird z.B. gesucht)
Lösung System(e) anbieten, die frei zugänglich sind und Scan‘s unter- worfen,attackiert und kompromittiert werden können, soge- nannte Honeypot‘s (Honigtöpfe). Realisierung über: • Emulation einiger Anwendungen (Services), nicht des kom-pletten Operating-Systems • Komplettes (reales) Operating-System, z.B auch unter VMware • Hardware und komplettes (reales) Operating-System Die GWDG setzt ein System ein, das verschiedene Anwendun- gen unter verschiedenen Operating-Systemen emuliert: Honeyd von Niels Provost http://www.citi.umich.edu/u/provos/honeyd/
Honeyd Konfiguration (1) Steuerung über eine Konfigurationsdatei: create router1 set router1 personality "Cisco 7206 running IOS 11.1(24)„ set router1 default tcp action reset add router1 tcp port 23 "/hd/router1-telnet.pl $ipsrc $sport $ipdst $dport" bind 1.1.1.1 router1 Emuliert einen Cisco-Router mit IP-Adresse 1.1.1.1 und der Anwendung Telnet- Server (per Script „router1-telnet.pl“). create msmailer1 set msmailer1 personality "Windows NT 4.0 Server SP5-SP6„ add msmailer1 tcp port 25 "sh /hd/exchange-smtp.sh $ipsrc $sport $ipdst $dport" add msmailer1 tcp port 80 "sh /hd/iis.sh $ipsrc $sport $ipdst $dport" add msmailer1 tcp port 143 "sh /hd/exchange-imap.sh $ipsrc $sport $ipdst $dport" set msmailer1 default icmp action reset set msmailer1 default tcp action reset set msmailer1 default udp action reset set msmailer1 uptime 111204 bind 1.1.1.2 msmailer1 Emuliert einen Exchange-Server mit IP-Adresse 1.1.1.2 und den Anwendungen SMTP-Server (Port 25), WWW-Server (Port 80) und IMAP-Server (Port 143)
Honeyd Konfiguration (2) create mailer1 set mailer1 personality "Linux Kernel 2.4.0 - 2.4.18 (X86)" add mailer1 tcp port 21 "sh /hd/ftp.sh $ipsrc $sport $ipdst $dport" add mailer1 tcp port 22 "sh /hd/ssh2.sh $ipsrc $sport $ipdst $dport" add mailer1 tcp port 25 "sh /hd/sendmail.sh $ipsrc $sport $ipdst $dport" add mailer1 tcp port 80 "sh /hd/apache.sh $ipsrc $sport $ipdst $dport" add mailer1 tcp port 110 "sh /hd/emulate-pop3.sh $ipsrc $sport $ipdst $dport" set mailer1 default icmp action reset set mailer1 default tcp action reset set mailer1 default udp action reset set mailer1 uptime 1924204 bind 1.1.1.3 mailer1 Emuliert einen Linux-Mail-Server mit IP-Adresse 1.1.1.3 und den Anwen- dungen FTP-Server (Port 21), SSH-Server (Port 22), SMTP-Server (Port 25), WWW-Server (Port 80) und IMAP-Server (Port 143)
Honeyd Design • Honeyd läuft als Daemon auf einem System, für die Honeypot‘s bestimmter Traffic muß auf dem Internet-Router an dieses System geleitet werden • Trägersystem: Linux, BSD oder Solaris • Honeyd simuliert den TCP/IP-Stack und zwar gemäß der in der Konfiguration zugewiesenen Personality, z.B. „Linux Kernel 2.4.0 - 2.4.18 (X86)“. Diese entspricht den nmap-Spezifikationen, sodaß ein Personality-Scan mit nmap das entsprechende System ausweist. • Wird ein in der Konfiguration definierter Service angesprochen, ruft Honeyd das entsprechende Script auf und übergibt eingehenden Traffic an dieses. Vom Script erzeugte Ausgabe läuft durch den simulierten TCP/IP-Stack. Verfügbare Scripts: apache, cyrus-imap, pop3, exchange-imap, exchange-nntp, exchange-smtp, fingerd, ftp, iis, lpd, msftp, msldap, msvnc, proftpd, qpop, router-telnet, sendmail, smtp, squid, ssh, ssh2, syslog, telnet
Honeyd bei der GWDG • Zwei Class-C-Netze, die vorher noch nicht benutzt wurden und in keinem Nameserver auftauchen Emulierte Systeme: • Windows-Server-Systeme mit Anwendungen wie WWW-Server (IIS) und Mail-Server (Exchange) • Windows-Client-Systeme • Linux-Server-Systeme mit Anwendungen wie WWW-Server (Apache), POP-Server und FTP-Server (wu-ftpd) • Cisco-Router
Honeyd Erfahrungen (1) • Wenige Stunden nach Inbetriebnahme bereits erste Attacken Statistik September 2003: • Ping‘s 599.396 • Zugriffe auf TCP 1434 3.497.644SQL-Server-Port UDP 1434 138.951Lücke im RPC-Dienst TCP 135 2.374.480 UDP 137 358.916 TCP 445 1.382.956Blaster-Wurm TCP 4444 1.022.498 • Sieger im September: 61.74.81.35 (kornet.net = Provider in Korea) mit 928.398 Paketen
Honeyd Erfahrungen (2) Attacken auf Applikationen: IIS • ca 10.000 Sessions im September 2003 • Suche nach Code Red • GET /scripts/..%255c%255c../winnt/system32/cmd.exe?/c+dir FTP • Suche nach offenen Usern: admin, guest, backup, z.B. 2000 Versuche von einem t-dialin.net Account • Versuch, ein beschreibbares Verzeichnis zu finden
Einsatzscenarien Wo/Wie kann ein Honeypot sinnvoll eingesetzt werden? Als dauerhaft installiertes System (Produktivsystem) • Aufwand, die anfallenden Daten auszuwerten • Anlocken von zu vielen „Angreifern“ • Problem: Wird von „guten“ Hackern der Honepot als „Honeypot“ erkannt, motiviert es den Hacker weitertzugehen • Honeypots dienen i.d.R. der Statistik • Wirkung der Honeypots fraglich bei „Script“ gesteuerten Angriffen semiprofessioneller Hacker • Juristisches Problem: Verleitung zu Angriffen ? AI
Einsatzscenarien Wo/Wie kann ein Honeypot sinnvoll eingesetzt werden? Als mobiles System (sinnvoll) • Sinnvoller Einsatz als Austauschsystem gegen Systeme, die kompromittiert wurden (Einbruch ist bereits erfolgt) • Zur Verfolgung der Quelladresse bei Einbrüchen (etwaige Beweissicherung) • Zur Rekonstruktion und Verfolgung eines Angriffes
Einsatzscenarien Wie setze ich ein Honeypot richtig ein ? • Auf einem minimalisiertem System (Linux, BSD, ohne X und weitere Dienste) • System selbst solle durch Firewall (lokal) gesichert werden (LINUX -> IPTABLES) • Einsatz nur in Umgebungen, die „netztechnisch“ nicht in direkter Nähe von Produktivsystemen stehen • Heonypot-System selbst darf nicht kompromittiert werden (wenig Dienste und Anwendungen auf dem System) • Vor einer Firewall (oder in DMZ) • Im „realen“ IP-Adressbereich des Instituts
Einsatzscenarien Welche Honeypot Systeme gibt es ? BackOfficer Friendly als Windows Anwendung (Freeware) • Minimalprogramm zur Simulation von:(FTP,Telnet,SMTP,Imap,POP3,HTTP etc.) • Geringer Leistungsumfang, schwache Auswertung Symmantec Decoy Server / ManTrap (Kostenpflichtig) Honeyd (OpenSource) • Mittlerweile weit verbreitet • Modular, Erweiterbar • Im Wesentlichen für LINUX, aber (reduziert) auch für Windows erhältlich • Honeyd wird in der Regel in Verbindung mit einem modifiziertem ARPD eingesetzt • Kein „Plug & Play“ – System, Handarbeit ist erforderlich
Honeyd Beispiel Honeyd mit KNOPPIX/Debian LINUX Knoppix (GWDG Variante) • System booted von CD, volatile Daten werden auf USB Stick, Disk, oder HDD gespeichert (… Logfiles sowie Einstellungen etc.) • OS läuft nur in RAMDISK • System kann auf andere Rechner portiert werden (gute Hardwareerkennung wg. KNOPPIX) • Bei Attacken auf honeyd ist die CD-Bootvariante weniger anfällig • Bei ausreichendem Interesse der Institute, kann die GWDG eine vordefinierte Version als Bootimage/CD zur Verfügung stellenDiese Version enthält schon fertig definierte Sätze an OS und Servern/Diensten (Webserver, Mailserver, IIS, ADS)
Honeyd Beispiel Honeyd mit KNOPPIX/Debian LINUX Knoppix (GWDG Variante) Beispiel: • Entscheidene Dateien: • config: Definition des OS, Dienste etc. • xprobe2.conf & nmap.prints: (Fingerprints der Systeme, IP-Stack, Verhalten) • Arpd (oder farpd): ARP Daemon (modifiziert) • Honeyd (Binary des Honeyd) • ./scripts/* Scripte (Shell, Perl etc.) die das Verhalten der Dienste simulieren (POP3.sh, iis-emul.pl etc.) • Logfiles (/var/log/honeyd/*)
Honeyd Beispiel Honeyd mit KNOPPIX/Debian LINUX Knoppix (GWDG Variante) Beispiel: # # Beispielkonfiguration GWDG, 8/2003, A.Issleiber # # CISCO router create cisco set cisco personality "CISCO 2620 running IOS 12.1(6)" add cisco tcp port 22 "/usr/bin/perl scripts/router-telnet.pl" add cisco tcp port 23 "/usr/bin/perl scripts/router-telnet.pl" set cisco default tcp action reset # Windows 2000 mit IIS 5 create windows set windows uptime 1748870 set windows uid 32767 gid 32767 set windows personality "Windows Millennim Edition (Me), Win 2000, or WinXP" add windows tcp port 80 "/usr/bin/perl scripts/win2k/iisemulator-0.95/iisemul8.pl" add windows tcp port 143 "/bin/sh scripts/win2k/exchange-imap.sh" add windows tcp port 25 "/bin/sh scripts/win2k/exchange-smtp.sh" add windows tcp port 110 "/bin/sh scripts/win2k/exchange-pop3.sh" add windows tcp port 119 "/bin/sh scripts/win2k/exchange-nntp.sh" add windows tcp port 389 "/bin/sh scripts/win2k/ldap.sh" add windows tcp port 21 "/bin/sh scripts/win2k/msftp.sh" set windows default tcp action reset # LINUX Suse 8.0 als Mailer etc. create suse80 set suse80 personality "Linux Kernel 2.4.0 - 2.4.18 (X86)" add suse80 tcp port 80 "/bin/sh scripts/suse8.0/apache.sh" add suse80 tcp port 23 "/bin/sh scripts/suse8.0/telnetd.sh" add suse80 tcp port 21 "/bin/sh scripts/suse8.0/proftpd.sh" add suse80 tcp port 22 "/bin/sh scripts/suse8.0/ssh.sh" #add suse80 tcp port 25 "/bin/sh scripts/suse8.0/sendmail.sh" add suse80 tcp port 25 "/bin/sh scripts/smtp.sh" add suse80 tcp port 110 "/bin/sh scripts/suse8.0/qpop.sh" add suse80 tcp port 143 "/bin/sh scripts/suse8.0/cyrus-imapd.sh" set suse80 default tcp action block set suse80 default tcp action reset set suse80 default udp action reset #set suse80 default icmp action block # Binden der Konfigurationen (Templates) an die IP-Adresse bind 192.168.1.3 windows bind 192.168.1.4 cisco bind 192.168.1.5 suse80 bind 192.168.1.6 suse70 bind 192.168.1.7 xp
…. finish Danke! Fragen ?