• Produkt wycofany

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
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!

Kraj pochodzenia: Polska

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

Produkty z tej samej kategorii: