Malware: Viruses and Rootkits: Vitaly Shmatikov
Malware: Viruses and Rootkits: Vitaly Shmatikov
Malware:
Viruses and Rootkits
Vitaly Shmatikov
slide 1
Malware
Malicious code often masquerades as good
software or attaches itself to good software
Some malicious programs need host programs
• Trojan horses (malicious code hidden in a useful
program), logic bombs, backdoors
Others can exist and propagate independently
• Worms, automated viruses
Many infection vectors and propagation methods
Modern malware often combines trojan, rootkit,
and worm functionality
slide 2
Computer Backdoors circa 1958
AN/FSQ-7 air defense intercept computer
• Largest computer ever built
• 50,000 vacuum tubes,
275 tons, 3 MWatt of power,
½ acre of floor space
“Hula Girl” diagnostic program
• If you pointed the light gun at
her navel and pulled the trigger,
her skirt would fall off
slide 3
“Reflections on Trusting Trust”
Ken Thompson’s 1983 Turing Award lecture
1. Added a backdoor-opening Trojan to login program
2. Anyone looking at source code would see this, so
changed the compiler to add backdoor at compile-time
3. Anyone looking at compiler source code would see
this, so changed the compiler to recognize when it’s
compiling a new compiler and to insert Trojan into it
“The moral is obvious. You can’t trust code you
did not totally create yourself. (Especially code
from companies that employ people like me).”
slide 4
Viruses
Virus propagates by infecting other programs
• Automatically creates copies of itself, but to propagate,
a human has to run an infected program
• Self-propagating viruses are often called worms
Many propagation methods
• Insert a copy into every executable (.COM, .EXE)
• Insert a copy into boot sectors of disks
– PC era: “Stoned” virus infected PCs booted from infected
floppies, stayed in memory, infected every inserted floppy
• Infect common OS routines, stay in memory
slide 5
First Virus: Creeper
http://history-computer.com/Internet/Maturing/Thomas.html
slide 6
Polymorphic Viruses
Encrypted viruses: constant decryptor followed
by the encrypted virus body
Polymorphic viruses: each copy creates a new
random encryption of the same virus body
• Decryptor code constant and can be detected
• Historical note: “Crypto” virus decrypted its body by
brute-force key search to avoid explicit decryptor code
slide 7
Virus Detection
Simple anti-virus scanners
• Look for signatures (fragments of known virus code)
• Heuristics for recognizing code associated with viruses
– Example: polymorphic viruses often use decryption loops
• Integrity checking to detect file modifications
– Keep track of file sizes, checksums, keyed HMACs of contents
Generic decryption and emulation
• Emulate CPU execution for a few hundred instructions,
recognize known virus body after it has been decrypted
• Does not work very well against viruses with mutating
bodies and viruses not located near beginning of
infected executable slide 8
Virus Detection by Emulation
Randomly generates a new key Decrypt and execute
and corresponding decryptor code
Mutation A
Virus body
Mutation B
Mutation C
slide 13
Detour: Skype
[Biondi and Desclaux]
slide 17
Skype: Code Integrity Checking
[Biondi and Desclaux]
slide 18
Skype: Anti-Debugging
[Biondi and Desclaux]
slide 19
Skype: Control Flow Obfuscation (1)
[Biondi and Desclaux]
slide 20
Skype: Control Flow Obfuscation (2)
[Biondi and Desclaux]
slide 21
Propagation via Websites
[Moschuk et al.]
Websites with popular content
• Games: 60% of websites contain executable content,
one-third contain at least one malicious executable
• Celebrities, adult content, everything except news
– Malware in 20% of search
results for “Jessica Biel”
(2009 McAfee study)
Most popular sites with
malicious content (Oct 2005)
Most are variants of the same few
adware applications
slide 22
slide 23
Drive-By Downloads
Websites “push” malicious executables to user’s
browser with inline JavaScript or pop-up windows
• Naïve user may click “Yes” in the dialog box
Can install malicious software automatically by
exploiting bugs in the user’s browser
• 1.5% of URLs - Moshchuk et al. study
• 5.3% of URLs - “Ghost Turns Zombie”
• 1.3% of Google queries - “All Your IFRAMEs Point to Us”
Many infectious sites exist only for a short time,
behave non-deterministically, change often
slide 24
Obfuscated JavaScript
[Provos et al.]
document.write(unescape("%3CHEAD%3E%0D%0A%3CSCRIPT%20
LANGUAGE%3D%22Javascript%22%3E%0D%0A%3C%21--%0D%0A
/*%20criptografado%20pelo%20Fal%20-%20Deboa%E7%E3o
%20gr%E1tis%20para%20seu%20site%20renda%20extra%0D
...
3C/SCRIPT%3E%0D%0A%3C/HEAD%3E%0D%0A%3CBODY%3E
%0D%0A
%3C/BODY%3E%0D%0A%3C/HTML%3E%0D%0A"));
//-->
</SCRIPT>
slide 25
“Ghost in the Browser”
Large study of malicious URLs by Provos et al.
(Google security team)
In-depth analysis of 4.5 million URLs
• About 10% malicious
Several ways to introduce exploits
• Compromised Web servers
• User-contributed content
• Advertising
• Third-party widgets
slide 26
Compromised Web Servers
[Provos et al.]
Vulnerabilities in phpBB2 and InvisionBoard enable
complete compromise of the underlying machine
• All servers hosted on a virtual farm become malware
distribution vectors
• Example: <!-- Copyright Information -->
<div align='center' class='copyright'>Powered by
<a href="http://www.invisionboard.com">Invision Power Board</a>(U)
v1.3.1 Final © 2003
<a href='http://www.invisionpower.com'>IPS, Inc.</a></div>
</div>
<iframe src='http://wsfgfdgrtyhgfd.net/adv/193/new.php'></iframe>
<iframe src='http://wsfgfdgrtyhgfd.net/adv/new.php?adv=193'></iframe>
• Interpreted by browser as
location.replace(‘http://videozfree.com’)
• Redirects user to a malware site
slide 29
Trust in Web Advertising
Advertising, by definition, is ceding control of Web
content to another party
Webmasters must trust advertisers not to show
malicious content
Sub-syndication allows advertisers to rent out
their advertising space to other advertisers
• Companies like Doubleclick have massive ad trading
desks, also real-time auctions, exchanges, etc.
Trust is not transitive!
• Webmaster may trust his advertisers, but this does not
mean he should trust those trusted by his advertisers
slide 30
Example of an Advertising Exploit
[Provos et al.]
Video sharing site includes a banner from a large US
advertising company as a single line of JavaScript…
… which generates JavaScript to be fetched from
another large US company
… which generates more JavaScript pointing to a smaller
US company that uses geo-targeting for its ads
… the ad is a single line of HTML containing an iframe to
be fetched from a Russian advertising company
… when retrieving iframe, “Location:” header redirects
browser to a certain IP address
… which serves encrypted JavaScript, attempting
multiple exploits against the browser
slide 31
Another Advertising Exploit
[Provos et al.]
Website of a Dutch radio station…
… shows a banner advertisement from a German site
… JavaScript in the ad redirects to a big US advertiser
… which redirects to another Dutch advertiser
… which redirects to yet another Dutch advertiser
… ad contains obfuscated JavaScript; when executed by
the browser, points to another script hosted in Austria
… encrypted script redirects the browser via multiple
iframes to an exploit site hosted in Austria
… site automatically installs multiple trojan downloaders
slide 32
Not a Theoretical Threat
Hundreds of thousands of malicious ads online
• 384,000 in 2013 vs. 70,000 in 2011 (source: RiskIQ)
• Google disabled ads from more than 400,000 malware
sites in 2013
Dec 27, 2013 – Jan 4, 2014: Yahoo! serves a
malicious ad to European customers
• The ad attempts to exploit security holes in Java on
Windows, install multiple viruses including Zeus (used
to steal online banking credentials)
slide 33
Third-Party Widgets
[Provos et al.]
Make sites “prettier” using third-party widgets
• Calendars, visitor counters, etc.
Example: free widget for keeping visitor statistics
operates fine from 2002 until 2006
In 2006, widget starts pushing exploits to all
visitors of pages linked to the counter
http://expl.info/cgi-bin/ie0606.cgi?homepage
http://expl.info/demo.php
http://expl.info/cgi-bin/ie0606.cgi?type=MS03-11&SP1
http://expl.info/ms0311.jar
http://expl.info/cgi-bin/ie0606.cgi?exploit=MS03-11
http://dist.info/f94mslrfum67dh/winus.exe slide 34
Exploitation Vectors
[Provos et al.]
Bugs in browser’s security logic or memory
vulnerabilities
Example: MS Data Access Components bug
• Compromised web page contains an iframe with
JavaScript that instantiates an ActiveX object and
makes an XMLHttpRequest to retrieve an executable
• Writes executable to disk using Adodb.stream and
launches it using Shell.Application
Example: WebViewFolderIcon memory exploit
• Sprays the heap with a large number of JavaScript
string objects containing x86 shellcode, hijacks control
slide 35
Social Engineering
[Provos et al.]
Goal: trick the user into “voluntarily” installing a
malicious binary
Fake video players and video codecs
• Example: website with thumbnails of adult videos,
clicking on a thumbnail brings up a page that looks like
Windows Media Player and a prompt:
– “Windows Media Player cannot play video file. Click here to
download missing Video ActiveX object.”
• The “codec” is actually a malware binary
Fake antivirus (“scareware”)
• January 2009: 148,000 infected URLs, 450 domains
slide 36
Fake Antivirus
slide 37
Rootkits
Rootkit is a set of trojan system binaries
Main characteristic: stealthiness
• Create a hidden directory
– /dev/.lib, /usr/src/.poop and similar
– Often use invisible characters in directory name (why?)
• Install hacked binaries for system programs such as
netstat, ps, ls, du, login
Can’t detect attacker’s processes,
files or network connections by
running standard UNIX commands!
slide 39
Function Hooking
Rootkit may “re-route” a legitimate system
function to the address of malicious code
Pointer hooking
• Modify the pointer in OS’s Global Offset Table, where
function addresses are stored
“Detour” or “inline” hooking
• Insert a jump in first few bytes of a legitimate
function
• This requires subverting memory protection
Modifications may be detectable by a clever
rootkit detector slide 40
Kernel Rootkits
Get loaded into OS kernel as an external module
• For example, via compromised device driver or a badly
implemented “digital rights” module (e.g., Sony XCP)
Replace addresses in system call table, interrupt
descriptor table, etc.
If kernel modules disabled, directly patch kernel
memory through /dev/kmem (SucKIT rootkit)
Inject malicious code into a running process via
PTRACE_ATTACH and PTRACE_DETACH
• Security and antivirus software are often the first
injection targets
slide 41
Mebroot (Windows)
Replaces the host’s Master Boot Record (MBR)
• First physical sector of the hard drive
• Launches before Windows loads
No registry changes, very little hooking
Stores data in physical sectors, not files
• Invisible through the normal OS interface
Uses its own version of network driver API to
send and receive packets
• Invisible to “personal firewall” in Windows
Used in Torpig botnet
slide 42
Detecting Rootkit’s Presence
Sad way to find out
• Run out of physical disk space because of sniffer logs
• Logs are invisible because du and ls have been hacked
Manual confirmation
• Reinstall clean ps and see what processes are running
Automatic detection
• Rootkit does not alter the data structures normally
used by netstat, ps, ls, du, ifconfig
• Host-based intrusion detection can find rootkit files
– …assuming an updated version of rootkit did not disable the
intrusion detection system!
slide 43
Remote Administration Tools
Legitimate tools are often abused
• Citrix MetaFrame, WinVNC, PC Anywhere
– Complete remote control over the machine
– Easily found by port scan (e.g., port 1494 – Citrix)
• Bad installations, crackable password authentication
– “The Art of Intrusion” – hijacking remote admin tools to break
into a cash transfer company, a bank’s IBM AS/400 server
Semi-legitimate tools
• Back Orifice, NetBus
• Rootkit-like behavior: hide themselves, log keystrokes
• Considered malicious by anti-virus software
slide 44
Communicating Via Backdoors
All sorts of standard and non-standard tunnels
SSH daemons on a high port
• Communication encrypted hard to recognize for a
network-based intrusion detector
• Hide SSH activity from the host by patching netstat
UDP listeners
Passively sniffing the network for master’s
commands
slide 45
Byzantine Hades
2006-09 cyber-espionage attacks against US
companies and government agencies
• Attack websites located in China, use same precise
postal code as People's Liberation Army Chengdu
Province First Technical Reconnaissance Bureau
Targeted email results in installing a Trojan
• Gh0stNet / Poison Ivy Remote Access Tool
• Stole 50 megabytes of email, documents, usernames
and passwords from a US government agency
Same tools used to penetrate Tibetan exile
groups, foreign diplomatic missions, etc.
slide 46
Night Dragon
Started in November 2009
Targets: oil, energy, petrochemical companies
Propagation vectors
• SQL injection on external Web servers to harvest
account credentials
• Targeted emails to company executives (spear-
phishing)
• Password cracking and “pass the hash” attacks
Install customized RAT tools, steal internal
documents, deliver them to China
slide 47
RAT Capabilities
“Dropper” program installs RAT DLL, launches it
as persistent Windows service, deletes itself
RAT notifies specified C&C server, waits for
instructions
Attacker at C&C server
has full control of the
infected machine, can
view files, desktop,
manipulate registry,
launch command shell
slide 49
Who Was Behind Night Dragon?
C&C servers hosted in Heze City,
Shandong Province, China
All data exfiltration to IP addresses in Beijing, on
weekdays, between 9a and 5p Beijing time
Uses generic tools from Chinese hacking sites
• Hookmsgina and WinlogonHack: password stealing
• ASPXSpy:
Web-based RAT
Make in China
E-mail: [email protected]
slide 50
Sources say hackers using servers in China gained control of a
number of Canadian government computers belonging to top
federal officials.
The hackers, then posing as the federal executives, sent emails
to departmental technical staffers, conning them into providing
key passwords unlocking access to government networks.
At the same time, the hackers sent other staff seemingly
innocuous memos as attachments. The moment an attachment
was opened by a recipient, a viral program was unleashed on
the network.
The program hunts for specific kinds of classified government
information, and sends it back to the hackers over the internet.
One source involved in the investigation said spear-phishing is
deadly in its simplicity: "There is nothing particularly innovative
about it. It's just that it is dreadfully effective."
slide 51
http://blogs.rsa.com/rivner/anatomy-of-an-attack/
slide 53
Luckycat
[Trend Micro 2012 research paper]
slide 58
Aurora Exploit (2)
http://www.symantec.com/connect/blogs/trojanhydraq-incident-analysis-aurora-0-day-exploit
1. Sets up an array of
two hundred “COMMENT” objects
4. Sets up a timer to
call this code every 50 milliseconds
slide 59
Aurora Exploit (3)
http://www.symantec.com/connect/blogs/trojanhydraq-incident-analysis-aurora-0-day-exploit
slide 63
Cast of Characters
First4Internet SunnComm
slide 64
DRM: Digital Rights Management
CD Players Computers
Ripper/copier
Application
Special protection
Protection software
driver that breaks
applications Drivers
OS
slide 66
Defeating Active Protection
Prevent installation
• Infamous shift key ‘attack’
– Disables autorun that installs protection driver from CD
• Turn autorun off
• Use Linux, Mac OS, etc.
Interfere with disc detection
Disable or remove protection drivers
slide 67
XCP Rootkit: Motivation
Content protection problem:
Users will remove active protection software
XCP response:
Actively conceal processes, files, registry keys
slide 68
XCP Rootkit: Discovery
Mark Russinovich
October 31, 2005
slide 69
Normal Windows Operation
Application Normal Windows system call
KeQueryDirectoryFile(…); to list files in a directory
slide 70
XCP Rootkit Operation
Application Rootkit (Aries.sys)
0xf967bfa:
KeQueryDirectoryFile(…); int Rootkit_QueryDirectoryFile(…)
{ …
if filename begins with “$sys$”:
remove from results
slide 71
XCP Rootkit: Operation
Magic prefix: $sys$
• Files
• Processes Hidden
• Registry keys
Exception:
If calling process starts
with $sys$, can see
everything
Not limited to XCP software
Any program can use this to hide anything
slide 72
Using XCP for Fun and Profit
“Most people, I think, don't even know what a
rootkit is, so why should they care about it?”
- Thomas Hesse, President, Sony BMG Global Digital Business
Repurposed by malware and other programs
• Backdoor.Ryknos.B, Trojan.Welomoch
• Hide game-cheating hacks for online games
Other problems with XCP
• XCP filter drivers intercept all CD read requests…
removing XCP causes CD-ROM to stop functioning
• XCP monitors all processes nearly constant read
attempts on the hard drive, shortening its lifespan
slide 73
Uninstalling XCP
Need a special ActiveX control, CodeSupport.ocx
• Getting this control from Sony is a pain (on purpose)