Gibt es Methoden, um zu überprüfen, was Sie tatsächlich aus einem Bash-Skript ausführen?
Sagen Sie Ihr Bash - Skript mehrere Befehle ruft (zum Beispiel: tar, mail, scp, mysqldump) , und Sie sind bereit , um sicherzustellen , dass tardie tatsächliche ist, real tar, was durch die bestimmbar rootBenutzer der Datei und übergeordnetes Verzeichnis Eigentümer und der einzige mit Schreibberechtigungen zu sein und nicht einige /tmp/surprise/tarmit www-dataoder apache2als Eigentümer.
Klar, ich weiß über PATHund über die Umgebung Bescheid , ich bin gespannt, ob dies zusätzlich mit einem laufenden Bash-Skript überprüft werden kann und wenn ja, wie genau?
Beispiel: (Pseudocode)
tarfile=$(which tar)
isroot=$(ls -l "$tarfile") | grep "root root"
#and so on...
whichnicht korrekt angegeben wird, was getan tarwird, wie von xhienne beantwortet, lskönnte gehackt werden, um falsche Informationen über die Datei (en) zurückzugeben, falls vorhanden. Auch grepkönnte gehackt werden, um falsche Informationen zurückzugeben; Das könnte vermieden werden, indem stattdessen ein Shell-Matching verwendet wird. Dann könnte die Shell gehackt werden. Und Shell könnte gehackt werden, um von typeAnfang an falsche Ergebnisse zu liefern - oder komplett ersetzt werden, da die Austauschbarkeit der Shell eine wichtige Innovation von Unix im Vergleich zu 50-jährigen Betriebssystemen darstellt. Siehe Ken Thompsons Turing-Adresse von 1984. Es ist Schildkröten den ganzen Weg nach unten.
TE) mit einer Datenbank mit Signaturen hat (dh umfangreicher als eine MD5-Prüfsumme). Wenn TE aktiv ist UND sich eine Datei in der Datenbank befindet, können Sie wählen ob das Programm ausgeführt wird - oder nur warnt, dass es nicht mit der Datenbank übereinstimmt. Außerdem gibt es zwei weitere Einstellungen: TEP(Trusted Execution PATH) und TLP(Trusted LIBrary PATH). Es dürfen nur Programme in TEP ausgeführt und Bibliotheken nur mit geladen werden Das Verzeichnis ist in TLP enthalten. In Linux I gibt es etwas namens "AppArmor", das Ihnen helfen könnte.

