Видео: ÐÑÐµÐ¼Ñ Ð¸ СÑекло Так вÑпала ÐаÑÑа HD VKlipe Net (Ноябрь 2024)
Цифровая подпись не нарушена
Весь смысл цифровой подписи документа или файла состоит в том, чтобы доказать, что файл не был изменен. Процесс использует форму криптографии с открытым ключом. Вы подписываете файл цифровой подписью, зашифровывая его своим закрытым ключом. Тот факт, что зашифрованный файл может быть расшифрован с помощью вашего открытого ключа, является доказательством того, что не было взлома. Если бы BlueBox нашел способ действительно изменить файл без изменения его цифровой подписи, это было бы ошеломляющим ударом для всей индустрии криптографии. Но они этого не сделали.
BlueBox сообщит подробности своего исследования на конференции Black Hat через несколько недель. Тем не менее, исследователь ViaForensics Пау Олива Фора опубликовала доказательство концепции кода, который иллюстрирует принятый подход.
По правде говоря, это очень, очень просто. APK файлы упакованы с использованием широко распространенного алгоритма архивирования ZIP. Большинство реализаций ZIP не допускают двух файлов с одинаковыми именами в одном архиве, но сам алгоритм не запрещает такую возможность. При проверке цифровой подписи приложения ОС Android просматривает первый соответствующий файл, но при фактическом запуске и запуске файла захватывает последний . Для троянизации приложения все, что вам нужно сделать, это вставить в него свой вредоносный код, используя имя, которое уже существует в приложении. Демонстрация Fora - это всего несколько десятков строк Java-кода.
Еще одна структурная атака
Китайский исследователь, ведущий блог под названием Android Security Squad, нашел демонстрацию интригующей и начал искать другие способы подорвать процесс проверки. Чтение поста, переведенного Google, немного сложно, но, похоже, атака основана на концепции уровня 101 Computer Science.
Компьютерные программы хранят счетные числа в наборах битов фиксированного размера. Например, с восемью битами вы можете представлять числа от 0 до 255. Если необходимо представить отрицательные числа, давнее соглашение состоит в том, что самый левый бит указывает отрицательное число. Таким образом, с восемью битами вы можете также представлять числа от -128 до 127. Двоичное число 11111111 представляет либо 255, либо -1, в зависимости от того, предназначено ли оно как число без знака или со знаком.
Android Security Squad изучил формат заголовка файла APK и обнаружил, что поле данных имеет положительное смещение, но хранится в виде целого числа со знаком. При принудительном использовании этого поля к определенному отрицательному значению загрузчик APK выполняет вредоносный код, а не уже проверенный код с цифровой подписью. ОК, это немного сложнее, но примерно так оно и работает.
Stick с Google Play
Ни один из этих хаков не нарушает механизм цифровой подписи Android. Скорее, они оба используют причуды в структуре APK, чтобы сделать цифровую подпись несущественной. Кроме того, ни один из них не позволит троянскому приложению проскользнуть мимо анализа Google. Google специально обновил Google Play, чтобы отфильтровать троянские приложения с помощью атаки «мастер-ключ»; даже без этого стандартная безопасность почти наверняка заблокировала бы любое из типов троянских приложений.
Урок понятен. Всегда получайте свои приложения из законных источников, всегда проверяйте правильность имени разработчика и настраивайте свой телефон таким образом, чтобы он не позволял устанавливать приложения из «неизвестных источников». Обратите внимание на то, какие разрешения запрашивает приложение, и будьте готовы прервать подозрительную установку. Если ваш оператор предлагает обновление Android, всегда устанавливайте его. Это просто здравый смысл!