Android Q: Всички нови функции за сигурност и поверителност идват в Android 10

На Google I/O научихме за подобренията, които носи Android Q. Нови функции за сигурност и поверителност и подобрения са навсякъде в новата операционна система Android.

Всяка нова версия на операционната система Android носи подобрения в почти всеки аспект от дизайна, функциите, API и др. На Google I/O по-рано този месец научихме за всичко подобрения, които Android Q ще донесе и, разбира се, нови съобщения за поверителност и сигурност не бяха пропуснати от конференцията. Сигурността на платформата е един от най-важните аспекти на една операционна система, особено за операционна система, която носим навсякъде с нас в джобовете си. Ако Android не беше защитен, нямаше да му се доверим и наполовина толкова функции, колкото имаме. Плащанията с NFC биха били изключени, споделянето на файлове би било в най-добрия случай съмнително, а свързването с други устройства би било направо лудост. Въпреки дългогодишния проблем с фрагментирането на версиите, Google се справи изключително добре, за да запази броя на проблемите със сигурността до минимум.

Android се превърна в операционна система, която е едновременно богата на функции и изключително защитена. Но, разбира се, винаги има място за подобрение. Има много фактори, допринасящи за тази сигурност и някои от тях се подобряват по някакъв начин с Android Q.


Шифроване

Тъй като е един от най-основните методи за сигурност, важно е всяко устройство да поддържа силно криптиране. Много производители на оригинално оборудване днес доставят своите устройства със специален хардуер за криптиране. Макар че това е полезно, то е и скъпо. Като такъв, специализираният хардуер обикновено е ограничен за устройства от средно до високо ниво. Това не означава, че устройствата от нисък клас не мога поддържа криптиране, но без хардуерно ускорено криптиране цялостното потребителско изживяване се влошава поради бавното време за четене/запис. Точно тук се намесва Adiantum.

Адиантум

През февруари Google обяви Adiantum като алтернатива алгоритъм за криптиране за телефони от по-нисък клас които не поддържат обикновени набори инструкции AES. Adiantum е специално проектиран да работи без специален хардуер. Той служи като по-лека алтернатива на обичайното AES криптиране на Android. бенчмаркове на Google кажете ни, че всъщност е 5 пъти по-бърз от AES, като недостатъкът е, че леко компрометира сигурността. Това го прави идеалният кандидат за телефони от по-нисък клас, като тези, работещи с Android Go Edition. Adiantum е също така за продукти като смарт часовници и различни устройства за Интернет на нещата.

Досега Adiantum не беше задължителен; производителите можеха да го активират на устройства, стартиращи с Android Pie, но това не беше алгоритъмът за криптиране по подразбиране. Сега Adiantum е включен първоначално като част от Android Q. Това означава, че всички устройства, стартиращи с Q, ще трябва да криптират потребителски данни, без изключения. В резултат на това устройствата, стартирани с Android Q, гарантират, че имат криптиране за съхранение, било то чрез Adiantum или не.

Библиотека за сигурност на Jetpack

Jetpack е набор от библиотеки за поддръжка на Android и едно от най-новите попълнения е в алфа версия: библиотеката за сигурност на Jetpack. Библиотеката опростява процеса на защита на вашето приложение, като обработва неща като управление на хардуерно поддържани хранилища за ключове и генериране и валидиране на ключове.

TLS 1.3

Съхранението обаче не е единствената област, в която криптирането е подобрено. Комуникацията с други устройства е значително подобрена с въвеждането на Поддръжка на TLS 1.3 по подразбиране. TLS 1.3 е най-новият мрежов криптографски стандарт, финализиран от IETF през август 2018 г. TLS 1.3 осигурява повече поверителност за обмен на данни чрез криптиране на повече от ръкостисканията при преговори. На всичкото отгоре, той е по-бърз от TLS 1.2, тъй като цялото двупосочно пътуване е изтрито от ръкостискането за установяване на връзка. Съчетано с по-ефективни съвременни алгоритми, това води до до 40% увеличение на скоростта.

TLS 1.3 в Google Chrome. Източник: Google.

TLS вече може да се актуализира директно от Google Play, защото е част от компонента „Conscrypt“. Можете да прочетете повече за това и Project Mainline тук.

Като се има предвид, че се доверяваме на толкова много чувствителни транзакции на нашите устройства ежедневно, надстроеният TLS е по-важен от всякога. Съхраняване на харесванията на бордни карти - и дори цифрови шофьорски книжки в някакъв момент в бъдещето - на Android означава, че всички устройства трябва да криптират потребителските данни възможно най-добре. Adiantum и принудителното криптиране ще проправят пътя дори за най-чувствителните данни да се съхраняват на най-евтините устройства. Но криптирането не е единственият начин, по който Google повишава сигурността на Android в изданието Q.


Промени в разрешенията и поверителността в Android Q

Съхранение с обхват

Scoped Storage е нова предпазна мярка, използвана за ограничаване на приложенията от четене/запис на файлове във външно хранилище, които не се съдържат в тяхната собствена папка, специфична за приложението в пясъчна среда. Целта на Google е тройна: по-добро определяне на това кои приложения имат контрол над кои файлове, защита на данните от приложенията и защита на потребителските данни.

Google удвоява API на MediaStore за споделено аудио, видео и картинно съдържание. По подразбиране всички приложения могат да вмъкват, променят или изтриват свои собствени файлове в MediaStore. Изображения, MediaStore. Видео и MediaStore. Аудио колекции без нужда от никакви разрешения. Android Q също добавя нов MediaStore. Изтегляния колекция за съхраняване на изтеглено от потребителите съдържание, към което могат да допринесат всички приложения, използващи API на MediaStore. Докато файловете, съхранявани в специфични за приложение директории в пясъчна среда, се изтриват при деинсталиране, всички файлове, допринесени към колекциите на MediaStore, продължават да съществуват и след деинсталиране.

За достъп до файлове, създадени от друго приложение – независимо дали файлът е в една от колекциите на MediaStore или извън тях – приложението трябва да използва рамката за достъп до съхранение. Освен това EXIF ​​метаданните на изображенията се редактират, освен ако приложението ви няма дадено ново разрешение ACCESS_MEDIA_LOCATION. В Android Q приложенията могат също така да контролират на кое устройство за съхранение да се запишат медиите, като заявят името на тома му с помощта на getExternalVolume().

Първоначално Google наложи ограничения за Scoped Storage на всички приложения в Android Q, независимо от техните целеви нива на API, но след обратна връзка компанията е давайки на разработчиците повече време да правите корекции. Можете да намерите пълните подробности за промените в Scoped Storage на тази страницаи можете да научите повече за препоръките на Google относно най-добрите практики за споделено хранилище от гледам този Google I/O говоря.

Предупреждения за приложения, насочени към API ниво < 23

Ограниченията на разрешенията обаче не свършват дотук. Инсталирането на приложение, което е насочено към API ниво, по-ниско от 23 (Android Lollipop или по-старо), ще накара операционната система да покаже предупреждение на потребителя, ако това приложение поиска чувствителни разрешения при инсталиране. Преди инсталирането потребителите ще имат възможност ръчно да посочат кои разрешения искат да предоставят на приложението, преди да продължат. По този начин Android Q вече не позволява на приложенията да заобикалят разрешенията за изпълнение.

Подобно на CopperheadOS, стандартният Android Q вече позволява на потребителя да деактивира всички поискани опасни разрешения, преди да стартира приложение за първи път. Това се отнася само за приложения, насочени към API ниво 22 или по-ниско, което е преди въвеждането на разрешения за изпълнение (в Android Marshmallow.)

Евентуално SYSTEM_ALERT_DEPRECATION в полза на API на Bubbles

API на Bubbles в действие. Източник: Google.

Разрешението за наслагване (SYSTEM_ALERT_WINDOW) вече не може да се предоставя за приложения, работещи на Android Q (Go Edition). За устройства, различни от Go Edition, Google тласка разработчиците към новия API на Bubbles. Bubbles API е функция, въведена в Android Q бета 2 което позволява функционалност, която е като чат главите на Facebook Messenger. Известията от приложенията се появяват като малки мехурчета в краищата на екрана, които се разширяват при докосване от потребителя. В балончето приложението може да показва активност.

Тази промяна беше необходима, тъй като позволяването на приложенията свободно да рисуват наслагвания върху други приложения крие очевидни рискове за сигурността. Прословутият "Наметало и кама" exploit използва широко тази слабост. Функционалността на API за наслагване беше ограничена още в Android Oreo, но сега изданието Go на Android Q напълно премахна достъпа до API с бъдеща версия, за да го отхвърлите напълно.

Ограничения за стартиране на фонова дейност

Приложенията във фонов режим вече не могат автоматично да стартират активност, докато телефонът е отключен, независимо от тяхното целево ниво на API. Има цял списък с условия, при които приложенията вече могат да стартират дейности, които можете да прочетете тук. Приложенията във фонов режим, които не отговарят на тези условия и искат спешно да стартират дейност, сега ще трябва да уведомят потребителя чрез известие. Ако известието е създадено с чакащо намерение за цял екран, тогава намерението се стартира незабавно, ако екранът е изключен - полезно за аларми или входящи повиквания.

Ограничение за достъп до клипборда във фонов режим

Фоновият достъп до клипборда е вече не е възможно. Всяко приложение, което не е на преден план или е зададено като метод за въвеждане по подразбиране, няма да може да прочете вашия клипборд по никакъв начин. Това удря особено силно приложения като мениджъри на клипборда. Google казва, че тази промяна засяга само приложения, които са насочени изключително към Android Q, но нашите тестове показват, че ограничението не дискриминира; всяко приложение, което опитахме, не можеше да види клипборда.

Тази промяна, разбира се, има смисъл. Често копираме поверителна информация в клипборда – неща като пароли и данни за кредитни карти – но все пак е жалко да видим как мениджърите на клипборда се губят.

Достъп до местоположение само докато приложението се използва

Нови опции за разрешение за местоположение

Нова настройка, активирана от потребителя, позволява на приложенията да достигат до вашето местоположение само докато приложението се използва. Последната бета версия на Android Q също добави известие, което ви напомня дали сте предоставили на приложение постоянен достъп до местоположението.

Роли

Роли

Добавен е нов API за роли. Ролите са по същество групи с предварително зададени разрешения за достъп. Например, приложенията с ролята на галерия може да имат достъп до вашите медийни папки, докато приложенията с ролята на набиране може да могат да обработват повиквания. Приложенията, на които е дадена определена роля от потребителя, също трябва да имат необходимите компоненти. Приложенията с ролята на галерия, например, трябва да имат филтър за намерение за действие Android.намерение.действие.ОСНОВЕН и филтъра за намерение на категорията android.intent.category. APP_ГАЛЕРИЯ да се показва като приложение за галерия в настройките.

Сензори Изключени Бързи настройки

Плочка за бързи настройки на сензори

Има нова плочка за бързи настройки „Сензори изключени“, която изключва показанията от всичко сензори (акселерометър, жироскоп и др.) на вашето устройство за истинска поверителност. Тази плочка за бързи настройки е скрита по подразбиране, но може да бъде активирана, като отидете на „плочките за разработчици за бързи настройки“ в опциите за програмисти.

Ограничения за /proc/net

Приложенията вече не могат access proc/net, правейки услуги като netstat вече нежизнеспособни. Това предпазва потребителите от злонамерени приложения, които следят към какви уебсайтове и услуги се свързват. Приложенията, които се нуждаят от постоянен достъп, като например VPN, трябва да използват NetworkStatsManager и ConnectivityManager класове.

Случайни MAC адреси

Вашият MAC адрес е уникален идентификатор, който мрежите използват, за да запомнят кое устройство кое е. В Android Q всеки път, когато се свържете към нова мрежа, вашето устройство ще използва нов, произволен MAC адрес. Като резултат, мрежите не могат да проследят местоположението ви като съпоставите към какви WiFi мрежи се свързвате с MAC адреса на вашия телефон. Действителният, фабричен MAC адрес на устройството все още може да бъде получен от приложения чрез getWifiMacAddress() команда.


Втвърдяване на платформата в Android Q

Единична грешка в Android не означава, че нападателите вече имат пълен достъп до операционната система или че могат да заобиколят всички системи за сигурност. Това отчасти се дължи на редица предпазни мерки, като изолиране на процеса, намаляване на повърхността на атаката, архитектурно разлагане и смекчаване на експлойтите. Тези предпазни мерки правят уязвимостите по-трудни или дори невъзможни за използване. В резултат на това нападателите обикновено се нуждаят от множество уязвимости, преди да могат да постигнат целите си. В миналото сме виждали атаки като DRAMMER които работят чрез свързване на множество експлойти заедно.

Android Q взема предпазни мерки като тези и ги прилага към по-чувствителни области като медиите и Bluetooth компонентите, заедно с ядрото. Това носи някои забележими подобрения.

  • Ограничена пясъчна среда за софтуерни кодеци.
  • Повишена производствена употреба на дезинфектанти за смекчаване на цели класове уязвимости в компоненти, които обработват ненадеждно съдържание.
  • Shadow Call Stack, който осигурява интегритет на контролния поток на обратния край (CFI) и допълва защитата на предния край, предоставена от CFI на LLVM.
  • Защита на Randomization на оформлението на адресното пространство (ASLR) срещу изтичане чрез eXecute-Only Memory (XOM).
  • Въвеждане на Scudo hardened allocator, което прави редица свързани с купчини уязвимости по-трудни за използване.

Това е много софтуерен жаргон. Същността на това е, че първо, софтуерните кодеци сега работят в пясъчни кутии, които имат по-малко привилегии, което означава, че е по-малко вероятно е злонамереният софтуер да може да изпълнява команди, които могат да навредят на вашето устройство, като например в случая на Сценична треска още през 2015 г.

Ограничена пясъчна среда за софтуерни кодеци. Източник: Google.

Второ, Android вече проверява за достъп извън границите на масива на повече места, както и за препълвания. Предотвратяването на препълване и инструктирането на процесите да се провалят безопасно значително намалява процента на уязвимостите на потребителското пространство. Това означава, че ако злонамерена програма се опита да причини срив на нещо, като умишлено се опитва да го направи получите достъп до данни, които не съществуват, Android вече ще разпознае това и ще излезе от програмата, вместо трясък.

Трето, Shadow Call Stack защитава адресите за връщане, като ги съхранява в отделен скрит стек, което ги прави недостъпни за обикновени програми. Адресите за връщане обикновено са указатели към функции, така че защитата на тези адреси е важна, за да се гарантира, че нападателите нямат достъп до функции, които не би трябвало да имат.

Четвърто, ASLR е метод за защита, който рандомизира къде се съхраняват програмите в паметта, което го прави по-трудно е да се разбере къде се съхраняват програми в паметта въз основа на местоположението на други програми. Паметта само за eXecute укрепва това, като прави кода нечетим.

И накрая, Scudo е динамичен разпределител на купчина, който проактивно управлява паметта по начин, който прави базираните на купчина уязвимости много по-трудни за използване. Можете да прочетете повече за това тук.


Удостоверяване

Актуализации на BiometricPrompt в Android Q

Google представи новия API BiometricPrompt преди повече от година, в Предварителен преглед за разработчици на Android P 2. Беше предназначено да бъде обща подкана на Android за биометрични методи за отключване. Идеята е устройства, които поддържат повече от сканиране на пръстови отпечатъци, напр. сканиране на ириса на линията Galaxy S на Samsung, ще може да използва тези методи, когато приложения поискат проверка.

Android Q добавя стабилна поддръжка за проверка на лице и пръстови отпечатъци, както и разширяване на API за поддръжка на имплицитно удостоверяване. Изричното удостоверяване изисква потребителят да се удостовери по някакъв начин, преди да продължи, докато имплицитното не се нуждае от повече взаимодействие с потребителя.

Неявен и явен поток на API на BiometricPrompt. Източник: Google.

Освен това приложенията вече могат да проверяват дали дадено устройство поддържа биометрично удостоверяване чрез просто извикване на функция, което им позволява да не губят време в извикване на BiometricPrompt на устройства, които не го правят подкрепете го. Идеална употреба за това би била, ако приложенията искат да дадат настройка „Разрешаване на биометрично влизане“ въз основа на това дали дадено устройство поддържа или не биометрично удостоверяване.

Градивните елементи за поддръжка на електронен идентификатор

По-рано тази година открихме доказателства, че Google е работа по поддръжката на електронни идентификационни номера в Android. На I/O Google ни информира за напредъка на функцията. Google казва, че работят с ISO за стандартизиране на внедряването на мобилни шофьорски книжки, като електронните паспорти са в процес на разработка. За разработчиците Google ще предостави библиотека Jetpack, за да могат да започнат да се правят приложения за самоличност.


Проектирайте Mainline в Android Q

Project Mainline е голямо начинание на Google за намаляване на фрагментацията на определени системни модули и приложения. Google ще контролира актуализациите за около 12 системни компонента чрез Play Store. Говорихме задълбочено за Project Mainline в предишна статия ако се интересувате да прочетете повече.


Заключение

Сигурността винаги е била основна част от развитието на Android. Google свърши впечатляваща работа, за да поддържа Android актуален с най-новите функции за сигурност, както и да направи някои свои собствени иновации. Те продължават този процес на разработка с Android Q, като го опаковат с функции за сигурност, които са направени, за да гарантират, че вашите данни са по-безопасни от всякога.


Източник 1: Какво е новото в сигурността на Android Q [Google]

Източник 2: Сигурност на Android: Какво следва [Google]

Източник 3: Поставете в опашка подобренията на втвърдяването [Google]

С участието на Мишал Рахман и Адам Конуей.