• EOL

Android. Podręcznik hackera - Joshua J. Drake

Indeks: KSZ-03317

Tłumaczenie: Andrzej Stefański. Wydawnictwo: Helion. Książka przeznaczona dla osób, które chcą poszerzyć wiedzę z zakresu bezpieczeństwa urządzeń pracujących pod kontrolą systemu Android.

Android. Podręcznik hackera - Joshua J. Drake
29,00 zł
27,62 zł netto
Zapłać później
Powiadom o dostępności
Niedostępny
Produkt wycofany
Producent: Helion

Uwaga!

Sprzedaż produktu została zakończona. Sprawdź inne urządzenia w tej kategorii.

Opis

W ostatnich latach system Android  stał się liderem wśród systemów operacyjnych technologii mobilnej, a  jego pozycja na rynku wciąż rośnie. Stawia to przed twórcami systemu zagrożenie związane z bezpieczeństwem oprogramowania. Podręcznik hackera to pierwsze kompleksowe źródło informacji dla osób chcących poszerzyć wiedzę z zakresu bezpieczeństwo tego systemu.

 

Książka przybliża działanie systemu Android oraz jego ogólną architekturę zabezpieczeń. Podczas lektury czytelnik dowie się jak rozpoznawać szczegóły implementacji zabezpieczeń oraz jakie są komplikacje wynikające z faktu, że Android to otwarty system. W kolejnych rozdziałach poddane analizie zostały różne techniki i płaszczyzny ataków na urządzenia pracujące pod kontrolą Androida. Książka pokazuje w jaki sposób bronić się przed atakami hackerów na  ten popularny system.

 

Dzięki informacjom zawartym w tej książce dowiesz się jak:

  • Rozpoznawać szczegóły implementacji zabezpieczeń oraz komplikacje wynikające z otwartości Androida.
  • Unikać częstych pułapek związanych z bezpieczeństwem i śledzić najnowsze strategie hakowania smartfonów.
  • Analizować różnego rodzaju udane ataki na system operacyjny Android.
  • Uzyskiwać pełny dostęp do urządzenia i rozpoznawać układ partycji oraz proces startu urządzenia.
  • Rozumieć złożoną naturę ekosystemu Androida, w tym znaczenie różnych producentów urządzeń i twórców oprogramowania
 

 

Przykładowe programy wykorzystane w książce dostępne w internecie. Fragment książki do przeczytania on-line.

 

Spis treści

 

O autorach (13)

 

O korektorze merytorycznym (15)

 

Podziękowania (17)

 

Wprowadzenie (19)

  • Omówienie książki i technologii (20)
  • Jak podzielona jest ta książka (20)
  • Kto powinien przeczytać tę książkę (22)
  • Potrzebne narzędzia (22)
  • Co znajduje się na stronie internetowej (23)
  • Powodzenia! (23)
 

Rozdział 1. Rzut oka na ekosystem (25)

  • Korzenie Androida (25)
    • Historia firmy (25)
    • Historia wersji (26)
    • Dostępne urządzenia (28)
    • Otwarte (najczęściej) źródła (29)
  • Udziałowcy Androida (31)
    • Google (32)
    • Producenci sprzętu (33)
    • Operatorzy (35)
    • Programiści (35)
    • Użytkownicy (36)
  • Obraz złożoności ekosystemu (38)
    • Fragmentacja (38)
    • Kompatybilność (40)
    • Problemy związane z aktualizacją (41)
    • Bezpieczeństwo kontra otwartość (43)
    • Upublicznienie informacji (44)
  • Podsumowanie (45)
 

Rozdział 2. Projekt i architektura bezpieczeństwa Androida (47)

  • Architektura systemu Android (47)
  • Ograniczenia i zabezpieczenia (49)
    • Środowisko izolowane Androida (49)
    • Uprawnienia Androida (52)
  • Dokładniejsza analiza warstw (55)
    • Aplikacje Androida (55)
    • Android Framework (59)
    • Wirtualna maszyna Dalvik (60)
    • Kod natywny przestrzeni użytkownika (62)
    • Jądro (67)
  • Skomplikowane zabezpieczenia, skomplikowany exploit (74)
  • Podsumowanie (75)
 

Rozdział 3. Odblokowanie urządzenia (77)

  • Układ partycji (78)
    • Ustalenie układu partycji (79)
  • Proces uruchamiania systemu (80)
    • Dostęp do trybu pobierania (81)
  • Zablokowane i odblokowane programy ładujące (82)
    • Oryginalne oraz zmodyfikowane obrazy ratunkowe (83)
  • Uzyskiwanie pełnego dostępu z odblokowanym programem ładującym (85)
  • Uzyskiwanie pełnego dostępu przy zablokowanym programie ładującym (87)
    • Uzyskiwanie dostępu na uruchomionym systemie (88)
    • Blokady NAND, tymczasowy root, trwały root (89)
    • Utrwalanie programowego roota (91)
  • Historie znanych ataków (92)
    • Jądro: Wunderbar/asroot (92)
    • Tryb ratunkowy: Volez (93)
    • Udev: Exploid (93)
    • Adbd: RageAgainstTheCage (94)
    • Zygote: Zimperlich i Zysploit (94)
    • Ashmem: KillingInTheNameOf i psneuter (95)
    • Vold: GingerBreak (95)
    • PowerVR: levitator (96)
    • Libsysutils: zergRush (96)
    • Jądro: mempodroid (97)
    • Ataki związane z uprawnieniami plików oraz linkami symbolicznymi (97)
    • Adb restore (98)
    • Exynos4: exynos-abuse (99)
    • Diag: lit / diaggetroot (99)
  • Podsumowanie (100)
 

Rozdział 4. Przegląd bezpieczeństwa aplikacji (101)

  • Częste błędy (101)
    • Problemy z uprawnieniami aplikacji (102)
    • Niezabezpieczone przesyłanie wrażliwych danych (103)
    • Przechowywanie niezabezpieczonych danych (104)
    • Wycieki informacji przez logi (105)
    • Niezabezpieczone zakończenia IPC (106)
  • Studium przypadku: Mobile Security App (108)
    • Profilowanie (108)
    • Analiza statyczna (110)
    • Analiza dynamiczna (124)
    • Atak (132)
  • Studium przypadku: SIP Client (134)
    • Drozer (134)
    • Rozpoznanie (134)
    • Snarfing (136)
    • Wstrzykiwanie (138)
  • Podsumowanie (140)
 

Rozdział 5. Płaszczyzny ataku Androida (141)

  • Podstawy terminologii (141)
    • Wektory ataku (142)
    • Płaszczyzny ataku (143)
  • Klasyfikacja płaszczyzn ataku (144)
    • Właściwości płaszczyzny (144)
    • Sposób klasyfikacji (145)
  • Płaszczyzny ataku dostępne zdalnie (145)
    • Zagadnienia sieciowe (146)
    • Stosy sieciowe (150)
    • Udostępnione usługi sieciowe (151)
    • Technologie mobilne (152)
    • Płaszczyzna ataku po stronie użytkownika (153)
    • Infrastruktura Google (158)
  • Sąsiedztwo fizyczne (164)
    • Komunikacja bezprzewodowa (164)
    • Inne technologie (170)
  • Lokalne płaszczyzny ataku (170)
    • Przeglądanie systemu plików (171)
    • Odnajdywanie innych lokalnych płaszczyzn ataku (172)
  • Fizyczne płaszczyzny ataku (176)
    • Demontaż urządzenia (177)
    • USB (178)
    • Inne fizyczne płaszczyzny ataków (181)
  • Zewnętrzne modyfikacje (182)
  • Podsumowanie (182)
 

Rozdział 6. Wyszukiwanie słabości za pomocą fuzzingu (183)

  • Pochodzenie fuzzingu (183)
    • Identyfikowanie celu (185)
    • Tworzenie zniekształconych danych wejściowych (185)
    • Przetwarzanie danych wejściowych (186)
    • Monitorowanie wyników (187)
  • Fuzzing w Androidzie (187)
  • Fuzzing odbiorców komunikatów (188)
    • Identyfikacja celu (189)
    • Generowanie danych wejściowych (190)
    • Dostarczanie danych wejściowych (190)
    • Monitorowanie testów (191)
  • Fuzzing Chrome dla Androida (193)
    • Wybór celu (193)
    • Generowanie danych wejściowych (195)
    • Przetwarzanie danych wejściowych (197)
    • Monitorowanie testów (199)
  • Fuzzing płaszczyzny ataku USB (201)
    • Wyzwania fuzzingu USB (202)
    • Wybór trybu (202)
    • Generowanie danych wejściowych (203)
    • Przetwarzanie danych wejściowych (205)
    • Monitorowanie testów (206)
  • Podsumowanie (207)
 

Rozdział 7. Wyszukiwanie błędów i analiza słabości (209)

  • Zebranie wszystkich dostępnych informacji (209)
  • Wybór zestawu narzędzi (211)
  • Debugowanie błędnego zakończenia (212)
    • Logi systemowe (212)
    • Tombstone (213)
  • Zdalne debugowanie (214)
  • Debugowanie kodu maszyny wirtualnej Dalvik (215)
    • Debugowanie przykładowej aplikacji (216)
    • Wyświetlanie kodu źródłowego Android Framework (218)
    • Debugowanie istniejącego kodu (220)
  • Debugowanie kodu natywnego (224)
    • Debugowanie z NDK (224)
    • Debugowanie z Eclipse (228)
    • Debugowanie z AOSP (230)
    • Zwiększanie automatyzacji (235)
    • Debugowanie z symbolami (237)
    • Debugowanie urządzenia niewspieranego przez AOSP (243)
  • Debugowanie w trybie mieszanym (244)
  • Alternatywne techniki debugowania (244)
    • Wyrażenia do debugowania (244)
    • Debugowanie w urządzeniu (245)
    • Dynamiczne modyfikowanie binariów (246)
  • Analiza podatności (247)
    • Ustalanie pierwotnej przyczyny (247)
    • Ocena możliwości wykorzystania (260)
  • Podsumowanie (261)
 

Rozdział 8. Wykorzystywanie oprogramowania działającego w przestrzeni użytkownika (263)

  • Podstawy błędów pamięci (263)
    • Przepełnianie bufora stosu (264)
    • Wykorzystanie sterty (267)
  • Historia publicznie znanych eksploitów (274)
    • GingerBreak (275)
    • zergRush (278)
    • mempodroid (281)
  • Wykorzystanie przeglądarki Android (282)
    • Zrozumienie błędu (283)
    • Kontrola sterty (285)
  • Podsumowanie (288)
 

Rozdział 9. Return Oriented Programming (289)

  • Historia i uzasadnienie (289)
    • Oddzielna pamięć podręczna danych i instrukcji (290)
  • Podstawy ROP w ARM (292)
    • Wywoływanie podprocedur w ARM (293)
    • Łączenie gadżetów w łańcuch (295)
    • Identyfikacja potencjalnych gadżetów (296)
  • Studium przypadku: linker Androida 4.0.1 (297)
    • Modyfikacja wskaźnika stosu (298)
    • Wykonanie dowolnego kodu z zaalokowanej pamięci (300)
  • Podsumowanie (304)
 

Rozdział 10. Hakowanie i atakowanie jądra (317)

  • Jądro Linuksa w Androidzie (317)
  • Wyodrębnianie jądra (318)
    • Wyodrębnianie z oprogramowania fabrycznego (319)
    • Pobieranie z urządzenia (321)
    • Pobranie jądra z obrazu startowego (323)
    • Rozpakowanie jądra (323)
  • Uruchamianie zmodyfikowanego kodu jądra (324)
    • Pozyskanie kodu źródłowego (324)
    • Przygotowanie środowiska kompilacji (327)
    • Konfigurowanie jądra (328)
    • Korzystanie z własnych modułów jądra (329)
    • Kompilacja zmodyfikowanego jądra (332)
    • Tworzenie obrazu startowego (335)
    • Uruchamianie zmodyfikowanego jądra (337)
  • Debugowanie jądra (342)
    • Raporty błędów jądra (342)
    • Zrozumienie Oops (344)
    • Debugowanie na żywo z KGDB (348)
  • Wykorzystanie jądra (352)
    • Typowe jądra Androida (352)
    • Wyodrębnianie adresów (354)
    • Studia przypadku (356)
  • Podsumowanie (367)
 

Rozdział 11. Atakowanie RIL (311)

  • Wprowadzenie do RIL (312)
    • Architektura RIL (312)
    • Architektura smartfona (313)
    • Stos telefonu w Androidzie (313)
    • Dostosowanie stosu telefonu (315)
    • Usługi RIL (rild) (315)
    • API vendor-ril (318)
  • SMS (Short Message Service) (319)
    • Wysyłanie i odbieranie wiadomości SMS (319)
    • Format wiadomości SMS (319)
  • Komunikacja z modemem (322)
    • Emulacja modemu na potrzeby fuzzingu (322)
    • Fuzzing SMS w Androidzie (324)
  • Podsumowanie (331)
 

Rozdział 12. Mechanizmy ograniczające działanie eksploitów (333)

  • Klasyfikacja (334)
  • Podpisywanie kodu (334)
  • Utwardzanie sterty (336)
  • Zabezpieczenia przed przepełnieniem zmiennej typu integer (336)
  • Zapobieganie wykonaniu danych (338)
  • Randomizacja przestrzeni adresowej (340)
  • Zabezpieczanie stosu (342)
  • Zabezpieczenia formatujących ciągów znaków (343)
  • Read-Only Relocations (345)
  • Izolowanie środowiska (346)
  • Zabezpieczanie kodu źródłowego (346)
  • Mechanizmy kontroli dostępu (348)
  • Zabezpieczanie jądra (349)
    • Ograniczenia wskaźników i logów (350)
    • Ochrona strony zerowej (351)
    • Obszary pamięci tylko do odczytu (351)
  • Inne zabezpieczenia (352)
  • Podsumowanie mechanizmów ograniczających działanie eksploitów (354)
  • Wyłączanie ograniczeń (356)
    • Zmiana tożsamości (356)
    • Zamiana binariów (357)
    • Modyfikowanie jądra (357)
  • Pokonywanie mechanizmów ograniczających działanie eksploitów (358)
    • Pokonywanie zabezpieczeń stosu (358)
    • Pokonywanie ASLR (359)
    • Pokonywanie zabezpieczeń zapobiegających wykonaniu danych (359)
    • Pokonywanie ograniczeń jądra (359)
  • Spojrzenie w przyszłość (360)
    • Oficjalnie rozwijane projekty (360)
    • Utwardzanie jądra przez społeczność (361)
    • Odrobina spekulacji (362)
  • Podsumowanie (362)
 

Rozdział 13. Ataki sprzętowe (363)

  • Komunikacja ze sprzętem (364)
    • Interfejsy szeregowe UART (364)
    • Interfejsy I2C, SPI i One-Wire (368)
    • JTAG (370)
    • Odnajdywanie interfejsów do debugowania (381)
  • Identyfikacja komponentów (392)
    • Pozyskiwanie specyfikacji (392)
    • Trudności przy identyfikacji komponentów (394)
  • Przechwytywanie, monitorowanie i wstrzykiwanie danych (395)
    • USB (395)
    • Interfejsy szeregowe I2C, SPI i UART (399)
  • Kradzież danych i oprogramowania (404)
    • Uzyskiwanie dostępu w sposób dyskretny (405)
    • Inwazyjne metody dostępu do oprogramowania (407)
    • Co zrobić ze zrzutem danych? (410)
  • Pułapki (414)
    • Nietypowe interfejsy (414)
    • Dane binarne i zamknięte protokoły (414)
    • Uszkodzone interfejsy do debugowania (415)
    • Hasła układu (415)
    • Hasła programu ładującego, kombinacje klawiszy i ciche terminale (415)
    • Zmodyfikowane sekwencje startowe (416)
    • Ukryte linie adresowe (416)
    • Żywica zabezpieczająca (416)
    • Szyfrowanie obrazów, obfuskacja i utrudnianie debugowania (417)
  • Podsumowanie (417)
 

Dodatek A. Narzędzia (419)

  • Narzędzia programistyczne (419)
    • Android SDK (419)
    • Android NDK (420)
    • Eclipse (420)
    • Wtyczka ADT (420)
    • Pakiet ADT (420)
    • Android Studio (420)
  • Narzędzia do pozyskiwania fabrycznego oprogramowania i modyfikowania pamięci (421)
    • Binwalk (421)
    • fastboot (421)
    • Samsung (421)
    • NVIDIA (422)
    • LG (422)
    • HTC (423)
    • Motorola (423)
  • Narzędzia natywne Androida (424)
    • BusyBox (424)
    • setpropex (425)
    • SQLite (425)
    • strace (425)
  • Narzędzia do podpinania i modyfikowania (425)
    • Framework ADBI (425)
    • ldpreloadhook (426)
    • Framework XPosed (426)
    • Cydia Substrate (426)
  • Narzędzia do analizy statycznej (426)
    • Smali i Baksmali (427)
    • Androguard (427)
    • apktool (427)
    • dex2jar (427)
    • jad (428)
    • JD-GUI (428)
    • JEB (428)
    • Radare2 (428)
    • IDA Pro i dekompilator Hex-Rays (429)
  • Narzędzia do testowania aplikacji (429)
    • Framework Drozer (Mercury) (429)
    • iSEC Intent Sniffer i Intent Fuzzer (429)
  • Narzędzia do hakowania sprzętu (430)
    • Segger J-Link (430)
    • JTAGulator (430)
    • OpenOCD (430)
    • Saleae (430)
    • Bus Pirate (430)
    • GoodFET (431)
    • TotalPhase Beagle USB (431)
    • Facedancer21 (431)
    • TotalPhase Aardvark I2C (431)
    • Chip Quik (431)
    • Opalarka (431)
    • Xeltek SuperPro (432)
    • IDA (432)
 

Dodatek B. Repozytoria otwartych kodów źródłowych (433)

  • Google (433)
    • AOSP (433)
    • System kontroli kodu Gerrit (434)
  • Producenci SoC (434)
    • AllWinner (435)
    • Intel (435)
    • Marvell (435)
    • MediaTek (435)
    • Nvidia (436)
    • Texas Instruments (436)
    • Qualcomm (436)
    • Samsung (437)
  • Producenci urządzeń (OEM) (437)
    • ASUS (438)
    • HTC (438)
    • LG (438)
    • Motorola (439)
    • Samsung (439)
    • Sony Mobile (439)
  • Źródła projektów zewnętrznych (440)
  • Inne źródła (440)
    • Zmodyfikowane oprogramowanie fabryczne (440)
    • Linaro (441)
    • Replicant (441)
    • Indeksy kodu (441)
    • Wolni strzelcy (441)

Dodatek C. Źródła (443)

 

Skorowidz (501)

Książka - Autor Joshua J. Drake, Zach Lanier, Collin Mulliner, Pau Oliva Fora, Stephen A. Ridley, Georg Wicherski
Książka - ISBN 978-83-246-9940-7
Książka - Oprawa miękka
Książka - Wydawnictwo Helion
Szerokość opakowania 0.001 cm
Wysokość opakowania 0.001 cm
Głębokość opakowania 0.001 cm
Masa opakowania 0.001 kg

Jako pierwszy zadaj pytanie dotyczące tego produktu!

Klienci którzy zakupili ten produkt kupili również:

Produkty z tej samej kategorii: