SELinux est un cadre de sécurité qui restreint les processus (du noyau et de l'espace utilisateur) dans leurs domaines selon une politique définie. L'objectif final est donc de charger une politique fonctionnelle, d'étiqueter les systèmes de fichiers avec les contextes appropriés et de configurer SELinux. enforcing
. Peu importe qui le fait : le noyau ou un processus en espace utilisateur, mais le plus tôt sera le mieux. Et permissive
est un mode SELinux toujours prêt à être commuté en enforcing
mode. Cependant, la commutation d'un autre mode peut ou non être autorisée par la politique.
En d'autres termes, le fait que le noyau soit permissif SELinux en lui-même ne constitue pas un risque, si la ROM passe outre pour le rendre exécutoire. Ce que le noyau permissif SELinux vous donne, c'est une flexibilité pour flasher les ROMs qui exigent le SELinux permissif ou pour toute autre application qui en a besoin. Mais c'est Il est toujours conseillé de garder le dispositif en état d'application de SELinux. ( getenforce
sur l'émulateur de terminal s'affichera).
La plupart des développeurs de ROM construisent le noyau avec CONFIG_SECURITY_SELINUX_DEVELOP=y
. De Configuration du noyau :
Avec cette option activée, le noyau démarrera en permissive
(tout enregistrer, ne rien refuser) à moins que vous ne spécifiez le mode enforcing=1
sur la ligne de commande du noyau. Vous pouvez interactivement faire basculer le noyau entre le mode d'application et le mode permissif (si la politique le permet) via /selinux/enforce
.
Certains vendeurs peuvent désactiver ladite configuration ou ajouter enforcing=1
Paramètre de démarrage à la ligne de commande du noyau lors de la construction. boot.img
afin que SELinux soit toujours en vigueur avant même le tout premier processus en espace utilisateur. init
est lancé. En allant un peu plus loin, les sources du noyau Samsung sont corrigé avec des options SECURITY_SELINUX_ENFORCING
y ALWAYS_ENFORCE
. L'autre extrême est que SELinux est désactivé du tout en construisant avec SECURITY_SELINUX_DISABLE=y
et en écrivant à /sys/fs/selinux/disable
ou en construisant avec SECURITY_SELINUX_BOOTPARAM=y
et en passant selinux=0
paramètre du noyau.
Le démarrage du noyau en mode permissif donne au développeur de ROM et aux utilisateurs finaux la liberté de définir le mode SELinux. permissive
o enforcing
au démarrage (ou même pendant l'exécution du système d'exploitation en écrivant dans le fichier /sys/fs/selinux/enforce
), et élaborer une politique en fonction des exigences. C'est ainsi que userdebug
/ eng
les constructions de ROMs sont déboguées. init
peuvent être forcés à mettre en place SELinux permissive
au démarrage en paramétrant androidboot.selinux=permissive
paramètre de démarrage.
Les équipementiers passent à user
lors de la publication des ROMs stock une fois sepolicy
est pleinement développé. init
sur user
construit définit toujours SELinux enforcing
pour qu'il ne démarre pas avec SELinux. disabled
. Les ROMs personnalisées, cependant, restent généralement userdebug
qui permettent l'accès Root ( adb root
y /system/xbib/su
) et d'autres relaxations. Vous trouverez plus de détails dans Quel contexte de sepolicy permettra à tout autre contexte d'y accéder ?
Alors que disabled
o permissive
SELinux dans le noyau ou la ROM rend le dispositif tout aussi vulnérable, une permissive
Le noyau est généralement une bonne chose (au moins pour les développeurs de ROM et les utilisateurs expérimentés). L'application du noyau est exagérée à moins que l'utilisateur ne soit collé à la ROM stock pendant toute la durée de vie d'un appareil. Cependant, si SELinux est disabled
(par exemple, construit sans CONFIG_SECURITY_SELINUX=y
), la ROM de base se mettre en boucle de démarrage .
- Si le noyau est construit avec
CONFIG_IKCONFIG
, extract-ikconfig
Le script shell peut être utilisé pour vérifier la configuration de la construction sans avoir à flasher le dispositif. Sur un système d'exploitation en fonctionnement zcat /proc/config.gz
peut être utilisé.
- Le type de construction de la ROM peut être vérifié avec
getprop ro.build.type
.
- Les paramètres de démarrage de la ligne de commande du noyau peuvent être vérifiés en extrayant
boot.img
. Sur le système d'exploitation cat /proc/cmdline
peut être utilisé.