Nasza strona używa cookies. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Starbucks udostępnia za dużo na GitHubie

Udostępniając klucz API w publicznym repozytorium GitHuba, Starbucks naraził się na ataki hakerów.
Starbucks udostępnia za dużo na GitHubie

Aplikacje wewnętrzne Starbucksa były przez jakiś czas mocno odsłonięte i wysoce narażone na ataki z zewnątrz. Najpierw Vinoth Kumar, łowca luk w bezpieczeństwie sieci, odkrył furtkę do aplikacji Starbucksa, a potem Beeping Computer zauważył, że poziom zagrożenia istotnie jest venti.


O krok od chaosu

Otóż deweloperzy Starbucksa byli o krok od rozpętania chaosu, udostępniając klucz API do produkcyjnego JumpCloud firmy w publicznym repozytorium GitHuba. JumpCloud to platforma do zarządzania ActiveDirectory, która stanowi alternatywę dla Azure AD. Zapewnia m.in. uwierzytelnienie użytkowników, SSO i LDAP.

Kumar odnalazł niezabezpieczony klucz i poinformował Starbucksa o tym fakcie poprzez HackerOne, platformę dedykowaną wykrywaniu bugów oraz koordynowaniu poziomu bezpieczeństwa sieci. W zamian za pomoc, Starbucks wypłacił Kumarowi 4000 dolarów nagrody.


Sytuacja opanowana

Starbucks może już się uspokoić i serwować swoje latte, ponieważ potencjalny atak mógł spowodować zmianę listy autoryzowanych użytkowników. To mogło doprowadzić do sporego wycieku danych i innego rodzaju ataków, jednak do niczego takiego nie doszło. Starbucks usunął repozytorium i unieważnił wyeksponowany klucz.

Cały proces oceny tego, co się stało, zajął firmie aż 3 tygodnie, ponieważ musieli upewnić się, że nie doszło do żadnego wycieku, czy nieuprawnionego dostępu. Mimo, że nic takiego nie miało miejsca, to zbadanie niebezpieczeństwa zajęło wiele godzin pracowników firmy. Widać więc, że o wiele taniej jest zapobiegać niż leczyć.


Dobre praktyki

Dobre praktyki w zakresie ochrony kluczy API przedstawia m.in. Google w dokumentacji dotyczącej używania kluczy. Warto się z nimi zapoznać. Jednak przede wszystkim nie należy ich trzymać w kodzie projektu i najlepiej przechowywać poza drzewem plików projektu, by przypadkowo nie znalazły się w repozytorium.

Rozpocznij dyskusję

Lubisz dzielić się wiedzą i chcesz zostać autorem?

Podziel się wiedzą z 160 tysiącami naszych czytelników

Dowiedz się więcej