Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Błąd warty 300 000 PLN: możliwość nieautoryzowanego dostępu do kamery na iPhoneach/MacBookach (przez Safari)
Jak szybko zarobić 75 000 dolarów? Wystarczy znaleźć błąd pozwalający na nieautoryzowany dostęp do kamerki w Safari (zarówno na macOS, jak i iOS)! A właściwie nie jeden błąd, a serię siedmiu błędów, takich jak znalazł Ryan Pickren podczas analizy bezpieczeństwa modelu uprawnień do kamery. Trzy z tych błędów były potrzebne do ostatecznego exploita.
Przejście przez techniczny opis błędu jest prawdziwą gratką dla wszystkich miłośników bezpieczeństwa przeglądarek webowych. Autor pokazuje dokładnie i technicznie, jakie założenia dotyczące bezpieczeństwa poczyniło Safari i w jaki sposób udało się je obejść. W telegraficznym skrócie:
- Safari przechowywało informację o nazwach domen, którym użytkownik pozwolił na dostęp do kamerki. Nie przechowywało jednak informacji o protokole. Okazało się, że jak użytkownik dał dostęp do „
https://skype.com
„, to „file://skype.com
” też miało dostęp. - Gdy użytkownik odwiedził odpowiednio spreparowaną stronę przez napastnika, był przekierowany do URL-a typu
data:
, - Kolejnym krokiem było odwołanie się do URL-a typu
blob:
w taki sposób, że Safari ustawiło „dziwny” origin:://
, - Stamtąd można było dokonać przekierowania do
blob://skype.com
w taki sposób, że nadal był ustawiony origin://
, - Wykonując kolejną serię przekierowań, udało się zmusić Safari, by adresem URL obecnej strony było
blob://skype.com
, Safari myślało, że jest na stronie z HTTPS (bo tylko wtedy daje dostęp do kamerki), a origin był ustawiony nanull
. - W takiej sytuacji, jeśli użytkownik dał wcześniej uprawnienia do kamerki dla
https://skype.com
, to Safari uznało, żeblob://skype.com
też je powinno mieć i dało bez dodatkowego pytania.
Ostateczny efekt ataku można zobaczyć tutaj.
— mb