Przykładowy raport

Co dostajesz

Poglądowy

To jest przykład. System, ustalenia i daty są fikcyjne i nie opisują żadnego prawdziwego produktu ani klienta. Służy wyłącznie pokazaniu formatu raportu ArkLink.


R/01Podsumowanie
Testowany system
HarborWewnętrzny agent wsparcia, który segreguje zgłoszenia z GitHuba. Czyta treść zgłoszeń, odpytuje replikę Postgresa i pisze na Slacku, a jego narzędzia wystawia serwer MCP przez Streamable HTTP.
Zakres
Prompt agenta i podłączenie narzędzi, serwer MCP, sieć wdrożenia oraz skan zależności dostarczony przez klienta.

Ustalenia według dotkliwości

  • 1Krytyczne
  • 1Wysokie
  • 1Średnie
  • 1Niskie
  • 1Informacyjne

R/02Ustalenia
F-01Krytyczne

Treść zgłoszenia może skłonić agenta do opublikowania własnych poświadczeń

Osiągalność
Osiągalne
Retest
Naprawione, potwierdzone w reteście

Na czym polega problem

Agent umieszcza treść zgłoszeń w tym samym kontekście co swoje instrukcje i ma narzędzie czytające zmienne środowiskowe. Każdy, kto może otworzyć zgłoszenie, może polecić mu odczytać token wdrożeniowy i wkleić go w publiczny komentarz.

Reprodukcja

1. Otwórz zgłoszenie, którego treść zawiera krótką instrukcję skierowaną do agenta. 2. Poczekaj na przebieg segregacji. 3. Agent wywołuje narzędzie środowiskowe i odpowiada w wątku, podając token.

Poprawka

Usunąć narzędzie środowiskowe z tego agenta, przenieść token do sekretu o wąskim zakresie, którego agent nigdy nie widzi, i oznaczyć treść zgłoszeń jako niezaufane wejście w strukturze promptu. Filtrowanie publikowanych komentarzy to druga warstwa, nie poprawka.

F-02Wysokie

Serwer MCP przyjmuje nieuwierzytelnione wywołania z całej sieci

Osiągalność
Osiągalne
Retest
Naprawione, potwierdzone w reteście

Na czym polega problem

Endpoint MCP nasłuchuje na wszystkich interfejsach, bez uwierzytelniania i bez sprawdzania nagłówka Origin. Każda usługa w tej samej sieci może wylistować i wywołać narzędzia agenta bezpośrednio, całkowicie omijając agenta i jego prompt.

Reprodukcja

1. Z dowolnego hosta w sieci wyślij żądanie initialize do endpointu MCP. 2. Wyślij tools/list, a potem tools/call dla narzędzia zapytań do bazy. 3. Zapytanie wykonuje się z rolą bazodanową agenta.

Poprawka

Nasłuchiwać tylko na localhost lub prywatnym gnieździe, wymagać tokenu dla każdego klienta i sprawdzać nagłówek Origin przy każdym żądaniu, jak wymaga specyfikacja transportu MCP.

F-03Średnie

Ścieżka podana przez model może zapisać plik poza katalogiem roboczym

Osiągalność
Osiągalne pod warunkami
Retest
Naprawione, potwierdzone w reteście

Na czym polega problem

Narzędzie do załączników łączy ścieżkę wybraną przez model z katalogiem roboczym bez kanonizacji. Ścieżka względna wychodząca poza katalog zostaje zapisana tak, jak podano. Osiągalne tylko wtedy, gdy atakujący kontroluje też treść czytaną przez agenta, a F-01 pokazuje, że kontroluje.

Reprodukcja

1. Wykorzystując wektor z F-01, poproś agenta o zapisanie załącznika pod ścieżką zaczynającą się od dwóch odwołań do katalogu nadrzędnego. 2. Plik pojawia się poza katalogiem załączników.

Poprawka

Ustalić ostateczną ścieżkę i przed zapisem sprawdzić, czy nadal leży w katalogu roboczym. Stosować do wartości podanych przez model tę samą walidację, która już istnieje dla wartości od użytkownika.

F-04Niskie

Klucz dostawcy modelu zapisany w pliku konfiguracyjnym czytelnym dla wszystkich

Osiągalność
Osiągalne pod warunkami
Retest
Ryzyko zaakceptowane przez klienta

Na czym polega problem

Klucz API dostawcy leży jawnym tekstem w pliku konfiguracyjnym czytelnym dla każdego lokalnego użytkownika hosta. Wykorzystanie wymaga najpierw dostępu do tego hosta.

Reprodukcja

1. Jako dowolny nieuprzywilejowany użytkownik lokalny przeczytaj plik konfiguracyjny agenta. 2. Klucz jest widoczny jawnym tekstem.

Poprawka

Przenieść klucz do magazynu sekretów platformy i ograniczyć uprawnienia pliku. Klient zaakceptował ryzyko rezydualne do planowanej migracji, ze wskazanym na piśmie właścicielem i terminem.

F-05Informacyjne

Krytyczne ze skanera w przechodniej bibliotece XML: nieosiągalne, obniżone

Osiągalność
Nieosiągalne
Retest
Nie wymaga działań

Na czym polega problem

Skan zależności oznaczył krytyczny błąd w parserze XML dociąganym przez bibliotekę raportową. Podatny punkt wejścia nigdy nie jest wywoływany: Harbor używa tej biblioteki wyłącznie do eksportu CSV. Obniżyliśmy priorytet i zapisaliśmy uzasadnienie, żeby decyzja przetrwała kolejny skan.

Reprodukcja

Analiza grafu wywołań ze wszystkich punktów wejścia usługi nie pokazuje żadnej ścieżki do podatnej funkcji. Dowody w pełnym raporcie.

Poprawka

Na razie nie jest wymagana. Zaktualizować przy najbliższej rutynowej aktualizacji zależności i ponownie sprawdzić osiągalność, jeśli kiedykolwiek pojawi się import XML.

Prawdziwy raport zawiera też surowe dowody, wersje, których dotyczy problem, oś czasu komunikacji i podsumowanie dla osób nietechnicznych.