[Seminář] [Obrana Za zařízení: Mobile Application Security] [Chris Wysopal] [Harvard University] [To je CS50.] [CS50.TV] Dobrý den. Jmenuji se Chris Wysopal. Jsem CTO a spoluzakladatel Veracode. Veracode je bezpečnostní aplikace společnosti. Testujeme všechny druhy různých aplikací, a co já budu mluvit o dnes je bezpečnost mobilních aplikací. Moje pozadí je jsem dělal výzkum v oblasti bezpečnosti po velmi dlouhou dobu, asi tak dlouho, jako všichni. Jsem začal v polovině 90. let, a to byl čas, to bylo docela zajímavé, protože jsme měli změnu paradigmatu v polovině 90. let. Všechny počítače náhlé každého byl připojený k internetu, a pak jsme měli začátky webových aplikací, a to je to, co jsem se zaměřil na hodně pak. To je zajímavé. Nyní máme další změnu paradigmatu se děje s počítači, což je posun na mobilních aplikací. Mám pocit, že je to trochu podobné dobu, pak to bylo v druhé polovině 90. let když jsme byli vyšetřování webových aplikací a hledání závad, jako jsou Chyby správu relace a SQL injection která opravdu neexistoval předtím, a najednou byli všude ve webových aplikacích, a teď hodně času trávím se dívá na mobilních aplikací a při pohledu na to, co se děje tam venku ve volné přírodě. Mobilní aplikace jsou skutečně bude dominantní výpočetní platformy, takže jsme opravdu muset strávit spoustu času, pokud jste v bezpečnostním průmyslu se zaměřením na webové aplikace. Tam bylo 29 miliard mobilní aplikace stažené v roce 2011. Je odhadováno na 76 miliard apps do roku 2014. K dispozici je 686 milionů zařízení, které se chystáte být zakoupeny v letošním roce, tak to je místo, kde lidé budou dělat  Většina jejich klienta na počítači i do budoucna. Mluvil jsem viceprezident Fidelity Investments před pár měsíci, a on řekl, že právě viděl větší návštěvnost dělat finanční transakce od jejich zákazníků na jejich mobilní aplikace, než na svých internetových stránkách, takže společné použití pro web v minulosti bylo kontrolu své kurzy akcií, správu portfolia, a my jsme vlastně vidět, že v roce 2012 přepínači přes být více dominantní na mobilní platformě. Jistě, pokud se to bude jakákoliv trestná činnost, jakákoli škodlivá aktivita, bude to začít být zaměřena na mobilní platformě v průběhu času, jak lidé přepnout na to. Podíváte-li se na mobilní platformu, podívat se na rizika platformy je užitečné rozčlenit do různých vrstev, stejně jako byste to na stolním počítači, a ty si myslíš o různých vrstvách, software, operační systém, síťová vrstva, hardware vrstva, a samozřejmě, je tu slabá místa ve všech těchto vrstvách. Totéž se děje na mobil. Ale mobilní, zdá se, že některé z těchto vrstev jsou na tom hůř. Pro jednoho, síťové vrstvy je problematičtější na mobil protože spousta lidí, kteří mají ve své kanceláři nebo doma kabelové připojení nebo mají zabezpečené připojení Wi-Fi, a s mnoha mobilních zařízení jste zřejmě mimo domov nebo mimo kancelář hodně, a pokud používáte Wi-Fi připojení na internet tam můžete používat nezabezpečené Wi-Fi připojení, něco, co je veřejné Wi-Fi připojení k internetu, takže když si myslíme, že o mobilních aplikací musíme vzít v úvahu že síťové prostředí je rizikovější pro ty aplikace, pokud je Wi-Fi používá. A když jsem se dostal do více mobilních rizik aplikace uvidíte, proč je to mnohem důležitější. Existují rizika na úrovni hardwaru na mobilních zařízeních. To je oblast pokračujícího výzkumu. Lidé říkají tyto širokopásmové útoky nebo útoky základního pásma kam útočí na firmware, který poslouchá v rádiu. Ty jsou opravdu děsivé útoky, protože uživatel nemusí nic dělat. Můžete hit spoustu zařízení v RF rozsahu najednou, a vypadá to, že když tento výzkum bubliny to rychle dostane zařazen kde lidé vrhnout se kolem a řekl: "Tady, řekněte nám o tom, prosím, a přestat mluvit o tom." Tam je nějaký výzkum se děje v oblasti broadbandu, ale zdá se, že velmi Hush Hush. Myslím, že je to spíš typ národ státní výzkumu, co se děje. Oblast aktivního výzkumu, i když je operační systém vrstva, a opět, tohle je něco jiného, ​​než na ploše světě výpočetní techniky protože v mobilním prostoru máte tyto týmy lidí zvaných Jailbreakers, a Jailbreakers jsou jiné než pravidelné výzkumníky zranitelnosti. Snaží se najít slabá místa v operačním systému, ale důvod, proč se snažíte najít slabá místa není proniknout do přístroje někoho jiného, ​​a ohrozit ji. Je to proniknout do jejich vlastního počítače. Chtějí proniknout do jejich vlastní mobilní telefon, změnit operační systém, své vlastní mobile aby mohli spouštět aplikace dle svého výběru a změnit věci s plnými oprávněními správce, a nechtějí říct dodavatele o tom. Už ne jako bezpečnostní výzkumník, který je bílý klobouk bezpečnostní výzkumník která se chystá udělat odpovědné zveřejňování a říct dodavatele o tom. Chtějí to udělat výzkum, a chtějí, aby skutečně zveřejní jej ve využití nebo rootkit nebo útěk z vězení kódu, a chtějí, aby to strategicky, jako hned po dodavatele lodě nový operační systém. Máte tento kontradiktorní vztah s zranitelnosti na mobilní OS na úrovni, což myslím, že je docela zajímavé, a jedno místo, kde bychom ho vidět Je to dělá to tak, že je tu dobrá zveřejněn kód zneužití je venku pro kernel-level zranitelnosti, a my jsme viděli ty vlastně být používán malware spisovatelů. Je to trochu jiné než na PC světě. A potom finální vrstva je horní vrstva, aplikační vrstva. To je to, co já budu mluvit o dnes. Ostatní vrstvy existují, a další vrstvy hrát na to, ale já jsem hlavně mluvit o tom, co se děje na aplikační vrstvě kde je kód běžící v karanténě. To nemá oprávnění správce. Má se používat rozhraní API z přístroje, ale stále hodně nebezpečné činnosti a spousta nebezpečí se může stát v té vrstvě protože to je vrstva, kde jsou všechny informace. Aplikace mohou přistupovat všechny informace o zařízení pokud mají správné oprávnění, a budou mít přístup různé senzory na přístroji, Senzor GPS, mikrofon, kamera, co mají ti. I když mluvíme jen o na aplikační vrstvě máme spoustu rizik tam. Další věc, která je odlišná o mobilním prostředí jsou všechny použité operační systém hráči, ať už je to BlackBerry nebo Android nebo iOS nebo Windows Mobile, všichni mají jemnozrnné modelu oprávnění, a toto je jeden ze způsobů, jak se zabudovaných do operačního systému Myšlenka, že to není tak riskantní, jak si myslíte. I když budete mít všechny své kontakty na tu, všechny vaše osobní údaje, máte své fotky, můžete mít své místo tam, jste ukládání bankovní PIN pro automatické přihlášení na tam, že je to bezpečné, protože aplikace musí mít určité oprávnění, aby se v některých částech informace o zařízení, a uživatel musí být prezentovány s tato oprávnění a říkat v pořádku. Problém s ním je uživatel vždy říká, že ano. Jako bezpečnostní osobu, vím, že můžete vyzvat uživatele, říci, něco opravdu špatného se stane, chceš aby se to stalo? A pokud jste ve spěchu, nebo je tu něco, co opravdu lákavá na druhé straně, že jako hra se bude instalována, že jste čekali, jdou na tlačítko pořádku. To je důvod, proč říkám, na mém snímku sem dej mi hodit ptáků u prasat již, a můžete vidět na snímku, tady je příklady BlackBerry povolení krabici. To říká, že "Prosím nastavte oprávnění BlackBerry Travel aplikací Po kliknutí na tlačítko níže, "a v podstatě se uživatel právě chystá říct, nastavit oprávnění a ušetřete. Zde je Android řádku, kde se ukazuje věci, a to vlastně dává něco, co skoro vypadá jako varování. Je tu jakýsi výnos tam cedulí s nápisem síťové komunikace, telefonního hovoru, ale uživatel bude klepněte na tlačítko nainstalovat, ne? A pak ten Apple je zcela neškodný. To nedává žádný druh varování. Je to jen Apple by chtěl použít svou aktuální polohu. Samozřejmě, že se chystáte na tlačítko pořádku. Tam je to jemnozrnný modelu povolení, a aplikace musí mít soubor manifestu, kde prohlašují, oprávnění, které potřebují, a že bude se zobrazí uživateli, a uživatel bude muset říct, že jsem udělit tato oprávnění. Ale buďme upřímní. Uživatelé se právě chystá vždycky říkám v pořádku. Pojďme se rychle podívat na oprávnění, která tyto aplikace žádají a některé z oprávnění, které tam jsou. Tato společnost Praetorian dělal průzkum v loňském roce z 53.000 aplikací, analyzovaných v Android Marketu a třetí strany trhů, tak to je vše Android. A průměrný aplikace požaduje 3 oprávnění. Některé aplikace požaduje 117 oprávnění, tak samozřejmě se jedná o velmi jemnozrnné a příliš složité pro uživatele, aby pochopili, v případě, že jsou prezentovány s touto aplikací, která potřebuje těchto 117 oprávnění. Je to jako koncový uživatel licenční smlouvy, která je 45 stran dlouho. Možná, že brzy budou mít možnost, kde to je, vytisknout oprávnění a pošlete mi e-mail. Ale když se podíváte na některé z nejlepších zajímavých oprávnění 24% z aplikací, které jsou staženy z 53000 požadované GPS informace ze zařízení. 8% si kontakty. 4% odeslaných SMS a 3% přijaté SMS. 2% zaznamenaný zvuk. 1% zpracované odchozí hovory. Nevím. Nemyslím si, že 4% z aplikací v App Store opravdu potřebujete odesílat textové zprávy SMS, takže si myslím, že je to náznak, že se něco neobvyklého děje. 8% z aplikací je třeba číst seznam kontaktů. Je to asi není nutné. Jedním z dalších zajímavých věcí, o oprávnění je pokud odkazují na sdílených knihoven do aplikace které dědí oprávnění z aplikace, takže pokud vaše aplikace potřebuje seznamu kontaktů nebo třeba umístění GPS fungovat a propojení v reklamní knihovny, například, že reklama knihovna bude také moci přistupovat kontakty a také být schopen získat přístup k umístění GPS, a vývojář aplikace neví nic o kódu, který je spuštěn v reklamní knihovně. Jsou to právě propojení, které do systému, protože chtějí zpeněžit své aplikace. To je místo, kde, a já budu mluvit o některých příkladech to s aplikace s názvem Pandora, kde vývojář aplikace může být bezděky únik informací od svých uživatelů, protože knihoven že jsem propojených palců Geodetické krajinu tam, díval se na všech různých aplikací , které byly hlášeny v médiích jako škodlivý nebo dělat něco, co uživatelé nechtěli a kontrolu hodně aplikací, děláme hodně statické binární analýzy na mobilních aplikací, takže jsme je kontrolována a podíval se na samotného kódu- jsme přišli s tím, co nazýváme naše top 10 seznam rizikového chování v aplikacích. A je to rozdělené do 2 částí, škodlivého kódu, takže se jedná o špatné věci, že aplikace by mohlo být dělat, že je pravděpodobné, že bude něco, co se zlými úmysly individuální výslovně dát do aplikace, ale je to trochu rozmazaný. Mohlo by to být něco, co developer si myslí, že je v pořádku, ale to skončí je myšlenka jako nebezpečný uživatelem. A pak druhá část je to, co nazýváme kódování zranitelnosti, a to jsou věci, kde v podstatě developer se dělat chyby nebo prostě nechápe, jak napsat aplikaci bezpečně,  a to je uvedení app uživatele na riziko. Chystám se jít přes tyto v detailu a dát nějaké příklady. Pro srovnání, chtěl jsem, aby se na OWASP mobilní top 10 seznamu. Jedná se o 10 otázek, které skupina na OWASP, Projekt Open Web Application Security, mají pracovní skupinu pracuje na mobilním top 10 seznamu. Mají velmi slavný web Top 10 seznamu, které jsou top 10 nejrizikovějšími věci, které můžete mít ve webové aplikaci. Dělají to samé pro mobilní telefony, a jejich seznam je trochu jiný, než ten náš. 6 z 10 jsou stejné. Mají 4, které jsou odlišné. Myslím, že mají trochu odlišný pohled na Riziko v mobilních aplikacích, kde mnoho jejich otázek jsou opravdu, jak aplikace komunikuje na serveru back-end nebo to, co se děje na serveru back-end, není tolik aplikací, které mají rizikové chování, které jsou jen prostá klientské aplikace. Ty červeně jsou zde rozdíly mezi seznamy 2. A někteří z mého výzkumného týmu se vlastně přispěl k tomuto projektu, takže uvidíme, co se stane v průběhu času, ale myslím, že stánek s jídlem je zde jsme opravdu nevím, co top 10 seznam je v mobilních aplikacích, protože že jsem opravdu jen asi 2 nebo 3 let, a tam nebylo dost času, aby skutečně zkoumat operační systémy a co jsou schopni, a tam nebylo dost času pro škodlivý společenství, chcete-li, aby strávili dost času snaží zaútočit uživatelům prostřednictvím mobilních aplikací, takže očekávám, že tyto seznamy měnit trochu. Ale teď, to jsou top 10 věcí, které dělat starosti. Možná se divíte, na mobilním straně, kde nemá škodlivý mobilního kódu jak se dostat k zařízení? North Carolina State má projekt Genome Project Mobile Malware kde jsou shromažďování co nejvíce mobilní malware, jak mohou a analyzování, a že jsem v členění vstřikovací vektory, které mobilní malware používá, a 86% použít techniku ​​zvanou přebalování, a to je jen na platformě Android můžete opravdu udělat přebalování. Důvod, proč je Android kód je postaven s byte kód Javy s názvem Dalvik, který je snadno decompilable. Co špatný člověk může udělat, je se systémem Android aplikaci, dekompilovat ji, vložte svůj škodlivý kód, překompilovat to, a pak ji v App Store, která se prohlásí nová verze této aplikace, nebo jen možná změna názvu aplikace. Kdyby to byla nějaká hra, změnit název mírně, , a to tak, jak je přebalení 86% mobilní malware dostane distribuován. Je tu další techniku ​​zvanou aktualizace, která je velmi podobný přebalení, ale ve skutečnosti nechcete dát škodlivý kód palců Co děláte, je dáte do malé aktualizační mechanismus. Můžete dekompilovat, můžete dát do aktualizačního mechanismu, a to překompilovat, a pak, když aplikace běží to stáhne malware na zařízení. Zdaleka většina z nich jsou ty dvě techniky. Tam opravdu není moc ke stažení pohon-bys, nebo automatickým stahováním na mobilní telefony, které by mohly být jako phishing. Ahoj, podívejte se na tento fakt super stránky, nebo budete muset jít na tuto stránku a vyplňte tento formulář aby i nadále něco dělat. Ti, kteří jsou phishingové útoky. To samé se může stát na mobilní platformu, kde se poukazují na mobilní aplikace ke stažení, říkat "Ahoj, tady je Bank of America." "Vidíme, že používáte tuto aplikaci." "Byste měli stáhnout tuto jinou aplikaci." Teoreticky, to by mohlo fungovat. Možná, že to prostě není používán tak, aby se zjistilo, zda je úspěšný, nebo ne, ale zjistili, že se používá méně než 1% z času, který techniky. Většina času je to opravdu přebalit kód. Je tu další kategorie tzv. standalone kde se někdo právě staví zbrusu nové aplikaci. Mají vytvořit aplikaci, která údajného něco. Není to přebalení něco jiného, ​​a že má škodlivý kód. To je použito 14% času. Teď chci mluvit o tom, co je škodlivý kód dělá? Jeden z prvních malware tam byste mohli zvážit spyware. Je to v podstatě špehuje uživatele. To sbírá e-maily, SMS zprávy. Ukazuje na mikrofon. To sklízí kontaktní knihu, a odešle ji na někoho jiného. Tento typ spyware existuje na PC, tak to dává smysl, aby se lidé snaží dělat na mobilních zařízeních to. Jeden z prvních příkladů tohoto byl program s názvem Secret SMS Replicator. Bylo to v Android Marketplace před pár lety, a myšlenka byla, kdyby jste měli přístup k něčí Android telefonu že jste chtěl špehovat, takže možná je to váš manžel nebo vaše dalších významných a chcete špehovat své textové zprávy, si můžete stáhnout tuto aplikaci a nainstalujte ji a nastavit odeslat textovou zprávu SMS na Vás s kopií každé textové SMS zprávy, které dostali. To je samozřejmě v porušování App Store, pokud jde o služby, a toto bylo odstraněno z trhu Android během 18 hodin je, že tam, tak velmi malý počet lidí, kteří byli v ohrožení, protože toto. Teď si myslím, že v případě, že byl program s názvem něco možná trochu méně provokativní jako Secret SMS Replicator by pravděpodobně fungovalo mnohem lépe. Ale to bylo docela jasné. Jedna z věcí, které můžeme udělat pro to, zjistit, zda aplikace má toto chování, které nechceme je kontrolovat kód. To je opravdu velmi snadné udělat na Androidu, protože můžeme dekompilovat aplikace. Na iOS můžete použít disassembler, jako je IDA Pro podívat se na to, co Apis aplikace volá a co to dělá. Napsali jsme naše vlastní binární statický analyzátor pro našeho kódu a děláme to, a tak to, co byste mohli udělat, je by se dalo říct má zařízení dělat cokoliv, co je v podstatě mě špehoval nebo sledování mě? A mám nějaké příklady zde na iPhone. Tento první příklad je, jak přistupovat k UUID na telefonu. To je skutečně něco, co Apple právě zakázán pro nové aplikace, ale staré aplikace, které jste mohli běžící na vašem telefonu může ještě udělat, a tak, že jedinečný identifikační kód může být použit pro vás sledovat v mnoha různých aplikacích. Na Android, mám příklad zde, jak se dostat polohu zařízení. Můžete vidět, že v případě, že volání API je tam, že aplikace je sledování, a vidíte, zda je to stále jemné umístění nebo hrubé umístění. A pak na dně tady, mám příklad, jak na BlackBerry aplikace může přistupovat k e-mailové zprávy ve složce Doručená pošta. Jedná se o druh věcí, které můžete prohlédnout vidět v případě, že aplikace dělá tyhle věci. Druhá velká kategorie škodlivého chování, a to je pravděpodobně největší kategorii teď, je zakázáno vytáčení, neoprávněné prémiové textové zprávy SMS nebo neoprávněné platby. Další věc, která je jedinečná v tom telefonu je přístroj připojený do fakturačního účtu, a při činnosti se stalo na telefonu je možné vytvořit poplatků. Můžete si koupit věci po telefonu, a při odeslání premium SMS textovou zprávu, že jste skutečně dávat peníze majiteli účtu telefonního čísla na straně druhé. Ty byly zřízeny, aby se ceny akcií, nebo si svůj denní horoskop, nebo jiné věci, ale může být nastaven tak, aby produkt objednat zasláním SMS s textem. Lidé dávají peníze na Červený kříž zasláním textové zprávy. Můžete dát 10 dolarů tímto způsobem. Útočníci, co jsem udělal, je, že nastavení účty v cizích zemích, a vložit do malware , že telefon bude odeslání Premium SMS textovou zprávu, říci, několikrát denně, a na konci měsíce si uvědomíte, že jste strávili desítky nebo dokonce stovky dolarů, a oni odejít s penězi. To bylo tak špatné, že to byl úplně první věc, která pro Android Marketplace nebo místo, to byl Google Tržiště Android v té době, a to je nyní Google Play-první věc, že ​​Google začal kontrolu. Když Google začal distribuovat Android aplikace na jejich app store oni říkali, že nebude kontrolovat na cokoliv. Dáme aplikace, jakmile jsme byli upozorněni, že jsem porušil naše podmínky služby, ale nebudeme kontrolovat na cokoliv. No, asi před rokem to bylo tak špatné, s tímto premium SMS textových zpráv malware že je to první věc, kterou začali kontrole. Pokud aplikace umožňuje odesílat textové zprávy SMS se dále ručně zkoumat tuto žádost. Vypadají pro rozhraní API, které vyžadují tento, a teď, protože pak Google rozšířil, ale to byla první věc, která se začala hledat. Některé další aplikace, které dělal nějaké textové zprávy SMS, Tento Android Qicsomos, myslím, že to je voláno. Bylo to aktuální události na mobilní telefon, kde tento Carrier vyšel jako spyware dát na přístroji dopravci, tak lidé chtěli vědět, zda jejich telefon byl vystaven to, a to bezplatná aplikace, která zkouší to. No, samozřejmě, to, co tato aplikace udělala, bylo, že poslal prémiových textových zpráv SMS, tak tím testováním, zda jste napaden spywarem jste vložili malware do vašeho zařízení. Viděli jsme to samé se stalo v poslední Super Bowl. Tam byl falešný verze Madden fotbal který poslal prémiové textové zprávy SMS. Je to vlastně pokusil se vytvořit bot síť příliš na zařízení. Tady mám pár příkladů. Je zajímavé, že Apple byl dost chytrý, a neumožňují aplikacím odesílat textové zprávy SMS vůbec. Žádná aplikace může udělat. To je skvělý způsob, jak se zbavit celé třídy zranitelnosti, ale na Android, můžete to udělat, a samozřejmě, na BlackBerry, můžete to udělat taky. Je zajímavé, že na BlackBerry vše, co potřebujete, je internet oprávnění odeslat textovou zprávu SMS. Další věc, opravdu, že se podíváme na když se díváme, zda je něco škodlivého, je jen nějaký druh neoprávněná činnost sítí, jako dívat se na činnosti sítě aplikace má mít jeho funkčnost, a podívat se na tuto jiné síťové aktivitě. Možná aplikace, pracovat, musí získat data přes HTTP, ale pokud to dělá věci, přes e-mail nebo SMS nebo Bluetooth, nebo něco takového Nyní, že aplikace by mohly být nebezpečné, takže to je další věc, kterou si můžete prohlédnout na. A na tomto snímku zde mám několik příkladů, které. Další zajímavá věc, kterou jsme viděli s malware se stalo v roce 2009, a stalo se to ve velkém stylu. Já nevím, jestli se to stalo, tak od té doby, ale to bylo app že se vydával za jinou aplikaci. Tam byla řada aplikací, a to bylo nazváno útok 09Droid, a někdo se rozhodl, že tam bylo mnoho malých, regionálních, středně velké banky že neměl on-line bankovní aplikace, takže to, co udělal, bylo, že postaveno asi 50 on-line bankovní aplikace že vše, co udělal, bylo, mít uživatelské jméno a heslo a přesměrovat vás na internetových stránkách. A tak dali to vše v Google Marketplace, v Android Marketplace, a když někdo hledal, aby zjistili, zda jejich banka Měl aplikace, které by se najít falešné žádosti, které shromažďují své přihlašovací údaje a pak přesměrován do jejich webových stránkách. Způsobem, že to vlastně stalo, že aplikace se tam na pár týdnů, a tam byly tisíce a tisíce stažení. Způsob, jak to přišlo ke světlu byl někdo má problém s jednou z aplikací, a nazvali svou banku, a oni volali zákaznické lince jejich banky a řekl, "Mám problém s vaším mobilním bankovnictví." "Můžeš mi pomoct?" A oni řekli: "Nemáme bankovní aplikace pro mobilní." To začalo vyšetřování. Že banka s názvem Google, a pak Google podíval a řekl: "Wow, stejný autor napsal 50 bankovních aplikací," a vzal je všechny dolů. Ale určitě se to mohlo stát znovu. Tady je seznam všech různých bank zde které byly součástí tohoto podvodu. Další věc, kterou aplikace může udělat, je přítomen UI z jiné aplikace. I když je to běh by to mohlo vyskočí na Facebook UI. To říká, že budete muset dát do svého uživatelského jména a hesla, aby i nadále nebo dát do libovolné uživatelské jméno a heslo uživatelské rozhraní pro webové stránky že možná uživatel používá jen k pokusu oklamat uživatele do uvedení svých přihlašovacích údajů palců To je opravdu rovně paralelně z e-mailové útoky typu phishing kde vám někdo pošle e-mailovou zprávu a poskytuje v podstatě falešné rozhraní pro webové stránky že máte přístup. Další věc, kterou hledáme škodlivého kódu je modifikace systému. Můžete se podívat na všechna volání API, které vyžadují oprávněním root provést správně. Změna web proxy daného zařízení by bylo něco, co aplikace by neměl být schopen dělat. Ale v případě, že aplikace má kód tam k tomu, že víte, že je to pravděpodobně škodlivý aplikace nebo velmi vysoce pravděpodobné, že se jedná o nebezpečnou aplikaci, a tak co by se stalo, je, že aplikace bude mít nějaký způsob, jak stupňující privilegium. Měla by mít nějaké zvýšení úrovně oprávnění využívat v aplikaci, a pak ještě jednou to eskaloval oprávnění že by to tyto systémové změny. Najdete malware, který má oprávnění eskalaci v něm i bez znalosti, jak se zvýšení úrovně oprávnění využití se bude dít, a to je pěkné, snadný způsob, hledat malware. DroidDream byl pravděpodobně nejslavnější kus Android malware. Myslím, že to ovlivnilo asi 250.000 uživatelů po dobu několika dní před tím, než bylo zjištěno. Oni přebalit 50 falešné aplikace, dát do Android App Store, a v podstatě je použit Android jailbreak kód eskalovat privilegia a pak nainstalovat velení a řízení a zapněte všechny oběti do bot sítě, ale mohli jste objevili tento pokud jste skenování aplikace a jen hledáte API volání, které vyžaduje povolení root spustit správně. A tady je příklad tady mám, který se mění proxy, a to ve skutečnosti je k dispozici pouze na Android. Můžete vidět Dávám vám hodně příkladů na Android protože to je místo, kde nejaktivnější malware ekosystém je protože je to pro útočníka velmi snadné se dostat škodlivý kód do Android Marketplace. Není to tak snadné, že v Apple App Store protože Apple vyžaduje, aby vývojářům poznat sebe a podepsat kód. Jsou to vlastně zjistit, kdo jste, a Apple je vlastně posouzení žádostí. Nechceme vidět hodně skutečné malware, kde je zařízení stále ohrožena. Budu mluvit o některých příkladech, kde je to opravdu soukromí, které je stále ohrožena, a to je to, co se skutečně děje na zařízení Apple. Další věc, kterou se podívat na výskyt škodlivého kódu, riskantní kód zařízení Je logické nebo časované bomby a časované bomby jsou pravděpodobně mnohem jednodušší hledat, než logických bomb. Ale s časovaných bomb, co můžete udělat, je se můžete podívat na místa v kódu, kde je testována čas nebo absolutní čas se hledá Před určité funkce v aplikaci děje. A to by mohlo být provedeno skrýt tuto činnost od uživatele, tak se to děje pozdě v noci. DroidDream dělal veškerou svou činnost mezi dvacet tři hodin a 8 hodin ráno místního času pokusit se udělat to, když uživatel nemusí používat jejich zařízení. Další důvod k tomu je, pokud jsou lidé používají behaviorální analýzu aplikace, spuštění aplikace do karantény, aby viděli, co chování aplikace je, mohou využít čas na základě logiky udělat aktivitu když aplikace není na pískovišti. Například, App Store jako Apple spustí aplikaci, ale pravděpodobně nejsou v rozporu každou žádost, řekněme, 30 dnů před jejím schválením, takže si můžete dát logika v aplikaci, který řekl, v pořádku, jen udělat špatnou věc po 30 dnech je pryč, nebo po 30 dnech po publikování datu podání žádosti, a které mohou pomoci škodlivého kódu kůži z lidí inspekci na to. Je-li anti-virus společnosti jsou spuštěny věci v pískovišť nebo app samotné obchody jsou to může pomoci skrýt, že z této prohlídky. Nyní, odvrácenou stranou, že je to snadné najít s statickou analýzu, takže vlastně inspekci kód můžete podívat na všechna místa, kde se aplikace testuje čas a zkontrolujte, že tak. A tady mám nějaké příklady na těchto 3 různých platformách jak může být čas zkontrolovat pomocí app výrobce takže víte, na co se zaměřit, pokud jste kontrolu aplikace staticky. Jsem prošel spoustu různých škodlivých aktivit které jsme viděli ve volné přírodě, ale které z nich jsou nejčastější? To samé studie z North Carolina State Mobile Genome Project zveřejněny některé údaje, a tam byly v podstatě čtyři oblasti že viděli tam, kde byla spousta aktivit. 37% z aplikací dělal oprávnění eskalaci, aby měli nějaký druh jailbreak kódu tam kde se snažili stupňovat oprávnění, aby mohli se příkazy API běží jako operační systém. 45% z aplikací tam dělal Premium SMS, tak to je velké procento, které se snaží přímo zpeněžit. 93% ano dálkové ovládání, takže se snažili nastavit bot síť, mobilního bot síť. A 45% sklizené identifikační údaje jako jsou telefonní čísla, UUID, umístění GPS, uživatelských účtů, a to přidává až na více než 100, protože většina malware se snaží dělat některé z těchto věcí. Chystám se přejít do druhé poloviny a mluvit o zranitelnosti kódu. Toto je druhá polovina riskantní činnosti. To je místo, kde v podstatě je developer dělat chyby. Legitimní developer psát legitimní aplikace dělá chyby, nebo je neznalý o rizicích mobilní platformy. Oni prostě nevědí, jak se učinit bezpečné mobilní aplikace, nebo někdy developer se nestará o uvedení uživatele v ohrožení. Někdy je součástí jejich obchodního modelu by mohlo být sklizeň osobní údaje uživatele. To je něco jako druhé kategorie, a to je důvod, proč některé z těchto škodlivý proti legitimní začne krvácet konce, protože tam je rozdíl názorů mezi tím, co uživatel chce a co uživatel považuje za riskantní a to, co vývojář aplikace považuje za riskantní. Samozřejmě, že to není dat vývojáře aplikací je ve většině případů. A nakonec, jiný způsob, jak se to stane, je developer může spojit v sdílená knihovna, která má slabá místa nebo toto rizikové chování v něm unbeknownst k nim. První kategorie je citlivý úniku dat, , a to je, když aplikace shromažďuje informace jako je umístění, adresáře, informace vlastníka a vysílá, že mimo zařízení. A jakmile je to mimo zařízení, nevíme, co se děje s těmito informacemi. Mohlo by to být uloženy nejistě vývojář aplikace. Viděli jsme vývojáři aplikací se ohrožena, a údaje, které oni ukládání dostane přijata. To se stalo před několika měsíci na developera na Floridě kde obrovské množství, to byl iPad UUID a názvy zařízení byla propuštěna proto, že někdo, myslím, že to byl anonymní, prohlašoval, že to, vloupal do serverů tohoto vývojáře a ukradl miliony iPad UUID a názvy počítačů. Ne nejrizikovější informace, ale co když to bylo ukládání uživatelských jmen a hesel a adresy domů? Je tu spousta aplikací, které ukládají tento druh informací. Riziko je zde. Další věc, která se může stát, je-li developer nebude starat zabezpečit datový kanál, a to je další velká zranitelnost budu mluvit, že data jsou odesílána do jasné. Pokud uživatel na veřejné síti Wi-Fi nebo někdo čichání internet někde po cestě, která data jsou vystaveny. Jeden velmi slavný případ tohoto úniku informací se stalo s Pandora, a to je něco, co jsme zkoumali na Veracode. Slyšeli jsme, že to tam bylo, myslím, že to byl Federal Trade Commission Vyšetřování se děje s Pandoře. Řekli jsme si, "Co se to tam děje? Pojďme začít kopat do aplikace Pandora." A to, co jsme zjistili, byla aplikace Pandora shromažďovány vaše pohlaví a váš věk, a také přístup k vaší GPS polohy a aplikace Pandora udělal to, co říkali, bylo oprávněné důvody. Hudba, kterou hráli, Pandora je streamování hudby app- hudba, kterou hráli byla licencována pouze ve Spojených státech, tak museli zkontrolovat, v souladu s jejich licenčními dohodami, které měly pro hudbu, aby uživatel byl ve Spojených státech. Chtěli také, aby v souladu s Parental Advisory kolem dospělý jazyk v hudbě, a tak je to dobrovolný program, ale chtěli, aby v souladu s tím a ne hrát explicitní texty pro děti 13 a pod. Měli legitimní důvody pro sběr těchto dat. Jejich aplikace měl oprávnění, jak to udělat. Uživatelé myslel, že toto bylo legitimní. Ale co se stalo? Jsou spojeny do 3 nebo 4 různých reklamních knihoven. Teď najednou všech těchto reklamních knihovny jsou stále přístup k těmto stejným informacím. AD knihovny, když se podíváte na kód v reklamních knihovnách to, co dělají, je umístěn v každém inzerátu knihovna říká "Má moje app mít oprávnění získat polohu GPS?" "Ach, to? Dobře, řekni mi GPS polohu." Každý ad knihovna dělá, a v případě, že aplikace nemá oprávnění GPS nebude moci dostat, ale pokud ano, bude to dostat. To je místo, kde obchodní model inzerátu knihoven je protichůdný k soukromí uživatele. A tam bylo studie, že tam bude říkat, pokud víte, věk osoby a znáte-li jejich umístění kde se v noci spát, protože máte své GPS souřadnice zatímco oni možná spí, budete přesně vědět, kdo ta osoba je protože si můžete určit, který člen této domácnosti je osoba. Opravdu je to identifikace pro inzerenty přesně, kdo jste, a vypadá to, že to bylo legitimní. Chci jen můj streaming hudby, a to je jediný způsob, jak jej získat. No, jsme vystaveni to. To jsme psali v několika příspěvcích, a ukázalo se, že někdo z časopisu Rolling Stone přečtěte si jednu z našich blogů a napsal své vlastní blog v Rolling Stone o tom, a hned další den Pandora si myslel, že je to dobrý nápad odstranit reklamní knihoven z jejich použití. Pokud je mi známo, jsou-oni jen je třeba pochválit. Myslím, že jsou jen freemium typ aplikace, která to učinila. Všechny ostatní Freemium aplikace mají stejný chování, tak musíš přemýšlet o tom, jaký druh dat dáváte Tyto Freemium aplikace, protože je to všechno děje k inzerentům. Praetorian také dělal studii o sdílených knihoven a řekl, "Pojďme se podívat na to, co Sdílené knihovny jsou top sdílené knihovny," a to, že údaje. Analyzovali 53.000 aplikací, a číslo 1 sdílená knihovna byla AdMob. Bylo to vlastně v 38% aplikací tam, tak 38% z aplikací, kterou používáte je pravděpodobné, sklizeň vaše osobní údaje a předat jej do reklamních sítí. Apache a Android bylo 8% a 6%, a pak tyto jiné ty dole ve spodní části, Google reklamy, Flurry, Mob City a Millennial Media, to vše jsou reklamní společnosti, a pak, je dost zajímavé, 4% se váže v knihovně Facebook Pravděpodobně k tomu ověřování přes Facebook aby aplikace mohla ověřit na Facebook. Ale to také znamená, že společnost Facebook ovládá kód že běží v 4% z Android mobilních aplikací tam, a mají přístup ke všem údajům, že aplikace má oprávnění se dostat na. Facebook v podstatě se snaží prodat reklamní prostor. To je jejich obchodní model. Když se podíváte na celý tento ekosystém s těmito oprávněními a sdílené knihovny začnete vidět, že Máte spoustu rizik v údajně legitimní aplikace. Stejný podobné, co se stalo s Pandora Stalo se aplikace s názvem Cesta, a Path si mysleli, že jsou vstřícní, přátelští vývojáři. Oni se jen snaží, aby vám skvělý uživatelský zážitek, a ukázalo se, že bez vyzvání uživatele, nebo musí uživateli sdělit, něco, a to se stalo na iPhone a Android, Pandora app byla na iPhone a Android- že žádost Cesta byla chytil celý adresář a nahrát ji do cesty ve chvíli, kdy jste nainstalovali a spustili aplikaci, a neřekl ti o tom. Mysleli si, že to bylo opravdu užitečné pro vás aby bylo možné sdílet se všemi lidmi ve vašem adresáři že jste pomocí aplikace Path. No, samozřejmě Cesta myslel, že toto bylo skvělé pro jejich společnost. Není to tak velký uživateli. Musíte si myslet, že to je jedna věc, pokud možná teenager se pomocí této aplikace a jejich desítky přátel jsou tam, ale co když je to generální ředitel společnosti, která instaluje cesta a pak najednou jejich celého adresáře je tam? Budeš mít spoustu potenciálně cenné kontaktní informace pro mnoho lidí. Reportér z New York Times, měli byste být schopni získat telefonní číslo bývalých prezidentů z jejich adresáře, tak samozřejmě hodně citlivých informací je převedena s něčím, jako je tento. Tam byla taková velká klapka o tom, že cesta se omluvil. Oni změnili si jejich aplikaci, a to dokonce i dopad Apple. Řekl, Apple, "Chystáme se nutit app dodavatele vyzvat uživatele v případě, že se chystáte sbírat celý svůj adresář. " Vypadá to, že to, co se tady děje, je když je tu jeden velký porušení soukromí a to dělá tisku vidíme změnu tam venku. Ale samozřejmě, je tu další věci tam venku. Aplikace LinkedIn sklízí své záznamy kalendáře, ale Apple nedělá uživatel vyzván o tom. Záznamy v kalendáři mohou mít citlivé informace v nich taky. Kam se chystáte na čáru? To je opravdu druh vyvíjející místo tam, kde to opravdu není dobré standardní venku pro uživatele k pochopení, když se jejich informace bude v ohrožení a když budeš vědět, že je přijímána. Psali jsme o aplikaci na Veracode názvem Adios, a v podstatě je povoleno můžete upozornit aplikaci na vašem adresáři iTunes a podívat se na všechny žádosti, které byly sklizeň své celé adresáře. A jak můžete vidět na tomto seznamu tady, Angry Birds, AIM, AroundMe. Proč Angry Birds potřebujete adresáře? Já nevím, ale to dělá nějak. To je něco, co mnoho, mnoho aplikací dělat. Můžete si prohlédnout kód pro tento. K dispozici je dobře definované rozhraní API pro iPhone, Android a BlackBerry aby se v adresáři. Můžete opravdu snadno kontrolovat na to, a to je to, co jsme udělali v našem Adios aplikaci. Další kategorie, Nebezpečný Sensitive Data Storage, je něco, kde vývojáři brát něco jako pin nebo číslo účtu nebo hesla a uložte je v jasné na zařízení. Ještě horší je, může se ukládat je v oblasti na telefonu který je celosvětově přístupný, stejně jako na SD kartu. Vidíte to častěji na Androidu, protože Android umožňuje na paměťovou kartu SD. IPhone zařízení ne. Ale my jsme ještě viděli to stalo v aplikaci Citigroup. Jejich on-line bankovní aplikace uložena čísla účtů nejistě, právě jasné, takže pokud jste ztratili zařízení, v podstatě jste ztratili svůj bankovní účet. To je důvod, proč jsem osobně nedělám bankovnictví na mém iPhone. Myslím, že teď je to příliš riskantní dělat tyto druhy činností. Skype udělal to samé. Skype, samozřejmě, má zůstatek na účtu, uživatelské jméno a heslo že přístup k této rovnováhy. Byli ukládání všechny tyto informace v jasné, na mobilním zařízení. Mám několik příkladů zde o vytváření souborů že nemají správné oprávnění nebo zápis na disk a nemají jakékoliv šifrování stalo za to. Tato další oblast, Nebezpečný Sensitive Přenos dat, Jsem se zmiňoval o to několikrát, a protože veřejné Wi-Fi připojení na internet to je něco, co Apps nezbytně potřebují k tomu, a to je asi to, co vidíme pokazit nejvíce. Řekl bych, opravdu, myslím, že mám aktuální data, ale je to blízko na polovinu mobilních aplikací šroub se dělá SSL. Oni prostě nemají správně používat rozhraní API. Myslím, že všechno, co musíš udělat, je řídit se pokyny a používat rozhraní API, ale oni se věci, jako je nekontroluje, zda je neplatný certifikát na druhém konci, ne zkontrolujte, zda je druhý konec se snaží udělat protokol downgrade útoku. Vývojáři, chtějí, aby si jejich zaškrtávací políčko, hned? Jejich požadavek je použít k prodeji. Už používal toto k prodeji. Tento požadavek je nepoužívat to bezpečně prodat, a tak to je důvod, proč všechny aplikace, které používají protokol SSL pro zabezpečení dat jak je to se přenáší mimo zařízení skutečně musí být kontrolovány Ujistěte se, že byl správně implementován. A tady mám několik příkladů, kde můžete vidět aplikace mohou být pomocí protokolu HTTP místo HTTPS. V některých případech aplikace spadne zpět do HTTP pokud HTTPS nefunguje. Mám další hovor tady na Androidu, kde jsem vypnutou kontrolou certifikátu, takže se může stát, útok man-in-the-middle. Budou přijímány neplatný certifikát. Jedná se o všechny případy, kdy útočníci se bude moci dostat na stejné Wi-Fi připojení jako uživatel a přístup všech dat který je odesílán přes internet. A konečně poslední kategorie I zde je napevno heslo a klíče. Ve skutečnosti jsme vidět mnoho vývojářů používat stejné kódování styl že oni dělali, když stavěli web serverových aplikací, takže stavíte Java aplikační server, a oni kódujete klíč. No, když stavíte serverovou aplikaci, jo, kódujete klíč není dobrý nápad. To je obtížné změnit. Ale není to tak špatné, na straně serveru, protože kdo má přístup na straně serveru? Pouze správci. Ale pokud budete mít stejný kód a můžete ji vylije na mobilní aplikace Nyní každý, kdo má, že mobilní aplikace má přístup k tomuto hardcoded klíč, a my jsme vlastně vidět mnohokrát, a mám nějaké statistiky na tom, jak často vidíme to stalo. Ve skutečnosti to bylo v příkladu kódu, který MasterCard zveřejněného o tom, jak využít jejich služeb. Příklad kódu ukazuje, jak byste prostě vzít heslo a vložte jej do hardcoded řetězce tam, a my víme, jak vývojáři rádi zkopírovat a vložit kód, který umístíte když se snažíte něco udělat, tak si zkopírujte a vložte fragment kódu že dal jako příklad kódu, a máte nejistý aplikace. A tady máme pár příkladů. První z nich je ta, kterou jsme vidět hodně, kde se napevno dat přímo do adresy URL, která se dostane poslal. Někdy vidíme řetězec password = heslo. To je docela snadné odhalit, nebo řetězec heslo na BlackBerry a Android. Je to vlastně docela snadné zkontrolovat, protože téměř vždy jména developer proměnných, které se drží hesla nějaká změna hesla. Zmínil jsem se, že budeme dělat statické analýzy na Veracode, takže jsme analyzovali několik set aplikací Android a iOS. Vytvořili jsme veškeré modely z nich, a jsme schopni je kontrolovat pro různé zranitelnosti, zejména zranitelnost jsem mluvil, a mám některé údaje zde. 68,5% z Android aplikací jsme se podívali na porušil kryptografický kód, které pro nás, nemůžeme zjistit, zda jste se svou vlastní šifrovací rutiny, ne, že je to dobrý nápad, ale je to vlastně s použitím publikovaných rozhraní API které jsou na platformě, ale dělat je takovým způsobem, že crypto by být zranitelný, 68.5. A to je pro lidi, kteří jsou nám zašlete své žádosti ve skutečnosti, protože si myslí, že je to dobrý nápad udělat testování zabezpečení. Jedná se již lidé, kteří jsou pravděpodobně bezpečně myšlení, takže je to asi ještě horší. Nemluvil jsem o linky injekčního podávání ovládání. Je to něco, co zkontrolovat, ale to není tak riskantní záležitost. Úniku informací, to je místo, kde se citlivá data odesílána mimo zařízení. Zjistili jsme, že v 40% žádostí. Čas a stát, to jsou otázky, závod typu stav, obvykle dost těžko využít, tak jsem se o tom mluvit, ale my jsme se na to díval. 23% mělo problémy s SQL injection. Mnoho lidí neví, že mnoho aplikací použít malý malý SQL databáze na svém zadním konci pro ukládání dat. No, v případě, že údaje, které jste chytil přes síť má SQL injection útok řetězce v něm někdo může ohrozit zařízení přes to, a tak myslím, že jsme si asi 40% webových aplikací mají tento problém, , což je velký problém epidemie. Najdeme to 23% času v mobilních aplikacích a to pravděpodobně proto, že mnoho dalších webových aplikací pomocí SQL, než mobilní telefony. A pak jsme se ještě podívat na nějaké cross-site scripting, problémy autorizace, a pak pověření pro správu, který je místo, kde máte hardcoded heslo. V 5% žádostí vidíme, že. A pak máme nějaké údaje o iOS. 81% mělo problémy zpracování chyb. To je větší problém kvality kódu, ale 67% mělo kryptografické problémy, takže není tak špatné, jak Android. Možná, že API je trochu jednodušší, že příklad kódy trochu lepší na iOS. Ale stále velmi vysoké procento. Měli jsme 54% se úniku informací, asi 30% s chybami správy vyrovnávací paměti. To je míst, kde by mohly být problém poškození paměti. Ukazuje se, že to není tak velký problém pro využití na iOS, protože celý kód musí být podepsána, takže je to těžké pro útočníkovi spustit libovolný kód na iOS. Kvalita kódu, procházení adresářů, ale pak vedení zde na 14,6% pověření, tak horší, než na Android. Máme lidé, kteří nejsou správné zpracování hesla. A pak numerických chyb a buffer overflow, ty jsou více bude kvalitní Kód problémy na iOS. Tak to bylo pro mé prezentaci. Nevím, jestli jsme mimo čas, nebo ne. Já nevím, jestli tam je nějaké otázky. [Muž] Rychlý otázku kolem fragmentace a Android Market. Apple alespoň vlastní záplatování. Dělají dobrou práci dostat ho tam, zatímco méně, takže v Android prostoru. Málem jsi třeba útěk z vězení váš telefon stále aktuální s aktuální verzí Androidu. Jo, to je obrovský problém, a tak, pokud si myslíte, že o- [Muž] Proč nemůžeš to opakovat? Oh, jo, takže otázka je to, co o fragmentaci operačního systému na platformě Android? Jak to, že vliv na rizikovost těchto zařízení? A ve skutečnosti je obrovský problém, protože to, co se stane, je starší zařízení, když někdo přijde s jailbreak pro dané zařízení, v podstatě to je zvýšení úrovně oprávnění, a dokud nebude operační systém je aktualizován jakýkoliv malware pak můžete použít toto slabé místo zabezpečení, aby zcela ohrozit zařízení, a to, co vidíme na Android je, aby si nový operační systém Google má dát z operačního systému, a pak se na výrobce hardwaru musí ji přizpůsobit, a pak je dopravce ji upravit a doručit ji. Máte v podstatě tři pohyblivé zde dílů, a to otáčením na to, že dopravci nezajímá, a výrobci hardwaru nezajímá, a Google není jejich popichování dost něco udělat, takže v podstatě více než polovina zařízení tam, mají operační systémy, které mají tyto výsady eskalace zranitelnosti v nich, a tak pokud máte malware ve vašem zařízení se systémem Android je to mnohem větší problém. Dobře, děkuji vám. [Potlesk] [CS50.TV]