Poniższa tabela opisuje każde z głównych uprawnień dostępnych w Fine-grained PAT, wraz z przykładami operacji, które można dzięki nim wykonać, oraz potencjalnymi zagrożeniami w przypadku wycieku tokena.
Uprawnienie | Co można zrobić | Zagrożenia przy ujawnieniu |
---|---|---|
Repository metadata | Odczyt nazwy repozytoriów, opisów, listy współpracowników, informacji o gałęziach i tagach. | Umożliwia zbieranie informacji o strukturze organizacji i projektów, przygotowanie ataku socjotechnicznego lub rekonesansu. |
Contents (repo) | Odczyt i zapis plików w wybranych repozytoriach (klonowanie, commit, push, tworzenie plików). | Pełny dostęp do kodu źródłowego i historii, możliwość wprowadzania backdoorów lub wykradania poufnych danych (klucze, hasła, certyfikaty). |
Issues | Tworzenie, edycja, zamykanie i komentowanie issue’ów w repozytorium. | Atakujący może śledzić lub modyfikować zgłoszenia zadań, wpływać na priorytety, ujawniać lub usuwać dane kontekstowe, wprowadzać fałszywe raporty błędów. |
Pull requests | Odczyt, tworzenie, modyfikacja, zamykanie i komentowanie pull requestów. | Możliwość zatwierdzania szkodliwych zmian lub wstrzymywania istotnych poprawek, publikowanie poufnych dyskusji wewnętrznych. |
Discussions | Zarządzanie dyskusjami (tworzenie, edycja, zamykanie, komentowanie) w repozytorium. | Ujawnienie planów projektowych lub strategicznych w dyskusjach; wprowadzanie dezinformacji, manipulowanie społecznością projektu. |
Projects | Odczyt i zapis projektów (tablice projektowe, karty, kolumny). | Atakujący może zmieniać harmonogramy, przesuwać zadania, blokować pracę zespołu, ujawniać wewnętrzne zależności projektowe. |
Workflows | Zarządzanie GitHub Actions: odczyt, tworzenie, modyfikacja i usuwanie workflowów CI/CD. | Wstrzykiwanie złośliwych kroków do procesów CI/CD, wykradanie sekretów z przepływów, wprowadzanie złośliwego oprogramowania do artefaktów. |
Environments | Odczyt i zapis środowisk (np. production, staging), zmiana reguł ochrony gałęzi, możliwość deployów. | Ujawnienie lub modyfikacja ustawień środowisk produkcyjnych, nieautoryzowane wdrożenia zmian lub rollbacki, wyciek kluczy środowiskowych. |
Deployments | Zarządzanie wdrożeniami: lista, tworzenie, modyfikacja statusów deployów. | Możliwość fałszowania statusów wdrożeń, wycofywanie lub wprowadzenie niezatwierdzonych wersji w produkcji. |
Secrets (repo) | Odczyt i zapis sekretów repozytorium (tokeny, hasła, klucze API). | Całkowity wyciek wrażliwych danych uwierzytelniających, co pozwala na ataki na zewnętrzne systemy, eskalację uprawnień lub daleko idące sabotowanie. |
Packages | Odczyt, publikacja, usuwanie pakietów w GitHub Packages (npm, Maven, Docker itp.). | Wstrzyknięcie złośliwych zależności do pakietów, usunięcie krytycznych wersji, manipulacja metadanymi pakietów, ataki łańcuchowo-zależności. |
Dependabot alerts | Odczyt i (opcjonalnie) zamykanie alertów bezpieczeństwa z Dependabot. | Umożliwia ukrywanie lub ignorowanie krytycznych podatności w zależnościach projektowych, co zwiększa ryzyko ataków supply-chain. |
Codespaces | Tworzenie i zarządzanie Codespaces: uruchamianie, zatrzymywanie, modyfikacja konfiguracji. | Atakujący może uruchamiać zdalne sesje deweloperskie z dostępem do kodu i środowiska, przeglądać lub modyfikować kod w izolacji cloudowej. |
Codespaces secrets | Odczyt i zapis sekretów używanych w Codespaces. | Wykradzenie kluczy i haseł używanych w środowiskach deweloperskich, dostęp do prywatnych zasobów, eskalacja ataku wewnątrz organizacji. |
Actions secrets | Odczyt i zapis sekretów dla GitHub Actions. | Umożliwia wykradanie i modyfikowanie kluczy używanych w workflowach, co pozwala na nieautoryzowane operacje na infrastrukturze i publikację artefaktów zainfekowanych. |
Administration | Pełne uprawnienia administracyjne do repozytorium: ustawienia, współpracownicy, Webhooki, integracje i ochrona gałęzi. | Całkowite przejęcie repozytorium, zmiana ustawień ochrony, usuwanie repozytorium, dodawanie złośliwych integracji, eskalacja uprawnień. |
User email | Odczyt prywatnych adresów e-mail przypisanych do konta użytkownika. | Ujawnienie prywatnych adresów, umożliwienie spamowania lub spear-phishingu bezpośrednio na prywatne skrzynki e-mail. |
User admin | Zarządzanie organizacjami i zespołami: tworzenie/usuwanie zespołów, przydzielanie ról, dodawanie nowych repozytoriów. | Eskalacja uprawnień w organizacji, dodanie kont atakujących do zespołów o wysokich przywilejach, przejęcie kontroli nad projektami i repozytoriami w organizacji. |
Uwaga: zakresy uprawnień można dobierać bardzo szczegółowo na poziomie poszczególnych repozytoriów i organizacji, aby zminimalizować ryzyko związane z ujawnieniem PAT.