Konfiguruję konto użytkownika z ograniczeniami dla użytkownika ricardo
, kłopotliwego użytkownika w moim systemie. Chcę mu przyznać prawo do korzystania z katalogów sudo
, co czasami musi zrobić. Rozważam tę zasadę w moim /etc/sudoers
pliku:
ricardo ALL=(root) NOPASSWD: /bin/mkdir
Korzystając tylko z tej zasady, czy Ricardo mógłby umyślnie lub przypadkowo narazić system na szwank?
Odpowiedzi:
Podejrzewam, że taki atak zadziałałby, gdy „coś” to moduł jądra, który spróbuje załadować po zamontowaniu rootfs:
Zauważ też, że możesz użyć innych nazw, w zależności od aliasów zadeklarowanych w module. Domyślam się, że nie zostanie załadowany, dopóki nie uruchomi się depmod, co nastąpi następnym razem, gdy pojawi się aktualizacja jądra - więc
mkdir
nie pojawi się nawet ostatnio w dzienniku sudo.W / etc jest wiele rzeczy, które czytają wszystkie pliki w katalogu, czasem rekurencyjnie. Co gorsza, niektóre z tych katalogów domyślnie nie istnieją, a jedynym sposobem na ich poznanie jest przeczytanie strony podręcznika, skryptów inicjujących itp. Dla programu, który ich używa. Niektóre, nawet gorzej, są przestarzałe i nie są już udokumentowane.
edytuj: Myśl o kilku innych katalogach, w tym w
/usr/local
:/usr/local/lib/perl/5.14.2
(różni się w zależności od wersji Perla, spróbujperl -V
się dowiedzieć). Utwórz tamFile
podkatalog i umieśćFind.pm
w nim. Teraz, gdy ktokolwiek użyjeFile::Find
, będzie używał wersji atakującego. Podobnie, zrób to samo zGetopt::Long
. Narzędzia systemowe są często pisane w Perlu, więc prawdopodobnie daje to root. (Spróbujack-grep --color -a 'use.+::' /usr/sbin | less -R
)/usr/local/include
.źródło
sudo mkdir
do stworzenia nowego katalogu, w którym mógłby.Działając
mkdir
jako root, użytkownik może zablokować innym procesom / użytkownikom tworzenie nowych plików i katalogów, tworząc wcześniej katalogi o identycznych nazwach (i / lub złych prawach).Może to mieć znaczenie z punktu widzenia bezpieczeństwa, zwłaszcza w przypadku plików dziennika i plików blokujących .
Jak zauważył Jordan , można również wykorzystać maksymalną liczbę i- węzłów, które mogą zablokować cały system.
Dodając użytkownika do określonych grup (lub używając list ACL ), powinieneś być w stanie rozwiązać problemy bez przyznawania jakichkolwiek praw przez
sudo
.źródło
mkdir
listę poleceń, których Ricardo może używać.for((i = 0;; i++)); do touch $i; done
da sobie radę (bashism, przepraszam; ale masz pomysł).sudo
polecenia rozważane przez OP mogą również pozwolić na wyczerpanie i-węzłów; OP musi być świadomy tego wektora DoS.Powinieneś go przekierować do więzienia chroot. Lub jeszcze lepiej, dla małej maszyny wirtualnej, że może się zawiesić raz na godzinę. Wszystko, co musisz zrobić, to dostarczyć nową kopię.
źródło
Istnieją możliwości tworzenia katalogów z dostępem do zapisu. Dzięki
mkdir -m 777 blah
temuricardo
użytkownik może pisać, co chce, w nowym katalogu. Potrzebny byłby w systemie proces już działający jako inny użytkownik, który ponownie uruchomi drzewo katalogów, aby załadować config, skrypty lub moduły. Następnie użytkownik może ewentualnie dodać własne rzeczy do załadowania lub uruchomienia. Pierwszą rzeczą, o której mogę pomyśleć, jest uruchomienie serwera WWW, który może wykonywać php lub cgi. Następnie możesz uruchamiać skrypty jako ten użytkownik. Staram się wymyślić więcej przykładów z prawdziwego świata, zwłaszczaroot
tych, ale jestem pewien, że są.ssh jest przykładem demona, który przechwytuje tego rodzaju scenariusz. Jeśli utworzyłeś
.ssh
katalog dla użytkownika, który go nie miał i umieściłeś własnyauthorized_hosts
plik na swoim miejscu.sshd
zauważa, że uprawnienia do katalogów są zbyt otwarte i ignoruje klucz publiczny.Na pewno możesz sprawić sobie kłopot, tworząc katalogi, w których mają się pojawiać pliki (takie jak przejściowe pliki tmp lub swap), których wiele programów nie poradziłoby sobie dobrze.
Możesz stworzyć wiele grup, ale wygląda na to, że nic z nimi nie robisz. Być może będziesz w stanie sprowadzić system przynajmniej na kolana. Zabranie sshd przez zabójcę OOM zajęło około 10000 grup na pudełku z 256M .
Jeśli kontrolujesz
-m
opcjęmkdir
i UMASKsudo
środowiska, myślę, że wróciło to do uciążliwości.źródło