Script sécurité lecture

Salut à tous.
J’aimerais savoir si on peut faire un script (ex:bash), avec aucune permission de lecture/écriture, mais avec la possibilité de seulement exécuter.

7=RWX
6=RW
5=RX
4=R
3=WX
2=W
1=X
Fait un tour sur le net et regarde les permissions UNIX, il y a des tonnes d'explication.

7=RWX
6=RW
5=RX
4=R
3=WX
2=W
1=X
Fait un tour sur le net et regarde les permissions UNIX, il y a des tonnes d’explication.

[quote=“kripteks”]Salut à tous.
J’aimerais savoir si on peut faire un script (ex:bash), avec aucune permission de lecture/écriture, mais avec la possibilité de seulement exécuter.[/quote]
Pour le créer ton script, tu es bien sous root.
root peut tout faire je crois, non ?

Tout le monde peut le faire :slightly_smiling:

$ echo '#!/bin/sh echo Coucou' > ./monscript.sh $ ls -l monscript.sh -rw-r--r-- 1 captnfab captnfab 24 sept. 11 15:36 monscript.sh $ chmod o=x monscript.sh $ ls -l monscript.sh -rw-r----x 1 captnfab captnfab 24 sept. 11 15:36 monscript.sh $ ./monscript.sh Coucou

À noter que tu peux t’enlever les droits de lecture/écriture à toi aussi:

$ chmod a=x monscript.sh $ ls -l monscript.sh ---x--x--x 1 captnfab captnfab 24 sept. 11 15:36 monscript.sh

En tant que propriétaire, tu pourras toujours te les remettre:

$ chmod u+rw monscript.sh $ ls -l monscript.sh -rwx--x--x 1 captnfab captnfab 24 sept. 11 15:36 monscript.sh $ chmod g+r monscript.sh -rwxr-x--x 1 captnfab captnfab 24 sept. 11 15:36 monscript.sh

Je sais pas si le root pour avoir accès à tous, je penses que non mais pas sûr.

  1. Y a t il un moyen d’ajouter un groupe d’utilisateur que même root ne peut rien y faire sur ce groupe et les fichiers auquel il l’apartient ?

  2. Peut-on empêcher les lectures/écritures du créateur utilisateur et même pour root ?

Version courte: non, tu ne peux rien empêcher à root.
Version longue: tu peux t’amuser à lui mettre des bâtons dans les roues, mais in fine, il pourra toujours s’en sortir de toute façon.
Version argo moderne: « Mec, root, c’est la racine t’as vu. Y’a rien de plus fort que la racine! C’est chaud, t’as vu? »

Déjà pour cacher partielement le contenu on peut le compiler même en cas de décompilation sa reste presque impossible de revenir à l’original il me semble.

Il doit sûrement y avoir un moyen d’empêcher la lecture (root inclus) :017 quelqu’un l’a sûrement dû faire.

Si sa existe pas, moi je le ferais :smiling_imp:

Ouais, tu peux empêcher la lecture à root inclus. Je te propose deux solutions:

  1. Tu chiffres ton fichier sur une autre machine (sur laquelle tu es root), et tu ne copies que le fichier chiffré sur la machine sur laquelle tu ne veux pas que root lise le fichier.
    Attention cependant, tu ne dois pas déchiffrer le fichier sans quoi il est possible que root intercepte la clé de déchiffrement. Donc, impossible d’exécuter le fichier.

  2. Tu écrases le fichier avec du bruit aléatoire 7 fois, shred est un utilitaire qui fait ça, il est dans coreutils.
    Attention cependant, ni root ni personne ne pourra retrouver le contenu de ce fichier. Donc, impossible d’exécuter le fichier.

NB: le contenu de ce message à beau être vrai, il est tout de même à prendre au 2nd degré car il ne répond pas à ta demande.

[quote=“kripteks”]Déjà pour cacher partielement le contenu on peut le compiler même en cas de décompilation sa reste presque impossible de revenir à l’original il me semble.

Il doit sûrement y avoir un moyen d’empêcher la lecture (root inclus) :017 quelqu’un l’a sûrement dû faire.

Si sa existe pas, moi je le ferais :smiling_imp:[/quote]
Regarde du coté de Linux SE, mais j’ai de gros doute.
Le root est là en cas d’ultime recours, son home est dans une arborescence séparé, il a 5% du FS de réservé … si tu arrive à le limiter son rôle perdrais tous sons sens.

Le root peut charger des modules dans le noyau, il peut modifier des fichiers en passant directement par le disque dur (sans le système de fichier), il peut éditer la ram, il peut écrire dans le bios, il peut prendre des photos de toi avec ta webcam pendant que tu lis ce message. Comme je le disais, tu peux lui mettre des bâtons dans les roues, mais tu ne peux pas l’empêcher de lire un simple fichier :slightly_smiling:

Et si on lui mettais des limitations (précis!).

Petite exemple: il peut tous faire dans un disque dur, mais si on lui mettait une limitation interdisant de toucher à un endroit fixe (exemple une petite partition) du disque dur.

Une telle petite limitation n’aura pas de désavantage (en fonction de la méthode utiliser) et pourait être un plus au niveau de la sécurité (selon la manière utiliser).

Pour faire ça, il faudrait modifier le noyau, ou un module. Il n’aurait qu’à faire la modification inverse. Soit charger un module noyau qui n’a pas la limitation pour cette partition (ou désactive la limitation), soit carrément charger un noyau sain (le noyau peut “rebooter” en chargeant une image noyau).

Ton idée de limitation me fait penser à la virtualisation. Où là, normalement, la machine virtualisée n’a pas accès à toutes les ressources de la machine hôte. Ça peut être une piste… mais tu veux faire quoi au juste? :slightly_smiling:

C’est là qu’est utile la limitation que j’essayes de mettre.
On limite le changement des fichiers qui limite ses actions.

=>

Au froid, on modifie le fichier qui limite les actions de root.
Au chaud, le fichier devient qu’executable et root ne peut pas le modifier.
Au final au chaud donc le système tourne, root se voit les accès limiter, le fichier limitateur n’est que executable, il peut rien y faire.

En théorie sa donne cela, mais en pratique je sais pas si sa marchera, mais théoriquement sa à l’aire bien.

Désolé, je ne te suis plus :slightly_smiling:
Qu’est-ce que tu limites (pour qui, pour quoi) et comment (par quel moyen, en modifiant quoi), dans quel but?

in fine, tu veux que ton fichier soit exécutable, il faut donc qu’il soit lu, il faut donc qu’il soit lisible :slightly_smiling:

Ah je suis tromper, il doit être lisible mais pas modifiable.

Donc je résumes ce dont je veux en fin de compte.
Mais j’explique qu’en exemple inventé par manque de connaissance en réel.

Au froid (sans que le système fonctionne)

  1. on a fichierLimitateur.conf qui contient les droits que peut faire root, donc par défaut il a tout les droits donc peut tout faire.
  2. on a un fichier en bash qui fait un certain job.
  3. on modifie le fichierLimitateur.conf pour qu’il mette la limite à root de pas pouvoir modifier le fichier bash.
  4. on rend lisible+executable le fichierLimitateur.conf et interdit en écriture (donc non modifiable).

Au chaud (le système fonctionne)

  1. on execute le fichierLimitateur.conf.
  2. root se logue
  3. root essaye de modifier le script bash, mais il n’a pas droit. (Accès interdit, du genre un User veut entrer dans /root/ donc interdit)
  4. root essaye de modifier fichierLimiteur.conf pour enlever cet limitation mais il n’a pas droit.(Le fichier est en lecture+executable mais pas modifiable. Seul moyen de modifier est de le faire à froid (ou avant l’execution de ce fichier mais faudra l’empêcher par un moyen))

Tu peux éventuellement rendre ton script immuable, voir lsattr et chattr.
Même root ne pourra pas le modifier ou le supprimer sans l’avoir rendu non immuable.

@Niloo: Oui mais root pourra le rendre muable à nouveau :slightly_smiling:

Je crois que kripteks n’arrivera pas à faire ce qu’il veut à moins de réinventer la machine virtuelle.

Je crois également que chercher à limiter les droits de root n’a pas vraiment de sens. Il vaut mieux créer un utilisateur “pseudoroot” et lui donner les quelques droits que l’on veut qu’il ait. Attention cependant, il lui suffit de peu pour pouvoir devenir root… (et donc avoir tous les droits).

Allez kripteks, ne te fatigue pas, ‘root’ n’est que son prénom et son nom est “Dieu”, donc … :laughing:

Franchement autant de pouvoir à root me parait débile, j’aurais aimer vérouiller son compte !
Tiens en disant, il serait bien de vérrouiller le compte de root.
On le déverrouille que lorsqu’on a besoin de ces droits et pour le devérouiller il faut l’obligation que le système ne soit pas en marche.

Serait-ce une bonne idée ?
Théoriquement sa me parait très sécuritaire.

[quote=“ricardo”]Allez kripteks, ne te fatigue pas, ‘root’ n’est que son prénom et son nom est “Dieu”, donc … :laughing:[/quote] :mrgreen: je vais limiter ses droits :116

Je ne comprends absolument pas l’intérêt de ce que tu veux faire. Peux-tu donner des exemples de cas où il serait intéressant de limiter les droits de root ?