Бельгійська фірма GuardSquare опублікувала звіт про вразливість (CVE-2017-13156), виявлену в Android на прізвисько Janus. Вразливість дозволяє зловмисникам змінювати код програми, не торкаючись підпису.
При розробці програми Android вимагає фахівців підписувати свій продукт . Під час оновлення система порівнює підпис файлу APK з вже існуючою версією і в разі збігу - програма скомпілюється у файл DEX для роботи на пристрої. Корінь проблеми полягає в тому, що вразливість пов'язана з можливістю додавання додаткових байтів до файлів APK та DEX. Файл APK є zip-архівом, який дозволяє містити якісь довільні байти на початку перед zip-записами. Під час підпису JAR ігнорує додаткові байти, крім zip-записів, необхідних для перевірки підпису програми. У свою чергу файл DEX містить довільні байти в кінці. Таким чином, Janus поєднує немодифікований файл APK з модифікованим виконуваним файлом DEX, який не впливає на підпис програми. У такому випадку, система Android дозволить встановити, а потім запустити код із заголовка DEX. Зловмисники при цьому отримують можливість керувати дозволами та підміняти програму під час наступного оновлення.
Janus зможе нашкодити лише тим програмам, які підписані способом на основі JAR (Android 5.0 та вище). Починаючи з версії Android 7.0 Nougat, метод підпису JAR був замінений на APK Signature Scheme v2, який надає захист наступним версіям.
Эллеонора Керри
41 рівень
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ