Czy są jakieś metody sprawdzenia, co faktycznie wykonujesz ze skryptu bash?
Powiedzieć skrypt bash dzwoni kilka poleceń (na przykład: tar, mail, scp, mysqldump) i są chętni, aby upewnić się, że tarjest rzeczywista, prawdziwa tar, która jest do ustalenia przez rootużytkownika będącego właścicielem pliku i katalog nadrzędny, a tylko jeden z uprawnieniami do zapisu a nie jakiś /tmp/surprise/tarz www-datalub apache2będąc właścicielem.
Jasne, że wiem o PATHi środowisku, jestem ciekawy, czy można to dodatkowo sprawdzić w działającym skrypcie bash, a jeśli tak, to w jaki sposób?
Przykład: (pseudo-kod)
tarfile=$(which tar)
isroot=$(ls -l "$tarfile") | grep "root root"
#and so on...
whichniepoprawnego powiedzenia, co tarzrobi, na co odpowiedziała xhienne, lsmoże zostać zhakowany w celu zwrócenia fałszywych informacji o plikach, jeśli takie istnieją. grepMoże również zostać zhakowany w celu zwrócenia fałszywych informacji; można tego uniknąć, używając zamiast tego dopasowywania powłok, ale następnie można włamać się do powłoki. A powłoka może zostać zhakowana, aby dać błędne wyniki type- lub zastąpiona całkowicie, ponieważ wymienność powłoki była ważną innowacją Uniksa w porównaniu z 50-letnimi systemami operacyjnymi. Zobacz adres Turinga Kena Thompsona z 1984 r. Żółwie są na dole.
TE) - który ma bazę danych z podpisami (tj. Bardziej rozbudowaną niż suma kontrolna MD5. Gdy TE jest aktywny ORAZ plik znajduje się w bazie danych, możesz wybrać czy program działa - czy tylko ostrzega, że nie jest on zgodny z bazą danych. Ponadto istnieją dwa inne ustawienia: (zaufana ścieżka PATH) TEPi TLP(zaufana ścieżka LIBrary). Można wykonywać tylko programy w TEP i biblioteki mogą być ładowane tylko katalog jest zawarty w TLP W Linux I jest coś, co nazywa się „AppArmor”, które może ci pomóc

