Какова цель ASLR на Android? - PullRequest
       11

Какова цель ASLR на Android?

2 голосов
/ 19 октября 2011

Android 4.0 добавлен ASLR

http://developer.android.com/sdk/android-4.0-highlights.html#DeveloperApis

Afaik, ASLR в основном полезен, чтобы не допустить утечки какого-либо вредоносного кода / размещения полезной нагрузки в другой библиотеке при использовании уязвимости переполнения буфера

Но почти весь код, который будет работать на Android, будет управляться, поэтому на него не должны влиять ошибки управления памятью

Вероятно, он может быть полезен для нативного кода.Ото, я думал, что большинство программ, использующих NDK (например, игровые движки opengl, сделанные на C), все еще имеют слой Java-кода для работы с пользовательским вводом и тому подобным (и я думаю, что предоставленные пользователем файлы / строки будутбыть основным вектором для вредоносного кода)

Очевидно, что я что-то упустил в моей картине

1 Ответ

1 голос
/ 19 ноября 2014

Даже если вы можете добавить только программы, написанные на управляемом языке, таком как Java, существующие библиотеки C по-прежнему уязвимы для переполнения буфера.

Например, библиотека, используемая для воспроизведения mp3, вероятно написана на C, а специально созданный mp3-файл может вызвать переполнение буфера и выполнить шелл-код. Добавление ASLR (рандомизации макета адресного пространства) в Android увеличит сложность написания такого эксплойта путем рандомизации некоторых адресов памяти.

...