Pour moi, ce qui manque, c'est la possibilité de limiter
l'accès réseau et l'accès au FS de façon simple, sans passer
par du selinux
Alors, ce que tu veux, c'est pas simple. Je veux bien reconnaître que la syntaxe de selinux est pourri, mais même avec une syntaxe moins pourri, ça serait lourd, car la lourdeur ne vient pas que de la syntaxe, mais du fait qu'il faut lister tout les accès, et ça prends du temps, c'est pour ça que les gens ont tendances à ne pas le faire.
Et c'est pas un souci technique, car des méthodes hors SELinux, y en a.
Tu veux filtrer l’accès réseau, tu as iptables (et nftables) en sortie, avec par exemple le match "owner".
Tu veux filter l'http, tu peux mettre un proxy squid en sortie, et mettre des ACL sur la destination.
Tu veux restraindre le FS par application, tu as systemd, avec ProtectHome et tout ce qui va avec (InaccessiblePaths, ReadOnlyPaths, etc, cf systemd.exec
Ou, si tu as de l'argent pour refaire le SI, Openshift (et donc Kubernetes avec les bons réglages) lance les applications sans accès root dans des namespaces séparés, avec un fs en read only (sauf répertoire spécifique explicitement indiqué). Tu peux aussi filtrer en sortie avec les NetworkPolicies.
Et du coup, chaque application qui tourne dans un conteneur doit indiquer les volumes en lecture/écriture, les ports en entrée, et le stockage est normalement séparé par application, donc un peu comme pour Android.
Mais voila, comme android, ça implique de balancer tout le travail déjà fait, ou de bâtir des choses par dessus l'existant. Et il faut gérer la machinerie aussi, bien sur.
[^] # Re: Isolation des accès réseaux
Posté par Misc (site web personnel) . En réponse au journal log4shell : Et après ?. Évalué à 4.
Alors, ce que tu veux, c'est pas simple. Je veux bien reconnaître que la syntaxe de selinux est pourri, mais même avec une syntaxe moins pourri, ça serait lourd, car la lourdeur ne vient pas que de la syntaxe, mais du fait qu'il faut lister tout les accès, et ça prends du temps, c'est pour ça que les gens ont tendances à ne pas le faire.
Et c'est pas un souci technique, car des méthodes hors SELinux, y en a.
Tu veux filtrer l’accès réseau, tu as iptables (et nftables) en sortie, avec par exemple le match "owner".
Tu veux filter l'http, tu peux mettre un proxy squid en sortie, et mettre des ACL sur la destination.
Tu veux restraindre le FS par application, tu as systemd, avec ProtectHome et tout ce qui va avec (InaccessiblePaths, ReadOnlyPaths, etc, cf systemd.exec
Ou, si tu as de l'argent pour refaire le SI, Openshift (et donc Kubernetes avec les bons réglages) lance les applications sans accès root dans des namespaces séparés, avec un fs en read only (sauf répertoire spécifique explicitement indiqué). Tu peux aussi filtrer en sortie avec les NetworkPolicies.
Et du coup, chaque application qui tourne dans un conteneur doit indiquer les volumes en lecture/écriture, les ports en entrée, et le stockage est normalement séparé par application, donc un peu comme pour Android.
Mais voila, comme android, ça implique de balancer tout le travail déjà fait, ou de bâtir des choses par dessus l'existant. Et il faut gérer la machinerie aussi, bien sur.
Donc des solutions, y en a.