У дома Securitywatch Китайски изследовател съобщава за нова скрита атака на троянски андроиди

Китайски изследовател съобщава за нова скрита атака на троянски андроиди

Видео: 5 НОВЫХ ЛАЙФХАКОВ С КОНСТРУКТОРОМ LEGO 4K (Ноември 2024)

Видео: 5 НОВЫХ ЛАЙФХАКОВ С КОНСТРУКТОРОМ LEGO 4K (Ноември 2024)
Anonim

Троянизирането на приложение за Android чрез добавяне на злонамерен код е нелепо просто. Използвайки широко достъпни инструменти, всеки може да деконструира APK файл до неговия изходен код, да добави злонамерен модул, да настрои няколко разрешения и да реконструира ново троянизирано приложение, което изглежда точно като старото. Откриването на този сладкиш обаче е прост въпрос за проверка на цифровия подпис на приложението. Миналата седмица изследователи от BlueBox Security съобщиха за това, което наричат ​​уязвимост на "главния ключ" - техника за троянизиране на приложение без промяна на цифровия подпис. Тази седмица китайски изследовател съобщава за още един начин да скрие троянския код.

Цифровият подпис не е счупен

Целият смисъл на цифровото подписване на документ или файл е да се докаже, че файлът не е променен. Процесът използва форма на криптография с публичен ключ. Вие цифрово подписвате файл, като го криптирате с личния си ключ. Фактът, че криптираният файл може да бъде декриптиран с вашия публичен ключ, е доказателство, че не е имало подправяне. Ако BlueBox намери начин да реално модифицира файл, без да променя цифровия му подпис, това би било поразителен удар върху цялата криптовалута. Но не го направиха.

BlueBox ще докладва пълните подробности за своите изследвания на конференцията на Black Hat след няколко седмици. Изследователят на ViaForensics Pau Oliva Fora обаче публикува доказателство за концептуален код, който илюстрира възприетия подход.

В интерес на истината е много, много просто. APK файловете се пакетират с помощта на версия на широко разпространения алгоритъм за архивиране на ZIP. Повечето реализации на ZIP не позволяват два едноименни файла в един архив, но самият алгоритъм не забранява тази възможност. При проверка на цифровия подпис на приложението ОС Android разглежда първия съвпадащ файл, но когато всъщност изпълнява и стартира файла, той грабва последния . За да троянизирате приложение, всичко, което трябва да направите, е да обуете злонамерения си код в него, използвайки име, което вече съществува в приложението. Демонстрацията на Фора е само няколко десетки реда от Java код.

Поредната структурна атака

Китайски изследовател, водещ блогове като Android Security Squad, намери демонстрацията за интригуваща и потърси други начини да подкопае процеса на проверка. Четенето на преведената от Google публикация е малко трудно, но изглежда, че атаката разчита на концепция на ниво Computer Science 101.

Компютърните програми съхраняват броенето на числа в колекции с фиксиран размер на битове. Например, с осем бита можете да представите числа от 0 до 255. Ако е необходимо да представите отрицателни числа, дългогодишната конвенция е, че най-левият бит показва отрицателно число. След това с осем бита можете да представите числа от -128 до 127. Двоичното число 11111111 представлява или 255, или -1, в зависимост от това дали е предназначено като неподписано или подписано число.

Android Security Squad надделя над формата на заглавие на APK файл и намери поле с данни, за което се предполага, че е положително изместване, но се съхранява като подписано цяло число. Принуждаването на това поле към конкретна отрицателна стойност води до това, че APK товарачът изпълнява злонамерен код, а не вече проверен цифрово подписан код. ОК, малко по-сложно е, но това е приблизително така.

Придържайте се с Google Play

Нито един от тези хакове всъщност не подрива механизма за цифрово подписване на Android. По-скоро и двамата се възползват от странности в структурата на APK, за да направят цифровия подпис без значение. Освен това никой от тях няма да позволи на троянизирано приложение да се промъкне през анализа на Google. Google специално е актуализирал Google Play, за да филтрира троянизирани приложения, използвайки атаката на „главния ключ“; дори без тази стъпка, стандартната сигурност почти сигурно ще блокира всеки тип троянизирано приложение.

Урокът е ясен. Винаги получавайте приложенията си от законни източници, винаги проверявайте дали името на програмиста е валидно и конфигурирайте телефона си, така че да не позволява инсталирането на приложения от „неизвестни източници“. Обърнете внимание на кои разрешения заявява приложение и бъдете готови да прекратите инсталацията с подозрителен вид. Ако вашият оператор предлага актуализация на Android, винаги го инсталирайте. Това е просто здрав разум!

Китайски изследовател съобщава за нова скрита атака на троянски андроиди