DNSpooq
Napisał: Patryk Krawaczyński
30/01/2021 w Ataki Internetowe Brak komentarzy. (artykuł nr 769, ilość słów: 917)
E
cha odkrycia ataku Kaminsky’ego z 2008 roku wciąż odbijają się po internecie. Badacze z JSOF odkryli 7 luk znalezionych w powszechnie używanym oprogramowaniu (około 40 producentów urządzeń sieciowych, jak również w głównych dystrybucjach Linuksa) do przekazywania zapytań DNS i przechowywaniu w pamięci podręcznej ich odpowiedzi – Dnsmasq. Od prawie dekady bardzo duża część internetu nadal polega na DNS jako źródle integralności dlatego ataki na tą usługę zagrażają dużym segmentom sieci. Luki w DNSpooq obejmują podatności związane z zatruwaniem pamięci podręcznej DNS, a także potencjalnej możliwości wykonania kodu. Lista urządzeń korzystających z Dnsmasq jest długa i zróżnicowana. Zgodnie z przeprowadzonymi badaniami użytkownikami tego rozwiązania są takie firmy jak: Cisco, Android, Aruba, Technicolor, Siemens, Ubiquiti, Comcast i inne. W zależności od tego jak używają Dnsmasq urządzenia te mogą być bardziej lub mniej dotknięte odkrytymi podatnościami.
Podchodzenie nazwy DNSpooq jest połączeniem trzech elementów: 1) DNS spoofing; 2) spook (idei szpiega podglądającego ruch internetowy); 3) “q” wziętej z nazwy DNSmasq = DNS spook zastępując “k” z “q”. DNSpooq pokazuje, że implementacje DNS wciąż nie są bezpieczne, nawet dzisiaj, 13 lat po opisaniu ostatniego poważnego ataku. Biorąc pod uwagę podatności DNS na ataki w ciągu lat, można by pomyśleć, że mechanizmy poprawiające bezpieczeństwo, które zostały opracowane w odpowiedzi na nie, będą już wszechobecne. W rzeczywistości jednak DNSSEC wciąż nie jest zbyt szeroko wdrożony, podobnie jak HSTS. Według badań z 2017 roku adopcja HSTS wśród jednego miliona najpopularniejszych stron internetowych była zaledwie na poziomie 5%. Według niektórych przybliżonych szacunków przeprowadzonych przez badaczy JSOF z pomocą większych firm internetowych i zewnętrznych źródeł, około 15-20% ruchu internetowego jest nadał całkowicie niezaszyfrowane, a użytkownicy nadal klikają w niezabezpieczone strony internetowe.
Zatruwanie pamięci:
Ten rodzaj ataku pozwala na podważenie integralności zapytań DNS w organizacji lub urządzeniu obsługiwanym przez Dnsmasq. Zasadniczo oznacza to, że atakujący będzie w stanie przekierować komunikację prowadzoną przez określonego użytkownika, który opiera się na nazwie strony internetowej, np. takiej jak: domena.pl. Luki te są podobne do ataku SAD DNS zgłoszonego przez badaczy z UC Riverside i Tsinghua University. Dnsmasq również jest podatny na SAD DNS. Podatności SAD DNS i DNSpooq mogą być również łączone ze sobą w celu jeszcze łatwiejszego przeprowadzenia ataków. W dodatku różnego rodzaju ataki jeszcze o niejasnych konsekwencjach zostały również zgłoszone przez wspólne wysiłki różnych uniwersytetów.
Podatność ta jest możliwa poprzez zmniejszenie entropii TXID (ang. transaction IDs – ID transakcji, których DNS używa do śledzenia odpowiedzi na za zapytania) i portu źródłowego. Powinny one być przypadkowe i zapewniać 32 bity entropii, jednak ze względu na użycie słabego hasha do identyfikacji żądań DNS i luźne dopasowanie żądania do odpowiedzi, entropia może być znacznie zmniejszona i tylko ~19 bitów musi być odgadnięte, co czyni zatruwanie pamięci podręcznej wysoce wykonalnym. Sposób w jaki Dnsmasq traktuje rekordy CNAME pozwala na sfałszowanie łańcucha rekordów CNAME i efektywne zatrucie 9 rekordów DNS w tym samym czasie. Aby przeprowadzić atak, agresor musi mieć odpowiednią konfigurację, co nie jest trudne do wykonania. W przypadku zatruwania pamięci podręcznej, urządzenia, które nie korzystają z funkcji cache w Dnsmasq będą znacznie mniej narażone na atak (ale nie całkowicie odporne). Luki zatruwania pamięci podręcznej w DNSpooq oznaczone są jako: CVE-2020-25686, CVE-2020-25684, CVE-2020-25685.
Przepełnienie bufora:
Cztery luki przepełnienia bufora, które są częścią DNSpooq mają różny efekt. Najgorsza z tych luk może doprowadzić do zdalnego wykonania kodu na podatnym urządzeniu. Luki te, same w sobie, stanowią jedynie ograniczone ryzyko. Stają się jednak szczególnie potężne, gdy połączy się z lukami zatruwającymi pamięć podręczną w celu stworzenia bardziej skutecznego ataku. Błędy przepełnienia bufora zawierają poważny błąd przepełnienia opartego na stercie, który może potencjalnie prowadzić do zdalnego wykonania kodu, gdy Dnsmasq jest skonfigurowany do wykorzystania DNSSEC. Luka znajduje się na wczesnym etapie walidacji DNSSEC, przez co obrona DNSSEC przed atakami DNS jest nieefektywna. Badacze nie podejmowali prób pełnego wykorzystania tej luki. Inne znalezione przez nas luki to przepełnienia bufora oparte na stercie, które mogą prowadzić do odmowy usługi (DoS) tylko wtedy, gdy DNSSEC jest używany. Urządzenia, które nie korzystają z funkcji DNSSEC będą odporne na przepełnienie bufora i zdalne wykonanie kodu na urządzeniu / systemie. DNSSEC jest zabezpieczeniem, które ma zapobiegać atakom typu zatruwania pamięci podręcznej, dlatego nie jest zalecane jego wyłączenie, ale raczej aktualizacja do nowszej wersji Dnsmasq. Luki przepełnienia bufora w DNSpooq oznaczone są jako: CVE-2020-25687, CVE-2020-25683, CVE-2020-25682, CVE-2020-25681.
Kombinacje ataków:
Jedną z interesujących rzeczy w tych podatnościach jest to, że każda z nich, sama w sobie, ma ograniczony wpływ. Jednakże, podatności te mogą być łączone łańcuchowo, aby w pewien sposób stworzyć niezwykle skuteczne wieloetapowe ataki. Dzieje się tak, ponieważ wykorzystanie niektórych w nich ułatwia wykorzystanie innych. Na przykład połączenie CVE-2020-25682, CVE-2020-25684 i CVE-2020-25686 spowodowałoby, że CVE-2020-25682 miałby mniejszą złożoność ataku (przy takim samym wpływie) i skutkowałoby połączonym CVSS na poziomie 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).
Opisane podatności dotyczą Dnsmasq do wersji 2.83. Zalecane jest wykonanie aktualizacji do co najmniej tej wersji lub instalacja pakietów wyposażonych w odpowiednie poprawki bezpieczeństwa.
Więcej informacji: DNSpooq – Cache Poisoning and RCE in Popular DNS Forwarder dnsmasq, DNSpooq PoC
- Brak tematycznie powiązanych artykułów.