Publiczny agent AI mógł ujawnić kod i sekrety innych botów na koncie AWS
Wystarczyła zwykła prośba wpisana w oknie czatu publicznego agenta AI, by ten przekazał badaczom swoje tymczasowe dane uwierzytelniające. W przeprowadzonym przez firmę Zenity teście bezpieczeństwa Amazon Bedrock AgentCore poświadczenia te pozwoliły sięgnąć znacznie dalej: do kodu źródłowego, historii rozmów oraz sekretów powiązanych z innymi agentami działającymi w ramach tego samego konta i regionu AWS.
Opisany przez badaczy mechanizm wynikał ze splotu dwóch elementów: swobodnego dostępu agenta do wewnętrznej usługi metadanych oraz szerokich, domyślnych uprawnień przypisanych do całego regionu na koncie użytkownika. Demonstracja miała charakter kontrolowanego testu i nie dotyczyła potwierdzonego ataku na infrastrukturę klientów.
Przejęcie poświadczeń przez okno czatu
Punktem wyjścia w teście Zenity była usługa Instance Metadata Service (IMDS), dostępna pod wewnętrznym adresem sieciowym 169.254.169.254, z której środowiska AWS pobierają tymczasowe poświadczenia sesyjne. Badacze skonfigurowali agenta wyposażonego w narzędzie do przeglądania internetu i polecili mu pobranie danych z tego adresu, a następnie przesłanie ich na zewnętrzny serwer.
Agent bez przeszkód zrealizował polecenie. Co kluczowe, przejęte w ten sposób poświadczenia były funkcjonalne również poza samą platformą AgentCore, co pozwoliło badaczom kontynuować interakcję z infrastrukturą AWS bez dalszego korzystania z czatu. Z ustaleń Zenity wynika, że wektorem ataku nie było samo narzędzie sieciowe — podobny efekt dawało użycie narzędzia wiersza poleceń.
Szerokie uprawnienia w ramach konta i regionu
Prawdziwym problemem okazał się zakres uprawnień powiązany z domyślną rolą wykonywania. W testowanym środowisku poświadczenia jednego agenta pozwalały na wykonywanie operacji odczytu, modyfikacji i usuwania zasobów pozostałych agentów w tym samym koncie i regionie.
W ramach demonstracji badacze przygotowali skrypt, który w kilka sekund pobrał pakiety z kodem wszystkich agentów zidentyfikowanych w regionie. Pakiety te w praktyce często zawierają wpisane na stałe klucze API czy hasła do zewnętrznych systemów. Zakres dostępu umożliwił również:
- Odczyt prywatnych rozmów użytkowników prowadzonych z innymi botami na tym samym koncie.
- Modyfikację długoterminowej pamięci agentów — badacze wprowadzili instrukcje nakazujące agentowi przesyłanie kopii przyszłych konwersacji na kontrolowany przez nich serwer.
- Pobieranie wpisów z AWS Secrets Manager — samo zalecenie AWS dotyczące przechowywania danych logowania w dedykowanym magazynie nie chroniło zasobów, ponieważ rola agenta miała uprawnienia do ich bezpośredniego odczytu.
Zmiany w konfiguracji AWS
Po zgłoszeniu podatności przez Zenity pod koniec 2025 roku AWS wprowadził zmiany w domyślnych zabezpieczeniach platformy. Dla nowych wdrożeń AgentCore domyślnie włączono mechanizm IMDSv2, który wymaga użycia nagłówków sesyjnych i utrudnia nieautoryzowane wyciąganie metadanych przez proste zapytania HTTP.
Amazon zmodyfikował również domyślną rolę wykonywania w AgentCore, odbierając jej możliwość wywoływania innych agentów, pobierania ich konfiguracji i rozmów oraz sięgania po wpisy z AWS Secrets Manager. Zmiany te zabezpieczają nowe środowiska przed scenariuszem zademonstrowanym przez badaczy, jednak Zenity zwraca uwagę, że bezpieczeństwo agentów wymaga przede wszystkim ręcznego konfigurowania ról o minimalnych niezbędnych uprawnieniach (least privilege).
