Les attaques de ransomwares pourraient utiliser des exploits zero-day, mais souvent un attaquant ne fera que tromper un utilisateur crédule en exécutant un exécutable en téléchargeant et en cliquant.
Supposons que nous ayons un utilisateur naïf et que nous voulions le restreindre au chemin normal. Existe-t-il un moyen de les empêcher de créer un fichier avec des privilèges exécutables?
Ou, plus généralement, existe-t-il un moyen de créer une liste de contrôle d'accès et de définir que cet utilisateur ne peut exécuter que les fichiers de cette liste?
noexec
, à l'instar de la façon dont ChromeOS utilisedm_verity
pour garantir l'intégrité du système de fichiers racine. Pour les gens qui ne sont pas tout à fait aussi hardcore, on peut utiliser des modules EVM; voir wiki.gentoo.org/wiki/Extended_Verification_Module pour la documentation de Gentoo à ce sujet.Réponses:
L'attaque spécifique dont vous avez exprimé votre inquiétude est la suivante:
Au moins dans le cas courant où le fichier est téléchargé dans un navigateur Web, cela devrait déjà être évité dans Ubuntu par l'adhésion du navigateur à la politique Execute-Permission Bit Required . Les parties les plus directement pertinentes de cette politique sont:
Donc, si un utilisateur est invité à télécharger un programme dans un navigateur Web, le fait et tente d'exécuter le fichier en double-cliquant dessus, il ne s'exécutera pas. Cela s'applique même si le fichier téléchargé est un script shell ou même un fichier .desktop. (Si vous vous êtes déjà demandé pourquoi les fichiers .desktop dans votre répertoire personnel doivent être marqués comme exécutables même s'ils ne sont pas vraiment des programmes, c'est pourquoi.)
Il est possible pour les utilisateurs de modifier ce comportement en modifiant la configuration. La plupart ne le feront pas, et alors que ceux qui le font probablement ne devraient pas, ce n'est pas vraiment ce dont vous devez vous inquiéter. La plus grande préoccupation est l'attaque plus complexe qui, je pense, vous inquiète déjà, dans laquelle une personne malveillante (ou un bot) demande à l'utilisateur de télécharger un fichier spécifique, de le marquer comme exécutable lui-même (via son navigateur de fichiers ou avec
chmod
), et puis lancez-le.Malheureusement, restreindre la capacité d'un utilisateur à définir le bit d'exécution sur un fichier ou à exécuter des fichiers autres que ceux de certaines listes blanches n'atténuerait pas sensiblement le problème. Certaines attaques fonctionneront déjà, et celles qui ne le sont pas pourraient être modifiées de manière triviale pour qu'elles le fassent. Le problème fondamental est que l'effet de l'exécution d'un fichier peut être obtenu même si le fichier n'a pas d'autorisations exécutables .
Ceci est mieux illustré par l'exemple. Supposons qu'il y
evil
ait un fichier dans le répertoire courant qui, s'il recevait les autorisations exécutables (chmod +x evil
) et run (./evil
), ferait quelque chose de mal. Selon le type de programme, le même effet peut être obtenu par l'un des moyens suivants:. ./evil
ousource ./evil
exécute les commandesevil
dans le shell en cours d'exécution .bash ./evil
fonctionneevil
enbash
.python3 evil
fonctionneevil
enpython3
.perl evil
fonctionneevil
enperl
.interpreter evil
s'exécuteevil
dans l' interprèteinterpreter
./lib64/ld-linux-x86-64.so.2 ./evil
exécute l'exécutable binaireevil
.Aucun de ceux-ci, pas même le dernier, ne requiert que le fichier dispose d'autorisations exécutables ou même que l'utilisateur soit en mesure d'accorder des autorisations exécutables au fichier.
Mais les instructions malveillantes n'ont même pas besoin d'être aussi compliquées. Considérez cette commande non malveillante , qui est l' un des moyens officiellement recommandés pour installer ou mettre à jour NVM :
La raison pour laquelle ce n'est pas malveillant est que NVM n'est pas un logiciel malveillant, mais si l'URL était plutôt le script de quelqu'un qui fait du mal lors de son exécution, cette commande téléchargerait et exécuterait le script. À aucun moment, aucun fichier ne devra être autorisé à être exécuté. Télécharger et exécuter le code contenu dans un fichier malveillant avec une seule commande comme celle-ci est, je crois, une action assez courante que les attaquants incitent les utilisateurs à prendre.
Vous pourriez penser à essayer de restreindre les interprètes disponibles pour les utilisateurs. Mais il n'y a pas vraiment de moyen de le faire qui n'ait pas d'impact substantiel sur les tâches ordinaires que vous attendez vraisemblablement des utilisateurs. Si vous configurez un environnement extrêmement restreint dans lequel presque tout ce qu'un utilisateur penserait à faire sur un ordinateur est interdit, comme un kiosque qui n'exécute que quelques programmes, cela pourrait fournir une certaine protection significative. Mais cela ne semble pas être votre cas d'utilisation.
La réponse approximative à votre question est donc "non". La réponse la plus complète est que vous pourriez probablement réussir à empêcher les utilisateurs d'exécuter des fichiers à l'exception de ceux que vous fournissez sur une liste blanche. Mais c'est dans le sens technique strict de «exécuter», ce qui n'est pas nécessaire pour obtenir le plein effet de l'exécution de la plupart des programmes ou scripts. Pour éviter cela , vous pouvez essayer de rendre la liste blanche très petite, de sorte qu'elle ne répertorie aucun interprète, à l'exception de ceux qui pourraient être très restreints. Mais même si vous y parveniez, les utilisateurs ne pouvaient pas faire grand-chose, et si vous étiez si petit qu'ils ne pouvaient pas se blesser, ils ne pourraient probablement rien faire. (Voir le commentaire de Thomas Ward .)
Si vos utilisateurs peuvent se blesser, ils peuvent être trompés en se faisant du mal.
Vous pouvez être en mesure d'empêcher certains programmes spécifiques d'être utilisés ou de se comporter d'une manière susceptible d'être nuisible, et si vous examinez des modèles spécifiques que le ransomware a tendance à suivre, vous pourrez peut-être empêcher certains cas courants spécifiques. (Voir AppArmor .) Cela pourrait apporter une certaine valeur. Mais cela ne vous donnera rien de proche de la solution globale que vous espérez.
Quelles que soient les mesures techniques (le cas échéant) que vous finissez par prendre, votre meilleur pari est d'éduquer les utilisateurs. Cela inclut de leur dire de ne pas exécuter de commandes qu'ils ne comprennent pas et de ne pas utiliser les fichiers téléchargés dans des situations où ils ne pourraient pas expliquer pourquoi il est raisonnablement sûr de le faire. Mais cela inclut également des choses comme faire des sauvegardes, de sorte que si quelque chose ne va pas (à cause d'un malware ou autre), le mal causé sera le moins possible.
la source
. ./evil
ousource ./evil
exécute les commandes dansevil.sh
" - Cessource
commandes exécuteraient les commandes dans àevil
moins qu'elles spécifient l'extension, par exemple. ./evil.sh
OUI *
Cela s'appelle un shell restreint.
Vous pouvez utiliser
/bin/rbash
ce qui est déjà disponible dans Ubuntu et le combiner avec une variable PATH restreinte . Larbash
loi interdira l'exécution de tout ce qui ne se trouve pas$PATH
.Ajoutez un utilisateur restreint:
Créez un nouveau répertoire, où nous pouvons lier les binaires, dans lequel l'utilisateur sera limité à:
Modifiez le
.profile
fichier:sudo vim /home/res-user/.profile
Faites le
.profile
,bashrc
et.bash_profile
immuable:Maintenant, nous donnons à l'utilisateur la seule chose qu'il sera autorisé à faire, c'est-à-dire ouvrir Firefox:
Maintenant, si nous nous connectons,
res-user
nous ne pouvons ouvrir que Firefox:Nous ne pouvons pas facilement échapper à notre coquille restreinte:
L'utilisateur restreint ne peut pas rendre les fichiers exécutables ou les démarrer:
L'utilisateur restreint ne peut pas exécuter de scripts malveillants à partir d'Internet, car l'utilisateur ne peut pas exécuter les commandes nécessaires:
* Il existe des moyens de sortir des obus restreints , mais si votre utilisateur en est capable, ils pourraient ne pas être aussi crédules que vous le pensez.
la source
res-user
ne peut pas se connecter graphiquement. La seule chose utile qu'ils peuvent faire estssh -X
de démarrer et d'exécuterfirefox
. Vous pouvez autoriser plus de commandes pour que l'utilisateur puisse faire son travail. Ensuite, l'éclatement devient plus facile. Plusieurs des méthodes liées peuvent être transformées en lignes simples (qu'un attaquant peut fournir). Si les utilisateurs trouvent les restrictions étouffantes, ils deviendront des experts pour les contourner, tout en restant aussi avertis ou crédules qu'avant.