[Seminar] [Obrana Iza uređaja: Mobile Application Security] [Chris Wysopal] [Sveučilište Harvard] [To je CS50.] [CS50.TV] Dobar dan. Moje ime je Chris Wysopal. Ja sam CTO i suosnivač Veracode. Veracode je primjena zaštitarske tvrtke. Mi smo testirali sve vrste različitih aplikacija, i što ću govoriti danas je mobilni aplikacija sigurnost. Moja pozadina je sam radio sigurnosni istraživanja već jako dugo vremena, vjerojatno oko dokle god bilo tko. Počeo sam sredinom 90-ih godina, i bilo je vrijeme da je bio prilično zanimljiv, jer imali smo promjenu paradigme u sredinom 90-ih godina. Sve je odjednom svako računalo je zakačen na internetu, i onda smo imali početke web aplikacija, i to je ono što sam usredotočen na puno onda. To je zanimljivo. Sada imamo još jednu promjenu paradigme događa s računalstvo, što je pomak za mobilne aplikacije. Osjećam nekako je sličan vremena pa ga je u kasnim 90-ih godina kada smo istraživali web aplikacije i pronalaženje nedostataka poput Upravljanje prijave pogreške i SQL injection koji zapravo nije postojao prije, i odjednom su bili posvuda u web aplikacija, a sada puno vremena provodim se gleda na mobilnim aplikacijama i gleda na ono što se događa vani na u divljini. Mobilne aplikacije stvarno će biti dominantna computing platforme, tako da stvarno trebate potrošiti puno vremena, ako ste u sigurnosnoj industriji s naglaskom na web aplikacija. Bilo je 29 milijardi mobilne aplikacije preuzete u 2011. On je predvidio da će 76 milijardi aplikacija do 2014. Tu je 686 milijuna uređaja koji će biti kupljen ove godine, pa ovo je mjesto gdje će ljudi biti događaj  Većina njihov klijent računalstvo ide naprijed. Sam u razgovoru s potpredsjednik Fidelity Investments Prije par mjeseci, a on je rekao da upravo vidjeli više prometa radi financijske transakcije iz baze klijenata na njihovom mobilne aplikacije nego na njihovim web stranicama, pa zajedničko korištenje na Webu u prošlosti bio provjere svoje burzovne kotacije, upravljanju svoj portfelj, i mi zapravo vidimo da je u 2012 prebaciti biti dominantniji na mobilne platforme. Dakako, ako će biti bilo kakve kriminalne aktivnosti, bilo zlonamjerne aktivnosti, to će za početak biti usmjerena na mobilne platforme s vremenom kako ljudi prelaze na to. Ako pogledate na mobilne platforme, pogledati rizika platforme da je korisno da ga razbiti u različitim slojevima, baš kao što će to učiniti na stolnom računalu, i što mislite o različitim slojevima, softver, operativni sustav, mrežni sloj, hardver sloj, i naravno, tu je ranjivosti na svim tim slojevima. Ista stvar se događa na mobitelu. No, mobitel, čini se da su neki od tih slojeva su lošije. Za jednu, mrežni sloj je više problematično na mobitelu jer puno ljudi ima u svom uredu ili kod kuće vezama ili imaju sigurne Wi-Fi veze, i sa puno mobilne uređaje očito si izvan kuće ili izvan ureda puno, a ako koristite Wi-Fi postoji možda koristite nesigurno Wi-Fi veze, nešto što je javni Wi-Fi veze, pa kad razmišljamo o mobilnim aplikacijama moramo uzeti u obzir da mrežno okruženje je rizičnije za prijave kada je Wi-Fi se koristi. A kad sam se u više od mobilnih rizika primjene vidjet ćete zašto je to važnije. Postoje rizici na razini hardvera na mobilnim uređajima. To je područje u tijeku istraživanja. Ljudi zovu ove širokopojasne napada ili baseband napadi gdje ste napadaju firmware koji sluša na radiju. To su doista zastrašujuće, jer napadi korisnik ne mora ništa raditi. Možete pogoditi puno uređaja unutar raspona RF odjednom, i čini se kao da svaki put kad je ovo istraživanje pršti to se brzo dobiva klasificirana gdje ljudi obrušiti u oko i reći: "Evo, recite nam o tome, i molim vas, prestanite govoriti o tome." Postoji neka istraživanja događa u širokopojasnom području, ali čini se da je vrlo Hush Hush. Mislim da je to više od nacionalne države vrstu istraživanja što se događa. Područje aktivnog istraživanja, iako je sloj operativni sustav, i opet, ovo je drugačije nego u računalne svijetu jer u mobilnom prostoru imate ove timove ljudi nazivaju jailbreakers, i jailbreakers su drugačiji od običnih istraživačima ranjivosti. Pokušavaju pronaći ranjivosti u operacijskom sustavu, ali razlog što pokušavaju pronaći ranjivosti nije provaliti u tuđi stroj i kompromitirati ga. To je provaliti u vlastitom računalu. Oni žele provaliti u vlastiti mobitel, modificirati operacijski sustav vlastitoj Mobilea tako da oni mogu pokrenuti programe prema vlastitom izboru i promijeniti stvari s punim administrativnim dozvolama, i oni ne žele reći prodavatelja o tome. Oni ne vole sigurnosni istraživač koji je bijeli šešir sigurnosni istraživač što će učiniti odgovornu otkrivanje i reći prodavatelja o tome. Žele napraviti ovo istraživanje, a oni žele da zapravo ga objaviti u iskorištavati ili rootkit ili jailbreak broj, i žele to napraviti strateški, kao i odmah nakon prodavatelj isporučuje novi operativni sustav. Imate ovaj optužni odnos s OS-razine ranjivosti na mobitelu, što mislim da je vrlo zanimljiva, a jedno mjesto mi to vidimo se to čini tako da postoji dobra objavljen exploit koda vani za kernel razini ranjivosti, i vidjeli smo one zapravo biti korišten od strane zlonamjernih pisaca. To je malo drugačije nego u PC svijetu. I onda Završni sloj je gornji sloj, sloj primjene. To je ono što ću govoriti o danas. Postoje ostalih slojeva, a ostali slojevi igraju u njemu ali ja sam uglavnom ćemo govoriti o tome što se događa u aplikacijskom sloju gdje kod se izvodi u pješčaniku. To nema administratorske ovlasti. To mora koristiti API-uređaja, ali ipak, puno zlonamjernih aktivnosti i puno rizika može dogoditi u tom sloju jer to je sloj u kojem su sve informacije. Aplikacije mogu pristupiti sve informacije o uređaju ako imaju prave ovlasti, i oni mogu pristupiti različite senzore na uređaju, GPS senzor, mikrofon, kamera, što si. Iako smo samo pričaju na aplikacijskom sloju imamo puno rizika postoji. Druga je stvar da je drugačije o mobilnom okruženju se svi igrači operativnog sustava, bilo da je BlackBerry ili Android ili iOS ili Windows Mobile, oni svi imaju finozrnatih modela dopuštenje, i to je jedan od načina na koje su ugrađene u operativni sustav Ideja da to nije tako rizično kao što mislite. Iako imate sve svoje kontakte na tu, sve vaše osobne podatke, imate svoje fotografije, imate svoje mjesto tamo, ti si spremanje svoj bankovni pin za auto prijavu postoji, to je sigurno, jer aplikacije moraju imati određene dozvole da se na pojedinim dijelovima informacija o uređaju, a korisnik mora biti prisutan sa ove dozvole i reći ok. Problem s njim je korisnik uvijek kaže ok. Kao sigurnosni osobi, znam da može zatražiti od korisnika, reći nešto jako loše će se dogoditi, ne želite da se to dogodi? A ako ste u žurbi ili postoji nešto stvarno mami na drugoj strani da se, kao igra će biti instaliran da su čekali, oni će kliknuti ok. Zato sam i rekao na moj slide ovdje samo neka mi baciti ptice na svinje već, i možete vidjeti na slajdu ovdje postoji primjeri BlackBerry kutiji dopuštenje. Ona kaže: "Molim te postaviti BlackBerry Putovanja aplikacija dopuštenja nakon klika gumb ispod ", a zapravo samo korisnik će reći postavili dozvole i spasiti. Evo Android redak u kojem se pokazuje stvari, i to je zapravo stavlja nešto što je gotovo izgleda kao upozorenje. To je dobio neku vrstu prinosa znak da govore mrežnu komunikaciju, telefonski poziv, ali korisnik će se klikom instalirati, zar ne? I onda je jedan Apple je potpuno bezopasan. To ne bi bilo kakve upozorenja. To je samo Apple bi željeli koristiti svoj trenutni položaj. Naravno da ćeš kliknite ok. Bilo je to fino zrnatog Model dozvolu, i aplikacije moraju imati manifest datoteku gdje su se izjasniti dopuštenja im je potrebno, te da će se prikazati korisniku, a korisnik će morati reći Dajem te dozvole. No, budimo iskreni. Korisnici samo će uvijek reći ok. Uzmimo brzi pogled na dozvole da ove aplikacije se traže i neke dopuštenja tamo. Ova tvrtka pretorska je anketu u prošloj godini od 53.000 zahtjeva analiziranih u Android Market i 3rd party tržištima, pa to je sve Android. A prosječni app zatražio tri dozvole. Neke aplikacije zatražio 117 dozvola, pa očito su jako fino zrnatog i način previše složen za korisnika da razumije ako oni prezentirani s ovom aplikacijom koja treba tih 117 dozvola. To je poput licencnog ugovora krajnjeg korisnika u koji je 45 stranica. Možda uskoro će imati opciju gdje je kao ispisati dozvole i poslati mi e-mail. Ali, ako pogledate neke od najboljih zanimljivih dozvole 24% od aplikacija koje su preuzete iz 53.000 zatražio GPS podatke iz uređaja. 8% pročitajte kontakte. 4% je poslao SMS, a 3% dobio SMS. 2% bilježi zvuk. 1% obrađeno odlazne pozive. Ne znam. Ne mislim 4% od aplikacija u App Store stvarno treba slati SMS poruke, pa mislim da je to naznaka da se nešto nepovoljan se događa. 8% od apps morati pročitati svoj popis kontakata. To je vjerojatno nije potrebno. Jedan od drugih zanimljivih stvari o dozvolama je ako se link u zajedničkim knjižnicama u svoj program oni nasljeđuju dozvole primjene, tako da ako vaša aplikacija treba popis kontakata ili treba GPS lokacije funkcionirati i povezati u reklamne knjižnica, primjerice, da oglas knjižnica će biti u mogućnosti pristupiti kontakte i isto tako biti u mogućnosti pristupiti GPS položaja, i developer app ne zna ništa o kodu koji je pokrenut u ad knjižnici. Oni samo povezuje da u jer žele unovčiti svoj app. Ovo je mjesto gdje i ja ću govoriti o nekim primjerima to s Aplikacija se zove Pandora gdje aplikacija razvijen možda nesvjesno se curenje informacija od svojih korisnika, jer knjižnica koju su vezani u. Promatrajući krajolik vani, gledajući u sve različite aplikacije koje su iskazane u vijestima kao zlonamjerne ili radite nešto korisnici nisu htjeli a onda uvidom puno apps-radimo puno statičkog binarnom analize na mobilnim aplikacijama, pa smo ih pregledati i pogledao kod sebe- došli smo do onoga što mi zovemo naš top 10 popis rizičnih ponašanja u aplikacijama. I to je oborio u dva dijela, zlonamjernog koda, tako da su to loše stvari koje su aplikacije možda se radi da vjerojatno će biti nešto što zlonamjerni pojedinac je posebno staviti u primjeni, ali to je malo nejasni. To bi moglo biti nešto što misli da je u redu developer, ali to završi što misli kao zlonamjerni korisnik. I onda drugi dio je ono što mi zovemo kodiranja ranjivosti, i to su stvari u kojima programer u osnovi je griješiti ili jednostavno ne razumije kako napisati aplikaciju sigurno,  i da je stavljajući app korisnik u opasnosti. Ja ću proći kroz njih u detalje i dati neke primjere. Za usporedbu, ja sam htjela da se stavi na OWASP mobilni top 10 liste. To su 10 pitanja koja grupa na OWASP, Open Web Application Security Project, oni imaju radnu skupinu radi na mobilnom top 10 liste. Oni imaju vrlo poznati web top 10 liste, koje su top 10 najrizičnijih stvari koje možete imati u web aplikaciju. Oni rade istu stvar za mobitel, i njihov popis je malo drugačija od naše. 6 iz 10 su isti. Imaju četiri koji su različiti. Mislim da oni imaju malo drugačiji odvesti na Rizik u mobilnim aplikacijama gdje je puno svojih pitanja su stvarno kako primjena komunicira s back-end poslužitelja ili ono što se događa na back-end poslužitelja, Ne toliko aplikacije koje imaju rizično ponašanje koje samo jednostavne klijent aplikacije. One crveno Ovdje su razlike između dva popisa. A neki od mojih istraživačkog tima zapravo pridonijeli ovom projektu, pa ćemo vidjeti što će se dogoditi tijekom vremena, ali mislim da takeaway ovdje mi zapravo ne znamo što se top 10 popis je u mobilne aplikacije, jer oni 'stvarno samo oko za 2 ili 3 godine, i nije bilo dovoljno vremena da se stvarno istražiti operativne sustave i što su sposobni, a nije bilo dovoljno vremena za zlonamjernog zajednice, ako hoćete, da je proveo dovoljno vremena pokušava napasti korisnike putem mobilne aplikacije, tako da očekujem ove liste za promjenu malo. No, za sada, su top 10 stvari koje treba brinuti. Možda se pitate o mobilnom strani gdje se zlonamjerni mobitel kodnog kako to dobiti na uređaju? North Carolina State ima projekt nazvan Mobile Malware Genome Project gdje su prikupljanje što više mobilni malware jer oni mogu i analizu, i oni 'oborio injekcija vektora koji mobilni malware koristi, i 86% koriste tehniku ​​nazvanu prepakiranje i to je samo na Android platformi Možete li stvarno to učiniti preoblikovanja. Razlog je Android code je izgrađen s Java bajt kod nazvao Dalvik što je lako decompilable. Što negativac može učiniti je potrajati Android aplikaciju, rastavljati ga, ubaciti svoju malicioznog koda, kompilirati ga, i onda ga staviti u App Store koje ukazuju da se nova verzija tog programa, ili samo možda mijenja naziv programa. Ako je to bila neka vrsta igre, promijeniti ime malo, i tako to Prepakiravanje je kako 86% od mobilnog malware dobiva distribuira. Postoji još jedna tehnika zove nadogradnja koja je vrlo sličan prepakiranje, ali zapravo ne stavi malicioznog koda u. Ono što trebate učiniti je da stavite u malom mehanizme obnove. Možete dekompilirati, stavite u mehanizme obnove, a vi ga kompilirati, i onda kada app je trčanje povlači niz zlonamjernih programa na uređaj. Do sada se većina su one dvije tehnike. Tu zapravo nije puno preuzimanje Drive-bys ili drive-by download na mobitelu, koji bi mogao biti poput phishing napada. Hej, check out this stvarno super web stranicu, ili morate ići na ovu stranicu i ispunite držati dalje radi nešto. Oni su phishing napada. Ista stvar se može dogoditi na mobilne platforme, gdje su ukazuju na mobilne aplikacije za preuzimanje, reći: "Bok, ova je Bank of America." "Vidimo da koristite ovu aplikaciju." "Trebali biste preuzeti ovu drugu aplikaciju." Teoretski, to bi moglo upaliti. Možda je to samo se ne koristi dovoljno da bi se utvrdilo da li je uspješna ili ne, ali su otkrili da je manje od 1% od vremena koje se tehnika koristi. Većinu vremena to je stvarno prepakirao code. Postoji još jedna kategorija naziva samostalni gdje je netko upravo gradi potpuno novi zahtjev. Oni su napraviti aplikaciju koja pretendira da bude nešto. To nije preoblikovanja nešto drugo, i da ima zloćudni kod. To se koristi 14% vremena. Sad želim govoriti o tome što je zlonamjerni kod radi? Jedan od prvih zlonamjernih vani mogli razmotriti spyware. To u osnovi špijuni na korisnika. Ona prikuplja e-mailove, SMS poruke. Ispada na mikrofon. To berbi kontaktnih knjigu, i to ga šalje off nekome drugome. Ova vrsta spyware postoji na PC-u, tako da ima smisla da ljudi pokušavaju to učiniti na mobilnim uređajima. Jedan od prvih primjera toga je program pod nazivom Secret SMS replikator. Bilo je to u Android Marketplace prije par godina, a ideja je bila da ste imali pristup nečijem Android telefon da ste htjeli da izvidi na, pa možda je to vaš suprug ili udvoje, a vi želite da izvidi na njihovim SMS poruka, mogli preuzeti ovaj app i instalirati ga i konfigurirati ga poslati SMS poruku na vas s kopijom svakog SMS poruke koje je dobio. To očito je kršenje App Store uvjete pružanja usluge, a to je uklonjen iz Android Marketplace u roku od 18 sati da se tamo, tako da je vrlo mali broj ljudi koji su bili u opasnosti zbog toga. Sada, mislim da, ako je program pod nazivom nešto možda malo manje provokativna kao Secret SMS replikator to bi vjerojatno radio puno bolje. No, to je vrsta očito. Jedna od stvari koje možemo učiniti kako bi se utvrdilo je li aplikacije imaju taj problem da mi ne želite je pregledati kod. To je zapravo jako jednostavno za napraviti na Androidu, jer smo se rastavljaju aplikacije. Na iOS možete koristiti rastavljanja poput IDA Pro pogledati što Apis app se zove i što radi. Napisali smo vlastitu binarni statički analizator za naš koda a mi smo to učinili, i tako što možete učiniti je da bi mogao reći: znači uređaj učiniti sve što je u osnovi špijuniranje na mene ili me pratite? I ja imam neke primjere ovdje na iPhone. Ovo je prvi primjer je kako pristupiti UUID na telefonu. To je zapravo nešto što Apple je upravo zabranjen za nove aplikacije, ali stare aplikacije koje ste možda prikazuju na telefonu još uvijek može to učiniti, i tako da jedinstveni identifikator može koristiti za vas pratiti u mnogo raznih aplikacija. Na Android, imam jedan primjer ovdje za dobivanje položaja uređaja. Možete vidjeti da ako je API poziv je tu da app prati, i možete vidjeti da li je sve u redu mjesto ili grubo mjesto. A onda se na dnu ovdje, imam primjer kako na BlackBerry aplikacija može pristupiti e-mail poruke u vaš inbox. To su vrste stvari koje možete pregledati vidjeti ako app radi takve stvari. Druga velika kategorija zlonamjernog ponašanja, a to je vjerojatno najveća kategorija sada, je neovlašteno biranja, neovlašteno premium SMS poruke ili neovlaštene isplate. Još jedna stvar koja je jedinstveno u telefonu je uređaj zakačen na račun za naplatu, a kad aktivnosti dogoditi na telefon to može stvoriti optužbe. Možete kupiti stvari preko telefona, a kad šaljete premium SMS SMS poruke koju je zapravo davanje novca za komitenta telefonskog broja na drugoj strani. Oni su postavili kako bi dobili burzovne kotacije ili dobiti svoj dnevni horoskop ili drugih stvari, ali oni se mogu postaviti naručiti proizvod slanjem SMS tekst. Ljudi daju novac za Crveni križ slanjem SMS poruke. Možete dati 10 dolara na taj način. Napadači su, što su učinili je oni postavili račune u stranim zemljama, a oni ugradili u malware koji telefon će poslati premium SMS poruke, kažu, nekoliko puta na dan, a na kraju mjeseca, shvatite da ste proveli desetke ili možda čak i stotine dolara, a oni hoda s novcem. To je dobio tako loše da je to vrlo prva stvar koja Android Marketplace ili Google mjesto-to je Android Marketplace na vrijeme, i to je sada Google Play-prva stvar koju je Google počeo provjeravati. Kada je Google započeo je s distribucijom Android aplikacije u App Store rekli su da ne idu na provjeru ništa. Mi ćemo povući aplikacije jednom smo bili obaviješteni su pobjegli naše uvjete pružanja usluge, ali mi se ne ide na check za ništa. Pa, prije otprilike godinu dana ga je dobio tako loše s ovim premium SMS poruke malware da je to vrlo prva stvar što su počeli provjeravati. Ako app mogu slati SMS poruke oni dodatno ručno proučiti taj program. Oni traže API koji pozivaju to, a sada od tada Google je proširio, ali ovo je prva stvar koja se počela tražiti. Neke druge aplikacije koje jesu neke SMS poruke, to Android Qicsomos, mislim da se zove. Bilo je to trenutni događaj na mobitelu gdje to CarrierIQ je izlazio kao spyware staviti na uređaju od strane prijevoznika, pa ljudi htjeli znati ako njihov telefon bio ranjiv na to, a to je besplatna aplikacija koja testira da. Pa, naravno, ono što ovaj app učinio je to poslala premium SMS poruke, tako da testira da li ste zaraženi spyware što učita zlonamjernih programa na svojem uređaju. Vidjeli smo ista stvar dogoditi na posljednjem Super Bowlu. Tu je lažna verzija Madden nogometnu igru koji je poslao premium SMS poruka. To je zapravo pokušao stvoriti bot mreže previše na uređaju. Ovdje imam neke primjere. Zanimljivo, Apple je prilično pametna, a oni ne dopuštaju aplikacijama slanje SMS poruke na sve. Ne app može to učiniti. To je sjajan način za dobivanje riješiti cijeli razred ranjivosti, ali na Androidu možete to učiniti, i naravno, na BlackBerry možete to učiniti previše. Zanimljivo je da je na BlackBerry sve što je potrebno je internet dozvole poslati SMS poruku. Druga stvar stvarno da ćemo tražiti kada smo u potrazi za vidjeti ako je nešto zlonamjerni je samo bilo koje vrste neovlaštene aktivnosti mreže, kao i pogledati na mrežnoj aktivnosti app je trebao imati svoju funkcionalnost, i pogled na ove druge aktivnosti mreže. Možda app, raditi, mora doći do podataka preko HTTP, ali ako to radi stvari preko e-maila ili SMS-a ili Bluetootha ili nešto slično sad kad app mogao potencijalno biti zloban, pa je to još jedna stvar koju možete pregledajte. I na ovom slajdu ovdje imam neke primjere koji. Još jedna zanimljiva stvar koju smo vidjeli sa malware dogodilo natrag u 2009, i to se dogodilo u velikom način. Ja ne znam je li to dogodilo toliko toga od tada, ali to je app koji je oponašao drugu aplikaciju. Tu je set aplikacija, i to je bio nazvan napad 09Droid, i netko je odlučio da je bilo puno malih, regionalnih, srednjih banaka koja nije imala online bankarske aplikacije, pa što su učinili je izgradili su oko 50 on-line bankarstva aplikacija da je sve što su učinili je uzeti korisničko ime i lozinku i preusmjeriti vas da se na web stranici. I tako su stavili ove sve gore u Google Marketplace, u Android Marketplace, a kad je netko tražio da vidi je li njihova banka je zahtjev da bi pronašli lažnu prijavu, koje prikupljaju njihove vjerodajnice, a zatim ih preusmjeriti na svoje web stranice. Način na koji to zapravo postao-aplikacije uvijek bile tamo za nekoliko tjedana, i tu su tisuće i tisuće preuzimanja. Način to je došlo na vidjelo je netko imao problem s jednim od aplikacija, te su pozvali svoju banku, te su pozvali za podršku klijentima liniju svoje banke i rekao: "Imam problema sa svojom mobilnom bankarskog primjene." "Možete li mi pomoći?" A oni rekoše: "Mi nemamo mobilnog bankarstva prijavu." To je započeo istragu. To je banka pod nazivom Google, a zatim Google pogledao i rekao: "Wow, isti autor napisao je 50 prijava, bankovne," i uzeo ih sve dolje. No, sigurno to ne ponovi. Tu je popis svih različitih banaka ovdje koji su bili dio ove prijevare. Druga stvar app može učiniti je prisutna UI druge aplikacije. Iako je trčanje moglo bi se pojaviti na Facebook UI. Ona kaže da morate staviti na svoje korisničko ime i lozinku za nastavak ili staviti bilo korisničko ime i lozinku UI za web stranicu da možda korisnik koristi samo pokušati izigrati korisnik u stavljajući svoje vjerodajnice u. Ovo je stvarno ravno paralelno od e-phishing napada gdje vam netko pošalje poruku e-pošte i daje vam osnovi lažnog sučelje za web stranicu da imate pristup. Druga je stvar što tražiti u malicioznog koda je sustav modifikacija. Možete tražiti sve API poziva koje zahtijevaju root privilegije pravilno izvršavanje. Promjena uređaja web proxy će biti nešto što primjena ne bi trebao biti u mogućnosti to učiniti. Ali, ako program ima kod u za tu namjenu vi znate da je to vjerojatno zlonamjerni program ili vrlo vrlo vjerojatno da će biti zlonamjerni program, i tako što će se dogoditi je da app će imati neki način eskalira privilegiju. To bi imati neke privilegije eskalacija iskorištavati u primjeni, a zatim nakon što je eskaliralo privilegije to će učiniti ove izmjene sustava. Možete naći malware koji ima eskalaciju privilegija u tome čak i ne znajući kako je eskalaciju privilegija iskorištavati će se dogoditi, a to je lijepo, jednostavan način tražiti malware. DroidDream je vjerojatno najpoznatiji komad Android malware. Mislim da je to utjecalo oko 250.000 korisnika tijekom nekoliko dana prije nego što je nađeno. Oni prepakirao 50 lažne aplikacije, stavite ih u Android App Store, i bitno je nekad Android jailbreak kod eskalirati privilegije i tada uvesti zapovjedništvo i kontrolu i okrenuti sve žrtve u bot mrežu, ali mogli su otkrivena ova ako su skeniranjem aplikaciju i samo traže API poziva da zahtijeva root dopuštenje za izvršiti ispravno. I tu je primjer ovdje imam koji mijenja proxy, a to je zapravo dostupna samo na Android. Možete vidjeti Dajem ti puno primjera na Androidu jer ovo je mjesto gdje najaktivniji malware ekosustav jer to je stvarno lako za napadača dobiti malicioznog koda u Android Marketplace. To nije tako jednostavno za napraviti da u Apple App Store jer Apple zahtijeva programerima da se identificiraju i potpisati kod. Oni su zapravo provjeriti tko ste, i Apple je zapravo provjeri aplikacije. Ne vidim puno pravog malware gdje je uređaj uzimajući ugrožena. Ja ću govoriti o nekim primjerima gdje je stvarno privatnost da je dobivanje ugrožena, i to je ono što se stvarno događa na Apple uređaja. Još jedna stvar koju treba tražiti malicioznog koda, rizično kod u uređaje je logika ili tempirane bombe, a tempirane bombe su vjerojatno mnogo lakše tražiti od logičkih bombi. No, s vremenom su bombe, što možete učiniti je da možete tražiti mjesta u kodu gdje je testirano vrijeme i apsolutni put je tražio Prije određene funkcije u app dogodi. A to može biti učinjeno kako bi sakrili tu aktivnost od korisnika, pa to se događa kasno u noć. DroidDream učinio sve svoje djelovanje 11:00-08:00 po lokalnom vremenu pokušati to učiniti dok se korisnik ne može biti koristeći svoj uređaj. Drugi razlog za to je, ako se ljudi koriste ponašanja analizu zahtjeva, trčanje app u pješčaniku da se vidi što je ponašanje zahtjeva, oni mogu koristiti vremenski-based logiku učiniti aktivnost kada app nije u pješčaniku. Na primjer, app store poput Applea pokreće aplikaciju, ali vjerojatno ne izvoditi svaki zahtjev za, recimo, 30 dana Prije odobravanja, tako da možete staviti Logika u svojoj prijavi da je rekao, u redu, samo da se nešto loše Nakon 30 dana je prošao i nakon 30 dana nakon objavljivanja datuma podnošenja zahtjeva, i da može pomoći malicioznog koda sakriti od ljudi inspekciju za to. Ako su anti-virus tvrtki radi stvari u sandboxes ili APP same priče su to može pomoći sakriti da se od tog pregleda. Sad, druga strana je to da je lako naći s statičke analize, pa zapravo provjerom kod možete pogledati na svim mjestima u kojoj je zahtjev testovi vremena i pregledati na taj način. I ovdje imam neke primjere tih 3 različite platforme kako vrijeme može se provjeriti za koju app za kavu tako da znate što tražiti ako ste inspekciju aplikaciju statički. Upravo sam prošao kroz cijelu hrpu raznih zlonamjernih aktivnosti koje smo vidjeli u divljini, ali one koji su najčešći? Iste studija iz North Carolina State Mobile Genome Project objavljeno neke podatke, a bilo je u osnovi 4 područja da su vidjeli gdje je bilo puno aktivnosti. 37% od aplikacije učinio eskalaciju privilegija, tako da su imali neku vrstu bjekstvo iz zatvora kod tamo gdje su pokušali eskalirati povlastice, tako da su mogli nemojte API naredbe radi kao operativni sustav. 45% od aplikacije vani je premium SMS, , tako da je veliki postotak koji pokušava izravno ostvaruju. 93% je daljinski upravljač, pa su pokušali postaviti bot net, mobilni bot mrežu. A 45% dobivenih identifikacijske podatke kao što su telefonski brojevi, UUIDs, GPS lokacije, korisničkih računa, a to dovodi do više od 100, jer je većina malware pokušava napraviti neke od tih stvari. Ću se prebaciti na drugu polovicu i razgovarati o kodu ranjivosti. Ovo je druga polovica rizične aktivnosti. Ovo je mjesto gdje u biti programer čini pogreške. Legitimna developer pisanje legitiman app čini pogreške ili je u neznanju o rizicima mobilne platforme. Oni jednostavno ne znaju kako to napraviti sigurnu mobilnu aplikaciju, ili ponekad programer ne zanima staviti korisnika u opasnosti. Ponekad dio njihovog poslovnog modela moglo biti berbu korisnika osobne podatke. To je neka vrsta druge kategorije, i to je razlog zašto su neki od ovaj zlonamjerni u odnosu na legitimne počinje krvariti više jer postoji razlika u mišljenjima između onoga što korisnik želi i što korisnik smatra rizičnim i što aplikacija razvijen smatra rizičnim. Naravno, to nije data je aplikacija razvijen je u većini slučajeva. I onda napokon, drugi put se to dogodi je developer mogla povezati u zajednička knjižnica koja ima propusta ili ovo rizično ponašanje u njemu Bez znanja njih. Prva kategorija je osjetljiva curenja podataka, a to je kada app prikuplja podatke kao mjesto, informacije adresar, vlasnik informacija i šalje da isključivanje uređaja. I nakon što je isključen uređaja, ne znamo što se događa s tim informacijama. To bi mogao biti pohranjeni nesigurno aplikacijski programer. Vidjeli smo aplikacija programerima dobiti ugrožena, i podataka koje oni spremanje netko oduzme. To se dogodilo prije nekoliko mjeseci s developer na Floridi gdje je veliki broj-to je iPad UUIDs i imena uređaja su procurile jer je netko, mislim da je bilo anonimno, tvrdio da to učinite, provalio u razvojnom poslužiteljima i ukrao milijune ipad UUIDs i računalnih imena. Ne najrizičnijih informacije, ali što ako je to bio pohranu korisničkih imena i lozinki i kućne adrese? Ima puno aplikacija koje čuvaju takve informacije. Rizik postoji. Druga stvar koja se može dogoditi je da programer ne brine osigurati podatkovni kanal, i to je još jedan veliki propust ću govoriti o, da se podaci šalju u jasan. Ako je korisnik na javnom Wi-Fi mreže ili netko njuška internet negdje na putu je da su izloženi da podaci. Jedan vrlo poznati slučaj ovog curenja informacija dogodilo s Pandore, i to je nešto što smo istraživali na Veracode. Čuli smo da je-mislim da je Federal Trade Commission Istraga događa s Pandore. Rekli smo: "Što se događa tamo? Počnimo kopanje u Pandora primjene." I ono što smo utvrdili je Pandora prijava prikupljeni vaš spol i svoju dob, i to je također pristupiti GPS položaj, a Pandora aplikaciju nije to za što su rekli su opravdani razlozi. Glazba koja se igraju-Pandora je streaming glazbe app- glazba koju su svirali je licenciran samo u Sjedinjenim Američkim Državama, pa su morali provjeriti u skladu sa svojim licencnim ugovorima koji su imali za glazbu koja je korisnik bio u Sjedinjenim Američkim Državama. Također su željeli biti u skladu s roditeljskim savjetodavne oko jezika za odrasle u glazbi, pa to je dobrovoljni program, ali oni su htjeli da se u skladu s tim i ne igraju eksplicitne tekstove na djecu 13 i ispod. Imali su legitimne razloge za prikupljanje tih podataka. Njihov app imao ovlasti za to učiniti. Korisnici mislio da je to legitimno. No, ono što se dogodilo? Oni su povezani u 3 ili 4 različite knjižnice oglasa. Sada sve je odjednom sve te oglasne knjižnicama uzimajući pristup tom istom informacija. Ad knjižnice, ako pogledate koda u knjižnicama ad što rade je svaki oglas knjižnica, kaže "Ima li moj app dozvolu za preuzimanje GPS položaja?" "Oh, to ne? Ok, reci mi GPS položaja." Svaki oglas knjižnica ne radi, a ako app nema GPS dozvolu to neće biti u stanju da ga se, ali ako se to dogodi, to će ga dobiti. Ovo je mjesto gdje poslovni model od knjižnicama ad protivi privatnost korisnika. I tu je bio studij vani koji će reći: ako znate u dobi osobe, a vi znate svoje mjesto gdje spavati noću, jer imate svoje GPS koordinate a što možda spava, znate točno tko je ta osoba jer možete odrediti koji član tog kućanstva je ta osoba. Stvarno je to identificiranje za oglašivače točno tko si, a izgleda da je to bila legitimna. Samo želim svoj streaming glazbe, a to je jedini način da ga dobijete. Pa, izloženi smo to. To smo pisali u nekoliko blogu, , a ispostavilo se da je netko iz magazina Rolling Stone pročitao jednu od naših blogu i napisao svoj blog u magazinu Rolling Stone o tome, a već sljedećeg dana Pandora je mislio da je dobra ideja ukloniti knjižnice oglase od njihove primjene. Koliko ja znam oni su se samo-im treba pohvaliti. Mislim da su samo freemium vrsta app koji je to učinio. Svi ostali freemium aplikacije imaju tu isto ponašanje, pa moraš razmišljati o tome što vrste podataka koju daje ove freemium aplikacije, jer sve ide na oglašivače. Pretorska također je studiju o zajedničkim knjižnicama i rekao: "Pogledajmo što dijeli knjižnice su top dijeljene biblioteke," i to je bio podaci. Analizirali su 53.000 aplikacija, i broj 1. zajednička knjižnica je AdMob. Bilo je to zapravo u 38% aplikacija vani, tako da 38% od aplikacija koju koristite su vjerojatno berbu vaše osobne podatke i slanje na oglasne mreže. Apache i Android su 8% i 6%, i onda ove druge one dolje na dnu, Google oglasi, nalet, Mob Grad i Milenijskih Media, to su sve oglasne tvrtki, a onda, zanimljivo, 4% vezan na Facebooku knjižnici vjerojatno to učiniti autentikaciju putem Facebooka pa app mogao provjeriti autentičnost Facebook. No, to također znači da je korporacija Facebook kontrolira kod koji je pokrenut u 4% Android mobilne aplikacije vani, i imaju pristup svim podacima koji app koji ima dozvolu za dobivanje na. Facebook suštini pokušava prodati reklamni prostor. To je njihov poslovni model. Ako pogledate cijeli ovaj ekosustav s tim dozvolama i zajedničke knjižnice počnete da se vidi da imate puno rizika u navodno legitimne primjene. Isto slična stvar koja se dogodila s Pandore dogodilo s nekim programom pod nazivom Put, i put mislili da su se korisnim, prijateljski programeri. Oni su samo pokušava vam dati veliku korisničko iskustvo, , a ispostavilo se da je bez pitanja korisniku ili objasniti korisniku ništa- a to se dogodilo na iPhone i Android, Pandora app bio na iPhone i Android- koji je put primjene grabbing cijeli adresar i upload na put samo kad ste instalirali i vodio program, i nisu vam reći o tome. Mislili su da je jako korisno za vas da bi mogli podijeliti sa svim ljudima u adresar da koristite Put prijavu. Pa, očito je put mislio da je to super za njihovu tvrtku. Nije tako velika korisniku. Morate mislim da je jedna stvar, ako možda tinejdžer koristi ovu aplikaciju i njihovi desetine prijatelji su tu, ali što ako je to predsjednik Uprave tvrtke koja instalira put a onda odjednom cijelu svoju adresar je tamo gore? Ti ćeš dobiti puno potencijalno vrijedne podatke za kontakt za puno ljudi. Novinar New York Timesa, možda ćete biti u mogućnosti da biste dobili broj telefona za bivše predsjednike iz njihova adresara, tako da je očito puno osjetljivih informacija dobiva prenose s nečim kao što je ovaj. Bilo je kao veliki flap o tome da je put ispričao. Oni su promijenili svoju aplikaciju, i to čak utjecali Apple. Apple je rekao: "Mi ćemo natjerati app prodavač potaknuti korisnike ako oni će skupiti svoju cijelu adresar. " Izgleda da je ono što se ovdje događa je kada postoji jedna velika kršenje privatnosti i čini novinare vidimo promjenu vani. Ali naravno, ima i drugih stvari vani. LinkedIn aplikacije berbi kalendarske zapise, ali Apple ne bi korisnik se zatraži o tome. Stavke kalendara može imati osjetljive informacije u njima previše. Gdje ćeš povući crtu? To je zapravo vrsta evoluira mjesto tamo gdje stvarno nema dobar standard vani za korisnike da razumiju kad im se informacije će biti u opasnosti a kad oni će znati što se poduzima. Napisali smo aplikaciju na Veracode zove Adios, i bitno je dopustio da pokažete aplikaciju na svoj iTunes katalog i pogled na sve aplikacije koje su žetvu svoju punu adresar. I kao što možete vidjeti na ovom popisu ovdje, Angry Birds, AIM, AroundMe. Zašto Angry Birds potrebno adresar? Ne znam, ali to ipak nekako. To je nešto što mnoge, mnoge aplikacije učiniti. Možete provjeriti kod za to. Tu je dobro definirane API za iPhone, Android i BlackBerry da se u adresar. Možete stvarno lako provjeriti za to, a to je ono što smo učinili u našoj Adios primjene. Sljedeća kategorija, Opasan Sensitive pohrana podataka, je nešto gdje programeri uzeti nešto poput pin ili broj računa ili lozinku i spremite je u jasno na uređaju. Što je još gore, oni to pohraniti u području na telefon koji je globalno dostupan, kao i na SD karticu. Možete to vidjeti češće na Androidu, jer Android omogućuje SD karticu. IPhone uređaja ne. No, čak smo vidjeli to dogodilo u Citigroup primjene. Njihova online bankarstva aplikacije pohranjene brojeve računa nesigurno, samo u jasna, pa ako ste izgubili svoj uređaj, bitno da ste izgubili svoj bankovni račun. To je razlog zašto ja osobno ne radim bankarstva na moj iPhone. Mislim da je previše riskantno upravo sada učiniti ove vrste aktivnosti. Skype učinio istu stvar. Skype, naravno, ima račun platne bilance, korisničko ime i lozinku da je pristup tu ravnotežu. Oni su spremanje sve te podatke na jasan na mobilnom uređaju. Imam neke primjere ovdje stvaranja datoteke da nemaju pravo dopuštenja ili pisanje na disk a ne da bilo enkripcija dogoditi za to. Ovaj sljedeći područje, Opasan Sensitive prijenosa podataka, Ja sam aludirao na to nekoliko puta, a zbog javne Wi-Fi to je nešto što apps apsolutno treba učiniti, i to je vjerojatno ono što vidimo pogriješiti najviše. Ja bih rekao-zapravo, mislim da imam stvarne podatke, ali to je blizu pola mobilne aplikacije zeznuti radi SSL. Oni jednostavno ne koriste API ispravno. Mislim, sve što moraš učiniti je slijediti upute i koristite API-ja, ali oni takve stvari ne bi provjeriti da li postoji valjan certifikat na drugom kraju, Ne provjerite je li drugi kraj pokušava napraviti protokol unazaditi napad. Programeri, oni žele da se njihov okvir, zar ne? Njihov zahtjev je da koristite ovu prodati. Oni su koristili to prodati. Uvjet je da ne koriste ova prodati sigurno, pa to je razlog zašto sve aplikacije koje koriste SSL za siguran prijenos podataka kao da je u tijeku prijenos off uređaj doista treba pregledati kako bi bili sigurni da je pravilno proveden. I ovdje imam neke primjere gdje možete vidjeti prijavu možda koristi HTTP umjesto HTTPS. U nekim slučajevima aplikacije će se vratiti na HTTP ako HTTPS ne radi. Imam još jedan poziv ovdje na Android gdje ste onemogućen ček certifikat, pa čovjek-in-the-middle napad može dogoditi. Valjan certifikat će biti prihvaćena. Sve su to slučajevi u kojima napadači su idući u biti u mogućnosti da biste dobili na Isto Wi-Fi veze kao korisnika i pristup svim podacima koji je poslan preko interneta. I na kraju, zadnja kategorija Imam ovdje je hardcore lozinkom i tipke. Mi zapravo vidjeti puno programere koristiti isti stil kodiranja da oni kad su gradili web poslužitelja aplikacija, pa oni izgradnji Java poslužitelj aplikacija, a oni hardcoding tipku. Pa, ako ste izgradnju server aplikacija, yeah, hardcoding ključ nije dobra ideja. To ga čini teško promijeniti. No, to i nije tako loše na strani poslužitelja, jer tko ima pristup strani poslužitelja? Samo administratori. No, ako se uzme isti kod i da ga izlio preko mobilne aplikacije Sada svatko tko ima taj mobilnih aplikacija ima pristup tom ključu hardcore, i doista vidimo to puno puta, a ja imam neke statistike o tome koliko često vidimo se to dogoditi. To je zapravo bio primjer koda koji MasterCard objavljenom o tome kako koristiti njihove usluge. Primjer koda su pokazali kako bi samo uzeti lozinku i staviti ga u hardcore nizu tamo, a znamo kako programeri vole kopirati i zalijepiti koda kad pokušavamo nešto napraviti, tako da kopirate i zalijepite isječak koda da je dao kao primjer koda, a vi imate nesiguran prijavu. A ovdje imamo neke primjere. Ovaj prvi je onaj koji smo vidjeli puno gdje su hardcode Pravo podataka u URL koji se šalju. Ponekad vidimo string password = lozinku. To je prilično lako otkriti, ili string password na BlackBerry i Android. To je zapravo prilično lako provjeriti, jer gotovo uvijek povjerenik za razvoj imena varijabla koja drži lozinku neke varijacije lozinkom. Spomenuo sam da ćemo napraviti statičku analizu na Veracode, tako smo analizirali nekoliko stotina Android i iOS aplikacije. Mi smo izgradili puni modele njih, a mi smo u mogućnosti da ih skenirati za različite ranjivosti, posebno ranjivosti sam pričao, i ja imam neke podatke ovdje. 68,5% od Android aplikacija smo gledali provalio kriptografski kôd, koji je za nas, ne možemo otkriti ako ste napravili svoj kripto rutinu, Nije da je to dobra ideja, ali to je zapravo koristi objavljene API koji su na platformi, ali ih radi na takav način da kripto će biti ranjiv, 68.5. A to je za ljude koji su nam šalju svoje zahtjeve, jer zapravo oni misle da je dobra ideja da sigurnost ispitivanje. To su već ljudi koji su vjerojatno misleći sigurno, tako da je vjerojatno još gore. Nisam govoriti o kontrolnom linije injekcije hrane. To je nešto što smo provjerili, ali to nije to rizično problem. Curenje informacija, ovo je mjesto gdje osjetljivi podaci se šalju s uređaja. Otkrili smo da u 40% prijava. Vrijeme i stanje, to su utrke tipa uvjet pitanja, obično prilično teško iskoristiti, pa nisam o tome pričati, ali smo gledali na njega. 23% je SQL injection pitanja. Puno ljudi ne zna da je puno aplikacija koristiti mali malo SQL baza podataka na njihovim leđima kraju za pohranu podataka. Pa, ako su podaci koje ste grabbing preko mreže ima SQL injection napad konce u njemu netko može ugroziti uređaja kroz koji, pa mislim da smo pronašli oko 40% web aplikacije imaju ovaj problem, što je ogromna epidemija problem. Smatramo da je 23% vremena u mobilnim aplikacijama i to je vjerojatno zato što mnogo više web aplikacije koriste SQL nego mobitel. I onda mi još vidjeti neki Cross-Site Scripting, pitanja ovlaštenje, a zatim uvjerenje za upravljanje, to je mjesto gdje imate svoj hardcore lozinku. U 5% aplikacija vidimo da. I onda imamo neke podatke o iOS. 81% ima problema rukovanje pogreškama. To je više od problema je kod kvalitete, ali 67% je kriptografske pitanja, pa nije baš tako loše kao android. Možda API-ji su malo lakše, primjer koda malo bolje na iOS. No, i dalje je vrlo visok postotak. Imali smo 54% sa curenja informacija, oko 30% u puferu za upravljanje pogreške. To je mjesto gdje postoji potencijalno mogao biti problem korupcije memorije. Ispada da to nije tako mnogo problema za eksploataciju na iOS, jer sve kod mora biti potpisan, tako da je teško za napadaču izvršavanje proizvoljnog koda na iOS. Kvaliteta Code, imenik obuhvaćanje, ali onda vjerodajnice za upravljanje ovdje na 14,6%, pa gore nego na Androidu. Imamo ljudi ne postupa ispravno lozinke. A onda su brojčane pogreške i buffer overflow, one su više će biti kod pitanja kvalitete na iOS. To je to za moju prezentaciju. Ja ne znam je li mi više vremena ili ne. Ja ne znam da li postoji bilo kakva pitanja. [Muško] brzo pitanje oko fragmentacije i Android Marketa. Apple barem posjeduje krpanje. Oni napraviti dobar posao uzimajući ga vani dok je manje u Android prostora. Gotovo da trebate jailbreak telefona ostati u tijeku s trenutnom verzijom Android. Da, to je veliki problem i tako, ako mislite o tome- [Muško] Zašto ne možete to ponoviti? Oh, zar ne, pa je pitanje je što o fragmentacija operativnog sustava na Android platformi? Kako to utječe na rizičnosti tih uređaja? I to je zapravo veliki problem, jer ono što se događa je stariji uređaji, kad netko dolazi s jailbreak za taj uređaj, u biti to je privilegija eskalacija, a dok se to operativni sustav ažuriran bilo malware onda možete koristiti tu ranjivost u potpunosti kompromitirati uređaja, i ono što vidimo na Android je kako bi se novi operativni sustav Google mora ugasiti operacijski sustav, a zatim proizvođača hardvera ima da ga prilagoditi, a zatim prijevoznik mora prilagoditi i dostaviti. Imate osnovi 3 pokretnih dijelova ovdje, i to je izlaskom da prijevoznici ne zanima, i proizvođači hardvera ne zanima, a Google nije ih Ispitivao dovoljno učiniti ništa, pa u biti više od polovice uređaja vani imaju operativne sustave koji imaju ove eskalacije privilegija ranjivosti u njima, i tako, ako ste dobili malware na Android uređaju to je puno više problema. Ok, puno ti hvala. [Aplauz] [CS50.TV]