GitHub ujawnił w piątek, że odkrył dowody na to, że nieznany przeciwnik wykorzystał skradzione tokeny OAuth użytkowników do nieautoryzowanego pobrania prywatnych danych z kilku organizacji.
“Napastnik wykorzystał skradzione tokeny OAuth wydane dwóm zewnętrznym integratorom OAuth, Heroku i Travis-CI, do pobrania danych z kilkudziesięciu organizacji, w tym NPM (manager pakietów dla środowiska Node.js, może być także używany do zarządzania warstwą front-end aplikacji WWW)” – ujawnił w raporcie Mike Hanley z GitHuba.
Co to tokeny OAuth?
Tokeny OAuth są często używane przez aplikacje i usługi do autoryzowania dostępu do określonych części danych użytkownika i komunikowania się między sobą bez konieczności dzielenia się rzeczywistymi danymi uwierzytelniającymi. Jest to jedna z najpopularniejszych metod przekazywania autoryzacji z usługi pojedynczego logowania (SSO) do innej aplikacji. Lista aplikacji OAuth, których dotyczy problem, według stanu na dzień 15 kwietnia 2022 r., obejmuje:
- Heroku Dashboard (ID: 145909)
- Heroku Dashboard (ID: 628778)
- Heroku Dashboard – Preview (ID: 313468)
- Heroku Dashboard – Classic (ID: 363831)
- Travis CI (ID: 9216)
Odpowiedź GitHub
Firma twierdzi, że tokeny OAuth nie zostały uzyskane w wyniku naruszenia GitHuba lub jego systemów, ponieważ nie przechowuje tokenów w oryginalnych, nadających się do użytku formatach.
Ponadto GitHub ostrzegł, że zagrożenie może analizować zawartość prywatnych repozytoriów pobranych od ofiar korzystających z aplikacji OAuth innych firm w celu pozyskania dodatkowych sekretów, które mogą zostać wykorzystane do przejęcia innych części ich infrastruktury.
Platforma należąca do Microsoftu zauważyła, że znalazła wczesne dowody kampanii ataku 12 kwietnia, kiedy natrafiła na nieautoryzowany dostęp do swojego środowiska produkcyjnego NPM przy użyciu skompromitowanego klucza AWS API.
Uważa się, że ten klucz API AWS został uzyskany poprzez pobranie zestawu nieokreślonych prywatnych repozytoriów NPM przy użyciu skradzionego tokena OAuth jednej z dwóch zaatakowanych aplikacji OAuth. GitHub poinformował, że od tego czasu unieważnił tokeny dostępu związane z dotkniętymi aplikacjami.
“W tym momencie oceniamy, że osoba atakująca nie zmodyfikowała żadnych pakietów ani nie uzyskała dostępu do żadnych danych lub poświadczeń kont użytkowników” – powiedziała firma, dodając, że nadal prowadzi dochodzenie, aby ustalić, czy osoba atakująca przeglądała lub pobierała prywatne pakiety.
Jak GitHub zareagował, aby chronić użytkowników GitHub.com
Po zidentyfikowaniu przez GitHub skradzionych tokenów OAuth stron trzecich, które miały wpływ na użytkowników GitHub, GitHub podjął natychmiastowe kroki, aby zareagować i chronić użytkowników. GitHub skontaktował się z firmami Heroku i Travis-CI, aby poprosić je o wszczęcie własnych dochodzeń w sprawie bezpieczeństwa, unieważnienie wszystkich tokenów OAuth powiązanych z zagrożonymi aplikacjami oraz rozpoczęcie prac nad powiadomieniem własnych użytkowników.
GitHub pozostaje w ścisłej współpracy z obiema organizacjami, starając się wspomóc ich wysiłki w dochodzeniu i usuwaniu skutków awarii, a także lepiej chronić wspólnych klientów.
W osobnym komunikacie spółka zależna Salesforce, Heroku, potwierdziła odebranie tokenów dostępu, dodając, że “do odwołania nie będziemy wydawać tokenów OAuth z Heroku Dashboard”, aby “zapobiec nieautoryzowanemu dostępowi do repozytoriów GitHub”.
Co powinni wiedzieć klienci i organizacje GitHuba
GitHub zaznaczył, że obecnie pracuje nad zidentyfikowaniem i powiadomieniem wszystkich znanych poszkodowanych użytkowników i organizacji, które mogą zostać dotknięte w wyniku tego incydentu w ciągu najbliższych 72 godzin.
Jeśli nie otrzymasz powiadomienia, oznacza to, że nie zidentyfikowano cię jako użytkownika lub organizacji dotkniętych problemem. GitHub będzie kontynuował powiadamianie kolejnych użytkowników lub organizacji, których dotyczy problem, w miarę ich identyfikacji. Należy jednak okresowo sprawdzać, które aplikacje OAuth zostały lub są autoryzowane do dostępu do organizacji i usuwać te, które nie są już potrzebne. Można również przeglądać dzienniki audytowe organizacji i dzienniki bezpieczeństwa kont użytkowników w poszukiwaniu nieoczekiwanych działań lub anomalii.