Niebezpieczne przechowywanie i komunikacja
Typowe luki
Niebezpieczne przechowywanie i komunikacja to bezpłatna lekcja Ethical Hacking Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ethical Hacking Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.
Dwie klasyczne luki
Dwie z najczęstszych podatności aplikacji mobilnych to niezabezpieczone przechowywanie danych i niezabezpieczona komunikacja. Występują one w zestawieniu OWASP Mobile Top 10.
Obie wynikają z nadmiernego zaufania deweloperów do urządzenia i niewłaściwej ochrony danych.
Gdzie aplikacje przechowują dane
Aplikacje przechowują dane w /data/data/<package>/:
- SharedPreferences: pliki XML z parami klucz-wartość.
- Bazy danych SQLite.
- Pliki wewnętrzne i zewnętrzne.
Testerzy penetracyjni sprawdzają każde z tych miejsc pod kątem sekretów przechowywanych w postaci jawnej.
/data/data/com.app/shared_prefs/prefs.xmlSekrety w postaci jawnej
Częstą luką jest przechowywanie haseł, tokenów lub danych osobowych w postaci jawnej w SharedPreferences albo bazie danych.
Na zrootowanym urządzeniu, za pośrednictwem kopii zapasowej lub przy użyciu Objection atakujący może odczytać je bezpośrednio. Dane wrażliwe należy szyfrować albo przechowywać w bezpiecznym sprzęcie.
<string name="auth_token">eyJhbGci...plaintext...</string>Zagrożenia związane z pamięcią zewnętrzną
Dane zapisywane w pamięci zewnętrznej (obszar karty SD) są w starszych wersjach Androida dostępne do odczytu dla wszystkich, a także dla każdej aplikacji mającej uprawnienie dostępu do pamięci.
Zapisywanie tam wrażliwych plików naraża je na dostęp innych aplikacji. Powiązanym wyciekiem są również logi zapisywane na dysku.
Właściwy sposób przechowywania sekretów
Bezpieczne rozwiązania obejmują Android Keystore (klucze przechowywane w sprzęcie i nigdy nieudostępniane aplikacji) oraz EncryptedSharedPreferences.
Keystore może wykonywać operacje kryptograficzne bez ujawniania klucza, co jest znacznie bezpieczniejsze niż klucz zapisany na stałe w kodzie.
Niezabezpieczona komunikacja
Niezabezpieczona komunikacja oznacza przesyłanie danych bez właściwej ochrony. Najgorszym przypadkiem jest jawną komunikacja HTTP, w której każda osoba w sieci może odczytywać lub modyfikować ruch.
Cały ruch zawierający dane wrażliwe musi korzystać z HTTPS/TLS.
http://api.app.com/login # cleartext, credentials exposedPrzechwytywanie ruchu
Aby analizować ruch, należy skierować urządzenie przez proxy przechwytujące, takie jak Burp Suite. Na urządzeniu trzeba zainstalować certyfikat CA Burp, aby można było odczytywać połączenia HTTPS.
Ujawnia to punkty końcowe API, parametry oraz wszelkie wrażliwe dane przesyłane w ruchu.
Przypinanie certyfikatu
Dobrze zbudowane aplikacje używają przypinania certyfikatu, aby odrzucać każdy certyfikat poza własnym, uniemożliwiając użycie podstawowego proxy.
Jak już się Państwo nauczyli, mechanizm Frida omijający SSL pinning wyłącza to zabezpieczenie, dzięki czemu można nadal przechwytywać ruch i oceniać rzeczywiste bezpieczeństwo API.
Słaby TLS i walidacja
Nawet przy użyciu HTTPS występują luki, takie jak ufanie wszystkim certyfikatom, akceptowanie wygasłych certyfikatów lub wyłączenie weryfikacji nazwy hosta — często dodawane na szybko w celu ułatwienia prac deweloperskich.
Umożliwiają one atakującemu przeprowadzenie ataku man-in-the-middle mimo obecności TLS.
Kopie zapasowe i logi
Dwa kolejne źródła wycieków:
android:allowBackup="true"umożliwia każdej osobie mającej urządzenie wyodrębnienie danych aplikacji za pomocąadb backup.- Szczegółowe dane wyjściowe logcat mogą zawierać tokeny lub dane osobowe.
W środowisku produkcyjnym oba mechanizmy należy wyłączyć albo oczyścić z wrażliwych danych.
adb backup -f data.ab com.appSchowek i zrzuty ekranu
Dwa często pomijane źródła wycieków to kopiowanie wrażliwych danych do schowka (w starszych wersjach Androida możliwego do odczytu przez inne aplikacje) oraz systemowy zrzut ekranu wykonywany, gdy aplikacja przechodzi do tła.
Aplikacje bankowe ograniczają to ryzyko za pomocą flagi okna FLAG_SECURE, która blokuje zrzuty ekranu i podgląd w przełączniku zadań.
Szybkie sprawdzenie
Proszę przypomnieć sobie, gdzie najbezpieczniej przechowywać klucze kryptograficzne w systemie Android.
Podsumowanie
Rozumieją już Państwo problemy niezabezpieczonego przechowywania danych i komunikacji:
- Aplikacje ujawniają sekrety w postaci jawnej w SharedPreferences, bazach danych, pamięci zewnętrznej i logach.
- Przechowuj sekrety w Android Keystore lub EncryptedSharedPreferences.
- Niezabezpieczona komunikacja obejmuje zarówno jawną komunikację HTTP, jak i słabą walidację TLS; do przechwytywania używaj Burp.
- Omijaj przypinanie certyfikatu za pomocą Fridy; wyłącz allowBackup i oczyszczaj logi z danych wrażliwych.
Ukończyli już Państwo kurs testów penetracyjnych aplikacji mobilnych.
Często zadawane pytania
Czy lekcja „Niebezpieczne przechowywanie i komunikacja” jest bezpłatna?
Tak — pełny tekst „Niebezpieczne przechowywanie i komunikacja” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ethical Hacking Academy, przejdź na CoddyKit PRO. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Niebezpieczne przechowywanie i komunikacja”?
Typowe luki Ćwiczysz Ethical Hacking Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Ethical Hacking Academy?
Nie wymagamy żadnego doświadczenia. Ethical Hacking Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Niebezpieczne przechowywanie i komunikacja”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Ethical Hacking Academy?
Tak. Każda lekcja Ethical Hacking Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Struktura aplikacji Android
- Analiza statyczna plików APK
- Analiza dynamiczna za pomocą Frida
- Niebezpieczne przechowywanie i komunikacja