Važnost Prepoznavanja Kritičnih Ranjivosti u GitHub Actions
Uvod
Nedavno provedena istraga od strane Sysdigove Tima za istraživanje prijetnji (TRT) otkrila je nekoliko ozbiljnih ranjivosti u GitHub Actions radnim tokovima. Ove ranjivosti mogu predstavljati značajne rizike za mnoge velike projekte otvorenog koda. U ovom članku istražit ćemo kako pogrešne konfiguracije, posebno vezane uz trigger *pull_request_target*, mogu omogućiti napadačima da preuzmu kontrolu nad aktivnim repozitorijima ili da izvuku osjetljive vjerodajnice.
Ranjivosti u GitHub Actions
GitHub Actions je široko prihvaćena platforma u modernom razvoju softvera zbog svojih mogućnosti automatizacije. Međutim, ta pogodnost često skriva sigurnosne rizike. Prema izvještaju, „moderne napade na opskrbne lance često pokreće zloupotreba nesigurnih radnih tokova“. Tajna poput tokena ili lozinki ugrađenih u radne tokove mogu se lako iskoristiti ako nisu adekvatno zaštićene.
Unatoč dostupnim najboljim praksama i dokumentaciji, mnogi repozitoriji i dalje koriste konfiguracije visokog rizika, bilo iz nemara ili nedostatka svijesti o prijetnjama. Ključni problem leži u triggeru *pull_request_target*, koji pokreće radne tokove u kontekstu glavne grane. Ova postavka omogućava povišene privilegije, uključujući pristup GITHUB_TOKEN-u i tajnama repozitorija, za kod poslan iz forkova.
Stvarne Opasnosti
Rizici koje predstavljaju ove ranjivosti nisu hipotetski – oni su vrlo stvarni. U repozitoriju Spotipy, koji se integrira s Spotify Web API-jem, Sysdig je otkrio konfiguraciju u kojoj je kreiran *setup.py* mogao izvršiti kod i prikupiti tajne. U MITRE-ovom Repozitoriju za analitiku kibernetičke sigurnosti (CAR), napadači su uspjeli izvršiti proizvoljan kod modifikovanjem ovisnosti. Sysdig je potvrdio da je bilo moguće preuzeti GitHub račun povezan s projektom. Također, repozitorij *security_content* Splunka imao je izložene tajne poput APPINSPECTUSERNAME i APPINSPECTPASSWORD, unatoč ograničenom opsegu GITHUB_TOKEN-a.
Preporuke za Sigurnost
Programeri bi trebali preispitati korištenje triggera *pull_request_target*, uzimajući u obzir sigurnije alternative. Sysdig preporučuje:
- Odvajanje radnih tokova za bolje upravljanje rizicima.
- Korištenje provjera bez privilegija prije nego što se odobre osjetljive zadaće.
- Ograničavanje mogućnosti tokena kako bi se smanjila izloženost.
- Usvajanje alata za praćenje u stvarnom vremenu poput Falco Actions za dodatnu zaštitu.
Zaključak
Priznavanje i rješavanje ranjivosti u GitHub Actions ključno je za održavanje sigurnosti otvorenih projekata. Sigurnose najbolje prakse nisu samo preporuke, već i nužnost kako bi se spriječili potencijalni napadi i gubitak osjetljivih informacija. Ako ste razvojni inženjer ili zaduženi za upravljanje repozitorijima, sada je pravo vrijeme da preispitate svoje sigurnosne postavke i osigurate da vaš radni tok bude što sigurniji.