Jak mogę bezpiecznie uruchomić niezaufany plik wykonywalny na systemie Linux?

34

Pobrałem plik wykonywalny skompilowany przez firmę zewnętrzną i muszę go uruchomić na moim urządzeniu (Ubuntu 16.04 - x64) z pełnym dostępem do zasobów sprzętowych, takich jak CPU i GPU (poprzez sterowniki nVidia).

Załóżmy, że ten plik wykonywalny zawiera wirusa lub backdoora. Jak mam go uruchomić?

Czy powinienem utworzyć nowego użytkownika, uruchomić go z nim, a następnie usunąć samego użytkownika?

edytować

Nie zatwierdzam jeszcze odpowiedzi poniżej, ponieważ firejail może nie działać .

edycja 2

firejail jest w porządku, ale trzeba bardzo uważać przy określaniu wszystkich opcji w zakresie czarnej listy i białej listy . Domyślnie nie robi tego, co jest cytowane w tym artykule w czasopiśmie linux (patrz także komentarze autora Firejail).

Zachowaj szczególną ostrożność podczas korzystania z niego, ponieważ może to dać fałszywe poczucie bezpieczeństwa bez odpowiednich opcji.

Emanuele
źródło
może być lepiej na Ask Ubuntu
phuclv

Odpowiedzi:

56

Przede wszystkim, jeśli jest to plik binarny bardzo wysokiego ryzyka ... musiałbyś skonfigurować izolowaną maszynę fizyczną, uruchomić plik binarny, a następnie fizycznie zniszczyć dysk twardy, płytę główną i całą resztę. Ponieważ w dzisiejszych czasach nawet próżnia robota może rozprzestrzeniać złośliwe oprogramowanie. A co, jeśli program już zainfekował kuchenkę mikrofalową przez głośnik komputera za pomocą transmisji danych o wysokiej częstotliwości ?!

Ale zdejmijmy ten blaszany kapelusz i wróćmy na chwilę do rzeczywistości.

Bez wirtualizacji, szybki w użyciu: Firejail

Jest już spakowany na Ubuntu, jest bardzo mały, praktycznie nie ma zależności.
Jak zainstalować na Ubuntu:sudo apt-get install firejail

Strona internetowa: https://firejail.wordpress.com/

Informacje o pakiecie:

Package: firejail
Priority: optional
Section: universe/utils
Installed-Size: 457
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Reiner Herrmann <[email protected]>
Architecture: amd64
Version: 0.9.38-1
Depends: libc6 (>= 2.15)
Filename: pool/universe/f/firejail/firejail_0.9.38-1_amd64.deb
Size: 136284
MD5sum: 81a9a9ef0e094e818eb70152f267b0b6
SHA1: 41d73f8b9d9fd50ef6520dc354825d43ab3cdb16
SHA256: f1cbc1e2191dbe6c5cf4fb0520c7c3d592d631efda21f7ea43ab03a3e8e4b194
Description-en: sandbox to restrict the application environment
 Firejail is a SUID security sandbox program that reduces the risk of
 security breaches by restricting the running environment of untrusted
 applications using Linux namespaces and seccomp-bpf.  It allows a
 process and all its descendants to have their own private view of the
 globally shared kernel resources, such as the network stack, process
 table, mount table.
Description-md5: 001e4831e20916b1cb21d90a1306806f
Homepage: https://firejail.wordpress.com
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu  

Kilka dni temu musiałem uruchomić podobny „niezaufany” plik binarny. Moje poszukiwania doprowadziły do ​​tego bardzo fajnego małego programu.

Wirtualizacja: KVM , Virtualbox .
To najbezpieczniejszy zakład. W zależności od pliku binarnego. Ale hej, patrz wyżej.
Jeśli zostanie wysłany przez „Mr. Hackera”, który jest czarnym pasem - programistą w czarnym kapeluszu, istnieje prawdopodobieństwo, że plik binarny może uciec ze zwirtualizowanego środowiska.

Binarne złośliwe oprogramowanie, metoda oszczędzania kosztów: wynająć maszynę! Wirtualny. Przykładowi dostawcy serwerów wirtualnych: Amazon (AWS), Microsoft (Azure), DigitalOcean, Linode, Vultr, Ramnode. Wypożyczasz maszynę, uruchamiasz wszystko, czego potrzebujesz, a potem ją wycierają. Większość większych dostawców rozlicza się za godzinę, więc to naprawdę jest tanie.

Apacz
źródło
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Journeyman Geek
2

Po prostu uruchom go na osobnej instalacji - skonfiguruj oddzielną instalację na dysku zewnętrznym lub innym dysku twardym, upewnij się, że pary głównej instalacji nie są zamontowane (lub jeszcze lepiej, odłącz je) i przetestuj. Możesz wykonać kopię zapasową preinstalacji na wypadek, gdyby była potrzebna, i zrezygnować, gdy skończysz.

Jest to o wiele bardziej niezawodna metoda niż piaskownica / więzienie, a drugą instalację możesz śmiało traktować jako jednorazową i / lub używać jej tylko w razie potrzeby.

Journeyman Geek
źródło
2

Ze strony podręcznika użytkownika Firejail:

   Without  any  options,  the sandbox consists of a filesystem build in a
   new mount namespace, and new PID and UTS namespaces. IPC,  network  and
   user  namespaces  can  be  added  using  the  command line options. The
   default Firejail filesystem is based on the host  filesystem  with  the
   main  system directories mounted read-only. These directories are /etc,
   /var, /usr, /bin, /sbin, /lib, /lib32, /libx32 and /lib64.  Only  /home
   and /tmp are writable.

Jest to opis wysokiego poziomu, są inne rzeczy, na przykład / boot jest na czarnej liście, podobnie jak / sbin i / usr / sbin.

https://firejail.wordpress.com/features-3/man-firejail/

Możesz także przejrzeć ten dokument: https://firejail.wordpress.com/documentation-2/firefox-guide/ - mają bardzo dobry opis systemu plików.

vvasea
źródło