Будинки Securitywatch Чорна шапочка: кілька вразливостей головного ключа, які страждають на андроїд

Чорна шапочка: кілька вразливостей головного ключа, які страждають на андроїд

Відео: С новым годом! 🎉 Барбоскины 🎄 Сборник мультфильмов 2018 (Вересень 2024)

Відео: С новым годом! 🎉 Барбоскины 🎄 Сборник мультфильмов 2018 (Вересень 2024)
Anonim

Все почалося як прикро, пояснив Джефф Форрістал від Bluebox Security. Команда Bluebox хотіла створити зламану версію програми FourSquare, яка дозволила б вам здатися, що ви десь дивні, як Антарктида. На жаль, Карти Google відхилили запити від переробленого додатка. Переслідування шляхів вирішення цієї проблеми призвело команду до слабкості, яку вони назвали "Майстер-ключем". "Ця тема вже була висвітлена", - сказав Форрісталл. "Він просочився. Його вже кілька тижнів. Але насправді є більше одного головного ключа, тож ця розмова зросла з однієї помилки до чотирьох".

Forristal пояснив, що розбираючи, змінюючи та повторно збираючи додаток, вони змінили його підпис розробника. Новий підпис не мав ліцензії на використання Google Maps, тому його було відхилено. Їх нові пошуки; змінити код без зміни підпису.

Forristal ознайомився з детальною низкою подій, які відбуваються, коли Android перевіряє підписаний додаток. Кожен шар перевіряє попередній, починаючи з перевірки того, що моделі коду не були підроблені, і закінчуючи цифровим підписом пакету в цілому. Він намагався атакувати систему на кожному етапі, в основному без удачі.

"Формати APK, JAR та ZIP в основному однакові", - зазначив Forristal. "JAR і APK просто мають додаткові компоненти." Його остаточний успіх полягав у використанні формату ZIP. Коли він вставив "злий" файл з тим самим іменем, що і існуючий дійсний файл, верифікатор вийшов із дійсного файлу, але "злий" файл запустився.

Чому? Оскільки Android використовує різні коди управління файлами ZIP у верифікаторі та у фактичному інсталяторі. "Невідповідність розбору ZIP-файлів є джерелом цієї помилки", - пояснив Forristal. "Насправді у базі коду Android є вісім окремих реалізацій розбору ZIP-файлів."

З пісочниці

"Я добре використав цю хитрість", - сказав Форрістал. "Тепер давайте сприймемо це дивним". Як і iOS, Android запускає кожен додаток у власній пісочниці, тому додаток не може отримати доступ до ресурсів, що належать іншому. "Єдиний шлях до пісочниці - це підписати того ж розробника", - пояснив він. "Саме це робить можливими оновлення."

"Система в цілому підписується на те саме поняття", - продовжив він. "Системна пісочниця застосовує всі інші пісочниці. Вона контролює всі ваші налаштування. Це не root, але в ньому є всі ваші дані, програми, паролі та налаштування - що залишилось? Система досить потужна." Програми, які отримують доступ до системної пісочної скриньки, зазвичай підписуються виробником платформи. "Мені просто потрібно було придбати додаток, підписаний на платформі, і зробити свій маленький трюк, і я повинен мати доступ на системному рівні. Це крутіше, ніж карти FourSquare", - підсумував він.

Виявляється, що сторонні VPN потрібно підписувати на платформі, і в якості бонусу вони вже вимагають доступу до системної пісочниці. Forristal показав три прості команди, які він використовував для вставки свого "злого" коду в сторонній VPN, жартуючи про "інструменти для злому über". Результат? Троянець з повним доступом на системному рівні.

Легка експлуатація

Майстер технолог безпеки Саурік (Джей Фріман) підняв концепцію на новий рівень, пояснив Forristal. Його інструмент Cydia Impactor працює на OSX та Windows і автоматизує експлуатацію. "Підключіть пристрій, - сказав Форрістал, - він з'ясовує правильний додаток, створює його, додає відповідний хак, щоб отримати кореневий доступ, і доставляє його. Я збирався випустити трохи симпатичний доказ концепційних додатків, але це приголомшливо. "

Forristal зазначив, що тип процесора пристрою не має значення. На атаку не впливають ASLR (рандомізація макетів адресної системи) або DEP (запобігання виконанню даних). Він створив одну версію, яка працює на чотирьох поколіннях Android, і єдиний реальний необхідний навик - це знання Java. "Я подав це для Black Hat, тому що це легко зрозуміти та використати", - сказав Форрістал.

Більше майстер-ключі

Forristal зіткнувся з низкою інших нещодавно виявлених помилок, які можна вважати "головними ключами". Під час перегляду коду для функції під назвою «Автентифіковані атрибути» дослідники Bluebox знайшли рядок, коментований і позначений «TODO». В результаті відсутнього коду, незалежно від змін, які ви вносите, файл проходить перевірку. Не багато файлів використовують цю функцію, зазначив Forristal. "Якщо ви знайдете його, ви можете скопіювати та вставити файл сертифіката та присвоїти особу розробника. Якщо ви підписали додаток з автентифікованими атрибутами, ви видалите свою особу." Оскільки ця помилка була виправлена ​​до того, як Bluebox повідомив про це, вони не беруть кредит.

Атака "Прихований троян", про яку повідомив китайський дослідник, виявляється лише одним із декількох можливих способів використання декількох аналізаторів розсилки ZIP-файлів Android. Ці атаки скористаються тим, що один користувач парсера підписав цілі числа, а інший використовує цілі числа, які не підписані.

"Йдеться навіть не про заміну одного файлу", - захоплювався Форрістал. "Ви можете використовувати цей трюк для подачі в абсолютно інший ZIP-файл. Один перевіряється, інший запускається. Пару хитрощів і ласощів у цьому просторі можуть проявити ще більше сили цього підходу."

Хоча зловмисне програмне забезпечення, яке використовує цю техніку, вже було помічено в дикій природі, не можна отримати троянізований файл, як описаний тут, в Google Play. Ви, мабуть, будете в безпеці, якщо завжди та встановите лише додатки, які пройшли офіційний контроль. Проте, щоб бути безпечним, не забудьте негайно встановити будь-які доступні оновлення Android.

Чорна шапочка: кілька вразливостей головного ключа, які страждають на андроїд