Projekt Rust wydał aktualizację swojej standardowej biblioteki po tym, jak badacz podatności odkrył, że określona funkcja używana do wykonywania plików wsadowych w systemach Windows może zostać wykorzystana przy użyciu luki polegającej na wstrzykiwaniu.
Zestaw typowych funkcji zawartych w języku programowania Rust, znany jako biblioteka standardowa, oferuje możliwość — wśród wielu innych możliwości — wykonywania plików wsadowych systemu Windows za pośrednictwem interfejsu Command API. Funkcja jednak nie przetwarzała danych wejściowych do API na tyle rygorystycznie, aby wyeliminować możliwość wstrzyknięcia kodu do wykonania, zgodnie z zalecenie Grupy Roboczej ds. Reagowania na Bezpieczeństwo Rust opublikowany 9 kwietnia.
Chociaż Rust jest dobrze znany ze swoich funkcji zapewniających bezpieczeństwo pamięci, incydent ten podkreśla, że język programowania nie jest odporny na błędy logiczne, mówi Yair Mizrahi, starszy badacz luk w zabezpieczeniach w firmie JFrog zajmującej się bezpieczeństwem aplikacji.
„Ogólnie rzecz biorąc, bezpieczeństwo pamięci Rusta jest zauważalną zaletą, ale programiści muszą również zwracać szczególną uwagę na potencjał błędów logicznych, aby zapewnić ogólne bezpieczeństwo i niezawodność aplikacji opartych na Rust” – mówi. „Aby rozwiązać takie problemy logiczne, Rust zachęca do rygorystycznego testowania i procesu przeglądu kodu, a także do korzystania z narzędzi analizy statycznej w celu identyfikowania i łagodzenia błędów logicznych”.
Rust zyskał reputację bardzo bezpiecznego języka programowania, ponieważ nie naraża aplikacji na często poważne błędy znane jako luki w zabezpieczeniach pamięci. Google przypisał spadek kodu zagrażającego pamięci związane z przejściem na języki bezpieczne dla pamięci, takie jak Rust i Kotlin, podczas gdy firma Microsoft odkryła, że do 2018 r., kiedy to przeszła na języki bezpieczne dla pamięci, takie luki regularnie występowały stanowiły 70% wszystkich problemów związanych z bezpieczeństwem.
Windows stwarza szereg problemów
Najnowszym problemem nie jest luka w zabezpieczeniach pamięci, ale problem z logiką używaną do przetwarzania niezaufanych danych wejściowych. Część standardowej biblioteki Rusta umożliwia programiście wywołanie funkcji wysyłającej plik wsadowy do komputera z systemem Windows w celu przetworzenia. Istnieją powody, dla których warto przesyłać kod do hosta w postaci pliku wsadowego, mówi Joel Marcey, dyrektor ds. technologii w Rust Foundation, która wspiera opiekunów języka programowania i ekosystem Rust.
„Pliki wsadowe są uruchamiane w systemach z wielu powodów, a Rust udostępnia interfejs API, który pozwala na ich łatwe uruchamianie” – mówi. „Więc chociaż niekoniecznie jest to najczęstszy przypadek użycia Rusta, interfejs API przed wdrożeniem naprawionej łatki umożliwiał złośliwym podmiotom teoretyczne przejęcie systemu poprzez uruchamianie dowolnych poleceń, i jest to zdecydowanie krytyczna luka”.
Zazwyczaj programista może przekazać obciążenie do hosta systemu Windows w celu wykonania go w trybie wsadowym za pośrednictwem interfejsu programowania aplikacji Command (API), będącego częścią standardowej biblioteki. Zwykle Rust gwarantuje bezpieczeństwo każdego wywołania Command API, ale w tym przypadku Rust Project nie mógł znaleźć sposobu, aby uniemożliwić wykonanie wszystkich argumentów, głównie dlatego, że Windows nie przestrzega żadnego standardu i że Interfejs API może pozwolić atakującemu na przesłanie kodu, który następnie zostanie wykonany.
„Niestety zgłoszono, że nasza logika ucieczki nie była wystarczająco dokładna i możliwe było przekazanie złośliwych argumentów, które skutkowałyby arbitralnym wykonaniem powłoki” – twierdzi grupa robocza Rust Security Response.
Rust Project okazuje się responsywny
Chociaż radzenie sobie z jakąkolwiek luką może przyprawiać o ból głowy, projekt Rust pokazał, że grupa szybko rozwiązuje problemy, twierdzą eksperci. Podatność standardowej biblioteki, CVE-2024-24576, ostatecznie jest problemem związanym z przetwarzaniem wsadowym w systemie Windows i wpływa na inne języki programowania, jeśli nie analizują one odpowiednio argumentów wysyłanych do procesu wsadowego w systemie Windows. Wydaje się, że projekt Rust jest pierwszym, który wprowadził poprawkę przekazywania argumentów do procesu Windows CMD.exe, mówi Mizrahi z JFrog.
Grupom nie udało się całkowicie wyeliminować problemu, ale interfejs Command API nie zwróci błędu, gdy jakiekolwiek ulepszenia przekazane do funkcji mogą być niebezpieczne – twierdzi Rust Project.
Mizrahi z JFrog namawia Rusta do szerszego stosowania statycznych testów bezpieczeństwa aplikacji oraz szerszego stosowania testów fuzzingowych i dynamicznych.
„Ogólnie rzecz biorąc, Rust jest na dobrej drodze, kładąc nacisk na bezpieczeństwo pamięci i zachęcając do rygorystycznych praktyk testowania” – mówi. „Połączenie tych wysiłków z ciągłym postępem w analizie statycznej i fuzzingu może pomóc społeczności Rust i szerszej branży oprogramowania poczynić znaczące postępy w usuwaniu błędów logicznych i błędów związanych z walidacją danych wejściowych w nadchodzących latach”.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://www.darkreading.com/application-security/critical-rust-flaw-poses-exploit-threat-in-specific-windows-use-cases
- :ma
- :Jest
- :nie
- $W GÓRĘ
- 2018
- 7
- 9
- a
- zdolność
- Stosownie
- aktorzy
- adres
- adresowanie
- odpowiednio
- przylegać
- postępy
- Korzyść
- Po
- przed
- Wszystkie kategorie
- dopuszczać
- dozwolony
- pozwala
- również
- wśród
- an
- analiza
- i
- każdy
- api
- pojawia się
- Zastosowanie
- bezpieczeństwo aplikacji
- aplikacje
- kwiecień
- arbitralny
- SĄ
- argumenty
- AS
- At
- napastnik
- Uwaga
- rozszerzenia
- BE
- bo
- zanim
- jest
- poszerzać
- szerszy
- błędy
- ale
- by
- wezwanie
- CAN
- możliwości
- walizka
- Etui
- klasa
- Zamknij
- kod
- Przegląd kodu
- łączenie
- jak
- komenda
- wspólny
- społeczność
- całkowicie
- nadal
- mógłby
- krytyczny
- czynienia
- Zdecydowanie
- Deweloper
- deweloperzy
- ZROBIŁ
- Dyrektor
- odkryty
- do
- robi
- Drzwi
- Spadek
- dynamiczny
- z łatwością
- Ekosystem
- starania
- wyeliminować
- podkreślając
- zachęca
- zachęcający
- dość
- zapewnić
- błąd
- wykonać
- wykonany
- egzekucja
- Rozszerzać
- eksperci
- Wykorzystać
- eksploatowany
- dość
- Korzyści
- filet
- Akta
- Znajdź
- Firma
- i terminów, a
- Fix
- ustalony
- wada
- Skazy
- W razie zamówieenia projektu
- Naprzód
- znaleziono
- Fundacja
- funkcjonować
- Funkcje
- zdobyte
- Zarządzanie
- Grupy
- gwarancji
- he
- pomoc
- gospodarz
- Jednak
- HTML
- HTTPS
- zidentyfikować
- if
- realizowane
- in
- incydent
- włączony
- przemysł
- wkład
- Wejścia
- Interfejs
- najnowszych
- problem
- Wydany
- problemy
- IT
- JEGO
- joel
- jpg
- znany
- język
- Języki
- firmy
- Pozostawiać
- Biblioteka
- logika
- logiczny
- maszyna
- robić
- złośliwy
- wiele
- Pamięć
- Microsoft
- Złagodzić
- większość
- musi
- koniecznie
- dostojnik
- of
- Oferty
- on
- koncepcja
- Inne
- ludzkiej,
- na zewnątrz
- koniec
- ogólny
- część
- przechodzić
- minęło
- Przechodzący
- Łata
- Zapłacić
- plato
- Analiza danych Platona
- PlatoDane
- stwarza
- możliwość
- możliwy
- potencjał
- praktyki
- zapobiec
- głównie
- Problem
- wygląda tak
- przetwarzanie
- Programowanie
- języki programowania
- projekt
- dowód
- dowodzi
- zapewnia
- opublikowany
- szybko
- Przyczyny
- regularnie
- niezawodność
- Zgłoszone
- reputacja
- badacz
- rozwiązuje
- odpowiedź
- czuły
- dalsze
- powrót
- przeglądu
- prawo
- rygorystyczny
- run
- bieganie
- Rdza
- s
- Bezpieczeństwo
- Powiedział
- powiedzieć
- mówią
- bezpieczne
- bezpieczeństwo
- wysłać
- senior
- wysłany
- zestaw
- Powłoka
- przesunięcie
- przesunięty
- pokazane
- znaczący
- So
- Tworzenie
- specyficzny
- standard
- statyczny
- kroczy
- Zatwierdź
- przedkładający
- taki
- podpory
- system
- systemy
- Brać
- Technologia
- Testowanie
- że
- Połączenia
- ich
- następnie
- Tam.
- Te
- one
- to
- dokładny
- tych
- groźba
- Przez
- do
- narzędzia
- śledzić
- zazwyczaj
- Ostatecznie
- podkreślenia
- Niestety
- aż do
- Aktualizacja
- Apeluje
- posługiwać się
- przypadek użycia
- używany
- za pomocą
- uprawomocnienie
- początku.
- Luki w zabezpieczeniach
- wrażliwość
- była
- Droga..
- DOBRZE
- jeśli chodzi o komunikację i motywację
- który
- Podczas
- będzie
- okna
- w
- pracujący
- Grupa robocza
- by
- lat
- You
- Twój
- zefirnet