[Seminar] [brani Za napravo: Mobile Application Security] [Chris Wysopal] [Harvard University] [To je CS50.] [CS50.TV] Dober dan. Moje ime je Chris Wysopal. Jaz sem CTO in soustanovitelj Veracode. Veracode je varnost uporabe, podjetje. Smo preizkusili vse vrste različnih aplikacij, in kaj bom govoril o danes je varnost mobilna aplikacija. Moje ozadje je kar delam raziskave na področju varnosti za zelo dolgo časa, verjetno pa tako dolgo, kot vsi. Začel sem v sredini 90. let, in to je bil čas, ki je bil zelo zanimiv, saj smo imeli spremembo paradigme v sredini 90. let. Naenkrat računalniku vsakega bil zasvojen z internetom, in potem bomo imeli začetke spletnih aplikacij, in to je tisto, kar sem se osredotočil na veliko takrat. To je zanimivo. Zdaj imamo še eno spremembo paradigme dogaja z računalništva, ki je prehod za mobilne aplikacije. Menim, da je nekako podobno časa, potem pa je bil v poznih 90. letih ko smo preiskovanju spletnih aplikacij in iskanje napak, kot so napake upravljanja seje in SQL injection ki v resnici ni obstajal prej, in kar naenkrat so bili povsod v spletnih aplikacijah, in zdaj veliko časa preživim je videti na mobilnih aplikacij in videti, kaj se dogaja tam v divjini. Mobilne aplikacije se v resnici dogaja, da je prevladujoča platformo računalništva, tako da bomo res morali porabiti veliko časa, če ste v varnostne industrije s poudarkom na spletnih aplikacij. Je bilo 29 milijard mobilne aplikacije prenesli v leto 2011. To je napovedal, da bo 76 milijard apps leta 2014. Tam je 686.000.000 naprave, ki se bodo kupili letos, Tako to je, če so ljudje, da se delaš  Večina njihovih strank računalništva gredo naprej. Govoril sem podpredsednika uprave pri Fidelity Investments Pred nekaj meseci, in je rekel, da samo videli več prometa početje finančne transakcije iz njihove baze strank na njihovo mobilno aplikacijo, kot na njihovi spletni strani, tako da je skupna poraba za splet bila v preteklosti preverjanje vaše borzne kotacije, upravljanju vašega portfelja, in smo dejansko videli, da je v letu 2012 preklop bolj dominanten na mobilni platformi. Vsekakor, če se dogaja, da je vsaka kriminalna dejavnost, zlonamerne dejavnosti, da se bo za začetek, da se osredotoča na mobilne platforme sčasoma ljudje preklopite na to. Če pogledaš na mobilne platforme, pogled na tveganja platforme je koristno, da se razgradijo v različnih plasteh, tako kot ti bi to naredila na namiznem računalniku, in misliš o različnih plasteh, programsko opremo, operacijski sistem, omrežni sloj, sloj strojne opreme, in seveda, tam je ranljivosti na vseh teh plasti. Isto se dogaja na mobilni telefon. Ampak mobile, se zdi, da so nekateri od teh plasti na slabšem. Za eno, omrežni sloj je bolj problematično na mobilniku ker veliko ljudi ima v svoji pisarni ali doma žično povezavo ali so varne Wi-Fi povezave, in z veliko mobilnih naprav si očitno zunaj doma ali zunaj pisarne veliko, in če ste z uporabo Wi-Fi tam Morda uporabljate negotovega Wi-Fi povezave, nekaj, kar je javna Wi-Fi povezave, tako da, ko razmišljamo o mobilnih aplikacijah moramo upoštevati da je mreža okolje bolj tvegano za tiste vloge, kadar se uporablja Wi-Fi. In ko sem prišel v bolj mobilne tveganj uporabe videli boste, zakaj je to bolj pomembno. Obstajajo tveganja na ravni strojne opreme na mobilnih napravah. To je področje raziskav v teku. Ljudje imenujejo te širokopasovne napadi ali frekvenčnem pasu napadi kje ste napadajo firmware, da je poslušanje radia. To so res grozljive napade, ker uporabniku ni treba storiti ničesar. Lahko hit veliko naprav v RF območju na enkrat, in zdi se, kot vedno, kadar je ta raziskava mehurčki up hitro postane razvrščeni kjer ljudje Nalet na okrog in rekel: "Tu nam poveste o tem, in nehaj govoriti o tem." Obstaja nekaj raziskav dogaja na širokopasovnem področju vendar se zdi, da je zelo Tišina Tišina. Mislim, da je bolj tip narod stanju raziskav, ki se dogaja. Območje aktivnih raziskav, čeprav je operacijski sistem plast, in spet, to je drugače kot v desktop computing svetu ker v mobilni prostor, ki ga imajo te skupine ljudi imenujemo jailbreakers, in jailbreakers se razlikujejo od rednih raziskovalcev ranljivosti. Poskušajo najti ranljivosti v operacijskem sistemu, ampak razlog, da poskušate najti ranljivosti ni vdreti v napravo nekdo drug in ga ogroziti. To je vdreti v svoj računalnik. Hočejo prodreti na svojem mobilniku, spremenite operacijski sistem uporabljajo svoje mobilne stranke tako da se lahko izvajajo aplikacij po lastni izbiri in spremeniti stvari s polnimi upravnih dovoljenj, in ne želijo povedati prodajalca o tem. Oni ne marajo varnostnega raziskovalca, ki je bel klobuk varnostni raziskovalec , ki bo naredil odgovornega razkritja in povedal prodajalec o tem. Želijo, da to storijo raziskave, in želijo, da ga dejansko objaviti V izkoriščati ali rootkit ali kodo iz zapora, in želijo, da to strateško, kot takoj po je prodajalec ladje nov operacijski sistem. Imate ta kontradiktoren odnos z ranljivostmi ravni OS na mobilni telefon, kar mislim, da je zelo zanimivo in eno mesto, ga vidimo se naredi tako, da je dobro objavljeni izkoriščajo koda tam ranljivosti ravni jedra, in smo videli tistih, ki dejansko s pisci škodljive kode. To je malo drugačen od PC svetu. In nato končno plast je vrhnja plast, aplikacije. To je tisto, kar bom govoril o danes. Drugih slojev obstajajo, in so druge plasti igrajo v njej, vendar sem večinoma bom govoril o tem, kaj se dogaja na ravni aplikacije kjer je koda teče v peskovniku. To nima druge privilegije. To je za uporabo API za naprave, vendar še vedno lahko veliko zlonamerne aktivnosti in veliko tveganje zgodilo v tistem sloju ker to je sloj, kjer se vse informacije. Aplikacije lahko dostop do vseh informacij o napravi če imajo ustrezna dovoljenja, in lahko dostopate do različnih senzorjev na napravo, GPS senzor, mikrofon, kamera, kar imate. Čeprav smo le govorimo o ravni aplikacije imamo veliko tveganje obstaja. Druga stvar, ki je drugačen o mobilnem okolju se vsi operacijski sistem igralci so, da je BlackBerry ali Android ali iOS ali Windows mobile, vsi imajo fino zrnato modela dovoljenj, in to je eden od načinov, ki so vgrajene v operacijski sistem Ideja, da to ni tako tvegano kot si misliš. Čeprav imate vse kontakte tam, vse vaše osebne podatke, imate svoje fotografije, imate svojo lokacijo tam, ste shranjevanje vaših bančnih pin za samodejno prijavo na tam, da je varno, ker apps imeti določene dovoljenja, da se na določenih delih informacij o napravi, in uporabnik mora biti predstavljen s teh dovoljenj in reči, v redu. Težava je uporabnik vedno pravi redu. Zaradi varnosti osebe, vem, da lahko poziv uporabniku, reči nekaj res slabega se bo zgodilo, želiš, da se zgodi? In če ste v naglici ali je nekaj res vabljiv, na drugi strani, da kot igro se bo treba namestiti, da so čakali, oni 'tekoč, da kliknete v redu. Zato sem rekel, moj diapozitiv tukaj samo mi romanca ptic na prašičih že, in si lahko ogledate na slide tu obstaja primeri škatle BlackBerry dovoljenja. Piše "Prosimo, nastavite aplikacijo dovoljenja za BlackBerry Travel Po gumb kliknete spodaj, "in v bistvu je uporabnik samo reči nastavite dovoljenja in shranite. Tukaj je Android poziv, kjer kaže stvari, in dejansko postavlja nekaj, kar izgleda skoraj kot opozorilo. Ima neke vrste donosnosti znak tam rekel komunikacijskega omrežja, telefonski klic, uporabnik pa se dogaja, da kliknete namestiti, kajne? In potem Apple ena popolnoma neškodljiv. To ne daje kakršnokoli opozorilo. To je samo Apple želi uporabiti svoj trenutni položaj. Seveda boš kliknite V redu. Tam je to drobnozrnatega modela dovoljenje, in aplikacije imeti datoteko manifesta, kjer se razglasi dovoljenja, ki jih potrebujejo, in da bo dobil prikaže uporabniku, in bo uporabnik moral reči, da odobri ta dovoljenja. Ampak bodimo pošteni. Uporabniki so le, da bo vedno rekel, v redu. Vzemimo hiter pogled na dovoljenja, ki te aplikacije prosijo za in nekaj dovoljenj, ki so tam. To podjetje Pretorska naredil raziskavo lani od 53.000 vlog, analiziranih v Android Market in 3rd party trgih, tako da to je vse Android. In povprečno app zahteval 3 dovoljenja. Nekatere aplikacije zahteval 117 dovoljenj, tako da očitno so zelo fino zrnata in preveč zapletena za uporabnika, da razumejo če oni predstavljen s to aplikacijo, ki potrebuje teh 117 dovoljenj. To je kot končni licenčne pogodbe za uporabnika, ki je 45 strani dolgo. Mogoče kmalu jih bomo imeli možnost, kjer je kot tiskanje dovoljenja in mi pošljete e-pošto. Ampak, če vi pogled na nekatere od najboljših zanimivih dovoljenj 24% vseh aplikacij, ki so jih prenesli iz 53.000 zahtevane informacije GPS iz naprave. 8% prebral stike. 4% je poslal SMS, in 3% prejetih SMS. 2% avdio, posnet. 1% predelajo odhodne klice. Ne vem. Ne verjamem, 4% apps v App Store res potrebujete za pošiljanje besedilnih sporočil SMS, tako da mislim, da je to namig, da je nekaj neugoden se dogaja. 8% apps morali prebrati svoj seznam stikov. To verjetno ni potrebna. Ena od zanimivih stvari o dovoljenjih je če ste povezavo na deljene knjižnice v aplikaciji tistih, ki dedujejo dovoljenja za uporabo, tako da, če tvoja aplikacija potrebuje seznam stikov ali potrebuje GPS lokacijo deloval in se povežete v oglaševalski knjižnici, na primer, da knjižnica oglas bodo lahko dostopali do stikov in prav tako lahko dostop do GPS lokacijo, in razvijalec app ne ve ničesar o zakoniku, ki je nameščen v knjižnici oglasov. Oni so ga samo povezuje, da zato, ker želijo, da prihodek od njihove aplikacije. To je, če in bom govoril o nekaterih primeri to z aplikacijo, imenovano Pandora, kjer razvijalec aplikacije morda nevede se razkritje informacij od svojih uporabnikov, saj knjižnic oni povezanih prijavite Geodetski pokrajino tam, je videti na vseh različnih aplikacij na da so poročali v novicah, kot zlonamerne ali delaš nekaj, kar uporabniki niso želeli in nato pregledovanje veliko apps, bomo veliko statične binarni analize na mobilne aplikacije, zato smo jih pregledati in pogledal kodo sam- smo prišli do kar imenujemo naš top 10 seznam tveganih vedenj v aplikacijah. In to je razčlenjeno na 2 razdelka, zlonamerne kode, tako da so slabe stvari, ki bi jih bilo mogoče aplikacije, ki delajo verjetno nekaj, kar zlonamerno posameznik je posebej dal v uporabo, ampak to je malo megleno. To bi bilo nekaj, da razvijalec misli, da je v redu, vendar konča se misli kot zlonamerne s strani uporabnika. In potem drugi del je tisto, čemur pravimo kodiranje ranljivosti, in to so stvari, kjer razvijalec bistvu je delati napake ali pa samo ne razumem, kako varno napisati aplikacijo,  in da je dajanje uporabnik app ogroženi. Jaz grem z njimi podrobno in navedem nekaj primerov. Za referenco sem hotel dati gor OWASP mobile top 10 seznam. To so vprašanja, ki 10 skupina na OWASP, Projekt Open Web Application Security, so delovno skupino delajo na mobilni top 10 seznamu. Imajo zelo znan web top 10 albumov, ki so top 10 tvegani stvari, ki jih lahko imate v spletne aplikacije. Počnejo isto stvar za mobilne naprave, in njihov seznam je malo drugačna od naše. 6 iz 10 so enake. Imajo 4, ki so drugačni. Mislim, da imajo malo drugačne, vse večji Tveganje v mobilnih aplikacijah, kjer je veliko njihovih vprašanj res, kako je vloga komuniciranja z back-end server ali kaj se dogaja na back-end strežnik, ne toliko programi, ki imajo tveganega vedenja, ki so samo enostavne aplikacije odjemalca. Tisti v rdeči tu so razlike med sezname 2. In je nekaj mojih raziskovalne skupine dejansko prispevala k temu projektu, tako da bomo videli, kaj se zgodi v tem času, ampak mislim, da takeaway tukaj ne vem, kaj top 10 seznam je v aplikacijah za mobilne naprave, saj oni res šele približno za zdaj 2 ali 3 leta, in ni bilo dovolj časa, da bo res raziskati operacijske sisteme in kaj so sposobni, in ni bilo dovolj časa za zlonamerno skupnosti, če boste, da je preživel dovolj časa poskuša napad uporabnikom prek mobilne aplikacije, zato pričakujem, ti seznami za spremembo malo. Ampak za zdaj, to so top 10 stvari treba skrbeti. Morda se sprašujem, na mobilni strani, kjer pa zlonamerna koda mobilne- kako je pa težko priti na napravi? North Carolina država ima projekt, imenovan Mobile Malware Genome Project kjer se zbira toliko mobilne zlonamerne programske opreme, kot jih lahko in jih analizira, in oni razčleniti vektorji za vbrizgavanje, da mobilni malware uporablja, in 86% pa jih uporablja tehniko, imenovano prepakiranje, in to je samo na platformi Android Lahko si res to prepakiranje. Razlog se je Android koda zgrajena z Java byte code imenovan Dalvik, ki je zlahka decompilable. Kaj slab fant lahko naredite, je prevzame Android aplikacijo, jo prevajati, vstavite svojo zlonamerno kodo, jo prevedem, in ga nato dal v App Store, ki se ima nova različica te aplikacije, ali pa morda spremenili ime aplikacije. Če bi bilo neke vrste igro, spremeniti ime rahlo in zato je to ponovno pakiranje, kako dobi 86% mobilni malware porazdeljena. Še en tehniko, imenovano posodobitev, ki je zelo podobna za prepakiranje, ampak si dejansko ne dajo zlonamerne kode noter Kaj morate storiti, je, si dal v majhno mehanizem za posodabljanje. Vi prevajati, si dal v mehanizmu za posodobitev in jo prevedem, in potem ko je app teče potegne navzdol zlonamerne programske opreme na napravi. Do sedaj je večina teh 2 tehnike. Ni res veliko Download pripeljal mimo ali drive-by downloads na mobilnih telefonih, kar bi bilo podobno phishing napada. Hej, check out to res kul spletno stran, ali pa boste morali iti na tej spletni strani in izpolnite obrazec da še naprej delaš nekaj. Tisti, ki so phishing napadov. Isto se lahko zgodi na pomično platformo, kjer opozarjajo na mobilne aplikacije za prenos, reči "Zdravo, to je Bank of America." "Vidimo, da ste s to aplikacijo." "Vi bi morali prenesti to drugo aplikacijo." Teoretično, da bi delovalo. Mogoče pa le ni dovolj, se uporablja za ugotavljanje, ali je uspešen ali ne, vendar so ugotovili, da se uporablja manj kot 1% časa, ki tehniko. Večino časa, to je res prepakirati kode. Še ena kategorija se imenuje samostojni kjer je nekdo pravkar gradi vlogo čisto novo. Gradijo aplikacijo, ki trdi, da mora biti nekaj. To ni prepakiranje nekaj drugega, in da ima zlonamerno kodo. To se uporablja 14% časa. Sedaj želim govoriti o tem, kaj je zlonamerno kodo delaš? Ena od prvih malware tam ti bi lahko razmislil spyware. To v bistvu vohuni za uporabnika. Zbira e-pošte, SMS sporočil. Izkazalo se je na mikrofonu. To obira kontaktne knjigo, in jo pošlje off nekomu drugemu. Ta vrsta spyware obstaja na računalniku, zato je logično, da ljudje poskušali to storiti na mobilnih napravah. Eden prvih primerov je to program, imenovan Secret SMS Replicator. Bilo je v Android Marketplace pred nekaj leti, in ideja je bila, če bi imeli dostop do Android telefon nekoga da si je želel, da vohuni za, tako da morda je to vaš zakonec ali vaše pomembne druge in želite, da vohuni za njihovo pošiljanje besedilnih sporočil, si lahko prenesete to app in ga namestite in konfigurirate za pošiljanje SMS-ov na vas s kopijo vsakega SMS sporočila SMS so dobili. To je očitno pri kršitvah App Store glede na dobo, in to je bil odstranjen iz trgovine Android Marketplace v roku 18 ur, da se tam, Tako zelo majhno število ljudi, ki so ogroženi zaradi tega. Zdaj pa mislim, da če je bil program, imenovan nekaj morda malo manj provokativen kot Secret SMS Replicator verjetno bi delal veliko bolje. Ampak to je nekako jasno. Ena od stvari, ki jih lahko storite, da se ugotovi, ali ima apps to vedenje, da ne želimo je pregledati kodo. To je pravzaprav zelo enostavno narediti na Android, ker smo lahko prevajati apps. Na iOS lahko uporabite disassembler kot IDA Pro pogledati, kaj Apis app kliče in kaj počne. Pisali smo naše binarni statično analizator za našo kodo in to počnemo in kaj lahko narediš, je, da bi lahko rekli, se naprava storiti ničesar, da je v bistvu vohuni za mano ali me sledenje? In imam nekaj primerov tukaj na iPhone. Ta prvi primer je, kako priti do UUID na telefonu. To je pravzaprav nekaj, kar je Apple pravkar prepovedala za nove aplikacije, ampak stare aplikacije, ki ste morda teče na telefonu vedno lahko naredimo to, in lahko tako, da posebni identifikator uporablja za vas spremljali v številnih različnih aplikacij. Na Android, imam primer tukaj, da bi dobili lokacijo naprave. Vidite lahko, da če je API klic, da ga app je sledenje, in lahko vidite, ali je pridobivanje fino lokacijo ali grobo lokacijo. In nato na dnu tukaj, imam primer, kako na BlackBerry Zahtevek lahko dostopate do e-poštnih sporočil v vašem nabiralniku. To so vrste stvari, ki jih lahko pregledajo, da vidim če app počne te stvari. Druga velika kategorija škodljivega delovanja, in to je verjetno največja kategorija zdaj je nepooblaščeno klicanje, nepooblaščeno premium SMS tekstovnih sporočil ali nepooblaščene plačila. Še ena stvar, ki je edinstven o telefonu se je naprava zasvojen z računom za obračun, in ko se zgodi dejavnosti na telefonu lahko ustvarijo stroške. Lahko kupite stvari po telefonu, in ko pošljete SMS z besedilom premium sporočilo ste dejansko daje denar imetniku računa na telefonsko številko, na drugi strani. Te so bile ustanovljene, da bi dobili borzne kotacije ali se vaš dnevni horoskop ali druge stvari, vendar jih je mogoče ustanoviti naročiti izdelek s pošiljanjem SMS besedilo. Ljudje dajo denar za Rdeči križ s pošiljanjem SMS sporočila. Lahko daš 10 $ na tak način. Napadalci so, kaj so naredili, je, da ustanovijo računi v tujih državah, in jih vgradili v zlonamerne programske opreme da bo telefon poslal premium SMS-ov, pravijo, nekajkrat na dan, in na koncu meseca, ko ugotovimo, da ste porabili desetine ali celo stotine dolarjev, in oditi z denarjem. Ta se je tako hudo, da je to prva stvar, ki Android Marketplace ali Google kraj, da je Android Marketplace v času, in to je zdaj Google Play-prva stvar, ki se je začel Google preverjanje. Ko je Google začel distribucijo Android aplikacije v svoji App Store Rekli so, ne bo ček za karkoli. Bomo potegnite apps, ko sva bila obveščena, da ste prekinili naše pogoje storitve, ampak ne bomo, da preverite za karkoli. No, pred približno letom dni je dobil tako hudo s tem premium SMS-ov malware da je to prva stvar, ki so začeli preverjanje. Če lahko app pošiljanje SMS sporočil se dodatno ročno pregledati to vlogo. Iščejo API-jev, ki kličejo to, in zdaj od takrat je Google razširil, ampak to je bila prva stvar, ki so začeli iskati. Nekatere druge aplikacije, naredil nekaj SMS sporočil, to Android Qicsomos, mislim, da se imenuje. Tam je bil ta tok dogodkov na mobilniku, kjer je to CarrierIQ areno kot spyware dal na napravo, ki jih letalski prevozniki, tako da ljudje želel vedeti, če je bil njihov telefon občutljivi na to, in to je bil prost app, ki testirajo to. No, seveda, kaj to app naredil je bilo poslano premium SMS sporočil, tako s testiranjem, da vidim, če ste okuženi z vohunskimi programi naložen zlonamerne programske opreme na napravi. Videli smo isto stvar zgodi na zadnji Super Bowl. Tam je bil lažni različica Madden nogometne tekme da pošlje premium SMS sporočil. To dejansko poskušal ustvariti bot omrežja tudi na napravi. Tukaj imam nekaj primerov. Zanimivo je, da je Apple zelo pameten, in ne omogočajo aplikacije za pošiljanje SMS sporočil na vseh. Ne app lahko to storite. To je odličen način, da se znebi celo vrsto ranljivosti, ampak na Android lahko to storite, in seveda, na BlackBerry lahko to storite tudi. Zanimivo je, da vse, kar potrebujete, je na BlackBerry Internet dovoljenja za pošiljanje SMS-ov. Druga stvar res, da smo si za ko smo iskali, da vidim, če je nekaj zlonamerno je le vse vrste nepooblaščeno dejavnost omrežja, kot je pogled na aktivnosti omrežja app naj bi moral imeti svojo funkcionalnost, in pogled na te druge omrežne dejavnosti. Morda app, da deluje, je, da bi dobili podatke preko HTTP, ampak, če je to početje stvari preko e-pošte ali SMS ali Bluetooth ali kaj podobnega zdaj, da app bi lahko bilo škodljivo, zato je to še ena stvar, ki jo je mogoče preveriti,. In na ta diapozitiv tukaj imam nekaj primerov, da. Še ena zanimiva stvar, ki smo videli z zlonamerno programsko opremo se je zgodilo že v letu 2009, in to se je zgodilo v veliki način. Ne vem, če je to zgodilo toliko od takrat, vendar je bilo app da se pretvarjala drugo aplikacijo. Tam je bil nabor aplikacij, in je bil poimenovan 09Droid napad, in nekdo odločil, da je bilo veliko manjših, regionalnih in srednje velikih bank da ni imela spletnih bančnih vlog, Torej, kaj so naredili je bilo zgrajene okoli 50 spletnih bančnih vlog da je bilo vse, kar so si vzeli uporabniško ime in geslo in vas preusmeri na spletno stran. In tako dajo ti vse v Google Marketplace, v Android Marketplace, in ko nekdo iskal, da vidim, če njihova banka imela vlogo, da bi našli lažne prijave, ki zbirajo svoje poverilnice in jih nato preusmerjen na njihovi spletni strani. Tako, da je to dejansko postala-apps so tam za nekaj tednov, in je bilo na tisoče in tisoče prenose. Način, to je pojavila je bil nekdo, ki ima težave z eno od vlog, in so pozvali svoje banke, in so ga imenovali za podporo strankam linijo svojih bančnih in dejal, "Imam težave z mobilnim bančne vloge." "Ali mi lahko pomagaš?" In jim je rekel: »Nimamo bančne vloge mobilni." Ki se je začela preiskavo. Da banka imenuje Google, nato pa Google pogledal in rekel: "Wow, je isti avtor napisal 50 bančnih vlog," in jih vse vzel. Vsekakor pa bi to lahko ponovilo. Tukaj je seznam vseh različnih bank tukaj da so bili del te prevara. Druga stvar app lahko naredimo je prisoten UI druge aplikacije. Medtem ko se je tekmovanje v teku bi lahko pop up Facebook UI. To pravi, da moraš dati svoje uporabniško ime in geslo za nadaljevanje ali so pripravljeni koli uporabniško ime in geslo vmesnik za spletno stran da je morda uporabnik uporablja samo poskusiti trik uporabnika v dajanje svojih mandatov prijavite To je res naravnost vzporedno z napadi na email phishing kjer vam nekdo pošlje e-poštno sporočilo in vam v bistvu ponaredek vmesnik za spletno stran da imate dostop do. Druga stvar, ki smo si za zlonamerna koda je sprememba sistema. Si lahko ogledate za vse klice API, ki zahtevajo korenske privilegije Za pravilno izvedbo. Spreminjanje web proxy za napravo bi bilo nekaj, da aplikacija ne bi mogli narediti. Ampak, če je uporaba kode v tam, da ne da veste, da je to verjetno zlonamerni program ali zelo zelo verjetno, da gre za zlonamerni program, in kaj bi se zgodilo, da bi imeli app na nek način stopnjevala privilegij. To bi bilo nekaj privilegij stopnjevanje izkoriščajo v vlogi, in potem, ko je stopnjevalo privilegije to bi naredil te spremembe sistema. Boste našli zlonamerno programsko opremo, ki ima privilegij stopnjevanje v njej celo ne da bi vedel, kako stopnjevanje privilegij izkoriščati se bo zgodilo, in to je lep in enostaven način iskati malware. DroidDream je verjetno najbolj znan kos malware Android. Mislim, da je prizadeta približno 250.000 uporabnikov, čez nekaj dni preden je bilo ugotovljeno. So prepakirati 50 lažnih prijav, jih v Android App Store, in v bistvu ga uporabljamo Android iz zapora kodo, da se bodo razširile pravice in nato namestite poveljevanja in nadzora ter nato vse žrtve v bot net, vendar pa bi to lahko zazna če ste bili skeniranje aplikacijo in samo iščejo API klice, ki zahtevajo koren dovoljenje za pravilno izvršitev. In tam je primer tukaj imam, ki se spreminja pooblaščenca, in to je dejansko na voljo le na Android. Ogledate si lahko Dajem ti veliko primerov na Android ker je to, kjer je najbolj aktiven malware ekosistem ker je zelo enostavno za napadalca, da bi dobili zlonamerno kodo v Android Marketplace. To ni tako enostavno narediti, da se v Apple App Store ker Apple zahteva razvijalcem, da se identificirajo in podpis kode. Dejansko preveriti, kdo ste, in Apple je dejansko pregledu zahtevkov. Mi ne vidimo veliko pravega zlonamerne programske opreme, kjer je naprava za pridobivanje ogrožena. Bom govoril o nekaj primerov, kjer je res zasebnosti, ki postaja ogrožena, in to je tisto, kar se v resnici dogaja na napravi Apple. Še ena stvar, da si za zlonamerno kodo, tvegano kodo v napravah je logika ali časovne bombe in časovne bombe so verjetno veliko lažje iskati kot logične bombe. Ampak s tempirane bombe, kaj lahko naredite, je, si lahko ogledate mesta v kodi, kjer je testiran čas ali absolutnega časa je iskal Pred določene funkcionalnosti v aplikaciji zgodi. In je bilo to mogoče skriti, da je aktivnost od uporabnika, tako da se dogaja pozno v noč. DroidDream naredil vso svojo dejavnost 11:00-08:00 po lokalnem času da poskusite to storiti, ko uporabnik ne bi mogel biti z uporabo svoje naprave. Drug razlog za to je, če ljudje uporabljajo vedenjsko analizo vloge, teče app v peskovniku, da vidim, kaj obnašanje aplikacije je, ki jih lahko uporabite, ki temelji na časovno logiko storiti dejavnost ko je aplikacija ni v peskovniku. Na primer, app store, kot so Apple zažene aplikacijo, vendar pa verjetno ne teče vse zahtevke za, recimo, 30 dni Pred odobritvijo, tako da lahko dajo Logika v svoji vlogi, ki je dejal, v redu, samo, da se slabe stvari , potem ko je 30 dni minilo in po 30 dneh po datumu prijave objavi, in da lahko pomaga zlonamerno kodo skriti od ljudi, ki si ogledujejo za to. Če je anti-virus podjetja tečejo stvari v peskovniki ali app trgovin sami so to lahko pomaga skriti, da je iz tega pregleda. Zdaj pa druga plat, da je enostavno najti s statično analizo, tako dejansko nadzorom kode si lahko ogledate vseh krajev kjer je uporaba testov časa in preglejte ta način. In tukaj imam nekaj primerov na teh 3 različnih platformah kako se lahko preveri čas, ki ga app za kavo tako da boste vedeli, kaj iskati, če ste pregledovanje app statično. Pravkar sem šel skozi cel kup različnih zlonamernih dejavnostih da smo videli v divjini, ampak katere so najpogostejše? Ta ista raziskava iz Severne Karoline država Mobile Genome Project objavil nekaj podatkov, pa je bilo v bistvu 4 območja da so videli, kjer je bilo veliko aktivnosti. 37% apps storil stopnjevanje privilegij, Tako so imeli neke vrste Bjekstvo iz zapora kode tam kjer so poskušali stopnjevali privilegije, tako da bodo lahko Ne ukazi API deluje kot operacijski sistem. 45% apps tam naredil premium SMS, tako da je ogromen odstotek, ki se trudijo, da neposredno prihodek. 93% je daljinski upravljalnik, tako da so poskušali vzpostaviti bot net, mobilni bot net. In 45% pridelane identifikacijske podatke kot so telefonske številke, UUID, GPS lokacijo, uporabniških računov, in to dodaja do več kot 100, ker je večina malware poskuša narediti nekaj od teh stvari. Bom, da preklopite na drugo polovico in govori o ranljivosti kode. To je druga polovica tveganih dejavnosti. To je, če v bistvu je razvijalec česar napake. Legitimno razvijalec pisno legitimen app je izdelava napake ali je vedela za tveganja, mobilne platforme. Samo ne vem, kako naj varno mobilno aplikacijo, ali včasih razvijalec ne skrbi dajanje uporabnik v nevarnosti. Včasih del njihovega poslovnega modela bo trgatvi uporabnikov osebnih podatkov. To je nekako druge kategorije, in da je, zakaj nekateri to zlonamerno v primerjavi z legitimnimi začne krvaveti več zato, ker je razlika v mnenjih med katerimi uporabnik želi in kaj uporabnik meni tvegano in kaj razvijalec programske meni tvegano. Seveda, to ni podatki razvijalca aplikacij v večini primerov. In potem končno, še en način se to zgodi, je razvijalec lahko povežejo v skupna knjižnica, ki ima šibke ali to tvegano obnašanje v njem nevede njih. Prva kategorija je občutljiv uhajanje podatkov, in to je, ko app zbira podatke kot so lokacija, informacije imenika, informacije lastnika , ki ga pošlje z naprave. In ko je off napravo, ne bomo vedeli, kaj se dogaja s to informacijo. To bi lahko insecurely shrani razvijalca aplikacij. Videli smo razvijalci aplikacij se ogrožena, in podatki, ki jih oni shranjevanje gets sprejeti. To se je zgodilo pred nekaj meseci, da razvijalec na Floridi kjer je bilo ogromno število-ji iPad UUID in imena naprav so ušli, ker je nekdo, mislim da je bil anonimen, je trdil, da to storijo, so vdrli v strežnike tega razvijalca je in ukradel milijone iPad UUID in imena računalnikov. Ni najbolj tvegana informacije, kaj pa če bi bilo shranjevanje uporabniških imen in gesel in domače naslove? Obstaja veliko aplikacij, ki shranjujejo take vrste informacij. Tveganje obstaja. Druga stvar, ki se lahko zgodi, je, če razvijalec ne skrbijo zagotoviti podatkovni kanal, in to je še ena velika ranljivost bom govoriti, da so podatki, ki se pošljejo v jasni. Če uporabnik na javno omrežje Wi-Fi ali kdo vohlja po internetu nekje po poti je, da podatki niso izpostavljeni. En zelo znan primer tega uhajanja informacij zgodilo z Pandora, in to je nekaj, kar smo raziskali na Veracode. Slišali smo, da je bil, mislim, da je Zvezna komisija za trgovino Preiskava se dogaja s Pandore. Rekli smo: "Kaj se dogaja tam? Začnimo kopati v vlogi Pandora." In kaj smo ugotovili, je bila vloga Pandora zbirajo vašim spolom in starostjo, in to tudi pogledali vaš GPS lokacijo, in uporabo Pandora je to storil za to, kar so rekli so legitimni razlogi. Glasba, ki sta igrali, Pandora je pretakanje glasbe app- glasba sta igrali je licenciran samo v Združenih državah Amerike, tako da so morali preveriti v skladu s svojimi licenčnih pogodb, ki so jih imeli za glasbe, ki je za uporabo v Združenih državah. Prav tako so želeli, da ravna v skladu z Parental Advisory okrog odraslih jezik v glasbi, in zato je prostovoljni program, ki pa so želeli, da v skladu s tem in ne igrajo izrecnih pesmi za otroke 13 in pod. Imeli so legitimni razlogi za zbiranje teh podatkov. Njihova app imeli dovoljenja, da to storite. Uporabniki so mislili, da je to zakonito. Toda kaj se je zgodilo? Vezana na 3 ali 4 različnih knjižnicah oglasov. Zdaj pa kar naenkrat vse te knjižnice oglasov so dobili dostop do teh istih informacij. Knjižnice oglasov, če pogledaš na kodo v knjižnicah oglasov kaj storiti, je vsaka knjižnica oglas pravi, "Ali moj app dovoljenja za pridobivanje GPS lokacijo?" "Oh, to? Ok, povej mi GPS lokacijo." Vsak posamezni knjižnica oglas ne da, in če app nima GPS dovoljenja da ne bodo mogli dobiti, če pa ne, jo bo dobil. To je, če poslovni model knjižnic oglasov nasprotuje zasebnosti uporabnika. In je prišlo študij tam, da bodo rekli, če veš, starost osebe in veš svojo lokacijo kje spijo ponoči, ker imate svoje GPS koordinate medtem ko morda spi, boste točno vedeli, kdo je ta oseba ker lahko ugotovite, katere član tega gospodinjstva je ta oseba. Res je to identifikacijo za oglaševalce točno, kdo ste, in izgleda, da je bilo zakonito. Hočem samo za pretakanje glasbe, in to je edini način, da dobim. No, to smo izpostavljeni. Mi bi to napisal v nekaj blog delovnih mest, in se je izkazalo, da je nekdo iz revije Rolling Stone se glasi eden od naših blog delovnih mest in napisal svoj blog v Rolling Stone o tem, in že naslednji dan Pandora mislil, da je dobra ideja odstraniti knjižnice oglasov iz njihove uporabe. Kolikor jaz vem, oni so le-treba pohvaliti. Mislim, da so samo freemium vrsta app, ki je to storil. Vse ostale freemium apps imajo to isto vedenje, tako da moraš razmišljati o tem, kakšne vrste podatkov, ki ste ga daje ti freemium aplikacije, saj gre vse za oglaševalce. Pretorska naredil tudi študijo o skupnih knjižnic in rekel: "Poglejmo, kaj deliti knjižnice so top deljene knjižnice," in to je bilo po podatkih. Analizirali 53.000 apps, in knjižnice v skupni rabi številka 1 je bil AdMob. To je bil dejansko 38% vlog tam, Tako 38% prošenj, ki jo uporabljate verjetno spravila svoje osebne podatke in ga pošljete na ad omrežij. Apache in Android so bili za 8% in 6%, in potem te ostale pa navzdol na dnu, Google Ads, razburjenje, Mob mesta in Millennial Media, vse to so podjetja, ad, nato pa dovolj zanimivo, 4% vezan v knjižnici Facebook Verjetno narediti avtentikacijo preko Facebook tako da bi app overitev Facebook. Toda to pomeni tudi korporacijo Facebook nadzoruje kodo da je tekmovanje v teku na 4% Android mobilne aplikacije tam, in imajo dostop do vseh podatkov, ki jih ima ta app za dovoljenje, da bi dobili na. Facebook bistvu poskuša za prodajo oglasnega prostora. To je njihov poslovni model. Če pogledaš na tem celotnem ekosistemu s temi dovoljenji in deljene knjižnice boste videli, da je imate veliko tveganje pri domnevno zakonite uporabe. Enako podobno stvar, ki se je zgodilo s Pandore se je zgodilo z aplikacijo, imenovano Path, Pot in so mislili, da bi koristno, prijazni razvijalci. Bili so samo poskušam, da vam odlično uporabniško izkušnjo, in izkazalo se je, da brez poziva uporabniku ali pove uporabniku, kaj- in to se je zgodilo na iPhone in Android, Pandora app je bil na iPhone in Android- da je bila prijava Pot oprijemalne vaše celotno adresar in ga naložite na pot šele, ko boste namestili in zagnali aplikacijo, in se vam ni povedal o tem. Mislili so, da je bilo res koristno za vas da lahko delite z vsemi ljudmi v adresarju da ste z uporabo poti. No, očitno Pot mislil, da je to super za njihovo družbo. Ni tako velik, da uporabnik. Moraš razmišljati, da je to ena stvar, če morda najstnik se s to aplikacijo in njihove desetine prijatelji so tam, kaj pa če je predsednik uprave družbe, ki se namesti pot in potem kar naenkrat njihovi celotni naslov knjige je tam? Boste dobili veliko potencialno dragocen kontaktne informacije Za veliko ljudi. Novinar iz New York Times, boste morda lahko dobili telefonsko številko za bivše predsednike iz svojega imenika, tako da očitno veliko občutljivih informacij gets prenesli nekaj takšnega. Tam je bil tako velik loputa o tem, da je pot opravičil. So spremenili svoje aplikacije, in to tudi vplivalo Apple. Apple je dejal: "Mi bomo prisilili app prodajalci uporabnike spodbudila če boš zbrati ves svoj adresar. " Izgleda, kaj se tukaj dogaja, je če obstaja ena velika kršitev zasebnosti in ga naredi pritisnite bomo videli spremembo tam. Seveda, tam je druge stvari tam. Vloga LinkedIn obira vaše vpise v koledarju, vendar pa Apple ne pomeni, da uporabnik pozvani o tem. Vpisi v koledarju lahko občutljive podatke v njih preveč. Kam greš potegniti črto? To je res nekako razvija mesto kje pa je res ni dober standard tam za uporabnike, da razumejo, če njihova informacija se bo ogrožena in ko bomo vedeli, da je so bili sprejeti. Napisali smo aplikacijo na Veracode imenovano Adios, in v bistvu je dovoljeno, da točke app na vašem imeniku iTunes in pogled na vse aplikacije, ki so bile lovilo svoj polni naslov knjige. In kot lahko vidite na seznamu tukaj, Angry Birds, AIM, AroundMe. Zakaj Angry Birds potrebujete adresar? Ne vem, ampak to počne nekako. To je nekaj, kar veliko, veliko aplikacij narediti. Lahko preverite kodo za to. Tam je dobro opredeljene API za iPhone, Android in BlackBerry priti v adresarju. Lahko res enostavno pregledati za to, in to je tisto, kar smo storili v naši uporabi Adios. Naslednja kategorija, Nevarna Sensitive za shranjevanje podatkov, je nekaj, kjer razvijalci vzeli nekaj podobnega pin ali številka računa ali geslo in ga shranite na varnem na napravi. Še huje, bi lahko shranite na območju, na telefonu ki je globalno dostopne, kot so kartice SD. Vidiš to bolj pogosto na Android, ker Android omogoča SD kartico. IPhone naprave ne. Vendar smo še videli to zgodilo v vlogi Citigroup. Njihovo spletno bančništvo vloge, shranjene številke računov insecurely, samo v jasni, tako da, če ste izgubili svojo napravo, v bistvu si izgubil svoj bančni račun. To je razlog, zakaj jaz osebno ne delam bančništva na moj iPhone. Mislim, da je preveč tvegano, prav zdaj narediti te vrste dejavnosti. Skype storil isto stvar. Skype, seveda, ima stanje na računu, uporabniško ime in geslo da je dostop do tega ravnovesja. Bili so shranjevanje vse te informacije v jasno na mobilni napravi. Imam nekaj primerov tukaj ustvarjanja datoteke , ki nimajo ustreznih dovoljenj ali pa pišete na ploščo in ne s katero koli šifriranja zgodilo to. Naslednja območje, Nevarna Sensitive prenos podatkov, Sem namiguje na to nekajkrat, in zaradi javnega Wi-Fi To je nekaj, kar apps nujno potrebno storiti, in to je verjetno tisto, kar vidimo narobe najbolj. Jaz bi rekel, pravzaprav mislim, da imam dejanske podatke, ampak to je skoraj polovica mobilnih aplikacij zajebal tem SSL. Oni pač niso pravilno uporabljati API. Mislim, vse kar moraš storiti je slediti navodilom in uporabo API-jev, vendar pa take stvari ne preverite, ali je neveljavno potrdilo na drugem koncu, ne preverite, če drugi konec poskuša narediti protokol strmina napad. Razvijalci, želijo, da bi dobili svoje polje, kajne? Njihova zahteva je, da uporabite to prodati. Oni to prodajal. Zahteva, da ne uporabljajo to varno prodati, in tako je to, zakaj vse aplikacije, ki uporabljajo protokol SSL za zagotavljanje podatkov kot je to, ki se prenašajo off naprava res treba pregledati zagotoviti, je, da pravilno izvaja. In tukaj imam nekaj primerov, kjer lahko vidite vlogo Morda uporabljate HTTP namesto HTTPS. V nekaterih primerih bo apps padla nazaj na HTTP če HTTPS ne deluje. Imam še en klic tukaj na Android kje so onemogočili preverjanje certifikata, tako man-in-the-middle napad se lahko zgodi. Neveljavno potrdilo, bodo sprejete. Vse to so primeri, v katerih napadalci se bodo lahko dobili na Enako Wi-Fi povezave, kot uporabnika in dostopa do vseh podatkov , ki se je poslal preko interneta. In končno, zadnja kategorija imam tukaj so zakodirani geslo in ključi. Dejansko vidimo veliko razvijalci uporabljajo isto kodiranje slog da so to storili, ko so gradili spletni strežnik, zato, ker gradijo strežniško aplikacijo Java, in oni hardcoding ključ. No, ko ste izgradnjo vlogo strežnika, ja, hardcoding ključ ni dobra ideja. To je težko spremeniti. Ampak to ni tako slabo, na strani strežnika, ker kdo ima dostop do strani strežnika? Le administratorji. Ampak, če ste vzeli isto kodo in jo prelijemo z mobilno aplikacijo Zdaj vsakdo, ki ima, da ima mobilna aplikacija dostopa do tega zakodirani ključa, in smo dejansko videli to veliko krat, in imam nekaj statističnih podatkov o tem, kako pogosto vidimo to zgodilo. Je dejansko bilo v primer kode, ki MasterCard, objavljenem o tem, kako uporabljati njihove storitve. Primer kode je pokazala, kako bi si vzemite geslo in ga v zakodirani niz tam, in vemo, kako razvijalci radi, da kopirate in prilepite odrezke kode ko poskušajo narediti nekaj, tako da kopirate in prilepite odrezek kode da so dali kot primer kode, in imate negotovo aplikacijo. In tukaj je še nekaj primerov. Ta prva je tista, ki smo videli veliko, kjer so hardcode Pravica podatkov v URL, ki dobi poslano. Včasih vidimo niz geslo = geslo. To je zelo enostavno odkriti, ali niz gesla na BlackBerry in Android. To je pravzaprav zelo enostavno preveriti, ker se skoraj vedno imena razvijalec spremenljivi, da je gospodarstvo geslo nekateri spremembo gesla. Omenil sem, da bomo statično analizo na Veracode, zato smo analizirali več sto aplikacij Android in iOS. Zgradili smo polni modelov njih, in smo mogli skeniranje za različne ranljivosti, zlasti ranljivosti sem govoril, in imam nekaj podatkov tukaj. 68,5% vseh Android apps smo si ogledali je razdeljena kriptografsko kodo, ki je za nami, ne moremo odkriti, če ste naredili svoj kripto rutino, ne, da je to dobra ideja, vendar je to dejansko uporabo objavljenih API-jev da so na nivoju, vendar jih dela na tak način da bi kripto ranljivi, 68.5. In to je za ljudi, ki so nam pošljete svoje prijave, ker dejansko mislijo, da je to dobra ideja narediti testiranje varnosti. To so že ljudje, ki so verjetno razmišljanje varno, tako da je verjetno še slabše. Nisem govoril o nadzorni vrstici injiciranje krme. To je nekaj, kar moramo preveriti, vendar to ni tako tvegano vprašanje. Uhajanje informacij, to je, če se občutljivi podatki, ki se pošiljajo in izklop naprave. Ugotovili smo, da v 40% zahtevkov. Čas in država, to so vprašanja tipa stanje rase, po navadi zelo težko izkoristiti, tako da nisem govoril o tem, vendar smo pogledal. 23% jih je imelo težave SQL injection. Veliko ljudi ne ve, da je veliko vlog uporabite majhno malo SQL baze podatkov o njihovi zadnji konec za shranjevanje podatkov. No, če podatki, ki ste oprijemalne prek omrežja je SQL injection napadi strune v njej nekdo lahko ogrozijo napravo skozi to, in zato mislim, da smo našli približno 40% vseh spletnih aplikacij imeli ta problem, kar je velika epidemija problem. Mi zdi, da 23% časa v aplikacijah za mobilne naprave in to je verjetno zato, ker je veliko več spletnih aplikacij uporablja SQL kot mobilni telefon. In potem smo še vedno videli nekaj cross-site scripting, vprašanja dovoljenj, in potem poverilnic za upravljanje, ki je, če imate zakodirani geslo. V 5% zahtevkov vidimo, da. In potem imamo nekaj podatkov o iOS. Vprašanja ravnanje napaka 81%. To je bolj problem kakovosti kodo, ampak 67% jih je imelo kriptografskih vprašanj, tako da ni tako slabo, kot Android. Mogoče API so malo lažje, primer kode malo bolje na iOS. Vendar še vedno zelo visok odstotek. Imeli smo 54% z odtekanjem informacij, približno 30% z napakami upravljanja buffer. To je krajev, kjer bi lahko bilo vprašanje spomina korupcije. Izkaže se, da to ni tako velik problem za izkoriščanje na iOS, ker ima vse kode, ki bo podpisana, tako da je težko za napadalcu izvajanje naključne kode na iOS. Kakovost koda, imenik prečkanje, potem pa poverilnice za upravljanje tukaj na 14,6%, tako slabše kot na Android. Imamo ljudje ne ravnanje gesel pravilno. In potem številske napake in buffer overflow, tistih, ki so bolj tekoč, da se vprašanja kakovosti koda za iOS. To je bilo za mojo predstavitev. Ne vem, če mi je zmanjkalo časa ali ne. Ne vem, če obstaja kakršna koli vprašanja. [Moški] hitro vprašanje okoli razdrobljenosti in Android Market. Apple vsaj lastnik zaplata. Delajo dobro delo, da bi jo tam ker je manj, tako v Android prostoru. Skoraj bi morali iz zapora telefon, da ostanejo na sedanji s trenutno izdajo Android. Ja, to je velik problem, tako da, če menite, da o- [Moški] Zakaj ne moreš ponavljati? Oh, v redu, tako da je vprašanje, kaj je razdrobljenost operacijskega sistema na platformi Android? Kako to vpliva na tveganost teh naprav? In dejansko je velik problem, ker tisto, kar se zgodi, je starejše naprave, ko nekdo pride gor s zapora za to napravo, v bistvu je to stopnjevanje privilegij, in dokler se posodablja, da operacijski sistem vsaka malware lahko nato uporabite to ranljivost popolnoma kompromis napravo, in tisto, kar smo videli na Android je, da bi dobili nov operacijski sistem Google je dal ven operacijski sistem in nato strojne opreme Mora jo prilagoditi, nato pa prevoznik, da ga prilagodite in ga dostaviti. Imate v bistvu 3 gibljive tukaj dele, in to je izšola, da prevozniki ne skrbi, ter proizvajalci strojne opreme ne skrbi, in Google se jih ne prodding dovolj storiti ničesar, tako da v bistvu več kot polovica naprav tam imeti operacijske sisteme, ki imajo ta privilegij o povečanju ranljivosti v njih, in tako, če boste dobili škodljive programske opreme na napravi Android je veliko bolj problem. Ok, hvala. [Aplavz] [CS50.TV]