android:wyeksportowany,

Kategoria OWASP: MASVS-PLATFORM: Platform Interaction

Omówienie

android:exported Atrybut określa, czy komponent (aktywność, usługa, odbiornik transmisji itp.) może być uruchamiany przez komponenty innych aplikacji:

  • Jeśli true, każda aplikacja może uzyskać dostęp do aktywności i uruchomić ją za pomocą dokładnej nazwy klasy.
  • Jeśli jest to false, aktywność mogą uruchamiać tylko komponenty tej samej aplikacji, aplikacje z tym samym identyfikatorem użytkownika lub uprzywilejowane komponenty systemowe.

Logika domyślnej wartości tego atrybutu zmieniała się z czasem i była różna w zależności od typów komponentów i wersji Androida. Na przykład na poziomie interfejsu API 16 (Android 4.1.1) lub starszym wartość elementów <provider> jest domyślnie ustawiona na true. Jeśli nie ustawisz tego atrybutu, na niektórych urządzeniach mogą być używane różne wartości domyślne.

Wpływ

Sytuacja z różnymi wartościami domyślnymi oznacza, że możesz przypadkowo udostępnić wewnętrzne komponenty aplikacji. Oto kilka przykładów konsekwencji:

Ataki typu DoS. Inne aplikacje uzyskują nieodpowiedni dostęp do komponentów wewnętrznych, aby modyfikować wewnętrzne funkcje Twojej aplikacji. wyciek danych wrażliwych, wykonanie kodu w kontekście podatnej na ataki aplikacji;

Środki ograniczające ryzyko

Zawsze wyraźnie ustawiaj atrybut android:exported. Nie pozostawi to miejsca na interpretację i wyraźnie zasygnalizuje Twoje intencje dotyczące widoczności komponentu.