какова связь между политикой SEAndroid и разрешениями Android?

Я думаю, что разрешения Android — это своего рода механизм DAC, потому что разрешения сопоставляются с идентификатором группы в ядре Linux. SEAndroid — это механизм MAC. И проверка MAC происходит после проверки DAC.

Но я не понимаю отношения между ними. Как они сотрудничают, чтобы проверить, разрешено или запрещено одно действие в приложении?

И я хочу знать, как действие CHECK реализовано в исходном коде (проверка разрешений и проверка политики SEAndroid). Но я не могу найти соответствующий исходный код в ядре Android и Linux.

В документе Security Enhanced (SE) Android: внедрение гибкого MAC-адреса в Android говорится, что

Для обычных установок сторонних приложений установка приложения прерывается, если политика отказывает в одном из запрошенных разрешений.

Я также хочу знать подробную реализацию из исходного кода. Но я не знаю, где это.

Кто-нибудь, знакомый с ядром Android и Linux, может мне помочь?


person zombie    schedule 10.01.2017    source источник


Ответы (1)


Я предполагаю, что когда вы ссылаетесь на разрешения Android, вы ссылаетесь на разрешения системы Android (например, READ_LOGS, READ_HISTORY_BOOKMARKS, WRITE_HISTORY_BOOKMARKS и т. д.).

Вся поддержка SEAndroid для MMAC (и обеспечение разрешений системы) была прекращена, а весь исходный код был удален из AOSP. Дополнительные сведения см. в этом ответе.

Механизм SEAndroid MAC реализован на самых глубоких уровнях стека Android и обеспечивает контроль доступа к наиболее фундаментальным операциям (например, чтение/запись файла, открытие/закрытие сокета, привязка и т. д.). Это достигается путем размещения перехватчиков LSM (Linux Security Modules) прямо в ядре. Именно это делает MAC-модуль SEAndroid таким сильным.

С другой стороны, система разрешений Android фактически реализована на высоком уровне "JAVA API level framework" и такими компонентами, как: PackageManager, ServiceManager, ActivityManager и т. д. Позволить SEAndroid обрабатывать принудительное применение этих высокоуровневых компонентов может быть упущено (но это только мое личное мнение).

person David Lev    schedule 07.02.2017