Twarfing: Malicious tweets

Transcription

Twarfing: Malicious tweets
Click to edit Master title style
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
»
Fifth level
Twarfing: Malicious tweets
Morton Swimmer
Trend Micro
June 10th, 2009
Costin G
G. Raiu
Kaspersky Lab
Virus Bulletin 2009 – September
24th(title,
, Geneva
Event details
place)
Thanks to:
• Special thanks (Costin):
– Selma Ardelean: GUI+statistics
– Dan Demeter: daemon,
daemon downloader,
downloader scanning
– Alexandru Tudorica: DB design, URL fetching, expansion,
scanning
– Stefan Tanase – suggestions and web 2.0 expertise (you
can watch his presentation tomorrow morning in the Corp
stream)
• Special
p
thanks ((Morton))
– Rainer Link (architecture)
– David Sancho (URL expansion)
June 10th, 2009
Event details (title, place)
Overview
• What is Twitter?
• Malware on Twitter
– Notable incidents
• The link: Twitter and URL shortening services
• Twitter and the Google SB API
• Robots:
R b t
– Kaspersky Architecture and Statistics
– Trend Architecture and Statistics
• Conclusions
June 10th, 2009
Event details (title, place)
What is Twitter?
• Publish/Subscribe Communications system
• Founded by Jack Dorsey, Biz Stone and
a Williams
a s bac
back in 2006
006
Evan
• SMS/Website, WebService (API)
B
Browser
• Subscribers can read from this
• Push
App
pp
Phone
• SMS:
S S Phone
• Pull
• Web site: Browser
• WS API: Application
App
Browser
Phone
• RSS: Application
June 10th, 2009
Event details (title, place)
Related to:
• Instant Messaging/XMPP
• Is many
y to many,
y but best with small groups
g p or one-to-one
• Twitter similar, but publish/subscriber model more persistent
• Twitter also has Direct Messages for IM capability
• Internet Relay Chat (IRC)
• Handles large groups fairly well
• Twitter is many
y to many
y by
y default and scales p
pretty
y well
• But Twitter is proprietary
• RSS feeds
• O
One-to-many
t
medium:
di
links
li k from
f
one source w/o
/ selection
l ti
• In Twitter you follow who you like and read his selection of links
• Tumblelogs
• One-to-many medium, but not necessarily links from publisher
• Link sharing, not messaging
June 10th, 2009
Event details (title, place)
Twitter internals
• 140 chars max to be SMS compatible
• SMS has a 160 char restriction
• But Twitter needed to add the user name
• Message length has been hacked (fixed)
• might cause BoFs in applications
• Users not necessarily human!
• Devices
• From buoys to power meters
• Search for Twitter on instructables.com
instructables com
• Not surprising that malware would use it, but
• It
It'ss not the best means of C&C communications
• Easily blocked after detection
gg happy
ppy with
• … and twitter has been trigger
blocking
June 10th, 2009
Event details (title, place)
Twitter internals
• Historically
• Multiple Ruby on Rails servers
• Mongrel HTTP servers
• Central MySQL backed
• Currently: details super-secret, but this is what we think
• Front end
• Ruby-based
Ruby based front end
• Mongrel HTTP servers
• Back end
• Starling for queuing/messaging
• Scala-based
• MySQL
• denormalized data whenever possible
• Only for backup and persistance
• Lots of caching (memcached)
June 10th, 2009
Event details (title, place)
Stats (June 2009)
Probably old already, but here they are:
• 25M users
• 475K different
diff
t users posted
t d over a 1 week
k period
i d
(Whitetwarf)
• 300 tweets/sec
• MySQL handles 2400 reqs per second
• API traffic == 10x website traffic!
• Indicates that far more people are using applications
• TweetDeck,
TweetDeck Twitteriffic,
Twitteriffic Digsby,
Digsby Twhirl
• Many are Adobe Air based (!)
Twitter'ss success!
• One key to Twitter
June 10th, 2009
Event details (title, place)
But what is ON Twitter?
• S
San Antonio-based
A t i b
d market
k t research
h fifirm P
Pear A
Analytics
l ti
analyzed 2,000 tweets (originating from the US and in
English)
g ) over a 2-week p
period from 11:00a to 5:00p
p ((CST))
and separated them into six categories:
–
–
–
–
–
–
News
Spam
Self-promotion
Pointless babble
Conversational
Pass-along value
• 40.55% of Tweets were determined to be “pointless babble”
* Paper available at http://is.gd/3xmPz
June 10th, 2009
Event details (title, place)
And what is inside a Tweet?
• RT passes the note along
• L tells friends where I am
• #
– show associations
– show group
g p associations
– just for tagging
SifuMoraga:
g p
presenting
g together
g
with
@craiu at #vb2009 L: Geneva
schouw: RT @SifuMoraga: presenting
together with @craiu at #vb2009 L:
Geneva
• @
– for public discussion
– also 'follow
follow friday'
friday
• links
– URLs automatically identified
June 10th, 2009
Event details (title, place)
Long URLs, short URLs
• URLs can be long and ugly
• URL shortening
h t i services
i
h
have grown up
around Twitter
– longurl.org
l
l
counts
t 208 diff
differentt ones
• Malicious URLs are one potential threat
• URL Shorteners
– obscure the true URL
– May become malicious
– RickRolling,
g but maliciouslyy
• Benefits:
– ‘bit.ly’
bt y b
blocks
oc s malicious
a c ous U
URLs
s
June 10th, 2009
Event details (title, place)
Most popular URL shortening services
% 80
Default
f
URL
shortener on Twitter
since May 2009
70
60
50
40
30
20
10
June 10th, 2009
tin
y.
cc
.im
tr
m
ig
re
.m
e
.n
l
tw
ur
l
gs
cl
i.
is
.g
d
.ly
ow
bi
t.
ly
tin
yu
rl.
co
m
m
yl
oc
.m
e
0
Event details (title, place)
Malware on Twitter
August 2008
June 10th, 2009
Event details (title, place)
Notable incidents
• April 2009 – Twitter gets hit by XSS worm
• Multiple
M lti l variants
i t off the
th worm (JS.Twettir.a-h)
(JS T tti
h) were identified
id tifi d
• Thousands of spam messages containing the word "Mikeyy“ filled the
timeline
• Proof of concept – no malicious intent
• Later, the author (Mikey Mooney) got a job at exqSoft Solutions, a web
security company
June 10th, 2009
Event details (title, place)
Notable incidents
• June 2009 – Trending topics start being exploited
June 10th, 2009
Event details (title, place)
Notable incidents
• June 2009 – Koobface spreading through Twitter
• Originally
Originally, Koobface was only targeting Facebook and MySpace users
• Constantly “improved”, now spreading through more social networks:
Facebook, MySpace, Hi5, Bebo, Tagged, Netlog and most recently… Twitter
June 10th, 2009
Event details (title, place)
Notable incidents
• August 6, 2009 – massive DDoS attack against Twitter (and others)
• Twitter knocked offline for several hours, API problems lasted for
days
• Reason: to silence a relatively unimportant blogger in Georgia
(really?)
June 10th, 2009
Event details (title, place)
Twitter and Google SB API
• Google Safe Browsing API –
malicious websites blacklist
• Used (at least) in Firefox and
Chrome
• Basically: two lists of MD5’s
• A hash is computed on various parts of the URL and
checked against the lists
• http://a.b.c.d/1.htm -> a.b.c.d -> b.c.d -> c.d -> a.b.c.d/1.htm?p=1
June 10th, 2009
Event details (title, place)
Google SB API
• In August
g
2009,, Twitter
began filtering
malicious URLs
– Mikko Hypponen:
• Initial testing seemed to
indicate Google SB
API!
• But after a bit more
testing we
testing,
e disco
discovered
ered
it is SB API but with
some additional filtering
June 10th, 2009
Event details (title, place)
A bit about ‘bit.ly’ / ‘j.mp’
• Originally, Twitter used ‘tinyurl.com’ to shorten URLs. Around
M 2009 it however
May
h
decided
d id d to
t silenty
il t replace
l
it with
ith ‘bit
‘bit.ly’,
l ’ a
service from ‘Betaworks’, a startup accelerator
Q: How can I be sure a bit.ly link is safe to click on?
A: Bit.ly filters all links through several independent services to check for
spam,
p , suspected
p
p
phishing
g scams,, malware,, and other objectionable
j
content. We currently include Google Safe Browsing, SURBL,
and SpamCop in our operations. For Firefox browser users, we also have
a Preview Plugin that allows you to view more information about a link
before clicking. If you are a Twitter user, similar preview features are
offered by Tweetdeck (we’ve got a writeup of how it works here).
Source: http://bit.ly/pages/faq/
June 10th, 2009
Event details (title, place)
Our Robot(s) – Krab Krawler
June 10th, 2009
Event details (title, place)
Kaspersky Robot
• Codenamed: Krab Krawler
• Specs: Linux + PHP + MySQL
• Operation: It continuously fetches the Twitter public
timeline on multiple threads, extracts URLs and
injects
j
them into a DB
• Target: URLs are analysed and expanded if
necessary
• Execution: Modules check the URLs for malware
• Design: Costin G. Raiu, Stefan Tanase
• Assembly: Selma Ardelean, Dan Demeter, Alexandru
Tudorica
June 10th, 2009
Event details (title, place)
Krab Krawler: Architecture
June 10th, 2009
Event details (title, place)
New unique URLs per day
500,000
450 000
450,000
400,000
350,000
300,000
250,000
200,000
150,000
100,000
50,000
9/
12
/2
00
9
9/
13
/2
00
9
9/
14
/2
00
9
9/
15
/2
00
9
9/
16
/2
00
9
9/
17
/2
00
9
9/
18
/2
00
9
9/
19
/2
00
9
9/
20
/2
00
9
9/
21
/2
00
9
0
June 10th, 2009
Event details (title, place)
Malware we found so far
0
5
10
15
20
25
30 %
Trojan-Clicker.HTML.IFrame.ob
Trojan-Clicker.JS.Agent.gr
Trojan-Downloader.JS.Gumblar.a
Trojan-Downloader.VBS.Psyme.gf
Trojan-Downloader.JS.Iframe.atl
Hoax.HTML.BadJoke.Agent.c
Trojan-Clicker.JS.Agent.hz
Trojan-Clicker.HTML.IFrame.aem
Trojan-Downloader.HTML.FraudLoad.a
Trojan.JS.Agent.wh
Others
June 10th, 2009
Event details (title, place)
General stats
• URL duplication: 1 URL is posted in average
1.59 times
• Twitter posts with URLs: ~26%
• Downloaded
D
l d d objects:
bj t ~60GB
60GB per month
th
• The most popular single URL posted to
Twitter:
– http://tinyurl.com/nxsavh
http://tinyurl com/nxsavh
– http://getiton.com/go/g1108066-pct
June 10th, 2009
Event details (title, place)
Our Robot(s) – Red Twarf
June 10th, 2009
Event details (title, place)
Whitetwarf
•
•
•
•
An earlyy p
prototype
yp system
y
Receives a subset of the tweets via twitter search
Stores external metadata from twitter
Processes text part for internal metadata
– User references, hashtags, Informal tags
• Creates canonical text representations
p
• Export to an RDF store for analysis
• Hard coded detection of attacks
June 10th, 2009
Event details (title, place)
WhiteTwarf – the exploratorium
Twitter
URL processing
HTTP
request
q
Shortener
API
URLs
Tweet
processing
Text
Sigs
Tweets
June 10th, 2009
WT-Redirector
Analysis
RDF
Converter
RDF
Store
Domain
reputations
Attacks,
M li i
Malicious
users, etc
Redirectors
and
Shorteners
SPARQL
Queries
Event details (title, place)
WhiteTwarf in detail
• Tweet Processing phase
– loop
l
fforever
• Fetch a limited number of tweets
– These come back as JSON code
• Extract metadata
• Enter this into the database
• then we wait adaptively before doing this again
– from the tweets, we extract
• Tags, URLS, user references
• Text signatures
–
–
–
–
Meant to remove small differences in text
Normalization and whitespace removal
UTF-8 tricks expansion/removal
Keyword extraction (future)
• other metadata
June
10th,
2009
Event details (title, place)
URL redirector processing
•
•
•
•
•
For every URL entered
F
t d iinto
t th
the DB we ffollow
ll
th
the lilink
k
With a HEAD request
I mostt cases we gett a 30x
In
30 response
These get entered into the DB for further processing
T i showed
Testing
h
d that
h iit iis usually
ll ffaster to use
shortener APIs
• So we are testing code that will ID shorteners and
use API instead of HEAD
• We also capture other HTTP metadata
• Basically we are looking for possible file downloads
June 10th, 2009
Event details (title, place)
The next stage: RedTwarf
• Will capture
p
the entire Twitter
feed
• Goal: looking for new attack
patterns
• Based on same data as in
WhiteTwarf
• Using Text-mining techniques
t detect
to
d t t rules
l
June 10th, 2009
Event details (title, place)
Detection malicious activity
• Data exported to an RDF Store
– This is a graph database
– Allows for complex queries
– Does have some performance issues and is not real time
• Simple
Si l A
Attack
k scenario
i
– User is observed to post to a malicious domain
– We want to see what else he has posted
mall
htt // l
http://mal.com/evil.exe
/ il
posts
tw:hasURL
posts
drs:hasFQDN
drs:rating
malicous
mal.com
tweet/1234
tweet/5678
June 10th, 2009
tw:hasURL
http://unk.com/what.exe
Event details (title, place)
Matching graphs
mal
http://mal.com/evil.exe
posts
drs:hasFQDN
tw:hasURL
posts
drs:rating
malicous
mal.com
tweet/1234
tweet/5678
tw:hasURL
?
?m
http://unk.com/what.exe
? 1
?u1
posts
tw:hasURL
drs:hasFQDN
posts
t
drs:rating
malicous
?f
?t1
?t2
June 10th, 2009
tw:hasURL
?u2
Event details (title, place)
More complex attack
@iceman: This link is cool
http://cool com/ice html
http://cool.com/ice.html
Observed: User modified
URL on retweet to be
@notniceman: RT: @iceman: This link
is cool http://c00l.com/ice.exe
malicious
hasURL
posts
iceman
http://cool.com/ice.html
tweet/1001
textSig
thislinkiscool
textSig
notniceman
posts
tweet/1005
hasURL
http://c00l.com/ice.exe
June 10th, 2009
Event details (title, place)
Matching Graphs
hasURL
posts
iceman
http://cool.com/ice.html
tweet/1001
textSig
textSig
thislinkiscool
posts
notniceman
tweet/1005
hasURL
posts
?u1
hasURL
http://c00l.com/ice.exe
p
?u1
?t1
textSig
textSig
?s
posts
?mu
?t2
? 2
?u2
June 10th, 2009
Event details (title, place)
Conclusions
•
•
•
•
•
Twitter
T
itt is
i becoming
b
i a popular
l attack
tt k vector
t
Two approaches to detecting threats broadcast via Twitter
There are serious security dependencies due to the URL
Shorteners
Common goal: protecting you, our customers
Identifying the future development directions of Twitter
threats
We would like to thank VB and the
g audience for y
your support
pp
with
charming
140 characters and guess what, we just
did it! #vb2009
June 10th, 2009
Event details (title, place)
Click to edit Master title style
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
»
Fifth level
Thank you!
[email protected]
morton@swimmer
org
twitter.com/sifumoraga
[email protected]
twitter.com/craiu
June 10th, 2009
Event details (title, place)