Tom Fischer - DFN-CERT
Transcrição
Tom Fischer - DFN-CERT
RUS - CERT Botnets http://cert.uni-stuttgart.de/ Tom Fischer Beispiele aus der Presse http://news .zdnet.co.uk/internet/security/0,39020375,39169461,00.htm http://www.guardian.co.uk/russia/article/0,2763,1237083,00.html http://news .zdnet.co.uk/internet/security/0,39020375,39172864,00.htm 2 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Was ist ein Botnetz? Ausgangslage: • Armee von kompromittierten Systemen (Bots) • command & control (c&c) zumeist Internet Relay Chat (IRC) basiert Ziel: • Fun • Profit (SPAM, Distributed Denial of Service (DDoS), Phishing, Verteilung von (neuer) Malware, ...) IRC-Server c&c Bots Angreifer Kontroll-Kanal (mit Channel-Namen und Passwort) siehe auch http://cert.uni-stuttgart.de/doc/netsec/bots.php 3 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Was ist ein Botnetz? connect y0u-4re.own3d-by.us 6667 Bot (TCP/135) DCOM SCAN join #0# <channel key> .advscan dcom135 150 0 999 -b -r .advscan dcom135 150 0 999 -b -r IRC-Server Angreifer (Botnet-Op) 4 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Funktionsumfang • Schwachstellenscan typische Exploitcodes sind z.B. – LSASS (MS04-011) (TCP/445) – RPC-DCOM (MS03-039) (TCP/135, TCP/445, TCP/1025) – Accounts mit Trivialpasswörtern (via NetBIOS aber auch SSH) – aktuell z.B. Backupsoftware ala CA BrightStor ARCserve (TCP/41523), Arkeia Backup Client (TCP/617), Veritas Backup Exec (TCP/6101), Veritas NetBackup (TCP/13701) – u.v.a. (siehe z.B. www.k-otik.com, metasploit.com) • Verschiedene DDoS-Angriffsvarianten – SYN-, ACK-, UDP-,HTTP-, ICMP-Flood ... 5 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Funktionsumfang • • • • • • • • • • Herunterladen (und Ausführen) von Dateien (z.B. via HTTP oder FTP) Keylogger und Netzwerksniffer Versenden von E-Mails (SPAM) Auslesen von CD-Keys, E-Mail-Adressen, Passwörtern, ... Backdoors (z.B. HTTP-Server) oder Proxy-Server (z.B. socks) DCOM-Einstellungen, Freigaben, ... Deaktivierung von Anti-Virensoftware (incl. Änderung der hosts-Datei) Upload von Dateien (z.B. via HTTP oder FTP) Screenshots bzw. Webcam-Images anfertigen ... 6 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Beispiele <@B|LLA> .getcdkeys < xTBx|7482> Microsoft Windows Product ID: (XXXXX-XXX-XXXXXXX-XXXXX). < xTBx|6204> Half-Life CD Key: (XXXXXXXXXXXXX). <@Junior> .keylog on [PNC]UrXbot-55198> [KEYLOG]: (Changed Windows: Google - Microsoft Internet Explorer) [PNC]UrXbot-55198> [KEYLOG]: abazada (Return) (Serveur introuvable - Microsoft Internet Explorer) < corrupt> .login funstomp < corrupt> .tcpflood syn xxx.xxx.xxx.xxx 80 140 –r < corrupt> .ddos.ack xxx.xxx.xxx.xxx 80 60 < to3e7> FTP sniff "xxx.xxx.xxx.xxx:4632" to "xxx.xxx.xxx.xxx:2001": - "USER nal" < to3e7> FTP sniff "xxx.xxx.xxx.xxx:4632" to "xxx.xxx.xxx.xxx:2001": - "PASS adri" 7 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Übersicht • Basierend auf den für Agobot/Phatbot typischen POST-Requests (die zur Bandbreitenmessung dienen) hat das RUS-CERT im Mai 2004 mehr als 300,000 unterschiedliche IP-Adressen (d.h. Bots) pro Tag detektiert. • Innerhalb von 5 Monaten hat das RUS-CERT mehr als 350 unterschiedliche Botnetz-Server IP-Adressen detektiert. Diese Botnetz-Server gehörten zu ca. 200 unterschiedlichen Botnetzen. Die durchschnittliche Größe der Botnetze lag bei ca. 5000 Bots pro Botnetz. • Das größte Botnetz bestand dabei aus einem Verbund aus mehr als 50 IRC-Servern und ca. 100,000 Bots 8 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Tom Fischer http://cert.uni-stuttgart.de/ 14.02.2005 31.01.2005 17.01.2005 03.01.2005 20.12.2004 06.12.2004 22.11.2004 08.11.2004 25.10.2004 11.10.2004 27.09.2004 13.09.2004 30.08.2004 16.08.2004 02.08.2004 19.07.2004 05.07.2004 21.06.2004 07.06.2004 24.05.2004 10.05.2004 26.04.2004 unique IP addresses per day (Lang-)Zeitverhalten W32/Bagle.aa@MM (NAI) source: RUS-CERT 250000 200000 150000 100000 50000 0 9 RUS-CERT © 2005 Wie detektiert man Bots/Bot-Controller? • Flow-Monitoring – Flows durch Scans nach verwundbaren Systemen host | targets | flows | protocol | dst_port ----------------+---------+-------+----------+---------129.69.xxx.xxx | 4720 | 4721 | 6 | 445 129.69.xxx.xxx | 4719 | 9439 | 6 | 139 Für bot-typische Zielports und Exploits siehe z.B: http://cert.uni-stuttgart.de/doc/netsec/bots.php – Flows durch Verbindungen zu Bot-Controllern (IRC-Servern) oder zu Systemen die der Bandbreitenmessung dienen 10 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Wie detektiert man Bots/Bot-Controller? • c&c-Kommunikation via NIDS detektieren snort: alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"BLEEDING-EDGE TROJAN IRC Bot scan/exploit command"; pcre:"/(ntscan [0-9]{1,4} [0-9]{1,4}|dcom\.self|scan\.(start|stop)|!scan [0-9] {1,3}\.[0-9]{1,3}| (advscan|asc|xscan|xploit|adv\.start) (webdav|netbios|ntpass| dcom(2|135|445|1025)|mssql|lsass|optix|upnp|dcass|beagle[12]|mydoom|netdevil|DameWare|kuang2| sub7|iis5ssl|wkssvc|mysql|wkssvcOth|wkssvcENG|arkeia|arcserve|wins|veritas|netbackup))/i"; flow:established; classtype:trojan-activity; reference:url,cert.uni-stuttgart.de/doc/ netsec/bots.php; sid:2001787; rev:2;) ngrep: ngrep -l -q -t -i '(tcp|udp|ping|icmp)flood ([0-9]{1,3}\.){3}[0-9] {1,3}|syn ([0-9]{1,3}\.){3}[0-9]{1,3}|ddos\.(httpflood|phaticmp|phatsyn| phatwonk|stop|synflood|targa3|udpflood|syn|ack|random)|(xscan|advscan| xploit|asc|adv\.start) (webdav|netbios|ntpass|dcass|dcom(2|135| 445|1025)|mssql|mysql|lsass|optix|dameware|arkeia|arcserve|wins|veritas| netbackup|upnp|sasser)|scan\.(stop|start|disable|enable|clearnetranges| resetnetranges|listnetranges|delnetrange|addnetrange)' 11 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Wie detektiert man Bots/Bot-Controller? • Domain Name System (DNS) Records ermitteln z.B. via ngrep #ngrep -q -t '\x81\x45\x10\x14' port 53 Passive DNS replication: http://cert.uni-stuttgart.de/stats/ dns-replication.php • DNS-Anfragen auf zentralen DNS-Servern protokollieren 12 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 DNS RRs Abuse-Handling • Zumeist dynamic DNS Provider + - dyndns.org afraid.org no-ip.com ... zoneedit.com hn.org Einige DNS Provider haben keine Abuse-Handling-Ressourcen bzw. Angst vor Vergeltung (DDoS). Es kann auch nicht ausgeschlossen werden, dass einige Provider dies willentlich tolerieren. • missbrauchte/kompromittierte NS 13 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Sourcecode Beispiel: Agobot/Phatbot void CSpeedTest::Init() { REGCMD(m_cmdSpeedTest, "http.speedtest", "Speed Test to see how fast the bot.", false, this); } bool CSpeedTest::HandleCommand(CMessage *pMsg) { if(!pMsg->sCmd.Compare("http.speedtest")) { DoSpeedTest(&m_speedData); m_bDataSet=true; ... 14 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Sourcecode Beispiel: Forbot void CSpeedTest::Init() { g_cMainCtrl.m_cCommands.RegisterCommand(&m_cmdSpeedTest, dp(2,79,19,16,5,5,4,20,5,19,20,0), this); } bool CSpeedTest::HandleCommand(CMessage *pMsg) { if(!pMsg->sCmd.Compare(m_cmdSpeedTest.sName.Str())) { DoSpeedTest(&m_speedData); m_bDataSet=true; ... 15 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Sourcecode Beispiel: Forbot */ in_addr &to_in_addr(unsigned long lHost) { static in_addr ina; ina.s_addr=lHost; return ina; } /* This kills all active Antivirus processes that match Thanks to FSecure's Bugbear.B analysis @ http://www.f-secure.com/v-descs/bugbear_b.shtml */ /* void KillAV() { #ifdef WIN32 const char *szFilenamesToKill[455] = { "ACKWIN32.EXE", "ADVXDWIN.EXE", "AGENTSVR.EXE", "ALERTSVC.EXE", "ALOGSERV.EXE", "AMON9X.EXE", ... 16 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Triviale Bot Konfiguration unsigned short port = 6667; // first server port char password[] = "12345610"; // bot password char server[] = "irc.example.com"; // primary IRC server char serverpass[] = ""; // IRC server password char channel[] = "#mybot"; // bot channel char chanpass[] = "secret"; // channel key char filename[] = "taskmgr.exe"; // bot file name char keylogfile[] = "Logz.txt"; // keylogger file name char valuename[] = "Task manager"; // registry key name 17 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 neue Herausforderungen • DNS RRs werden bei DNS-Providern gehostet die sich nicht darum kümmern • Fallback auf “normale” IRC-Server (z.B. irc.undernet.org) • Verschleierung bzw. Verschlüssung der c&c Kommunikation • IPv6 Netzwerke • nicht-IRC basiertes c&c (z.B. via AIM oder P2P) 18 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Wer steckt hinter einem Botnetz? • Script-Kiddies Botnetze sind “in”, Sourcecode oftmals allgemein zugänglich, neue Botvarianten und Botnetze sind Tauschware Ziel: Just for fun, IRC-Krieg (DDoS) Skill: Haben oftmals keine Ahnung von der Syntax, Streitereien um Botnetze („geh weg, ist mein Botnetz ...“), teilweise auffälliges Scanverhalten (scan all) und wenig gesicherte Netze (kein ChannelPasswort, keine Überwachung, wenig IRC-Kenntnisse) 19 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Wer steckt hinter einem Botnetz? • (Organisierte) (Cracker-)Crews Diskussion, Botentwicklung teilweise halböffentlich (z.B. irc.rizon.net, Webforen) Ziel: Eigene Crew promoten (Coolness, Credits), Tauschware, Kleinkrieg, Warez-Plattform • Professionelle Crews Kleine unauffällige, über-/bewachte Botnetze Ziel: Cash (via Spam, DDoS, Information Warfare), Tauschware (z.B. gegen Kreditkarten, offene BGP-Netzknoten) 20 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Nutzer-Themen • Virenscanner erkennen aktuelle Botvarianten oftmals nicht bzw. sind nicht in der Lage alle Systemänderungen rückgängig zu machen (z.B. eingerichtete Freigaben, ...) • Keylogger-Problematik • Netzwerksniffer-Problematik • zwanghafte Plausibilitätsfindung (Hemmschwelle, Verdrängung, Verharmlosung) • Neuinstallation ist schwer zu vermitteln • Gefahr der Neuinfektion beim Online-Update 21 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Mildernde Faktoren • • • • • • Ein- und ausgehende Filter Rate-Limits Anti-Spoofing-Filter Monitoring (Flow-Erfassung und Auswertung, ...) Härtung der Endsysteme (Windows XP SP2, ...) ... 22 Tom Fischer http://cert.uni-stuttgart.de/ RUS-CERT © 2005 Fragen?