Как защитить код приложения от реверса — перенос на сервер, шифрование

Способы защиты кода приложения от реверса

Реверс направлен на извлечение из приложения исходного кода. После получения этой информации злоумышленник может использовать продукт для своих целей. Например, распространить его бесплатно. Поэтому при разработке приложения нужно сразу продумать способы защиты от реверса.

Как можно обезопасить код приложения

Желательно использовать обфускацию, т. е. запутывание кода при условии сохранения его функциональности. Подобный прием не гарантирует полной защиты, но снижает вероятность расшифровки. Реализовать обфускацию можно разными путями. Так, использование ProGuard позволяет изменить имена внутренних классов и полей, а также удалить лишние части кода — они не используются приложением.

Если внутри программы хранятся ключи или идентификаторы, потребуется шифрование строк. Для этого используют специальные инструменты, например DexGuard или AppSolid.

Можно добавить проверку целостности кода. В процессе использования подсчитываются суммы разных участков, в случае отклонений — программа перестает работать.

Еще один способ защиты — шифрование. Если пользователь легально приобрел приложение, то он автоматически получает ключ, который открывает доступ к полному функционалу. Без него программа не будет работать или станет доступной в ограниченном варианте. Важно учесть один момент: ключи нельзя хранить в общих папках, иначе их легко обнаружат. Лучше использовать специальные сервисы, например NDK.

Можно частично перенести код на сервер. В таком случае злоумышленнику будет сложно получить доступ к данным, которые хранятся удаленно. Желательно создать белый список команд — они будут доступны для пользователей и не смогут выполнять иные действия.

Гарантированной защиты от реверса не существует. Поэтому нужно использовать комплекс методов и своевременно устранять уязвимости.

Прежде чем создать приложение, нужно подумать над тем, какие угрозы уже существуют и как их можно избежать. После этого приступают к разработке программы. После релиза понадобится выпускать обновления, которые будут устранять уязвимости.