ݺߣ

ݺߣShare a Scribd company logo
Mobil	Uygulamalar	için	
Fuzz	Tes5	ve	Bug	Avcılığı	
	
Ömer	Faruk	ACAR
Giriş	
•  Uygulama	güvenliğinde	geliş9rme	ve	test	
aşamalarında	kaynak	kod	analizi	tekniğini	kullanan	
otoma9ze	araçlar	yetersiz	kalmaktadır.	
•  Fuzz	Testleri	uygulanmalı	(white	box	ve	black	box)	
•  Android,	IOS,	Windows	Phone	v.s.	üzerinde	olması	
•  Sınırlı	kaynaklar	için	Bulut	Ortamı	
•  Eş	zamanlı	testler	için	DağıRk	Sistem	
•  Daha	verimli	fuzz	tes9	için	Evrimsel	Tabanlı	yaklaşım
Bug	Hun9ng	Lifecycle	
3	
source	code	(White	Box):	
•  manual	code	review	(Source	code	audit)	
•  sta9c	analysis	
Binary	(Black	Box):	
•  Dynamic	Analysis	
•  reverse	engineering	(Debugging	&	Disassembly)	
•  fuzzing
Fuzzing	Nedir?	
Tanım	
•  Fuzzing	isim	babası	Prof.	Barton	Miller	
1989	
•  Fuzz	tes9	ya	da	fuzzing,	otoma9k	
olarak	bozulmuş	ya	da	yarı	bozulmuş	
veri	kullanarak	uygulamalarda	bug	
bulmak	için	uygulanan	yazılım	
güvenliği	tekniğidir.	
•  Black	box,	White	box	
•  Metotlar	
–  Genera9on-based	ya	da	Random-
based	(Smart	Fuzzing)	
–  Muta9on-based	(Dumb	Fuzzing)	
–  Proxy-based	
4
Fuzzing	Fazları	
•  Hedef	Belirle	
– Uygulamalar	(oynaRcılar,	okuyucular,	web	…)	
– Protokoller	(Unix,	Windows,	OSX)	
– Cihazlar	(arm,	telefonlar,	modemler	…)	
– …	
•  Girdi	Belirle	
– Dosya	FormaR	(java,pdf,png,m3u,swf	…)	
– Ağ	protokolleri	(bp,hcp,arp,ssl	…)	
– Kayıt	deberi	girdileri,	başlıklar,	…
Fuzzing	Fazları	
•  Fuzz	verisi	üret	(Test	Case	Genera9on)	
–  Muta9on	
–  Genera9on	
–  Evalua9on	
•  Fuzz	verisini	çalışRr		
–  Yarı-geçerli	girdilerin	hedefe	gönderilmesi	
•  numbers	(signed/unsigned	integers/float...)		
•  chars	(urls,	command-line	inputs)		
•  metadata	:	user-input	text	(id3	tag)		
•  pure	binary	sequences		
•  Monitör	işlemi
Tehditler	
7
Fuzzing	Workflow	
8
Example	Template	Files	
9
Peach	Fuzzer	Template	
10
Example	Fuzzing	Data	
11
Fuzz	Vectors	
12	
•  Cross	Site	Scrip9ng	(XSS)	
•  Buffer	Overflow		
•  Format	String	
•  Integer	Overflow	
•  Sql	injec9on	
•  LDAP	Injec9on	
•  XPATH	Injec9on	
•  XML	Injec9on….
OWASP-TOP	10	Mobile	Security	Risks	
13	
•  M1:	Insecure	Data	Storage	
•  M2:Weak	Server	Side	Controls	
•  M3:	Insufficient	Transport	Layer	Protec9on	
•  SSL	Implementa9on	
•  Flow	Manipula9on	
•  M4:	Client	Side	Injec9on	
•  SQL	Injec9on	
•  XSS	Injec9on	
•  M5:	Poor	Authoriza9on	and	Authen9ca9on	
•  Remote	Code	Execu9on	via	Overflows	
•  M6:	Improper	Session	Handling	
•  Flow	Manipula9on	
•  M7:	Security	Decisions	Via	Untrusted	Inputs	
•  Memory	Corrup9ons	
•  M8:	Side	Channel	Data	Leakage	
•  M9:	Broken	Cryptography	
•  M10:	Sensi9ve	Informa9on	Disclosure	
•  Informa9on	Leat	with	Error	and	Warning	Messages
14
Test	Results	
15
Yapılan	Çalışmalar	
•  Fuzzing	güvenlik	testlerinin	ilk	kullanıldığı	
zamanlar	2009	yıllarına	dayanmaktadır.	
				(Black	Hat	USA	2009)	
•  Charlie	Miller’ın	önemli	çalışmalarından	biri	
olan	bu	makalede	akıllı	telefonlar	üzerinde	
açık	kaynak	kodlu	Sulley	fuzzer’ı	kullanılarak	
bozulmuş	SMS	mesajları	ile	stres	testleri	
gerçekleş9rilmiş9r.
Yapılan	Çalışmalar	
•  2013	yılında	bulut	ortamında	fuzzing	yöntemi	kullanılarak	
zafiyet	araşRrmaları	yapılmışRr.	
•  Xen	sanallaşRrma	plawormunda	mediafuzzer	kullanarak	
medya	oynaRcı	android	uygulamaları	üzerinde	mutasyon	
tabanlı	fuzzing	testleri	gerçekleş9rilmiş9r.		
•  120	KB’lık	10,000	adet	avi	dosyası	adb	kabuğu	aracılığıyla	
bulut	ortamına	bağlanıp	testler	gerçekleş9rilmiş9r.		
•  Exploit	edilebilir	“heap	leakage”	zafiyetler	tespit	edilmiş9r.
Yapılan	Çalışmalar	
•  Fuzzing	çalışmalarının	eş	zamanlı	olması	için	dağıRk	
fuzzing	yapısını	kullanan	bir	araşRrmada	150	sanal	
makine	üzerinde	milyonlarca	test	gerçekleş9rebilmiş9r.	
				(2013	IEEE	Sixth	Interna9onal	Conference	on	Cloud	
Compu9ng)	
	
•  	Yüzbinlerce	çakılma	(crash)	elde	ederken,	onlarca	da	
ciddi	güvenlik	açığı	tespit	edilmiş9r.	
•  AraşRrma	sadece	masaüstü	uygulamalarda	testlerini	
gerçekleş9rmiş9r.
Yapılan	Çalışmalar	
•  Bu	alandaki	en	güncel	çalışma	ise	Alexandru	
Blanda	tarazndan	fuzz	tes9ni	Android	
üzerindeki	Medya	uygulamaları	üzerinde	
gerçekleştrdiği	çalışma	(linuxFounda9on2015)	
•  MFFA	(Media	Fuzzing	Framework	for	Android)		
•  8	haba	içerisinde	1	milyon	test	denemesi	
sonrası	185,000	çakılma	(crash)	tespit	
edilmiş9r.
Case	Study:	American	Fuzzy	Lop	
20	
•  Novel	dumb	fuzzer	by7	Michael	Zalewski	
•  Combines	simple	fuzzing	techniques	with	
target	instrumenta9on	
•  compile-9me	instrumenta9on	and	gene9c	
algorithms	
•  Fast	fuzzing	speed	against		common	real-
world	targets
Mobile	Fuzzing	Framework	Projeleri	
21	
•  MBFuzzer	
•  ADBFuzz	
•  STAMP	
•  MFFA	-	Media	Fuzzing	Framework	for	
Android	(Stagefright	fuzzer)	
•  Android	Intent	Fuzzer	
•  Sulley	Fuzzer….	
Mul9ple	integer	overflows	in	Stagefright	code	(libstagefright	SampleTable):	
CVE-2014-7915		
CVE-2014-7916		
CVE-2014-7917	
A	crabed	MPEG4	media	file	can	result	in	heap	corrup9on	in	libstagefright,	that	can	lead	
to	arbitrary	code	execu9on	in	the	mediaserver	process:	
CVE-2015-3832
Ömer	Faruk	ACAR	
omerfaruk.acar@gmail.com	
	omer_faruk_acar	
ömer-faruk-acar	
Teşekkürler

More Related Content

[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ömer Faruk Acar - Mobil Uygulamalar İçin Fuzz Testi ve Bug Avcılığı