CURL i skrypty instalacyjne w powłoce
Napisał: Patryk Krawaczyński
20/04/2016 w Ataki Internetowe, Bezpieczeństwo Brak komentarzy. (artykuł nr 518, ilość słów: 310)
K
ażda instalacja pakietów z nieznanego źródła, czy ślepe kopiowanie i wklejanie poleceń do terminala jest ewidentnie złym pomysłem. Ostatnio bardzo modne stało się instalowanie różnego rodzaju pluginów, aplikacji, rozwiązań wirtualizacji i innych tworów startapowych poprzez polecenie typu curl http://startup.io/install.sh | bash, co w założeniu ma znacznie upraszczać proces instalacji i konfiguracji dla użytkownika. Wykrywany jest system, instalowane zależności, ściągane dodatkowe instalatory itd. – wszystko szybko i automatycznie, ale czy bezpiecznie?
Taki poziom zaufania aż się prosi o przemycenie czegoś niedobrego do systemu – szczególnie, że większość tych curli jest wykonywana z podniesionymi uprawnieniami przez sudo. Należy sobie uświadomić, że nawet jeśli sprawdzamy z poziomu swojej przeglądarki zawartość danego skryptu to zupełnie inna wersja może zostać przygotowana dla polecenia curl lub wget, który przesyła zupełnie inny user agent. Zawsze możemy to zmienić poprzez ustawienie konfiguracyjne i wysyłać zakłamany nagłówek HTTP. Niestety istnieje również sposób, który jest w stanie wykryć charakterystykę sieciową zachowania polecenia curl, gdy przekazuje ściągany skrypt do powłoki systemu i podmienić strumień dostarczając zupełnie inny skrypt niż pierwotnie przewidywaliśmy / sprawdziliśmy.
Wykluczmy na chwilę złe intencje, kompromitację serwerów z skryptami itd. Pozostaje jeszcze jeden przypadek dyskwalifikujący to podejście. Kiedy po prostu osoba przygotowująca tego rodzaju instalator nie przewidziała / przetestowała jakiegoś wyjątku od reguły lub warunki sprawdzające środowisko są już nieaktualne ze względu na szybszą aktualizacje systemu niż użytego instalatora. W ten sposób możemy zafundować swojemu systemowi mniejszą niestabilność lub większą awarię. Dlatego nigdy nie należy bezpośrednio przekazywać, jakichkolwiek danych bezpośrednio do powłoki (w dodatku z podniesionymi uprawnieniami) bez ich wcześniejszej weryfikacji.
Więcej informacji: Don’t Pipe to your Shell, The hidden dangers of piping curl