Co Ubuntu wie o Twoim sprzęcie?
Napisał: Patryk Krawaczyński
16/01/2020 w Bezpieczeństwo Brak komentarzy. (artykuł nr 716, ilość słów: 577)
W
szystko zaczęło się od jednego tweeta, który uświadomił nagle wielu osobom, że mechanizm w dystrybucji Linuksa Ubuntu za pomocą skryptów odpowiedzialnych za generowanie zawartości pliku /etc/motd
(ang. Message of the Day) pobiera informacje z serwerów firmy Ubuntu. Nic by nie było w tym dziwnego, gdyby nie fakt, że podczas tego procesu wysyła też sporo “osobistych” i możliwych do zidentyfikowania informacji z Twojej stacji roboczej lub serwera. Za każdym razem kiedy logujemy się na maszynę dowolnego Linuksa uruchamiamy logikę w “MOTD”. Jest to komunikat dnia, który może być ustawiony przez administratora w celu przekazania informacji użytkownikom lub różne skrypty w celu poinformowania administratora o roli i innych metadanych serwera:
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.0.0-37-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage Ubuntu 18.04.3 LTS System information as of Wed Jan 15 20:59:36 CET 2020 System load: 0.07 Processes: 147 Usage of /home: 0.1% of 427.62GB Users logged in: 1 Memory usage: 26% IP address for eth0: 10.10.10.1 Swap usage: 0% * Overheard at KubeCon: "microk8s.status just blew my mind". https://microk8s.io/docs/commands#microk8s.status 2 packages can be updated. 1 update is a security update. Your Hardware Enablement Stack (HWE) is supported until April 2023. *** System restart required *** You have mail. Last login: Wed Jan 15 20:59:40 2020 from 10.10.10.2 agresor@darkstar:~$
Jakie dane są wysyłane?
Jak widać oprócz nazwy serwera, wersji jądra i innych metainformacji, Ubuntu umieszcza nawet krótkie reklamy (KubeCon
). Nic dziwnego. We współczesnych dystrybucjach komunikat MOTD jest budowany dynamicznie i składa się z kilku niezależnych elementów. Cała logika informacji z pliku /etc/motd
znajduje się w katalogu /etc/update-motd.d/. Jest tam kilkanaście skryptów, które zajmują się budowaniem wiadomości w MOTD. Nas będzie interesował skrypt /etc/update-motd.d/50-motd-news
:
root@darkstar:~# cat /etc/update-motd.d/50-motd-news | grep curl USER_AGENT="curl/$curl_ver $lsb $platform $cpu $uptime cloud_id/$cloud_id" curl --connect-timeout "$WAIT" --max-time "$WAIT" -A "$USER_AGENT" -o- "$u" >"$NEWS" ...
Jak widzimy niestandardowy agent użytkownika generowany jest na podstawie danych z takich zmiennych jak: $lsb, $platform, $cpu, $uptime
oraz $cloud_id
. Sprawdźmy jakie dokładnie dane zostaną wysłane do serwera motd.ubuntu.com:
# strace -o showme -ff -s 9999 /bin/sh /etc/update-motd.d/50-motd-news --force # egrep ^execve showme* | grep /usr/bin/curl showme.18653:execve("/usr/bin/curl", ["curl", "--connect-timeout", "60", "--max-time", "60", "-A", "curl/7.58.0-2ubuntu3.8 Ubuntu/18.04.3/LTS GNU/Linux/5.0.0-37-generic/x86_64 Intel/Xeon/E3-12xx/v2/(Ivy/Bridge) uptime/3283420.80/13036313.54 cloud_id/ec2", "-o-", "https://motd.ubuntu.com"], 0x5592b31a2070 /* 18 vars */) = 0
Na liście mamy:
- wersję programu curl
- pełną wersję dystrybucji
- szczegóły modelu procesora
- uptime serwera
- rodzaj platformy chmury publicznej lub prywatnej
Więc Ubuntu jest w stanie powiedzieć: jakie aktualizację bezpieczeństwa zostały zainstalowane na naszym serwerze; czy jesteśmy podatni na Spectre / Meltdown; gdzie (IP + cloud_id) i na jakiej platformie uruchomiona jest nasza maszyna.
Jak wyłączyć motd-news?
Czy nasz serwer powinien udostępniać takie dane, czy nie – zależy wyłącznie od nas. Jeśli nie interesuje nas dostarczanie tego typu metadanych o naszym komputerze wystarczy zmodyfikować plik /etc/default/motd-news i ustawić ENABLED=0
. Zapisać zmiany w pliku i gotowe. Następne logowanie nie będzie już pobierać i wysyłać naszych danych przez internet.
Więcej informacji: What exactly is being sent to Ubuntu in the MOTD?, Disabling Ubuntu MOTD Spam