Potencjalna luka w zabezpieczeniach interfejsu API autouzupełniania systemu Android Oreo umożliwia menedżerom haseł wyciek danych, takich jak hasła, adresy lub karty kredytowe.
Automatyczne uzupełnianie to jedna z największych i najbardziej nagłośnionych nowych funkcji wprowadzonych wraz z wydaniem systemu Android 8.0 Oreo. Wiele różnych aplikacji do zarządzania hasłami, takich jak LastPass, zaimplementowało już ten nowy interfejs API w swoich aplikacjach. I choć może się to okazać całkiem poprawa w porównaniu z poprzednimi implementacjami automatycznego wypełniania przy użyciu usług dostępności, należy wziąć pod uwagę potencjalną lukę w zabezpieczeniach. W zeszłym miesiącu w serwisie GitHub opublikowano białą księgę dokumentującą nieodłączną wadę interfejsu API automatycznego wypełniania Androida Oreo, która mogła potencjalnie doprowadzić do wycieku przez menedżera haseł większej ilości danych osobowych, niż mu na to pozwoliłeś. Zamierzamy szybko podsumować białą księgę napisaną przez Marka Murphy’ego (lepiej znanego jako
CommonsWare) i opublikowany na jego stronie GitHub 8 sierpnia 2017 r.Potencjalny błąd związany z wyciekiem danych w interfejsie API automatycznego wypełniania systemu Android Oreo
Jak działa usterka?
Implementacja autouzupełniania w Androidzie Nougat (i niższych wersjach) oraz przeglądarkach takich jak Google Chrome jest czymś naprawdę prostym. Zwykle aplikacje do zarządzania hasłami korzystają z usług ułatwień dostępu, aby skanować zawartość ekranu w poszukiwaniu pola logowania i rekomendować automatyczne uzupełnianie danych na podstawie znalezionych informacji. Chociaż zadziałało, to może powodować znaczne opóźnienia.
W systemie Android Oreo działa to nieco inaczej, ponieważ aplikacje z hasłami są teraz oficjalnie obsługiwane za pomocą interfejsu API autouzupełniania. Aplikacje haseł innych firm nie wymagają już usług ułatwień dostępu, ponieważ mogą teraz pełnić rolę usługi autouzupełniania, komunikując się z aplikacjami za pośrednictwem struktury autouzupełniania. Kiedy użytkownik skupi się na widżecie, system spakuje pewne informacje o tym widżecie/formularzu i wyśle je do aplikacji automatycznego wypełniania. Następnie aplikacja zwraca odpowiednie dane autouzupełniania, takie jak hasła, adresy e-mail, karty kredytowe lub inne wrażliwe dane. System Android pełni rolę pośrednika pomiędzy aplikacją przechowującą dane, a tą, która o nie prosi.
Jednak złośliwe aplikacje lub złośliwe oprogramowanie mogą w rzeczywistości skorzystać z funkcji autouzupełniania, aby uzyskać więcej danych dla siebie. Złośliwe działanie może poproś o wprowadzenie dodatkowych danych autouzupełniania za pomocą niewidocznego lub ukrytego widżetu. Chociaż użytkownik wyraża zgodę na wypełnienie jednego z widocznych widżetów, np. formularza logowania lub czegoś podobnego, niewidzialny widżet również otrzymuje dodatkowe dane bez Twojej obecności. Może to być naprawdę niebezpieczne, jeśli wyciekające informacje obejmują hasło, adres lub dane karty kredytowej!
Powyższe zrzuty ekranu przedstawiają złośliwą aplikację testową wykorzystującą tę lukę w zabezpieczeniach.
Odpowiedź Google na problem
Według CommonsWare ten problem bezpieczeństwa nie ma jeszcze publicznego rozwiązania opublikowanego przez Google. Wiemy jednak, że Google jest świadomy problemu. CommonsWare twierdzi, że inżynierowie Google przyznali, że problem istnieje w prywatnym raporcie narzędzia do śledzenia problemów, ale tak się nie stało załatanie tego byłoby trudne (jeśli nie niemożliwe). lub wprowadź poprawkę.
Ale nie oznacza to, że użycie funkcji Autouzupełnianie jest całkowicie niebezpieczne, ponieważ Google stosuje inne podejście do zapewnienia bezpieczeństwa danych. Firma jest naleganie, aby usługi autouzupełniania zajęły się problemem po ich stronie i jako taki stara się podnieść świadomość programistów, aby ulepszyli swoich dostawców autouzupełniania i uczynili ich bezpieczniejszymi. Co dokładnie proponuje się?
Przede wszystkim dostawcy autouzupełniania powinni podzielić swoje dane. Zamiast trzymać wszystkie dane autouzupełniania w jednej puli, programiści powinni podzielić dane użytkownika przechowywane na partycjach. Na przykład partycja adresu/telefonu, partycja karty kredytowej, partycja hasła/nazwy użytkownika itp. Usługa autouzupełniania powinna przekazywać dane tylko z jednej partycji na raz w oparciu o wybrany widżet. To jest jeden z strony ogólnodostępne w aplikacjach autouzupełniania chroniących się przed wyciekiem danych do niewidocznych widżetów.
Według inżynierów Google jest jeszcze kilka innych rzeczy, które powinni zrobić twórcy menedżerów haseł. Na przykład dostawca autouzupełniania powinien przekazywać dane tylko konkretnej aplikacji, która je dostarczyła. Należy to zrobić poprzez weryfikację nazwy pakietu i publicznego podpisu aplikacji, aby nawet zmodyfikowany plik APK nie miał do niego dostępu. Inną rzeczą byłoby to, że aplikacje do automatycznego wypełniania wymagają uwierzytelnienia przed faktycznym dostarczeniem danych to działanie uwierzytelniające, informujące użytkownika, jakiego rodzaju dane zostaną przekazane aplikacji żądającej tego. Ta rada faktycznie zawiera wiele błędów, z których najważniejszym jest to, że Google nie egzekwuje tych porad.
Należy pamiętać, że wiele z powyższych propozycji zostało zaczerpniętych z prywatnego raportu narzędzia CommonsWare do śledzenia problemów, a nie z jakiejkolwiek oficjalnej strony dokumentacji Google. Aby uzyskać dalsze, bardziej techniczne informacje na temat tego, jak aplikacje korzystające z interfejsu API Autofill mogą chronić się przed tego rodzaju atakami, zdecydowanie zalecamy przeczytanie pełna biała księga autorstwa CommonsWare.
Jakie aplikacje są bezpieczne przed tą luką?
Skontaktowaliśmy się z twórcami 1Password, Enpass i LastPass w sprawie tej luki, a zespoły ds. bezpieczeństwa odpowiedzialne za te 3 aplikacje przejęte że są bezpieczne, chociaż nie zweryfikowaliśmy jeszcze tych twierdzeń.
Jak widać z powyższych zestawień, 1Password wymaga uwierzytelnienia od użytkownika przed uzupełnieniem danych, a także powiadomienia go o tym, jakie dane zostaną wcześniej uzupełnione. Pomaga to również w rozwiązaniu problemu cichego wypełniania, ponieważ przy każdym działaniu pojawi się wyskakujące okienko z prośbą o podanie danych autouzupełniania.
Enpass nigdy nie ujawni całego pęku kluczy aplikacji wysyłającej żądanie, niezależnie od tego, czy jest to złośliwa, czy autentyczna aplikacja. Użytkownikowi zostaną zaprezentowane tylko zapisane elementy pasujące do nazwy pakietu aplikacji żądającej. Potwierdzili również, że zgodnie z radą Google wprowadzą więcej środków.
Co więcej, LastPass potwierdził nam, że chociaż nie wiedziała o problemie przed wydaniem Androida Oreo, ich aplikacja korzysta partycjonowanie danych w celu ochrony użytkowników, wraz z innymi kontrolami, aby upewnić się, że LastPass wypełnia tylko aplikację powiązaną z wpisem.
Chociaż korzystanie z tych 3 aplikacji nie powinno powodować żadnych problemów, jeśli chcesz zachować całkowitą przejrzystość, powinieneś je wyłączyć automatycznie wypełniaj całkowicie w telefonie, dopóki nie potwierdzisz u twórcy menedżera haseł, że jego aplikacja jest bezpieczna przed tą linią atak. Na szczęście można to łatwo zrobić, przechodząc do Ustawienia > System > Języki i wprowadzanie > Zaawansowane i znajdując preferencję „Usługa automatycznego uzupełniania”, dotykając jej i wybierając „Brak”.
Jak powiedzieliśmy powyżej, nie wiadomo, czy Google faktycznie będzie w stanie opublikować rozwiązanie tego problemu, dlatego jedynym sposobem na zachowanie bezpieczeństwa jest korzystanie z zaufanych aplikacji lub po prostu wyłączanie tej funkcji. Jeśli chcesz przeczytać więcej na ten temat i wszystkie szczegóły z nim związane, powinieneś zapoznać się z oryginałem dokumentującą to białą księgę na GitHubie.
Ten artykuł został zaktualizowany 13 września 2017 r., aby dokładniej odzwierciedlić konsekwencje odpowiedzi LastPass, Enpass i 1Password.