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.