Jak przeskanować środowisko w poszukiwaniu zagrożonych wersji Curl

Jak przeskanować środowisko w poszukiwaniu zagrożonych wersji Curl

Jak przeskanować środowisko w poszukiwaniu zagrożonych wersji Curl PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Zespoły ds. bezpieczeństwa nie muszą przechodzić w tryb kryzysowy, aby zaradzić problemowi niedawno naprawiono luki w narzędziu wiersza poleceń curl i bibliotece libcurl, ale to nie znaczy, że nie muszą się martwić identyfikowaniem systemów, których dotyczy problem, i naprawianiem ich. Jeśli systemy nie nadają się do natychmiastowego wykorzystania, zespoły ds. bezpieczeństwa mają trochę czasu na dokonanie tych aktualizacji.

Ta wskazówka techniczna zawiera wskazówki dotyczące tego, co zespoły ds. bezpieczeństwa muszą zrobić, aby upewnić się, że nie są zagrożone.

cURL, podstawowe narzędzie sieciowe dla systemów Unix i Linux, jest używane w wierszach poleceń i skryptach do przesyłania danych. Jego powszechność wynika z faktu, że jest używany zarówno jako samodzielne narzędzie (curl), jak i biblioteka zawarta w wielu różnych typach aplikacji (libcurl). Bibliotekę libcurl, która umożliwia programistom dostęp do interfejsów API curl z ich własnego kodu, można wprowadzić bezpośrednio do kodu, wykorzystać jako zależność, wykorzystać jako część pakietu systemu operacyjnego, dołączyć jako część kontenera Docker lub zainstalować na Węzeł klastra Kubernetes.

Co to jest CVE-2023-38545?

Luka o dużej wadze wpływa na curl i libcurl wersje 7.69.0 do 8.3.0, a luka o niskiej wadze dotyczy wersji libcurl 7.9.1 do 8.3.0. Luki te nie mogą jednak zostać wykorzystane w warunkach domyślnych. Osoba atakująca próbująca wyzwolić lukę będzie musiała wskazać curl na złośliwy serwer znajdujący się pod kontrolą atakującego, upewnić się, że curl korzysta z serwera proxy SOCKS5 w trybie rozpoznawania proxy, skonfigurować curl tak, aby automatycznie podążał za przekierowaniami i ustawić mniejszy rozmiar bufora rozmiar.

Zgodnie z Yaira Mizrahiego, starszy badacz bezpieczeństwa w JFrog, biblioteka libcurl jest podatna na ataki tylko jeśli ustawione są następujące zmienne środowiskowe: CURLOPT_PROXYTYPE  ustaw na pisanie CURLPROXY_SOCKS5_NAZWA HOSTALub CURLOPT_PROXY or CURLOPT_PRE_PROXY  ustawione według schematu skarpetki5h://. Biblioteka jest również podatna na ataki, jeśli jedna ze zmiennych środowiskowych proxy jest ustawiona na używanie metody skarpetki5h:// schemat. Narzędzie wiersza poleceń jest podatne na ataki tylko wtedy, gdy jest wykonywane z rozszerzeniem -socks5-nazwa hosta flaga lub z -pełnomocnik (-x) lub –preprokura ustawiony na użycie schematu skarpetki5h://. Jest również podatny na ataki, jeśli polecenie curl zostanie wykonane ze zmiennymi środowiskowymi, których dotyczy problem.

„Zestaw warunków wstępnych wymaganych, aby maszyna była podatna na ataki (patrz poprzednia sekcja) jest bardziej restrykcyjny, niż początkowo sądzono. Dlatego wierzymy, że zdecydowana większość użytkowników curl nie będzie dotknięta tą luką” – napisał Mizrahi w analizie.

Przeskanuj środowisko w poszukiwaniu systemów podatnych na ataki

Pierwszą rzeczą, którą muszą zrobić organizacje, jest określenie zakresu swoich środowisk w celu zidentyfikowania wszystkich systemów korzystających z curl i libcurl w celu oceny, czy te warunki wstępne istnieją. Organizacje powinny inwentaryzować swoje systemy i oceniać procesy dostarczania oprogramowania, korzystając z narzędzi do analizy składu oprogramowania pod kątem kodu, skanowania kontenerów i narzędzi do zarządzania stanem bezpieczeństwa aplikacji, zauważa Alex Ilgayev, szef badań nad bezpieczeństwem w Cycode. Mimo że luka nie dotyczy każdej implementacji curl, łatwiej byłoby zidentyfikować systemy, na które ma wpływ, gdyby zespół zaczął od listy potencjalnych lokalizacji do przeszukania.

Poniższe polecenia określają, które wersje curl są zainstalowane:

Linux/MacOS:

find / -name curl 2>/dev/null -exec echo "Znaleziono: {}"; -exec {} --wersja;

Windows:

Get-ChildItem -Ścieżka C: -Recurse -ErrorAction SilentlyContinue -Filtruj curl.exe | ForEach-Object { Write-Host "Znaleziono: $($_.FullName)"; & $_.Imię i nazwisko --wersja }

GitHub ma zapytanie do uruchomienia w usłudze Defender for Endpoint aby zidentyfikować wszystkie urządzenia w środowisku, które mają zainstalowany curl lub używają curl. Qualys opublikował swój regulamin za korzystanie z jego platformy.

Organizacje korzystające z kontenerów Docker lub innych technologii kontenerowych powinny również przeskanować obrazy w poszukiwaniu wersji zawierających luki. Oczekuje się znacznej liczby przebudów, szczególnie w obrazach dokowanych i podobnych obiektach, które zawierają kopie liburl. Docker zebrał siły listę instrukcji na ocenie wszystkich zdjęć.

Aby znaleźć istniejące repozytoria:

Włącz repozytorium docker scout --org /scout-demo

Aby przeanalizować lokalne obrazy kontenerów:

polityka docker scout [IMAGE] --org [ORG]

Według Henrika Plate’a, badacza bezpieczeństwa w Endor Labs, ta kwestia podkreśla znaczenie skrupulatnego śledzenia całego oprogramowania typu open source używanego w organizacji.

„Wiedza o wszystkich zastosowaniach curl i libcurl jest warunkiem wstępnym oceny rzeczywistego ryzyka i podjęcia działań zaradczych, takich jak łatanie curl, ograniczanie dostępu do systemów z niezaufanych sieci, których dotyczy problem, czy wdrażanie innych środków zaradczych” – stwierdził Plate.

Jeśli do aplikacji dołączono zestawienie materiałów oprogramowania, byłoby to dobre miejsce na rozpoczęcie wyszukiwania przypadków zwijania się, dodaje John Gallagher, wiceprezes Viakoo Labs.

To, że braków nie można wykorzystać, nie oznacza, że ​​aktualizacje nie są konieczne. Dostępne są poprawki bezpośrednio dla curl i libcurl, a wiele systemów operacyjnych (Debian, Ubuntu, Red Hat itp.) również udostępniło wersje stałe. Zwróć uwagę na aktualizacje zabezpieczeń z innych aplikacji, ponieważ libcurl to biblioteka używana przez wiele systemów operacyjnych i aplikacji.

Według Mizrahi z JFrog jednym z rozwiązań do czasu wdrożenia aktualizacji jest wymuszenie używania przez curl lokalnego rozpoznawania nazw hostów podczas łączenia się z serwerem proxy SOCKS5. Ta składnia wykorzystuje schemat skarpetki5, a nie skarpetki5h: curl -x skarpetki5://someproxy.com. W bibliotece zamień zmienną środowiskową CURLPROXY_SOCKS5_NAZWA HOSTA w CURLPROXY_SOCKS5.

Według Benjamina Marra, inżyniera bezpieczeństwa w Intruzzespoły ds. bezpieczeństwa powinny monitorować flagi zwijania pod kątem zbyt dużych ciągów znaków, ponieważ wskazywałoby to, że system został naruszony. Flagi są –socks5-nazwa hostalub -pełnomocnik or –preprokura ustawiony na użycie schematu skarpetki5h://.

Znak czasu:

Więcej z Mroczne czytanie