Badacze bezpieczeństwa odkryli kilka poważnych luk w dnsmasq, narzędziu używanym w wielu systemach opartych na Linuksie, zwłaszcza routerach i innych urządzeniach Internetu rzeczy (IoT), do świadczenia usług DNS. Atakujący mogą wykorzystać te luki, aby przekierować użytkowników na nieuczciwe strony internetowe, gdy próbują uzyskać dostęp do legalnych lub wykonać złośliwy kod na podatnych urządzeniach.

Dnsmasq to lekkie narzędzie, które zapewnia buforowanie DNS, przekazywanie DNS i usługi DHCP (Dynamic Host Configuration Protocol). Narzędzie istnieje od około 20 lat i jest częścią standardowego zestawu narzędzi w wielu dystrybucjach Linuksa, w tym Androida.

Jako narzędzie świadczące usługi sieciowe, dnsmasq jest szeroko stosowany w urządzeniach sieciowych, takich jak routery dla firm domowych, ale jest również obecny w wielu innych typach systemów wbudowanych i IoT, w tym zaporach ogniowych, telefonach VoIP i samochodowych systemach Wi-Fi.

Podstawowym zastosowaniem dnsmasq jest rozwiązywanie zapytań DNS dotyczących urządzenia, na którym działa, lub innych urządzeń w sieci, w przypadku routerów. Oprogramowanie przekazuje zapytania do innych serwerów DNS w Internecie lub obsługuje odpowiedzi z lokalnej pamięci podręcznej, aby przyspieszyć proces. To właśnie ta funkcja buforowania została wykorzystana przez badaczy z izraelskiej firmy zajmującej się bezpieczeństwem Internetu Rzeczy JSOF.

Zatrucie pamięci podręcznej DNS

Firma JSOF znalazła łącznie siedem luk w zabezpieczeniach dnsmasq, które wspólnie nazwali DNSpooq. Niektóre z tych luk umożliwiają tak zwane ataki zatruwania pamięci podręcznej DNS, w których osoby atakujące, które mogą wysyłać zapytania do podatnego na ataki usługi przesyłania dalej opartego na dnsmasq, mogą zmusić serwer do buforowania nieuczciwych lub „zatrutych” wpisów DNS dla docelowych nazw domen.

W praktyce oznacza to, że gdy urządzenie lub komputer korzystający z forwardera spróbuje uzyskać dostęp do określonej nazwy domeny, otrzyma złośliwą odpowiedź z pamięci podręcznej, która przekieruje ją na serwer kontrolowany przez napastników zamiast na prawdziwy.

Zatruwanie pamięci podręcznej DNS stało się przedmiotem zainteresowania w 2008 roku, kiedy badacz bezpieczeństwa Dan Kaminsky ujawnił lukę w zabezpieczeniach najpopularniejszego oprogramowania serwera DNS. Jego ujawnienie uruchomiło coś, co zostało wówczas opisane jako największy na świecie skoordynowany wysiłek naprawiania luk w zabezpieczeniach i przyspieszyło przyjęcie DNSSEC, zestawu rozszerzeń bezpieczeństwa protokołu DNS, które dodały podpisy kryptograficzne i weryfikację rekordów DNS.

Technika ataku nie wygasła. W zeszłym roku naukowcy z University of California, Riverside i Tsinghua University ujawnili nową metodę ataku nazwaną SAD DNS, która może prowadzić do zatrucia pamięci podręcznej DNS.

Przechwytywanie DNS, większa grupa ataków, której częścią jest zatruwanie pamięci podręcznej DNS, była przez lata wykorzystywana przez różne złośliwe programy i grupy atakujących do kierowania użytkowników do fałszywych witryn bankowych.

Z technicznego punktu widzenia witryny korzystające z protokołu HTTPS z protokołem HTTP Strict Transport Security (HSTS) powinny być chronione, ponieważ atakujący mogą kierować użytkowników na inny serwer sieciowy za pomocą przechwytywania DNS, ale nie powinni być w stanie sfałszować certyfikatu cyfrowego witryny, więc powinno to spowodować błąd certyfikatu w przeglądarce.

Jednak to ograniczenie jest uzależnione od tego, jak dobrze sprawdzanie poprawności certyfikatu jest przeprowadzane w kliencie. Nowoczesne przeglądarki mają dobre praktyki sprawdzania poprawności certyfikatów, ale wiadomo, że aplikacje mobilne nie sprawdzają poprawności.

Ponadto DNS jest ważny nie tylko w przypadku witryn i treści obsługiwanych przez HTTP i wyświetlanych w przeglądarce lub aplikacji. Jest również używany do obsługi poczty e-mail i praktycznie wszystkich innych protokołów, które wymagają kontaktowania się ze zdalnym serwerem przy użyciu nazwy domeny i które mogą, ale nie muszą obsługiwać lub nie implementować weryfikacji tożsamości serwera za pomocą certyfikatów cyfrowych.

Nawet w kontekście sieciowym rzeczy nie są w pełni złagodzone. Zamiast fałszować całą witrynę, osoby atakujące mogą wykorzystać przejęcie DNS w celu zastąpienia tylko jednego z zewnętrznych zasobów załadowanych przez witrynę, takich jak plik JavaScript lub reklama. Może to nadal skutkować złośliwym kodem załadowanym do przeglądarki lub aplikacji ofiary w kontekście atakowanej witryny.

Dnsmasq jest zwykle przeznaczony dla sieci wewnętrznych, ale badacze JSOF znaleźli ponad milion urządzeń, w tym wiele routerów domowych, które mają błędnie skonfigurowane dnsmasq i nasłuchują internetu. Atakujący mogą bezpośrednio atakować te urządzenia.

Urządzenia, które są poprawnie skonfigurowane, ale uruchamiają podatną na ataki instancję dnsmasq, mogą być również celem ataków, jeśli atakujący uzyskają dostęp do innego urządzenia w sieci lub nawet zdalnie za pośrednictwem lokalnej przeglądarki użytkownika. Na przykład, jeśli użytkownicy odwiedzą zhakowaną witrynę lub nawet legalną witrynę, która ładuje złośliwą reklamę, osoby atakujące mogą zmusić przeglądarki użytkowników do wykonania serii złośliwych zapytań DNS, które mogą spowodować zatrucie pamięci podręcznej ich lokalnego modułu rozpoznawania nazw DNS. Zostało to pomyślnie przetestowane w przeglądarce Safari, ale nie działa w Google Chrome.

Udany atak wymaga wykonania co najmniej 150 zapytań DNS w krótkich odstępach czasu, aby zatruć pamięć podręczną, co może zająć od 30 sekund do 5 minut, mówi Shlomi Oberman, dyrektor generalny JSOF i badacz. Chrome ogranicza liczbę jednoczesnych żądań DNS do sześciu lub ośmiu ze względu na wydajność, więc w pewnym sensie mieli szczęście, ponieważ to również blokuje atak, mówi.

Urządzenia z dnsmasq mogą być również kierowane bezpośrednio, jeśli są połączone z otwartą siecią, na przykład na lotniskach lub w innych miejscach publicznych. Wiele punktów dostępowych, w tym korporacyjnych, które są używane do konfigurowania sieci dla gości, używa dnsmasq i jest w ten sposób narażonych, ponieważ każdy może połączyć się z tymi sieciami i wysyłać złośliwe zapytania do programu rozpoznawania nazw DNS.

Zdalne wykonanie kodu

Niektóre z luk znalezionych przez JSOF to przepełnienia bufora, a ich wykorzystanie może prowadzić do wykonania dowolnego kodu. Te wady są w procedurach analizowania odpowiedzi DNSSEC, ale przed weryfikacją podpisu.

Oznacza to, że instancja dnsmasq będzie podatna na ataki, jeśli jest skonfigurowana z obsługą DNSSEC, co jest zalecane ze względów bezpieczeństwa, ale atakujący nie musi wysyłać odpowiedzi DNS, które są faktycznie podpisane cyfrowo prawidłowym podpisem, ponieważ wady znajdują się przed podpisem krok walidacji.

W rzeczywistości najłatwiejszym sposobem wykorzystania przepełnień bufora jest połączenie ich z podatnością na zatrucie pamięci podręcznej. Atakujący może najpierw wysłać zapytania w celu zatrucia pamięci podręcznej, a rekordy dodane do pamięci podręcznej mogą zostać wykorzystane do wykorzystania przepełnienia bufora w celu wykonania kodu.

Na wielu urządzeniach osadzonych wszystkie procesy działają z uprawnieniami roota, więc taki atak może doprowadzić do całkowitego włamania się na urządzenie i zapewnić atakującym przyczółek do sieci lokalnej, który jest bardzo trudny do wykrycia i usunięcia, ponieważ urządzenia IoT zazwyczaj nie otrzymują ten sam poziom skanowania i monitorowania bezpieczeństwa, co inne systemy.

Łagodzenie luk dnsmasq

JSOF współpracował z Centrum Koordynacji CERT (CERT/CC), ICS-CERT, deweloperem dnsmasq, Google i innymi zainteresowanymi stronami, aby koordynować działania związane z łataniem i ujawnianiem tych luk. Błędy zostały załatane w dnsmasq w wersji 2.83, która zostanie wydana we wtorek 19 stycznia i będzie dostępna w repozytoriach większości dystrybucji Linuksa.

To powiedziawszy, prawdopodobnie wiele urządzeń pozostanie bez łat w przewidywalnej przyszłości lub w nieskończoność. Urządzenia wbudowane mają tendencję do uruchamiania uproszczonych wersji Linuksa ze starszymi jądrami i narzędziami w przestrzeni użytkownika. Niektóre urządzenia bardzo wolno otrzymują aktualizacje oprogramowania układowego lub mogą już nie być obsługiwane i nigdy nie otrzymają łatek dla tych problemów. Większość routerów domowych i małych firm nadal wymaga ręcznej aktualizacji oprogramowania układowego, a użytkownicy rzadko je aktualizują.

JSOF zidentyfikował ponad 40 dostawców, których dotyczy problem, z których niektórzy produkują sprzęt do sterowania przemysłowego i sprzęt sieciowy dla przedsiębiorstw. Lista prawdopodobnie nie jest kompletna i zawiera nazwy takie jak Google, Cisco Systems, Siemens, Huawei, General Electric, Ubiquiti Networks, Aruba Networks, Dell, Netgear, Synology, OpenStack i Linksys.

Niektórzy dostawcy reagują szybciej i są bardziej zaangażowani niż inni i podczas gdy dostawcy ICS i sprzętu dla przedsiębiorstw prawdopodobnie publikują łatki w odpowiednim czasie, w przypadku wielu urządzeń IoT i mniejszych urządzeń zwykle trwa to niestety znacznie dłużej, mówi Oberman. „Myślę, że w przypadku niektórych urządzeń te wady będą się utrzymywać przez miesiące lub lata”.

Oberman uważa, że ​​ataki, które prawdopodobnie zobaczymy, będą atakami na routery domowe i inne urządzenia, które są bezpośrednio wystawione na działanie Internetu, ponieważ milion przejętych urządzeń jest całkiem atrakcyjny dla każdego operatora botnetu, który może wykorzystać nawet tylko do ataków DDoS. Są to jednak również bardziej widoczne ataki i jest mało prawdopodobne, aby usłyszeć, czy te luki są wykorzystywane przeciwko organizacjom w atakach ukierunkowanych i potajemnych.

Oberman zaleca organizacjom uruchamianie lokalnych serwerów DNS, na których mogą przeprowadzać sanitację DNS i zapobiegać nie tylko tym atakom, ale także wielu innym. Dodanie większej widoczności i monitorowania urządzeń IoT przy użyciu różnych rozwiązań dostępnych na rynku, a także segmentacja sieci, może również pomóc złagodzić wpływ problemów z bezpieczeństwem takich urządzeń w ogóle.