
NLWeb firmy Microsoft: przegląd
W maju 2023 r., podczas konferencji Build 2025, firma Microsoft zaprezentowała innowacyjną inicjatywę znaną pod nazwą NLWeb, co oznacza „Natural Language Web” (Sieć Języka Naturalnego).Celem tego projektu było ułatwienie inteligentnych interakcji między agentami AI a stronami internetowymi, umożliwiając im wykonywanie złożonych zadań poprzez bezpośrednią interakcję z usługami online.
Implikacje NLWeb
Wśród zaangażowanych firm znalazły się Shopify i TripAdvisor, które wyraziły poparcie dla tej koncepcji, pozycjonując NLWeb jako kluczowy element tego, co Microsoft nazywa „agency web”.Wizja ta obiecuje przyszłość, w której sztuczna inteligencja będzie mogła autonomicznie wykonywać szereg zadań online, znacząco usprawniając doświadczenia użytkowników.
Odkrycie luk w zabezpieczeniach
Pojawiły się jednak poważne obawy dotyczące bezpieczeństwa frameworka NLWeb. Aonan Guan, badacz bezpieczeństwa, wraz ze swoim współpracownikiem Lei Wangiem, zidentyfikowali lukę w zabezpieczeniach związaną z przemierzaniem ścieżek w repozytorium kodu projektu open source. Ich odkrycie było wynikiem analizy repozytorium NLWeb w serwisie GitHub, a konkretnie pliku o nazwie. webserver/static_file_handler.py
Analiza techniczna podatności
Zidentyfikowana wada leży w konkretnym segmencie kodu:
# The vulnerable code snippet safe_path = os.path.normpath(path.lstrip('/'))
możliwe_katalogi_korzenne = [ APLIKACJA_ROOT, os.path.join(APLIKACJA_ROOT, 'site’, 'wwwroot’), '/home/site/wwwroot’, os.environ.get(’HOME’, ”), ]
# Później w kodzie…full_path = os.path.join(root, safe_path)
Pierwszy wiersz tego fragmentu kodu wydaje się niegroźny; ma on na celu normalizację ścieżek poprzez eliminację niepotrzebnych separatorów i odwołań wyższego poziomu, proces udokumentowany w oficjalnej dokumentacji Pythona. os.path.normpath()
Wpływ podatności
Choć ta funkcja jest korzystna, wprowadza lukę w zabezpieczeniach. Według Guana, nie zapobiega ona wykorzystywaniu przez użytkowników technik przeszukiwania katalogów, takich jak sekwencje, do nawigacji poza docelowy katalog internetowy. ../
Aby zweryfikować problem, Guan skonfigurował lokalną konfigurację serwera na. Wykonując polecenie, udało mu się odzyskać zawartość, kluczowych informacji w systemach UNIX, zawierających dane kont użytkowników. 0.0.0.0:8000
curl "http://localhost:8000/static/..%2f..%2f..%2fetc/passwd"
/etc/passwd
Ponadto Guan uzyskał dostęp do innych poufnych plików, w tym pliku projektu, który zawsze powinien pozostać poufny ze względu na przechowywanie w nim poufnych danych uwierzytelniających, takich jak klucze API. Zostało to dodatkowo zademonstrowane poprzez uruchomienie polecenia. .env
curl "http://localhost:8000/static/..%2f..%2f..%2fUsers//NLWeb/code/.env"
Odpowiedź i zalecenia firmy Microsoft
Po odkryciach Guana, o których poinformowano 28 maja, Microsoft potwierdził problem tego samego dnia i wdrożył poprawkę w ciągu 48 godzin. Rozwiązanie problemu obejmowało kilka kluczowych działań:
- Początkowe filtrowanie wszelkich wystąpień na ścieżce w celu przeciwdziałania potencjalnym próbom przeszukiwania katalogów.
..
- Weryfikacja, czy żądany plik ma akceptowalne rozszerzenie, obejmujące takie formaty, jak.html, .css i.json.
- Rozwiązanie ścieżki bezwzględnej w celu potwierdzenia, że znajduje się ona w autoryzowanym katalogu głównym, zapobiegając w ten sposób nieautoryzowanemu dostępowi.
W związku z tym incydentem Guan podkreśla wagę natychmiastowej aktualizacji wszystkich instancji NLWeb. Podkreśla, że wraz z rozwojem koncepcji sieci agentowej ujawniają się nowe luki w zabezpieczeniach, zwłaszcza że przetwarzanie języka naturalnego może nieumyślnie zinterpretować złośliwe ścieżki plików lub polecenia, jeśli nie będzie zarządzane z najwyższą starannością.
Więcej informacji o tym problemie i pełny raport o lukach w zabezpieczeniach można znaleźć na stronie Neowin.
Dodaj komentarz