lundi 24 juin 2013

Notes perso sur les composants de sécurité sous Linux (et donc en partie sous Android)

Principe des anneaux de sécurité:

Plus le numéro de l'anneau est faible plus il a de privilèges. Le noyau s'exécute dans l'anneau 0, Les drivers dans l'anneau 1 et 2, Les applications utilisateur dans l'anneau 3

Techniquement l'utilisateur root peut presque tout faire mais a légèrement moins de privilèges que le noyau

Isolation par les comptes utilisateurs:

Il est courant de créer un compte utilisateur par service (mysql, apache, ...) afin de ne donner à chaque service que le minimum de privilège nécessaire pour fonctionner. Pour interdire que quelqu'un se connecte en utilisant un de ces comptes utilitaires le shell est paramètré à /bin/false

Notion d'utilisateurs et de groupes:

Possibilité pour chaque fichier de spécifier les droits en lecture/écriture/exécution pour le propriétaire du fichier, pour son groupe, pour les autres. chown, chgrp, chmod Mots de passe

/etc/passwd contient la liste des utilisateurs. Historiquement il contenait le hash des mots de passe maintenant déportés dans /etc/shadow car /etc/passwd doit rester accessible à tous les utilisateurs pour d'autres fonctionnalités.

/etc/shadow contient les hashs des mots de passe et n'est accessible que par root.

chroot

chroot permet de changer le répertoire root courant. Pratique par exemple quand vous bootez d'un live cd et que vous voulez vous connecter en tant que root à une autre installation (ça sert à réinitialiser le mot de passe root d'une installation linux notamment) chroot permet de restreindre un processus à un répertoire racine. Sorte de virtualisation/sandboxing très basique au niveau de l'OS. Contournable. Autres système de virtualisation propriétaires disponibles. setuid, setgid

Les flag setuid et setgid, modifiables par la commande chmod permettent à des exécutables de s'éxécuter avec les privilèges d'un autre compte que celui du propriétaire. Par exemple chpasswd a un accès root quelque soit l'utilisateur qui l'exécute. Pour lister tous les exécutables en setuid root find / -perm -4000 -print Tout est traité sous la forme de fichier

Les périphériques sont traitées comme des fichiers que l'on peut lire et écrire. Ils sont accessibles dans /dev /proc est un répertoire virtuel qui permet d'accéder à des informations sur le système, le matériel, le noyau, ...

Access Control List

Access Control List étend la gestion des droit d'accè au delà de user/groupe/autre et permet un filtrage plus précis et plus complexe. Par exemple permet de définir une liste d'utilisateurs qui peuvent accéder à un certain répertoire. Pas installé par défaut.

Attribus de fichier

lsattr, chattr chattr +i rend un fichier inchageable même par root.
chattr +a (ajout seulement, impossible d'effacer le contenu du fichier) ACL et chattr utilisable uniquement par root par défaut

iptables

Le firewall le plus fréquent sous Linux.

Aucun commentaire:

Enregistrer un commentaire