22
Mobil Uygulamalar için Fuzz Tes5 ve Bug Avcılığı Ömer Faruk ACAR

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

Embed Size (px)

Citation preview

MobilUygulamalariçinFuzzTes5veBugAvcılığı

ÖmerFarukACAR

Giriş•  Uygulamagüvenliğindegeliş9rmevetestaşamalarındakaynakkodanalizitekniğinikullananotoma9zearaçlaryetersizkalmaktadır.

•  FuzzTestleriuygulanmalı(whiteboxveblackbox)•  Android,IOS,WindowsPhonev.s.üzerindeolması•  SınırlıkaynaklariçinBulutOrtamı•  EşzamanlıtestleriçinDağıRkSistem•  Dahaverimlifuzztes9içinEvrimselTabanlıyaklaşım

BugHun9ngLifecycle

3

sourcecode(WhiteBox):•  manualcodereview(Sourcecodeaudit)•  sta9canalysisBinary(BlackBox):•  DynamicAnalysis•  reverseengineering(Debugging&Disassembly)•  fuzzing

FuzzingNedir?Tanım

•  FuzzingisimbabasıProf.BartonMiller

1989

•  Fuzztes9yadafuzzing,otoma9k

olarakbozulmuşyadayarıbozulmuş

verikullanarakuygulamalardabug

bulmakiçinuygulananyazılım

güvenliğitekniğidir.

•  Blackbox,Whitebox

•  Metotlar–  Genera9on-basedyadaRandom-

based(SmartFuzzing)–  Muta9on-based(DumbFuzzing)–  Proxy-based

4

FuzzingFazları

•  HedefBelirle– Uygulamalar(oynaRcılar,okuyucular,web…)– Protokoller(Unix,Windows,OSX)– Cihazlar(arm,telefonlar,modemler…)– …

•  GirdiBelirle– DosyaFormaR(java,pdf,png,m3u,swf…)– Ağprotokolleri(bp,hcp,arp,ssl…)– Kayıtdeberigirdileri,başlıklar,…

FuzzingFazları•  Fuzzverisiüret(TestCaseGenera9on)– Muta9on–  Genera9on–  Evalua9on

•  FuzzverisiniçalışRr–  Yarı-geçerligirdilerinhedefegönderilmesi

•  numbers(signed/unsignedintegers/float...)•  chars(urls,command-lineinputs)•  metadata:user-inputtext(id3tag)•  purebinarysequences

•  Monitörişlemi

Tehditler

7

FuzzingWorkflow

8

ExampleTemplateFiles

9

PeachFuzzerTemplate

10

ExampleFuzzingData

11

FuzzVectors

12

•  CrossSiteScrip9ng(XSS)•  BufferOverflow•  FormatString•  IntegerOverflow•  Sqlinjec9on•  LDAPInjec9on•  XPATHInjec9on•  XMLInjec9on….

OWASP-TOP10MobileSecurityRisks

13

•  M1:InsecureDataStorage•  M2:WeakServerSideControls•  M3:InsufficientTransportLayerProtec9on

•  SSLImplementa9on•  FlowManipula9on

•  M4:ClientSideInjec9on•  SQLInjec9on•  XSSInjec9on

•  M5:PoorAuthoriza9onandAuthen9ca9on•  RemoteCodeExecu9onviaOverflows

•  M6:ImproperSessionHandling•  FlowManipula9on

•  M7:SecurityDecisionsViaUntrustedInputs•  MemoryCorrup9ons

•  M8:SideChannelDataLeakage•  M9:BrokenCryptography•  M10:Sensi9veInforma9onDisclosure

•  Informa9onLeatwithErrorandWarningMessages

14

TestResults

15

YapılanÇalışmalar

•  Fuzzinggüvenliktestlerininilkkullanıldığızamanlar2009yıllarınadayanmaktadır.

(BlackHatUSA2009)•  CharlieMiller’ınönemliçalışmalarındanbiriolanbumakaledeakıllıtelefonlarüzerindeaçıkkaynakkodluSulleyfuzzer’ıkullanılarakbozulmuşSMSmesajlarıilestrestestlerigerçekleş9rilmiş9r.

YapılanÇalışmalar•  2013yılındabulutortamındafuzzingyöntemikullanılarak

zafiyetaraşRrmalarıyapılmışRr.

•  XensanallaşRrmaplawormundamediafuzzerkullanarakmedyaoynaRcıandroiduygulamalarıüzerindemutasyontabanlıfuzzingtestlerigerçekleş9rilmiş9r.

•  120KB’lık10,000adetavidosyasıadbkabuğuaracılığıylabulutortamınabağlanıptestlergerçekleş9rilmiş9r.

•  Exploitedilebilir“heapleakage”zafiyetlertespitedilmiş9r.

YapılanÇalışmalar

•  FuzzingçalışmalarınıneşzamanlıolmasıiçindağıRkfuzzingyapısınıkullananbiraraşRrmada150sanalmakineüzerindemilyonlarcatestgerçekleş9rebilmiş9r.

(2013IEEESixthInterna9onalConferenceonCloudCompu9ng)

•  Yüzbinlerceçakılma(crash)eldeederken,onlarcada

ciddigüvenlikaçığıtespitedilmiş9r.•  AraşRrmasadecemasaüstüuygulamalardatestlerini

gerçekleş9rmiş9r.

YapılanÇalışmalar

•  BualandakiengüncelçalışmaiseAlexandruBlandatarazndanfuzztes9niAndroidüzerindekiMedyauygulamalarıüzerindegerçekleştrdiğiçalışma(linuxFounda9on2015)

•  MFFA(MediaFuzzingFrameworkforAndroid)•  8habaiçerisinde1milyontestdenemesisonrası185,000çakılma(crash)tespitedilmiş9r.

CaseStudy:AmericanFuzzyLop

20

•  Noveldumbfuzzerby7MichaelZalewski•  Combinessimplefuzzingtechniqueswith

targetinstrumenta9on•  compile-9meinstrumenta9onandgene9c

algorithms•  Fastfuzzingspeedagainstcommonreal-

worldtargets

MobileFuzzingFrameworkProjeleri

21

•  MBFuzzer•  ADBFuzz•  STAMP•  MFFA-MediaFuzzingFrameworkfor

Android(Stagefrightfuzzer)•  AndroidIntentFuzzer•  SulleyFuzzer….

Mul9pleintegeroverflowsinStagefrightcode(libstagefrightSampleTable):CVE-2014-7915CVE-2014-7916CVE-2014-7917

AcrabedMPEG4mediafilecanresultinheapcorrup9oninlibstagefright,thatcanleadtoarbitrarycodeexecu9oninthemediaserverprocess:

CVE-2015-3832

Ö[email protected]

omer_faruk_acarömer-faruk-acarTeşekkürler