Transcript Slide 1
ShmooCon 2006 Network Security Monitoring with Sguil Richard Bejtlich [email protected] www.taosecurity.com / taosecurity.blogspot.com David Bianco [email protected] www.vorant.com / infosecpotpourri.blogspot.com 1 Copyright 2006 Richard Bejtlich and David Bianco Overview • • • • The Problem Network Security Monitoring Sguil Case Study 2 Copyright 2006 Richard Bejtlich and David Bianco The Problem • You want to know if your network is compromised • You could... inspect every host for signs of compromise – Where to begin? What to check? Do you trust results? – Unless your enterprise is very small, and you are competent to perform host-centric forensics, this is not a viable option • You could... perform a vulnerability assessment – VA indirectly measures compromise by showing potential for intrusion, not actual intrusions – VA is vulnerability-centric, not threat-centric; not recommended • You could... inspect network traffic for signs of compromise – Where to monitor? What about encryption or high bandwidth? – This option represents best return on invested resources, if the right data is collected, analyzed, and escalated 3 Copyright 2006 Richard Bejtlich and David Bianco The Problem • Most people install an IDS or IPS in monitoring mode and wait for alerts Event Example IDS Action Event 1 Ping Web site IP address Ignore Event 2 Visit Web site Ignore Event 3 Exploit Web site flaw Alert Event 4 FTP to retrieve tools Ignore Event 5 Install back door Ignore Event 6 Communicate with back door Ignore Event 7 Connect via SSH to another site Ignore Event 8 Transfer local exploit via SCP Ignore Event ... And so on... ? • Thanks to the IDS alert, an analyst is aware of a Web site problem -- but what about activity before or after the alert? 4 Copyright 2006 Richard Bejtlich and David Bianco The Problem • The previous slide presented a best-case scenario -- at least the attack was detected by the IDS! But what do you get with that alert? – Cryptic message about an attack – Maybe a packet that specifically triggered an alert – A reference to visit the vendor's Web site for more generic info • Factors compounding the problem – Attack over HTTPS using SSL – Attack using insertion and evasion methods – Attack using a zero-day exploit undetected by any IDS • Scarier scenarios – Use stolen credentials and connect via SSH – Compromise a customer or employee and ride their VPN – Go rogue and steal from your own company 5 Copyright 2006 Richard Bejtlich and David Bianco The Problem • Many security developers and vendors believe one or more of the following – Attacks can be understood prior to execution – Methods to detect or prevent attacks can be encapsulated in programming logic – Customers will purchase, properly configure, and effectively deploy products offering sufficient defensive logic – The customer's environment will behave as anticipated by the developers and vendors • Accordingly, developers and vendors field alert-centric products which act on those beliefs • All of these beliefs must hold true in order to counter sophisticated threats, but few do 6 Copyright 2006 Richard Bejtlich and David Bianco The Problem • Investigations with alert-centric systems quickly end, often without resolving the incident Analyst sees original alert Database returns single alert ALERT ALERT Queries database for alerts Investigation ends • Analysts stuck with only alert data to inspect cannot make validation and escalation decisions – MSSPs call customers to ask if they have been compromised – Security personnel ignore alerts because they have no other data 7 Copyright 2006 Richard Bejtlich and David Bianco Network Security Monitoring • Network security monitoring is the collection, analysis and escalation of indications and warning to detect and respond to intrusions • NSM gives analysts the data they need to make decisions • NSM treats all data as indicators, not "false positives" or "false negatives" 8 Copyright 2006 Richard Bejtlich and David Bianco Network Security Monitoring • NSM relies upon four forms of traffic-centric data – Statistical data (Capinfos, Tcpdstat) • Descriptive, high-level view of aggregated events – Session data (Argus, SANCP, NetFlow) • Summaries of conversations between systems • Content-neutral, compact; encryption no problem – Full content data (Tcpdump, Tethereal, Snort as packet logger) • All packet details, including application layer • Expensive to save, but always most granular analysis – Alert data (Snort, Bro, other IDSs) • Traditional IDS alerts or judgments (“RPC call!”) • Context-sensitive, either by signature or anomaly • Sguil (www.sguil.net) is an interface to much of this in a single open source suite 9 Copyright 2006 Richard Bejtlich and David Bianco Network Security Monitoring Alert data Session data Full content data Statistical data 10 Copyright 2006 Richard Bejtlich and David Bianco Network Security Monitoring • Revisit intrusion scenario when NSM data is available Event Example IDS Action Helpful NSM Collection Event 1 Ping Web site IP address Ignore Session Event 2 Visit Web site Ignore Session, Full Content Event 3 Exploit Web site flaw Alert Alert, Session Event 4 FTP to retrieve tools Ignore Session, Full Content Event 5 Install back door Ignore Session, Full Content Event 6 Communicate with back door Ignore Session, Full Content * Event 7 Connect via SSH to another site Ignore Session Event 8 Transfer local exploit via SCP Ignore Session Event ... And so on... ? • Analysts have much more data to review * if unencrypted (more common than you might think) 11 Copyright 2006 Richard Bejtlich and David Bianco Network Security Monitoring • Investigations with NSM present many more options Analyst sees original alert Database returns single alert ALERT ALERT Queries database for alerts FULL CONTENT FTP data channel allows analysis of intruder back door Queries database for sessions Reconstructs FTP control and data channels Queries database for sessions Analyst sees FTP to retrieve tools SESSIONS Analyst sees connections to other IPs SESSIONS Copyright 2006 Richard Bejtlich and David Bianco and so on... 12 Network Security Monitoring • NSM does not try to anticipate attacks • NSM uses a "dumb is smart" approach – NSM does not rely on fancy systems to pass judgements on network traffic, to the exclusion of all other collection mechanisms – NSM does leverage smart systems (IDS, network anomaly detection, etc.) for initial clues • NSM session and full content collection is completely content neutral – Session and full content data are collected whether or not any other system thinks they are interesting • NSM is not SIM/SEM: a SIM/SEM collects and correlates log sources which may or may not have any value 13 Copyright 2006 Richard Bejtlich and David Bianco Sguil • Sguil is an open source interface to NSM data • Lead developer: Bamm Visscher • Ancestry: Snort Personal REal-time GUI (SPREG), circa 2001 • Sguil released as open source at sguil.sf.net in 2003 • Version 0.6.0p1 released 1 Dec 2005 • Coded mainly in Tcl/Tk • Integrates: – Alert data from Snort – Session data from SANCP – Full content data from a second instance of Snort 14 Copyright 2006 Richard Bejtlich and David Bianco Sguil Network traffic on monitored link Sensor watches traffic Log_packets.sh collects full content data, provided on demand via sensor_agent.tcl SANCP (www.metre.net/sancp.html) collects session data, sent to database via sensor_agent.tcl Snort sends alert data output to Barnyard (www.sf.net/projects/barnyard) Barnyard sends output to sensor_agent.tcl Sensor_agent.tcl coordinates data flow with sguild Sguil client is dynamic Tcl/Tk GUI on Windows or UNIX On Sguil server, sguild answers requests from Sguil client MySQL database stores alert and session data 15 Copyright 2006 Richard Bejtlich and David Bianco Sguil Select a sensor, then Start Sguil Launch sguil.tk, and enter Sguild host, port, username, and password 16 Copyright 2006 Richard Bejtlich and David Bianco Sguil 17 Copyright 2006 Richard Bejtlich and David Bianco 18 Copyright 2006 Richard Bejtlich and David Bianco 19 Copyright 2006 Richard Bejtlich and David Bianco 20 Copyright 2006 Richard Bejtlich and David Bianco Sguil FTP Data Channel shows source code FTP control channel shows commands 21 Copyright 2006 Richard Bejtlich and David Bianco How to Pwn a Million PCs Without Breaking a Sweat A Sguil Case Study 22 Copyright 2006 Richard Bejtlich and David Bianco Sguil/NSM Case Study • Study based on an exploit encountered “in the wild” • The exploit used the WMF vulnerability • Delivered via a popunder ad while victim was visiting an otherwise legit website • This case study recreates my incident research process to show off the power of sguil • High-level writeup available on my blog: – http://infosecpotpourri.blogspot.com/2006/01/how-to-pwn-millioncomputers-without.html – Aimed towards users/managers • Saved the good stuff for ShmooCon! 23 Copyright 2006 Richard Bejtlich and David Bianco Important Notes • The victim’s identity has been obfuscated to protect the innocent • The ad servers’ identities have been obfuscated to protect the guilty and the not-so-guilty • Some URLs have been obfuscated to protect the silly • Legitimate website names appearing in this presentation have nothing to do with this exploit and are only there to provide context for understanding the web session 24 Copyright 2006 Richard Bejtlich and David Bianco “It was a dark and stormy night…” 25 Copyright 2006 Richard Bejtlich and David Bianco Was that a real exploit I just saw? 26 Copyright 2006 Richard Bejtlich and David Bianco Was that a real exploit I just saw? 27 Copyright 2006 Richard Bejtlich and David Bianco What other events were generated? 28 Copyright 2006 Richard Bejtlich and David Bianco Quick session check (source) 29 Copyright 2006 Richard Bejtlich and David Bianco Quick session check (victim) 30 Copyright 2006 Richard Bejtlich and David Bianco “I will hunt you down…” • Also cross-checked other sources, such as: – Antivirus logs – Manual AV update and scan – Checked system for c:\n.exe as specified in WMF file • Exploit attempt seems to have been unsuccessful • Crisis averted, but let’s have some fun! • All the sessions are HTTP, so we can leverage that to help us reconstruct the sequence of events • Begin with the transcript of the exploit session • Match up “Referrer” tags with requests and work backwards – Like climbing a ladder 31 Copyright 2006 Richard Bejtlich and David Bianco Victim’s Session List 32 Copyright 2006 Richard Bejtlich and David Bianco Rung #1: Exploit Delivered 33 Copyright 2006 Richard Bejtlich and David Bianco Rung #2: Spf99 Serves the Ad 34 Copyright 2006 Richard Bejtlich and David Bianco Victim’s Session List 35 Copyright 2006 Richard Bejtlich and David Bianco Rung #3: Cash4popupads Handoff to Spf99 36 Copyright 2006 Richard Bejtlich and David Bianco Victim’s Session List 37 Copyright 2006 Richard Bejtlich and David Bianco Rung #4: Cash4popupads creates a popunder 38 Copyright 2006 Richard Bejtlich and David Bianco Victim’s Session List 39 Copyright 2006 Richard Bejtlich and David Bianco Rung #5: A Legit Site (HTMHelper) 40 Copyright 2006 Richard Bejtlich and David Bianco HTMHelper Page Source <!– Cash4popupads.com Advertising Code Begin --> <SCRIPT LANGUAGE="JavaScript1.1" SRC="http://popunder.Cash4popupads.com/popup.php?id=XXXX"> </SCRIPT> <!– Cash4popupads.com Advertising Code End --> 41 Copyright 2006 Richard Bejtlich and David Bianco Victim’s Session List 42 Copyright 2006 Richard Bejtlich and David Bianco Rung #6: Another Legit Site (MySpace) 43 Copyright 2006 Richard Bejtlich and David Bianco MySpace Page Source <div style="position:absolute; left:0px; top:0px; width:88px; height:31px;"> <a href="http://www.htmhelper.com/onlineicon/" target="_self"> <img src="http://www.htmhelper.com/onlineicon/clickhere.gif" alt="Myspace Online Icon" /> </a> </div> 44 Copyright 2006 Richard Bejtlich and David Bianco “Insert Tab A into Slot B…” • Victim browses a MySpace profile page – The page owner or one of the commenters is online, and has the “online status” icon showing by their name. – The status icon is provided by and linked back to the HTMHelper site • The HTMHelper page is ad-supported and contains a JavaScript snippet to display popunder ads from Cash4popupads. This may be annoying, but not intrinsically malicious • Cash4popupads establishes the popunder window but not the ad content – It’s acting more as a conduit for the ads, which are provided by Spf99 45 Copyright 2006 Richard Bejtlich and David Bianco “Score along line C and fold to meet side D…” • Spf99 served the actual infected file – 101.wmf • Internal codes indicate this was provided by “affiliate 101” – Could be an individual – Could be another ad network – Who knows? • This is the top of the ladder (for now) • How would you continue the investigation? 46 Copyright 2006 Richard Bejtlich and David Bianco Sguil • Simplest way to try Sguil: use Win client, demo server – – – – Install ActiveState TCL (www.activestate.com/Products/Download/Download.plex?id=ActiveTcl) Visit www.sguil.net, download, extract sguil-client-0.6.0p1.zip Create a c:\tmp directory Edit sguil.tk set VERSION "SGUIL-0.6.0" – Edit sguil.conf to match Windows environment # win32 example set ETHEREAL_PATH "c:/progra~1/ethereal/ethereal.exe" # Where to save the temporary raw data files on the client system # You need to remember to delete these yourself. # set ETHEREAL_STORE_DIR /tmp # win32 example set ETHEREAL_STORE_DIR "c:/tmp" # Favorite browser for looking at sig info on snort.org # set BROWSER_PATH /usr/bin/mozilla # win32 example (IE) set BROWSER_PATH c:/progra~1/intern~1/iexplore.exe – Launch Sguil client, connect to demo.sguil.net on port 7734 with 47 any username and password Copyright 2006 Richard Bejtlich and David Bianco Sguil • Simplest way to try Sguil with a local setup: use Sguil server VM or client and server VM – Described here: sguil.sourceforge.net/index.php?page=vm – Use Sguil client as described on previous slide to connect to VM – Use complete Sguil VM • Other options – InstantNSM (instantnsm.sf.net) – FreeBSD installation script (taosecurity.blogspot.com/2006/01/sguil-installation-scriptv0.html) • Help available on irc.freenode.net #snort-gui channel • Free Tao of Network Security Monitoring chapters on NSM & Sguil in .pdf at www.taosecurity.com/books.html 48 Copyright 2006 Richard Bejtlich and David Bianco Questions? • Richard Bejtlich • [email protected] • www.taosecurity.com / taosecurity.blogspot.com • David Bianco • [email protected] • www.vorant.com / infosecpotpourri.blogspot.com • www.sguil.net • irc.freenode.net / #snort-gui 49 Copyright 2006 Richard Bejtlich and David Bianco