15.06.2016 @ 12:54 Android Application Security, часть 9. Защищённость двоичного файла android Данная статья является переводом соответствующей статьи Aditya Agrawal. Оригинал доступен по ссылке. Недостаток защищённости двоичного файла занимает последнее место в OWASP Mobile Top 10. Приложения Android распространяются с помощью файлов в формате APK, которые злоумышленник может подвергнуть реверс-инжинирингу и увидеть весть код, который содержит этот файл. Ниже указаны возможные сценарии реверс-инжиниринга: Злоумышленник может проанализировать код приложения и определить, какие в нём реализованы меры защиты и, возможно, найти пути их обхода. Злоумышленник также может внедрить вредоносный код в это приложение, перекомпилировать его и затем распространять его среди простых пользователей. Например, игры, в которых уже разблокированы некоторые бонусы, широко распространенные у младшего поколения, загружаются из небезопасных источников (иногда, всё же, и через Google Play Store). Большинство из этих приложений содержат вредоносное содержание, некоторые также содержат рекламу, которая помогает зарабатывать на этих пользователях. Злоумышленник в данном случае является единственным источником угроз. Ниже приведена демонстрация реверс-инжиниринга приложения. Для демонстрации я буду использовать приложение Sieve Сначала использовал dex2jar, чтобы преобразовать APK-файл в JAR-файл Затем открыл этот файл в jdgui Если вы повторите указанные шаги, то сможете просматривать исходный код приложения Sieve Как это исправить Код приложения может быть обфусцирован с помощью Proguard, но это сможет лишь замедлить реверс-инжиниринг приложения, т.к. обфускация не предотвращает реверс-инжиниринг. Для разработки приложений с акцентом на безопасность можно использовать Dexguard — платную версию Proguard. Помимо шифрования классов, строк, нативных библиотек, он добавляет средство обнаружения подделывания, чтобы приложение реагировало на случаи, когда злоумышленник пытался изменить его или неправомерно получить к нему доступ. div 5160 Mobile security Читать дальше >>