[Семинар] [Защитаващият Зад устройството: Mobile Application Security] [Chris Wysopal] [Harvard University] [Това е CS50.] [CS50.TV] Добър ден. Моето име е Крис Wysopal. Аз съм главен технически директор и съосновател на Veracode. Veracode е компания за сигурността на приложенията. Ние тестваме всички видове различни приложения, и това, което аз отивам да се говори за сигурност днес е мобилно приложение. Моето образование е, че сме били прави изследвания на сигурността за много дълго време, вероятно за толкова дълго, колкото и всички останали. Аз започнах в средата на 90-те години, и това беше едно време, което беше доста интересно, защото имахме промяна на парадигмата в средата на 90-те години. Всички компютър внезапно всеки е закачен до интернет, и след това имахме наченки на уеб приложения, и това е, което се фокусира върху много след това. Това е интересно. Сега имаме друга промяна на парадигмата се случва с компютри, която е преминаването към мобилни приложения. Аз чувствам, че е нещо подобно време след това беше в края на 90-те години когато бяхме разследва уеб приложения и намиране на дефекти като грешки за управление на сесията и SQL инжекция което наистина не е съществувал преди, и изведнъж те бяха навсякъде в уеб приложения, и сега много от времето прекарвам търси в мобилни приложения и гледаше какво става там, в дивата природа. Мобилните приложения са наистина ще бъде доминиращ изчислителна платформа, така че ние наистина трябва да прекарват много време, ако сте в охранителната индустрия с акцент върху уеб приложения. Налице са 29 млрд. мобилни приложения изтеглени през 2011 година. Това е да се прогнозира, 76000000000 приложения до 2014. Има 686 милиона устройства, които ще бъдат закупени тази година, така че това е мястото, където хората отиват да се прави  по-голямата част от техния клиент изчислителни върви напред. Аз говорех за вицепрезидент на Fidelity Investments преди няколко месеца, и той каза, че те просто видях повече трафик прави финансови транзакции от базата на клиентите си на тяхното мобилно приложение, отколкото на техния уебсайт, така широко се използват за уеб в миналото е бил проверка на вашите борсови котировки, управлението на вашия портфейл, и ние всъщност виждаме, че през 2012 г. превключване да бъде по-доминиращ на подвижната платформа. Разбира се, ако има ще бъде всяка престъпна дейност, всички злонамерен дейност, тя ще започне да се фокусира върху мобилна платформа с течение на времето, тъй като хората преминат към това. Ако се вгледате в мобилна платформа, да погледнем на рисковете от платформата, че е полезно да го съборят в различните слоеве, точно като теб ще го направя на настолен компютър, и си мислиш за различните слоеве, софтуер, операционна система, мрежовия слой, хардуер слой, и разбира се, има уязвимости на всички тези слоеве. Същото нещо се случва на мобилния. Но мобилни, изглежда, че някои от тези слоеве са по-зле. От една страна, на мрежовия слой е по-проблематична на мобилния защото много хора имат в своя офис или у дома кабелни връзки или имат сигурни Wi-Fi връзки, и с много мобилни устройства, вие очевидно сте извън дома или извън офиса много, а ако използвате Wi-Fi има може да се използва един несигурен Wi-Fi връзка, нещо, което е публична Wi-Fi връзка, Така че, когато ние мислим за мобилни приложения, ние трябва да вземем под внимание че мрежовата среда е по-рисковано за тези приложения , когато се използва Wi-Fi. И когато стигнем до повече от мобилните рисковете за кандидатстване ще разберете защо това е по-важно. Съществуват рискове на ниво хардуер за мобилни устройства. Това е област на текущите научни изследвания. Хората наричат ​​тези широколентови атаки или бейсбенд атаки къде атакува фърмуер, който слуша по радиото. Това са наистина страшни атаки, защото потребителят не трябва да правиш нищо. Можете да се удари много устройства в RF обхват наведнъж, и тя изглежда като всеки път, когато това изследване мехурчета тя бързо получава класифицирана където хора се спуснат в около и казват: "Ето, ни разказват за това, и моля да спрат да говорят за това." Има някои изследвания се случва в областта на широколентовия достъп, но тя изглежда да е много тихо затишие. Мисля, че това е повече от един тип нация състояние на научните изследвания, което се случва. На площ от активна изследователска дейност, обаче, е операционна система слой, и отново, това е различно, отколкото в света на настолните компютри защото в мобилното пространство имате тези екипи от хора, наречени Jailbreakers, и Jailbreakers са различни от обикновените изследователи уязвимост. Те се опитват да намерят уязвимости в операционната система, но причината те се опитват да намерят слаби места не е да пробие в машина на някой друг и да го компрометира. Това е да пробие в собствената си компютър. Те искат да пробие в собствения си мобилен, модифицира операционната система собствената си мобилен е така че те могат да работят приложенията, по техен избор и да промените нещата с пълни административни права, и те не искат да кажа на продавача за това. Те не си като изследовател по сигурността, която е бяла шапка изследовател сигурност което ще направи отговорен разкриване и кажи на продавача за това. Те искат да правят това изследване, а те всъщност искат да я публикувам в експлойт или руткит или код, Jailbreak, и те искат да го направят стратегически, като веднага след продавачът кораби на новата операционна система. Имате тази състезателна отношения с уязвимости OS ниво на мобилния, което мисля, че е доста интересна, и едно място, ние го виждаме е то го прави така, че има добра публикувани използват код там за уязвимости на ниво ядро, и видяхме тези, които действително се използват от хакерите. Това е малко по-различно от света на персоналните компютри. И след това на крайния слой е най-горния слой, приложния слой. Това е, което аз отивам да говоря днес. Другите слоеве съществуват и други слоеве играят в играта, но аз съм най-вече ще говорим за това, което се случва в приложния слой където код работи в пясъчника. Тя не разполага с административни привилегии. Тя трябва да използва API-тата на устройството, но все пак, много от зловреден дейност и много риск може да се случи в този слой защото това е слой, където цялата информация е. Apps могат да имат достъп до цялата информация за устройството ако те имат правилните разрешения, и те могат да имат достъп до различни сензорите на устройството, GPS сензор, микрофон, камера, това, което имате. Въпреки, че ние сме само говори за най-приложния слой ние имаме много на риск там. Другото нещо, което е различно за мобилна среда е всички играчи на операционната система, било то BlackBerry или Android или IOS или Windows Mobile, всички те имат възможност за фина модел разрешение, и това е един от начините, по които те са вградени в операционната система идеята, че това не е толкова рисковано, колкото си мислиш. Въпреки, че имате всичките си контакти там, цялата си лична информация, имате вашите снимки, имате си местоположение там, сте съхраняване банковата си щифт за автоматично влизане там, че е безопасно, защото приложения трябва да имат определени права, за да получите в определени части на информация за устройството, и потребителят трябва да бъде представен с тези разрешения и казват нищо. Проблемът с него е, потребителят винаги казва нищо. Като човек, сигурността, знам, че може да напомни на потребителя, кажа нещо наистина лошо ще се случи, искаш това да се случи? И ако те са в треска, или има нещо, което наистина примамливо от другата страна на това, като игра ще бъде инсталиран, че те чаках, те ще кликнете наред. Ето защо аз казвам на моя слайд тук само за да ме хвърлят на птиците при прасета, и можете да видите на слайда тук има примери за BlackBerry разрешение кутия. Той казва: "Моля, задайте разрешенията за кандидатстване BlackBerry Travel след като щракнете върху бутона по-долу, "и в общи линии на потребителя е просто ще кажа, задаване на разрешения и спаси. Ето един бърз Android, където тя показва неща, и тя всъщност поставя нещо, което изглежда почти като предупреждение. Тя има един вид добив знак там казват мрежова комуникация, телефонно обаждане но потребителят ще кликнете инсталирате, нали? И тогава един Apple е напълно безвреден. Тя не дава каквито и да било предупреждение. Това е просто Apple би искал да използва текущото ви местоположение. Разбира се, че започваш да кликнете наред. Налице е този фин модел разрешение, и приложения трябва да имат явна файл, в който те декларират разрешенията, които са им необходими, и че ще се показва на потребителя, и потребителят ще трябва да кажа, че предоставят тези разрешения. Но нека бъдем честни. Потребителите просто ще кажа, винаги добре. Нека хвърлим един бърз поглед на разрешенията, че тези приложения са подали заявление за и някои от разрешенията, които са там. Тази компания Praetorian направихме проучване през миналата година от 53 000 приложения, анализирани в Android Market и трети страни, пазарите, така че всичко това е Android. И средната ап поиска три разрешения. Някои приложения поискани 117 разрешения, така че явно това са много фина зърнеста или твърде сложна за потребителя да разбере ако те са представени с този апартамент, който се нуждае от тези 117 разрешения. Това е като на лицензионното споразумение с краен потребител, който е дълъг 45 страници. Може би скоро те ще имат възможност, когато това е като отпечатване на разрешенията и да ми изпратите имейл. Но ако се вгледате в някои от най-интересните разрешения 24% от приложения, които са изтеглени от 53000 поисканата информация от GPS устройството. 8% четат контактите. 4% изпраща SMS, а 3% получил SMS. 2% аудио сигнал, записан. 1% обработени изходящи повиквания. Не знам. Не мисля, че 4% от приложенията в магазина App наистина трябва да изпратите SMS текстови съобщения, така че аз мисля, че това е намек, че нещо нередно се случва. 8% от приложенията трябва да се чете вашия списък с контакти. Това вероятно не е необходимо. Една от другите интересни неща за разрешения е Ако свържете в споделени библиотеки в молбата си тези, които наследяват разрешенията на заявлението, така че, ако приложението ви се нуждае списъка с контакти или се нуждае от местоположението GPS да функционира и в който се свържете с рекламна библиотека, например, че рекламата библиотека също ще бъде в състояние за достъп до контактите и също така да бъде в състояние за достъп до местоположението GPS, и на разработчика на приложението, не знае нищо за кода, който се кандидатира в рекламната библиотеката. Те просто свързване, че в тъй като те искат да се реализират техните ап. Това е мястото, където и аз ще говоря за някои примери за това с приложение, наречено Pandora където разработчик заявление може несъзнателно да има изтичане на информация от своите потребители, защото на библиотеките като са свързани инча Проучване на пейзажа там, гледайки всички различни приложения , които са били докладвани в новините като злонамерени или правят потребителите нещо, което не са искали и след извършване на проверка на много приложения-правим много статичен двоичен анализ на мобилни приложения, така че ние сме ги инспектира и погледна кода себе си- стигнахме до това, което ние наричаме нашия топ 10 списък на рискови поведения в приложения. И това е разбит на две секции, зловреден код, така че това са лоши неща, че приложенията могат да се правят, че има вероятност да бъде нещо, което един злонамерен индивид е специално поставени в заявлението, но това е малко по-размита. Тя може да бъде нещо, което разработчик мисли е добре, но в крайна сметка се мисли като злонамерен от страна на потребителя. И след втората част е това, което ние наричаме кодиране уязвимости, и това са неща, където предприемачът основно се правят грешки или просто не може да разбере как да пише ап сигурно,  и това е пускането на ползвателя на ап на риск. Отивам да мине през тях в подробности и да дава някои примери. За справка, аз исках да се поставят на OWASP мобилен топ 10 на списъка. Това са въпроси 10, че група на OWASP, Проектът на Open Web Application Security, те имат работна група работи върху мобилен топ 10 списък. Те имат един много известен в Мрежата топ 10 списък, които са в топ 10 рискови неща, които могат да имат в уеб приложение. Те правят едно и също нещо за мобилни, и списъка им е малко по-различна от нашата. 6 от 10 са едни и същи. Те имат четири, които са различни. Мисля, че те имат по-малко от един различен подход на на риска в областта на мобилните приложения, където много от техните проблеми са наистина как заявлението се съобщава на гърба в края на сървъра или това, което се случва на гърба в края на сървъра, не толкова много приложения, които имат рисково поведение, че са само обикновени приложения клиент. Тези в червено тук са разликите между списъците 2. И някои от моите изследвания екип е всъщност допринесоха за този проект, така че ще видим какво се случва с течение на времето, но мисля, че тук е храна за вкъщи ние наистина не знам какво топ 10 списъка е в мобилни приложения, защото те са наистина само около продължение на 2 или 3 години, и не е имало достатъчно време наистина да проучи операционните системи и това, което те са в състояние да, и не е имало достатъчно време за злонамерен общност, ако щете, да са прекарали достатъчно време се опитва да атакува потребители чрез мобилни приложения, така че аз очаквам тези списъци, за да се променят малко. Но за сега, това са най-добрите 10 неща, които да се тревожим. Може би се чудите на мобилния страна, където прави злонамерен мобилен код- как ги пуснем на устройството? North Carolina State има проект, наречен Genome Project на Mobile Malware където те се събират най-много мобилен зловреден софтуер, тъй като те може и да го анализира, и те са разбити векторите инжекционни че мобилният зловреден софтуер използва, и 86% използват техника, наречена препакетиране, и това е само за Android платформата наистина може да се направи това преопаковане. Причината е Android код е изграден с на Java байт код, наречен Dalvik, който е лесно decompilable. Какво лошо момче може да направите, е да вземат Android приложение, декомпилира него, поставете им зловреден код, компилирате него, и след това го сложи в магазина App, което претендира да бъде нова версия на тази заявка, или просто може би промяна на името на приложението. Ако това беше някаква игра, да промените името леко, и така това преопаковане е как 86% от мобилен зловреден софтуер получава разпределени. Има и друга техника, наречена актуализация, която е много подобен на преопаковане, но всъщност не поставяме зловреден код инча Това, което правя е да ви постави в малка механизъм актуализация. Можете декомпилира, ще ви постави в механизъм за актуализация, и ти го прекомпилирате, и след това, когато приложението работи, той дърпа надолу зловреден софтуер върху устройството. До момента по-голямата част са тези две техники. Там не е наистина много свалени DRIVE-засади или устройството, които се изтеглят на мобилни телефони, което би могло да бъде като фишинг атака. Хей, вижте това наистина готин сайт, или ще трябва да отидете на този уеб сайт и попълнете този формуляр да запазите продължава правиш нещо. Тези, които са фишинг атаки. Същото може да се случи на подвижната платформа, където те сочи към мобилно приложение, за да изтеглите, кажете "Здравейте, това е банка на Америка." "Ние виждаме, че използвате това приложение." "Трябва да изтеглите този друго приложение." Теоретично, че може да работи. Може би тя просто не се използва достатъчно, за да определи дали тя е успешна или не, но те открили, че се използва по-малко от 1% от времето на тази техника. По-голямата част от времето, което е наистина преопаковани код. Има и друга категория, наречена самостоятелен когато някой просто изгражда чисто ново заявление. Те изграждат приложение, което претендира да бъде нещо. Това не е препакетиране на нещо друго, и че има зловреден код. Това се използва 14% от времето. Сега аз искам да говоря за това, което е най-злонамерен код правиш? Един от първите зловреден софтуер там вие може да обмисли един шпионски софтуер. По същество това шпионира потребителя. Тя събира имейли, SMS съобщения. Тя се включва микрофона. Тя жъне книгата за контакт, и тя го праща на някой друг. Този тип шпионски софтуер съществува на компютъра, така че това прави перфектни смисъл за хората да се опитват да направят това на мобилните устройства. Един от първите примери за това е програма, наречена тайна SMS репликатор. Тя беше в Android Marketplace преди няколко години, и идеята беше, ако сте имали достъп до нечий Android телефон че искаш да шпионира, така че може би това е вашият съпруг или вашият значими други и искате да шпионира текстови съобщения си, можете да изтеглите това приложение и да го инсталирате и да го конфигурирате да изпратите SMS текстово съобщение до вас с копие на всеки SMS текстово съобщение, което имам. Това очевидно е в нарушение на условията за ползване на App Store, и това бе отстранен от Android Marketplace в рамките на 18 часа да е там, толкова много малък брой хора са изложени на риск заради това. Сега, мисля, че ако програмата се нарича нещо, може би малко по-малко провокативен като Secret SMS Replicator то вероятно щеше да работи много по-добре. Но това беше нещо очевидно. Едно от нещата, които можем да направим, за да се определи дали приложения имат това поведение, че ние не искаме е да се запознаят кода. Това всъщност е много лесно да се направи на Android, защото можем да декомпилира приложения. На IOS можете да използвате Disassembler като IDA Pro да погледнем какво АПИС приложението се обажда и какво прави. Писахме нашата собствена двоичен статичен анализатор за нашия код и ние правим това, и какво от това бихте могли да направите, е да може да се каже се устройството прави нищо, което е основно шпионира мен или ме проследяване? И аз имам няколко примера тук на iPhone. Този първи пример за това е как да получите достъп до UUID на телефона. Това всъщност е нещо, което Apple е просто забранена за нови приложения, но стари приложения, които може да са работещи на телефона ви все още могат да направят това, и така, че уникален идентификатор може да се използва за да следите в много различни приложения. На Android, имам тук един пример за получаване на място на устройството. Можете да видите, че ако това API повикване е там, че ап е проследяване, и можете да видите дали това е все чудесно местоположение или груби място. И след това на дъното тук, аз имам един пример за това как на BlackBerry приложение може да има достъп до имейл съобщения в пощенската си кутия. Те са от вида на неща, които могат да се запознаят, за да видите ако приложението се правят тези неща. Втората голяма категория от злонамерено поведение, и това е може би най-голямата категория сега, е неоторизирано набиране, неразрешено премия SMS текстови съобщения или неоторизирани плащания. Друго нещо, което е уникално за телефона се, че устройството е закачен към сметка на сметките, и тогава, когато дейностите се случват по телефона тя може да създаде такси. Можете да закупите неща по телефона, и когато изпращате премия SMS текстово съобщение, което всъщност дава пари на титуляра на сметката на телефонния номер, от друга страна. Те са създадени, за да получите борсови котировки или да получите своя дневен хороскоп или други неща, но те могат да бъдат създадени, за да поръчате продукт чрез изпращане на SMS текст. Хората дават пари на Червения кръст чрез изпращане на текстово съобщение. Можете да дам $ 10 за начин. Нападателите, това, което са направили, е учредено от тях, сметки в чужди страни, и те вгради в зловреден софтуер че телефонът ще изпрати премия SMS текстово съобщение, се каже, по няколко пъти на ден, а в края на месеца, ти осъзнаваш, че си прекарал десетки или може би дори стотици долари, и те си тръгне с парите. Това стана толкова лошо, че това е най-първото нещо, че Android Marketplace или Google място-това е Android Marketplace в момента, и това е сега Google Play-първото нещо, което Google започна проверка за. Когато Google започна разпространението на Android приложения в техния App Store те казаха, че не са били ще проверява за нищо. Ще дърпам приложения веднъж сме били уведомени, че са разбити нашите условия на услугата, но ние няма да се проверява за нищо. Е, преди около година тя стана толкова лошо с тази премия SMS текстово съобщение на зловреден софтуер че това е най-първото нещо, което те започнаха проверка за. Ако едно приложение може да изпрати SMS текстови съобщения те допълнително ръчно контролират това приложение. Те изглеждат за APIs, че наричат ​​това, и сега, тъй като след това Google е разширен, но това беше първото нещо, което те започнаха да търсят. Някои други приложения, които направиха някои SMS текстови съобщения, този Android Qicsomos, предполагам, че се обади. Имаше този ток събитие по мобилния си телефон, когато това CarrierIQ излезе като шпионски софтуер постави на устройството от превозвачите, така че хората искаха да знаят дали си телефон е уязвима към това, и това е безплатно приложение, което изпитва това. Е, разбира се, това, което направих, беше това приложение го е изпратил Премиум SMS текстови съобщения, така чрез тестване, за да видите, ако сте заразени с шпионски софтуер сте заредили злонамерен софтуер на вашето устройство. Видяхме едно и също нещо се случи в последния Super Bowl. Имаше една фалшива версия на Madden футболен мач , който е изпратил Премиум SMS текстови съобщения. То всъщност се опита да създаде бот мрежа твърде на устройството. Тук имам някои примери. Интересно е, че Apple е доста интелигентен, и те не позволяват на приложенията да изпращат SMS текстови съобщения. Не ап може да го направи. Това е чудесен начин да се отърват от целия клас на уязвимост, но на Android можете да го направите, и разбира се, на BlackBerry можете да го направите също. Интересно е, че на BlackBerry всичко, което е нужно е интернет разрешения да изпратите SMS текстово съобщение. Другото нещо, наистина, че ние търсим когато търсим да видим дали нещо е злонамерен е просто някакъв вид неоторизиран дейността на мрежата, като погледнете в дейността на мрежата приложението се предполага, че трябва да има своята функционалност, и погледнете в тази друга мрежова активност. Може би един апартамент, да работи, трябва да получи данни през HTTP, но ако го прави нещата по имейл или SMS или Bluetooth или нещо подобно сега, че ап може да бъде потенциално опасен, така че това е друго нещо, което можете да инспектира за. И на този слайд тук имам някои примери за това. Друго интересно нещо, което видяхме със злонамерен софтуер се е случило през 2009 г., и това се случи в голяма начин. Аз не знам дали това се е случвало толкова много оттогава, но това е един апартамент че представил за друго приложение. Имаше един набор от приложения, и това беше наречен атаката 09Droid, и някой реши, че е имало много малки, регионални и средни банки че не са имали онлайн банкиране приложения, така че това, което направих, беше те построяват около 50 онлайн банкови приложения че всички те направих, беше да вземе потребителското име и паролата и ви пренасочи към сайта. И така, те поставят всички тези нагоре в Google Marketplace, в Android Marketplace, и когато някой търси да се види дали тяхната банка имаше заявление, че ще се намери фалшив заявление, който събира на техните пълномощия и след това да ги пренасочва към уебсайта си. Начинът, по който това става в действителност-приложения са били там в продължение на няколко седмици, и там са хиляди и хиляди сваляния. Начинът това излезе на бял свят беше някой е имал проблем с едно от приложенията, и те наричат ​​своята банка, и те призоваха за поддръжка на клиенти онлайн банката си и каза: "Аз съм като проблем с мобилния си телефон банкиране." "Можеш ли да ми помогнеш?" И те казаха: "Ние не разполагат с мобилно банкиране приложение." Това започна разследването. Тази банка, наречена Google, а след това Google погледна и каза: "Уау, на същия автор е написал 50 банкови приложения", и да ги свали. Но със сигурност това може да се случи отново. Има списък на всички различни банки тук , които са били част от тази измама. Другото нещо, което един апартамент може да направите, е да присъства на ПС на друго приложение. Докато той се движи тя може да се появи на Facebook UI. Тя казва, че трябва да се сложи в потребителското си име и парола, за да продължи или представени всяко потребителско име и парола UI за уебсайт че може би потребителят използва само за да се опита да подвежда потребителя в поставянето на техните пълномощия инча Това е наистина една права, успоредна на имейл фишинг атаки когато някой ви изпрати имейл съобщение и ви дава основно фалшив UI за уебсайт , че имате достъп до. Другото нещо, което търсим в злонамерен код е модификация на системата. Можете да търсите за всички API разговори, които изискват корен привилегия да се изпълни правилно. Промяна на уеб прокси на устройството ще бъде нещо, което заявление не трябва да бъде в състояние да направи. Но ако заявлението е код в там, за да направи това вие знаете, че това вероятно е злонамерено приложение или много голяма вероятност да бъде злонамерено приложение, и така, какво ще се случи, е, че ап ще има някакъв начин на ескалацията привилегия. Тя ще има някаква ескалация привилегия експлоатира в заявлението, и след това, след като тя ескалира привилегии той ще направи тези промени системата. Можете да намерите зловреден софтуер, който има ескалация привилегия в него дори без да знае как ескалацията привилегия подвиг ще се случи, и това е хубаво, лесен начин да търсят зловреден софтуер. DroidDream е може би най-известната част на Android зловреден софтуер. Мисля, че той се отразява на около 250 000 потребители в продължение на няколко дни преди това е намерено. Те преопаковани 50 фалшиви приложения, ги поставя в Android App Store, и по същество той използва Android Jailbreak код, за да ескалира привилегии и след това да инсталирате на командването и контрола и да се обърнат всички жертви в бот мрежа, но може да са открили тази ако сте били сканиране на заявлението и просто търсите API повиквания, на които се изисква корен разрешение да изпълни правилно. И там е един пример тук имам който се променя на пълномощника, и това действително е достъпна само за Android. Можете да видите, аз ти давам много примери за Android защото това е мястото, където най-активния зловреден софтуер екосистема е защото това е много лесно за един хакер да получи зловреден код в Android Marketplace. Това не е толкова лесно да се направи, че в App Store Apple защото Apple изисква разработчиците да се идентифицират и да се запишете кода. Те всъщност се провери кой си, и Apple е всъщност щателно разглеждане на молбите. Ние не виждаме много вярно зловреден софтуер, когато устройството е все компрометирана. Аз ще говоря за някои примери, когато това е наистина, че неприкосновеността на личния живот става все компрометирана, и това е, което наистина се случва на устройството Apple. Друго нещо, което да изглежда за злонамерен код, рисковано код в устройства е логически или времеви бомби, бомби със закъснител и вероятно са много по-лесно да се търси от логически бомби. Но с бомби със закъснител, какво можете да направите, е да можете да погледнете за места в кода, където се изпитва с време или абсолютна време се търсят преди определена функционалност в приложението се случва. И това може да се направи, за да се скрие тази дейност от страна на потребителя, така че това се случва късно през нощта. DroidDream направил цялата си дейност между 23:00 и 8 часа местно време да се опитам да го направя, докато потребителят не може да се използва тяхното устройство. Друга причина за това е, ако хората използват поведенчески анализ на заявление, използвате приложението в пясък, за да видите какво е поведението на заявлението, те могат да използват времето, базирани логика да направим дейността когато приложението не е в пясъчника. Например, един апартамент, магазин като Apple работи на заявлението, но те вероятно не тичам всяка молба за, да речем 30 дни преди одобряването му, така че можете да сложите логика в кандидатурата си, че каза, добре, само ги вършат лошо нещо след 30 дни е отишло от или след 30 дни след датата на публикуване на заявлението, и че може да помогне на злонамерен код се скрие от хората проверяващите за него. Ако анти-вирусни компании вървят нещата в пясъчници или ап самите магазини са това може да помогне крия, че от тази проверка. Сега, на обратната страна на това е, че е лесно да се намери с статичен анализ, Така че всъщност проверка на кода можете да търсите за всички места когато прилагането тества времето и да инспектира този начин. И тук имам няколко примера на тези три различни платформи как може да се провери времето за по-мейкъра ап така че да знаете какво да търсите, ако сте проверка на приложението статично. Аз просто премина през куп от различни злонамерени действия които сме виждали в дивата природа, но кои от тях са най-разпространени? Това същото проучване от North Carolina State Mobile Genome Project публикува някои данни, и там са основно четири области , че те видях, където имаше голяма активност. 37% от приложенията направих ескалация привилегия, така че те са имали някакъв вид Jailbreak код вътре когато те се опитаха да ескалира привилегии, така че те биха могли API команди се изпълняват като операционната система. 45% от приложенията там направих премия SMS, така че това е огромен процент, който се опитва директно да осребрите. 93% направих дистанционно управление, така че те се опитаха да се създаде бот мрежа, мобилен бот мрежа. И 45% събрани идентифицираща информация като телефонни номера, UUID на, GPS местоположение, потребителски акаунти, и това добавя до повече от 100, защото повечето зловреден софтуер се опитва да направи някои от тези неща. Отивам да преминете към втората половина и да поговорим за уязвимости в кода. Това е втората половина на рискова дейност. Това е мястото, където по същество разработчик прави грешки. A законен разработчик написването на законен ап прави грешки или е невеж на рисковете от мобилната платформа. Те просто не знаят как да направят сигурна мобилно приложение, или понякога разработчикът не му пука за въвеждане на потребителя в риск. Понякога част от техния бизнес модел може да бъде прибирането на лична информация на потребителя. Това е нещо като друга категория, и това е защо някои от този злонамерен срещу законните започва да кърви над защото има разлика в мненията между това, което потребителят иска и това, което потребителят счита рисковано и какво прилагането разработчик счита рисковано. Разбира се, това не е данни на разработчика приложение в повечето случаи. И накрая, друг начин това се случва, е един разработчик може да се свърже в споделена библиотека, която има слаби места или това рисково поведение в него без знанието на тях. Първата категория е чувствителен изтичане на информация, и това е, когато приложението събира информация като местоположение, информация, адресна книга, информация собственик и го изпраща на разстояние от устройството. И след като тя е на разстояние от устройството, ние не знаем какво се случва с тази информация. Тя може да се съхранява несигурно от разработчика на приложението. Виждали сме разработчиците на приложения да се излага на риск, и данните, които те са съхраняване получава взети. Това се случи преди няколко месеца, за да разработчик във Флорида където огромен брой-е UUID на IPad и имена на устройства бяха пропускам, защото някой, мисля, че е анонимен, претендира да направите това, е проникнал в сървърите на това на разработчика и е откраднал милиони IPAD UUID на и компютърни имена. Не е най-рисковано информацията, но какво ще стане ако това е съхранението на потребителски имена и пароли и домашни адреси? Има много приложения, които съхраняват такава информация. Рискът е там. Другото нещо, което може да се случи е, ако предприемачът не се грижи за осигуряване на канала за данни, и това е още една голяма уязвимост аз отивам да се говори за, че данните се изпраща в ясен. Ако потребителят е в обществена Wi-Fi мрежа или някой се душат в интернет някъде по пътя, който данни е изложена. Един много известен случай на изтичане на информация, това се е случило с Pandora, и това е нещо, което ние проучени при Veracode. Чухме, че е имало, мисля, че беше на Federal Trade Commission разследване става с Пандора. Ние казахме: "Какво става там? Нека започнем копаят в прилагането на Пандора." И това, което е определено е заявлението Pandora събрана пола и възрастта си, и тя също преглеждана вашия GPS местоположение, както и прилагането на Пандора Направих това, за което те казаха бяха основателни причини. Музиката, която те играеха-Pandora е стрийминг на музика ап- музиката те играеха е лицензирана само в Съединените щати, така че те трябваше да се провери, за да се съобразят с техните лицензионни споразумения, които те са имали за музика, която потребителят е в Съединените щати. Те също искаха да се съобразят с родителски консултативен около език за възрастни в областта на музиката, и така тя е доброволна програма, но те искаха да се съобразят с това и не играе изрични текстове за деца на 13 и по-малко. Те имаха основателни причини за събиране на тези данни. Тяхното приложение е имал разрешения да го направя. Потребители, че това е законно. Но какво се е случило? Те свързани в три или четири различни рекламни библиотеки. Сега всички изведнъж всички тези рекламни библиотеки получавате достъп до същата тази информация. Рекламни библиотеки, ако се вгледате в кода в рекламните библиотеки това, което те правят, е посочена във всяка обява библиотека казва "Дали ми ап разрешение да получи GPS местоположение?" "О, тя не? Добре, кажи ми местоположението GPS." Всяка една реклама библиотека прави това, и ако приложението не разполага с GPS разрешение тя няма да бъде в състояние да го получи, но ако това се случи, то ще го получи. Това е мястото, където бизнес моделът на рекламните библиотеки се противопоставя на личния живот на потребителя. И е имало проучвания там, че ще кажете, ако знаете, че възрастта на лице, и вие знаете, тяхното местоположение където те спят през нощта, защото имат своите GPS координати докато те може би са заспали, вие знаете точно кой е този човек е защото може да се определи кой член от домакинство е, че този човек. Наистина това е идентифицирането на рекламодателите точно кой сте, и тя изглежда като че ли е законен. Аз просто искам моя стрийминг на музика, и това е единственият начин да го получи. Е, ние се насочихме това. Написахме това в няколко блог постове, и се оказа, че някой от списание Rolling Stone прочетете един от нашите блог постове и е написал свой собствен блог в Rolling Stone за него, и още на следващия ден Pandora, че това е добра идея за премахване на рекламни библиотеки от тяхното прилагане. Доколкото знам, те са най-те само трябва да бъдат похвалени. Мисля, че те са единствената Freemium вида на приложение, което е сторил това. Всички други Freemium приложения имат същото това поведение, така че сте се погрижили да се мисли за какъв вид данни, което дава тези Freemium приложения, защото това е всичко ще рекламодатели. Praetorian също е направил проучване за споделени библиотеки и каза: "Нека да погледнем какво сподели библиотеки са най-добрите споделени библиотеки," и това беше данните. Те анализират 53 000 приложения, и номер 1 споделена библиотека е AdMob. Това беше всъщност в 38% от приложенията там, така че 38% от приложенията, които използвате са вероятно прибиране на вашата лична информация и да го изпратите на рекламните мрежи. Apache и Android са били 8% и 6%, и след това тези други хора надолу към дъното, Google обяви, вихрушка, Mob City и Millennial Media, това са всички рекламни фирми, и след това, достатъчно интересно, 4% свързан в Facebook библиотеката вероятно да се направи идентификация чрез Facebook така че приложението може да удостовери във Facebook. Но това също така означава, корпорацията Facebook контролира код че бяга в 4% от Android мобилни приложения там, и те да имат достъп до всички данни, че това приложение има разрешение да получите на адрес. Facebook по същество се опитва да продават рекламно пространство. Това е техния бизнес модел. Ако се вгледате в цялата тази екосистема с тези разрешения и споделени библиотеки ви започват да се види, че имате много на риск в предполагаемо легитимна кандидатура. Същото нещо подобно, което се случи с Pandora случило с приложение, наречено Path, и път, че те са били полезни, приятелски разработчици. Те са просто се опитва да ви даде по-голямо потребителско изживяване, и се оказа, че без подканване на потребителя или казва на потребителя нещо- и това се случи на iPhone и Android, на Пандора ап е на iPhone и Android- че прилагането на Path се измъкна цялата си адресна книга и да го качите на Path само когато сте инсталирали и изтича на заявлението, и те не ви кажа за това. Те мислеха, че това е наистина полезно за вас да бъде в състояние да споделя с всички хора в адресната книга че използвате приложението Path. Е, очевидно Path, че това е чудесно за тяхната компания. Не е толкова голяма, за потребителя. Трябва да се мисли, че това е едно нещо, ако може би един тийнейджър е използване на тази молба и техните десетки приятели са там, но какво ще стане ако това е изпълнителен директор на компания, която инсталира Path и тогава изведнъж си цялата адресна книга е там горе? Ще получите много потенциално ценна информация за контакт за много хора. Един репортер от New York Times, че може да сте в състояние да получи телефонния номер за бивши президенти от тяхната адресна книга, така че явно много чувствителна информация, получава прехвърлени с нещо подобно. Имаше такава голяма клапа за това, че Path извини. Те промениха своята ап, и то дори повлияха Apple. Apple каза: "Отиваме да принуди ап продавачите да подтикне потребителите ако те започват да събират цялата си адресна книга. " Тя изглежда като това, което се случва тук е когато има едно голямо нарушение на личния живот и го прави пресата ние виждаме промяна там. Но, разбира се, има и други неща там. Заявлението LinkedIn реколти вашите записи в календара, но Apple не прави потребителя бъдете подканени за това. Записи от календара може да имат чувствителна информация в тях също. Къде отиваш да се тегли чертата? Това е наистина вид на една развиваща място където има наистина няма по-добър стандарт там за потребителите да разберат, когато информацията им се случва да бъдат изложени на риск и когато те ще знаят, че е е приемана. Писахме един апартамент в Veracode наречена Adios, и по същество тя да ви е позволено да се отбележи приложението в директорията на вашия качи и гледам на всички приложения, които са били прибирането пълния си адресна книга. И както можете да видите на този списък тук, Angry Birds, AIM, AroundMe. Защо Angry Birds се нуждаем от вашата адресна книга? Аз не знам, но го прави по някакъв начин. Това е нещо, което много, много приложения го правят. Можете да инспектира кода за това. Има точно определени APIs за iPhone, Android и BlackBerry за да получите най-адресната книга. Вие наистина може лесно да проверява за това, и това е, което сме направили в нашето заявление Adios. Следващата категория, Unsafe Sensitive за съхранение на данни, е нещо, където разработчиците да вземат нещо като карфица или номер на сметка или парола и я съхранявайте на чисто върху устройството. Дори по-лошо, те биха могли да го съхранява в район по телефона което е глобално достъпни, като SD карта. Виждаш ли това по-често на Android, тъй като Android дава възможност за SD карта. IPhone устройства, които не го правят. Но ние дори видях това да се случи в приложение Ситигруп. Тяхната онлайн банкиране съхранява номерата на сметките несигурно, само на чисто, така че ако сте загубили вашето устройство, по същество сте загубили вашата банкова сметка. Ето защо аз лично не правя банкиране на моя iPhone. Мисля, че е твърде рисковано точно сега да правя тези видове дейности. Skype направи същото. Skype, разбира се, има баланс по сметка, потребителско име и парола че достъпът на този баланс. Те бяха съхраняване на цялата тази информация в ясен на мобилното устройство. Имам някои примери тук за създаване на файлове , които нямат необходимите права или писане на диск и не се налага всеки криптиране случи за това. Следващата област, Unsafe Sensitive за предаване на данни, Аз споменах за това на няколко пъти, и заради общественото Wi-Fi това е нещо, което приложения абсолютно трябва да направите, и това е може би това, което виждаме да се обърка най-много. Бих казал-всъщност, аз мисля, че имам най-актуалните данни, но това е близо половината от мобилните приложения прецакаш правиш SSL. Те просто не използвайте APIs правилно. Искам да кажа, всичко, което трябва да направите е да следвате инструкциите и да използват API-тата, но те такива неща не се проверява дали там е невалиден сертификат на другия край, не проверите дали другия край се опитва да направи протокол понижаване атака. Разработчиците, които искат да им поле, нали? Тяхното изискване е да се използва това, за да продават. Те използват това, за да продават. Изискването не е да се използва това, за да продават сигурно, И така, това е защо всички приложения, които използват SSL за осигуряване на данни тъй като са предадени изключите устройството наистина трябва да бъдат инспектирани да се уверите, че е внедрен правилно. И тук имам някои примери, в които можете да видите на заявление Може да се използва HTTP вместо HTTPS. В някои случаи приложения ще паднат обратно към HTTP ако HTTPS не работи. Имам друг разговор тук, на Android, където съм забранил да провери сертификата, така нападение човек-в-средата може да се случи. An невалиден сертификат ще бъде приета. Това са всички случаи, когато нападателите ще бъдат в състояние да се кача на една и съща Wi-Fi връзката като потребител и достъпа на всички данни, това е да се изпращат по интернет. И накрая, последната категория имам тук е кодиран парола и ключове. Ние всъщност виждам много разработчиците използват една и съща кодиране стил че те е направил, когато те са били изграждане на уеб приложения за сървър, така че те са изграждането на приложение Java сървър, и те са hardcoding ключа. Е, когато сте изграждане на сървър на приложения, да, hardcoding ключът не е добра идея. Това го прави трудно да се промени. Но това не е толкова лошо на сървъра страна, защото, който има достъп до сървъра страна? Само администратори. Но ако вземете същия код и го излива към мобилно приложение Сега всеки, който има, че мобилно приложение с достъп до кодиран ключ, и ние действително видите това много пъти, и аз имам някои статистически данни от това колко често ние виждаме това да се случи. То всъщност е в пример код, който MasterCard публикува за това как да използват техните услуги. Примерът код показва как точно ще вземе паролата и го сложи в кодиран низ точно там, и ние знаем как разработчиците обичат да копирате и поставите код откъси когато те се опитват да направят нещо, така че можете да копирате и поставите на кодовия фрагмент че те дадоха като пример код, а вие имате един несигурен приложение. И тук имаме някои примери. Това първо един е една ние виждаме много, където те hardcode правото на информация в URL, които се предават. Понякога виждаме низ парола = паролата. Това е доста лесно да се открие, или низ парола на BlackBerry и Android. Всъщност е доста лесно да проверите за, защото почти винаги имената разработчик на променлива, която държи паролата някаква вариация на парола. Споменах, че правим статичен анализ на Veracode, така че ние анализирахме няколко стотин Android и IOS приложения. Ние сме изградили пълни модели на тях, а ние сме в състояние да ги сканирате за различни уязвимости, особено на уязвимости, за който говорех, и аз имам някои данни тук. 68,5% от Android приложения ще погледна е счупил криптографски код, което за нас, ние не може да се открие, ако сте направили своя собствена крипто рутинни, Не, че това е добра идея, но това е действително използване на публикуваните APIs , които са на перона, но ги прави по такъв начин, че Crypto ще бъдат уязвими, 68.5. И това е за хора, които ни изпращат своите заявления в действителност, защото те мислят, че това е добра идея да се направи изследване на сигурността. Те вече са хора, които са най-вероятно мислят сигурно, така че е вероятно дори по-лошо. Аз не говоря за контролна линия инжекция фуражи. Това е нещо, което се проверява за, но това не е толкова рисковано проблем. Изтичане на информация, това е мястото, където чувствителни данни е изгонването на устройството. Открихме, че в 40% от приложения. Време и държава, това са въпроси от типа състояние раса, обикновено доста трудно да се използват, така че аз не говоря за това, но ние го погледна. 23% е имал проблеми SQL инжекция. Много хора не знаят, че много приложения използвате малка малко SQL база данни на гърба си край за съхранение на данни. Е, ако данните, които взимаме по мрежата има SQL инжекция атака струни в нея някой може да компрометира устройството чрез които, и затова мисля, че ние откриваме около 40% от уеб приложенията имат този проблем, което е огромен проблем епидемия. Откриваме я 23% от времето в мобилни приложения и това е може би, защото много повече уеб приложения използват SQL, отколкото мобилен телефон. И тогава ние все още виждаме известна кръстосана сайт скриптове, въпроси за разрешаване, и след това акредитивни писма управление, това е, когато имате кодиран парола. В 5% от заявленията, ние виждаме, че. И след това ние имаме някои данни за IOS. 81% е имал проблеми отстраняване на грешки. Това е повече от проблем с качеството на код, но 67% е имал криптографски проблеми, така че не е толкова зле, колкото Android. Може би APIs са малко по-лесно, например кодовете за малко по-добре на IOS. Но все още много висок процент. Имахме 54% с изтичането на информация, около 30% с грешки управление буфер. Това е място, където има потенциално биха могли да бъдат проблем с корупцията памет. Оказва се, че това не е толкова голям проблем за експлоатация на ЗИ защото всички код трябва да бъде подписано, така че е трудно за един хакер да изпълни произволен код на IOS. Качество на кода, директория прекосява, но след това управление тук, в 14,6% пълномощията, толкова по-лошо, отколкото на Android. Имаме хора, които не обработват пароли правилно. И тогава цифровите грешки и препълване на буфера, тези, които са повече ще бъде проблеми с качеството на код на IOS. Това е за моята презентация. Аз не знам дали ние сме извън времето или не. Аз не знам дали има някакви въпроси. [Мъж] Един бърз въпрос около фрагментация и Android пазара. Apple най-малко притежава кръпка. Те вършат добра работа от него да се измъкнем там докато по-малко, така че в Android пространство. Вие почти трябва да джейлбрейк телефона си да са актуални с текущата версия на Android. Да, това е огромен проблем и затова, ако мислите, че за- [Мъж] Защо не мога да ти го повтарям? О, да, така че въпросът е какво да кажем за фрагментация на операционната система на Android платформата? Как се отрази на риска на тези устройства? И това всъщност е огромен проблем, защото това, което се случва, е по-старите устройства, когато някой идва с Jailbreak за това устройство, по същество това е ескалация привилегия, и докато тази операционна система се обновява зловредния софтуер може след това да използва тази уязвимост, за да компрометира напълно устройството, и това, което виждаме на Android е с цел да се получи нова операционна система Google трябва да се изнеса на операционната система, а след това от производителя на хардуера трябва да я персонализирате, а след това на превозвача трябва да го персонализирате и да го достави. Имате основно три движещи се части тук, и това е завой, за които превозвачите не им пука, и производителите на хардуер не се интересуват, и Google не е да ги подтикват достатъчно да се направи нещо, така че по същество повече от половината от устройствата там имат операционни системи, които имат тези уязвимости привилегия ескалация в тях, и така, ако можете да получите зловреден софтуер на вашето устройство Android е много по-голям проблем. Добре, благодаря ви много. [Аплодисменти] [CS50.TV]