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 tar
jest rzeczywista, prawdziwa tar
, która jest do ustalenia przez root
użytkownika będącego właścicielem pliku i katalog nadrzędny, a tylko jeden z uprawnieniami do zapisu a nie jakiś /tmp/surprise/tar
z www-data
lub apache2
będąc właścicielem.
Jasne, że wiem o PATH
i ś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...
which
niepoprawnego powiedzenia, co tar
zrobi, na co odpowiedziała xhienne, ls
może zostać zhakowany w celu zwrócenia fałszywych informacji o plikach, jeśli takie istnieją. grep
Moż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) TEP
i 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