Large-‑scale ¡drive-‑by ¡download ¡detec4on: ¡ ¡ visit n . ¡process. ¡analyse. ¡report. ¡ Adriaan ¡Dens ¡ Mar4jn ¡Bogaard ¡ ¡ Students ¡Master ¡of ¡System ¡and ¡Network ¡Engineering ¡ ¡ Under ¡supervision ¡of: ¡ ¡ ¡
Source: ¡hFp://www.bleepsta4c.com/Host/uploads/2/cryptolocker-‑2.0.jpg ¡ 2 ¡
Drive-‑by ¡downloads ¡ • Vulnerable ¡browsers ¡and ¡plugins ¡ – Remote ¡code ¡execu4on ¡ • Malver4sing ¡ • Hard ¡to ¡detect ¡ Source: ¡hFp://blog.armorize.com/2011/04/newest-‑adobe-‑flash-‑0-‑day-‑used-‑in-‑new.html ¡(modified) ¡ 3 ¡
4 ¡
Challenges ¡current ¡systems ¡ • Slow ¡ • Single ¡website ¡at ¡a ¡4me ¡ • Hard ¡to ¡maintain ¡ ¡ 5 ¡
Challenges ¡current ¡systems ¡ • Slow ¡ • Single ¡website ¡at ¡a ¡4me ¡ • Hard ¡to ¡maintain ¡ • Have ¡we ¡already ¡said ¡they’re ¡slow? ¡ ¡ 6 ¡
Challenges ¡current ¡systems ¡ • Slow ¡ • Single ¡website ¡at ¡a ¡4me ¡ • Hard ¡to ¡maintain ¡ • Have ¡we ¡already ¡said ¡they’re ¡slow? ¡ – But ¡that’s ¡not ¡really ¡their ¡fault, ¡it ¡was ¡ never ¡designed ¡for ¡this ¡purpose ¡ 7 ¡ ¡
Research ¡ques4on ¡ How ¡can ¡we ¡concurrently ¡visit ¡mul4ple ¡URLs ¡and ¡ s4ll ¡be ¡able ¡to ¡determine ¡which ¡URL ¡was ¡ responsible ¡for ¡malicious ¡ac4vi4es? ¡ 8 ¡
Research ¡ques4on ¡ How ¡can ¡we ¡ concurrently ¡ visit ¡mul4ple ¡URLs ¡and ¡ s4ll ¡be ¡able ¡to ¡determine ¡ which ¡URL ¡ was ¡ responsible ¡for ¡malicious ¡ac4vi4es? ¡ 9 ¡
The ¡Goal ¡ ��������������������� ������������ ������������ ������������ ���������������������� ���������������������� ���������������������� ��������������������������������� ������������������������������������������ �������� ����������� ����������������������������������������� ������������������������ ������������������������������ ���������������������������� �������������������� 10 ¡
Algorithm ¡ • Pladorm ¡independent ¡ – PoC ¡for ¡Windows ¡7 ¡ • Browser ¡independent ¡ – PoC ¡for ¡Internet ¡Explorer ¡8 ¡ • Fast(er) ¡ • Limited ¡maintenance ¡needed ¡ 11 ¡
Determine ¡malware ¡origin ¡ • One ¡website ¡ – Many ¡HTTP ¡requests ¡ • Easy ¡solu4ons: ¡ – Modify ¡web ¡browser ¡and ¡add ¡logging ¡ – Monitor ¡network ¡ • Scalable ¡solu4on: ¡ – Observing ¡API ¡calls ¡ – Includes ¡thread ¡and ¡process ¡context ¡ 12 ¡
Web ¡browser ¡process ¡model ¡ 13 ¡ Source: ¡hFp://blogs.msdn.com/b/ie/archive/2008/03/11/ie8-‑and-‑loosely-‑coupled-‑ie-‑lcie.aspx ¡
Web ¡browser ¡network ¡stack ¡ 14 ¡ Source: ¡hFps://msdn.microsoi.com/en-‑us/library/windows/desktop/aa383766%28v=vs.85%29.aspx ¡
Source: ¡hFp://newgre.net/node/5 ¡ API ¡hooking ¡ 15 ¡
Connec4ng ¡the ¡dots… ¡ 16 ¡
Algorithm ¡in ¡4 ¡simple ¡steps ¡ • Visit ¡(the ¡URLs) ¡ ¡ • Process ¡(the ¡data) ¡ ¡ • Analyse ¡(the ¡graph) ¡ • Report ¡(the ¡findings) ¡ 17 ¡
Analyse ¡graph ¡ ��������������������� ������������ ������������ ������������ ���������������������� ���������������������� ���������������������� ��������������������������������� ������������������������������������������ �������� ����������� ����������������������������������������� ������������������������ ������������������������������ ���������������������������� �������������������� 18 ¡
Proof ¡of ¡Concept ¡ • Cuckoo ¡ – Support ¡for ¡analysis ¡of ¡single ¡website ¡ – Cuckoomon ¡(API ¡hooking) ¡ • Windows ¡7 ¡+ ¡IE ¡8 ¡ • Actual ¡detec4on ¡is ¡out ¡of ¡scope ¡ – And ¡up ¡to ¡the ¡user ¡in ¡exis4ng ¡solu4ons ¡ 19 ¡
Running ¡it… ¡ 20 ¡
Proof ¡of ¡Concept ¡ 21 ¡
Proof ¡of ¡Concept ¡ 22 ¡
Proof ¡of ¡Concept ¡ 23 ¡
Proof ¡of ¡Concept ¡ 24 ¡
Proof ¡of ¡Concept ¡ 25 ¡
Proof ¡of ¡Concept ¡ 26 ¡
27 ¡
28 ¡
29 ¡
30 ¡
But ¡is ¡it ¡also ¡faster? ¡ 31 ¡
Benchmarks ¡ 32 ¡
100,000" 90,000" 80,000" 70,000" 60,000" Seconds( Anubis" 50,000" Cuckoo" 40,000" Roadrunner" 30,000" 20,000" 10,000" 0" 1" 5" 10" 25" 50" 100" 250" 500" 1000" URLs( Comparison ¡of ¡benchmark ¡results ¡ 33 ¡
Research ¡ques4on ¡ How ¡can ¡we ¡ concurrently ¡ visit ¡mul4ple ¡URLs ¡ and ¡s4ll ¡be ¡able ¡to ¡determine ¡ which ¡URL ¡ was ¡ responsible ¡for ¡malicious ¡ac4vi4es? ¡ ¡ -‑ Use ¡tabbed ¡browsing ¡ -‑ Make ¡use ¡of ¡modern ¡browser ¡architectures ¡ -‑ In-‑depth ¡process ¡monitoring ¡(API ¡Hooking) ¡ -‑ Graph ¡based ¡analysis ¡ 34 ¡
Future ¡Work ¡ • Finishing ¡touch ¡PoC ¡ – Stability ¡ – Known ¡false ¡posi4ves ¡ – Correctly ¡crea4ng ¡the ¡graph ¡is ¡hard ¡ • But ¡all ¡data ¡is ¡available ¡for ¡manual ¡analysis ¡like ¡before ¡ – And ¡now ¡you ¡know ¡where ¡to ¡start ¡looking ¡ ¡ • BeFer ¡analysis ¡ – Machine ¡learning? ¡ 35 ¡
Thanks! ¡ • Our ¡great ¡supervisors ¡from ¡the ¡NCSC ¡ – Jop ¡van ¡der ¡Lelie ¡& ¡Wouter ¡Katz ¡ • The ¡Cuckoo ¡developers ¡ – Especially ¡Jurriaan ¡Bremer ¡for ¡helping ¡us ¡in ¡ understanding ¡Cuckoo ¡and ¡solving ¡our ¡own ¡ introduced ¡bugs ¡ 36 ¡
Ques4ons? ¡ Adriaan ¡Dens ¡ ¡ adriaan.dens@os3.nl ¡ ¡ Mar4jn ¡Bogaard ¡ ¡ mar4jn.bogaard@os3.nl ¡ ¡ ¡ Check ¡it ¡out ¡now: ¡ hFps://github.com/Mar4jnB/cuckoo/tree/mul4-‑url ¡
Recommend
More recommend