Co to jest utwardzanie aplikacji?
Hartowanie aplikacji to koncepcja i technika w cyberbezpieczeństwie, która wykorzystuje obfuskację kodu, kryptografię białej skrzynki i inne techniki w celu ochrony aplikacji przed technikami oszustw mobilnych, takimi jak inżynieria wsteczna i manipulacja. Hartowanie aplikacji powinno być najlepszą praktyką dla firm, aby chronić swoje aplikacje, zmniejszyć ryzyko związane z bezpieczeństwem i zapobiec nadużyciom, oszustwom i przepakowywaniu.
Ochrona w aplikacji, utwardzanie aplikacji i osłony aplikacji
Utwardzanie i osłanianie aplikacji to podsystemy ochrony aplikacji. Ochrona aplikacji jest przeznaczona do ochrony aplikacji od wewnątrz i jest dobrze dostosowana do podejścia zero zaufania do ochrony aplikacji. Ochrona aplikacji najlepiej sprawdza się w przypadku aplikacji o wysokiej wartości, działających na urządzeniach nienadzorowanych lub w niezaufanych środowiskach.
Hartowanie aplikacji obejmuje funkcje prewencyjne, które zwiększają trudności w przeprowadzeniu ataku przez atakującego. Osłona aplikacji obejmuje środki antytamperingowe mające na celu uniemożliwienie atakującemu oraz funkcje wykrywania, które określają, czy środowisko aplikacji może być zaufane.
Ochrona aplikacji obejmuje również takie funkcje, jak technologie antybotowe, ochrona przed atakami typu clickjacking, samoochrona aplikacji w czasie rzeczywistym, uwierzytelnianie wieloczynnikowe i analiza ryzyka.
Założenia bezpieczeństwa mobilnego, które pozostawiają aplikacje podatne na ataki
Twórcy aplikacji mobilnych nie są w stanie kontrolować wszystkich środowisk, w których ich aplikacje będą używane. Na przykład, użytkownicy mogą dokonać jailbreak lub rootowania swojego urządzenia, co wyłącza zabezpieczenia systemu operacyjnego. Dlatego hardening aplikacji jest ważnym elementem bezpieczeństwa aplikacji mobilnych, ponieważ wbudowuje zabezpieczenia w samą aplikację niezależnie od stanu bezpieczeństwa urządzenia czy systemu operacyjnego.
Dwa powszechne błędne przekonania zwiększają ryzyko kompromitacji aplikacji mobilnych.
Po pierwsze, ludzie zakładają, że oficjalne sklepy z aplikacjami - Apple App Store i Google Play - oferują tylko legalne, bezpieczne aplikacje do pobrania. Oficjalne sklepy z aplikacjami skanują aplikacje zgłaszane przez deweloperów pod kątem obecności złośliwego oprogramowania i sprawdzają, czy dostęp aplikacji do danych użytkownika jest zapośredniczony.
Ale rzeczywistość jest taka, że sklep z aplikacjami nie są w stanie złapać każdej złośliwej aplikacji, ponieważ jest ich po prostu zbyt wiele, aby wykorzenić wszystkie te złe i działać jako niezawodna kontrola bezpieczeństwa.
Po drugie, wiele osób zakłada, że systemy operacyjne iOS i Android zapewniają odpowiednie bezpieczeństwo dla aplikacji mobilnych pobieranych na ich urządzenia. W rzeczywistości łaty na luki w systemie Android lub iOS nie zawsze są dostępne natychmiast, a użytkownicy nie zawsze przestrzegają zasad cyberbezpieczeństwa, regularnie aktualizując swoje urządzenia. Ponadto w niektórych przypadkach programiści nie implementują poprawnie możliwości szyfrowania zapewnianych przez systemy operacyjne.
Powody, dla których warto utwardzać swoje aplikacje
Istnieją trzy podstawowe powody, dla których warto utwardzać aplikacje: zabezpieczenie własności intelektualnej, ochrona integralności aplikacji i zabezpieczenie wrażliwych danych w aplikacji.
W ramach aplikacji znajduje się własność intelektualna (IP), taka jak koncepcje, innowacje i wynalazki, które dają firmie przewagę konkurencyjną. Posiadanie działającego kodu źródłowego daje dostęp do każdego IP, które jest zakodowane w aplikacji. Analizując kod źródłowy aplikacji, haker może wykraść IP. Hartowanie aplikacji może zapewnić bezpieczeństwo IP.
Integralność aplikacji jest również przedmiotem troski twórców aplikacji. Złośliwi aktorzy mogą sprawdzić i, jeśli to możliwe, zmodyfikować aplikację, aby ją sklonować, ukraść dane lub pobrać dane za pośrednictwem interfejsów API. Aplikacja, która nie jest zabezpieczona za pomocą obfuskacji i kryptografii whitebox jest jak otwarta książka. Atakujący mogą przeprowadzić statyczną analizę kodu aplikacji na widoku i znaleźć obszary, które można zaatakować i wykorzystać. W ramach warstwowej strategii obrony, firmy powinny również posiadać mechanizmy, które dodają do aplikacji funkcje antydebugowe i antytamperowe w celu ochrony, wykrywania i reagowania na ataki na jej integralność.
Popularną techniką ataku jest wykorzystywanie luk w zabezpieczeniach aplikacji w celu kradzieży poufnych, prywatnych danych. Ponieważ dane używane w czasie działania aplikacji mogą być narażone w sposób, w jaki dane w spoczynku lub w tranzycie mogą nie być narażone, a atakujący mogą być w stanie nauczyć się, jak to wykorzystać za pomocą debuggerów, emulatorów i innych narzędzi, kolejną najlepszą strategią jest ograniczenie nieautoryzowanego użycia debuggerów, emulatorów i innych narzędzi, które hakerzy wykorzystują do uzyskiwania dostępu i modyfikowania danych w aplikacjach. Ponadto, jeśli klucze szyfrujące nie są odpowiednio chronione, osoba atakująca może wykraść te klucze i użyć ich do uzyskania dostępu do danych w tranzycie. Hartowanie aplikacji i inne techniki ochrony aplikacji zabezpieczają aplikacje i dane, które przez nie przepływają, poprzez wyłączenie wektorów ataków, z których korzystają hakerzy.
Techniki utwardzania aplikacji
Hartowanie aplikacji obejmuje kilka technik ochrony aplikacji przed napastnikami. Obejmują one:
Obfuskacja kodu
Obfuskacja kodu szyfruje kod aplikacji, aby utrudnić jej inżynierię wsteczną. Dlatego też trudniej jest namierzyć aplikację, czyniąc ją trudniejszą do odczytania, co również utrudnia kradzież jej IP lub przepakowanie. Obfuskacja kodu wykorzystuje kilka technik do ochrony aplikacji. Komponentom oprogramowania i identyfikatorom można zmieniać nazwy. Można dodać kod zaślepiający, który nigdy nie jest używany, a także zaszyfrować ciągi znaków. Kod może być rekompilowany i uruchamiany w interpreterze lub maszynie wirtualnej. Inne techniki obfuskacji kodu to odbijanie i pakowanie.
Kryptografia białej skrzynki lub kryptografia białej skrzynki
Takie podejście stanowi alternatywę dla korzystania z natywnych narzędzi nowoczesnych platform, takich jak Apple iOS's Keychain lub Android Keystore. Jeśli firma musi pozwolić swoim aplikacjom działać na urządzeniach jailbroken, może to być przydatna technika kryptograficzna. Ponadto, White Boxing może być wykorzystany, jeśli intruz widzi domyślną lokalizację, taką jak Keychain/Secure Enclave dla iOS lub KeyStore dla Androida, dla danych uwierzytelniających na urządzeniu w celu ukierunkowania ataku.
Inne techniki:
- Przypinanie certyfikatów, które umożliwia stronom biorącym udział w procesie wzajemnego uwierzytelniania przypinanie konkretnych certyfikatów, może być wykorzystywane do przeciwdziałania atakom typu man-in-the-middle.
- Szyfrowanie zasobów polega na szyfrowaniu komponentów aplikacji, takich jak klasy i ciągi znaków.
- Auto-wygaśnięcie ustawia termin, po którym użytkownik jest wylogowywany po okresie bezczynności.
- Samodzielne klawiatury mogą zostać wykorzystane do powstrzymania prób logowania klawiszy, a wykrywanie nieautoryzowanych klawiatur może zostać użyte do wykrycia nieautoryzowanych klawiatur.
- Polimorfizm jest metodą, w której kod może być zmieniony tak, aby utrudnić inżynierię wsteczną.
Przypadki użycia hartowania aplikacji
Aplikacje bankowości mobilnej są jednym z przypadków użycia hardeningu aplikacji. Coraz więcej użytkowników mobilnych korzysta z bankowości za pomocą swoich urządzeń. Oszuści starają się wykorzystać każdą lukę w zabezpieczeniach, jaką uda im się znaleźć. Hartowanie aplikacji pomaga zapobiegać rozwijaniu przez oszustów złośliwych exploitów aplikacji bankowości mobilnej, utrudniając atakującemu osiągnięcie sukcesu.
Mobilne aplikacje opieki zdrowotnej przetwarzają chronione informacje zdrowotne (PHI) regulowane przez Health Insurance Portability and Accountability Act (HIPAA). Świadczeniodawcy i inne podmioty mogą spotkać się z surowymi karami, jeśli ich aplikacje telezdrowotne ujawnią dane pacjentów. Hartowanie aplikacji może zapewnić zachowanie poufności danych pacjentów i uniknięcie kar HIPAA dzięki uniemożliwieniu cyberatakującym dostępu do informacji PHI.
Mobilne aplikacje detaliczne to kolejny doskonały przypadek zastosowania hartowania aplikacji. Przetwarzają one dane kart płatniczych zgodnie z normą Payment Card Industry Data Security Standard (PCI DSS). Sprzedawcy internetowi, którzy nie spełnią wymogów PCI DSS, mogą narazić się na kary ze strony firm obsługujących karty kredytowe, utratę zaufania klientów, a nawet kontrole Federalnej Komisji Handlu.
Pracownicy służb publicznych, tacy jak osoby udzielające pierwszej pomocy, organy ścigania i agencje rządowe, uzyskują dostęp do poufnych informacji, przesyłają je i przechowują w swoich aplikacjach mobilnych. Dane te mogą podlegać przepisom HIPAA, polityce agencji lub zasadom ochrony prywatności, dlatego muszą być chronione za pomocą solidnych środków bezpieczeństwa, takich jak utwardzanie aplikacji.
Aplikacje mobilne skierowane do konsumentów stanowią pomost pomiędzy światem zewnętrznym a wrażliwymi wewnętrznymi bazami danych klientów, co czyni je celem ataków. Hartowanie aplikacji jest w stanie zablokować lub w inny sposób uniemożliwić napastnikom wykorzystanie licznych luk w aplikacjach mobilnych, które mogą skutkować kradzieżą danych.
Wraz z wykładniczym wzrostem liczby podłączonych urządzeń i aplikacji, powierzchnia ataku hakerów, którzy infiltrują sieci w domu, w miejscu pracy i w fabryce, rośnie w podobnym tempie. Aplikacje, które kontrolują podłączone urządzenia, są podatne na ataki. Hartowanie aplikacji może zabezpieczyć te aplikacje, aby chronić systemy wbudowane w sposób, którego nie mogą zapewnić rozwiązania antywirusowe i inne konwencjonalne narzędzia bezpieczeństwa.
Pomóż chronić się przed tymi strategiami ataków, stosując utwardzanie aplikacji
Hartowanie aplikacji może pomóc w ochronie aplikacji przed kilkoma scenariuszami ataków, w tym inżynierią wsteczną, przepakowywaniem i nieuczciwymi klawiaturami.
Inżynieria odwrotna to praktyka analizy aplikacji w celu wydobycia informacji na temat projektu i implementacji. Technika ta może być wykorzystywana do legalnych celów, ale atakujący może również użyć jej do analizowania kodu i tworzenia złośliwego oprogramowania, które wykorzystuje aplikacje do niecnych celów.
W ataku polegającym na przepakowywaniu haker odwzorowuje legalną aplikację, dodaje do niej złośliwy kod i umieszcza ją w sklepie z aplikacjami. Jest to ulubiona technika atakujących aplikacje bankowości mobilnej.
Aplikacje klawiatur alternatywnych, które są wykorzystywane przez użytkowników do dostosowywania swoich klawiatur, mogą również ukrywać złośliwy kod, który wykrada dane lub wykonuje inne złośliwe działania.
Podsumowując, utwardzanie aplikacji chroni aplikacje przed złośliwą aktywnością i zabezpiecza poufne informacje przed cyberprzestępcami w całym cyklu ich życia. Hartowanie aplikacji jest częścią warstwowego podejścia do bezpieczeństwa aplikacji, które obejmuje ochronę przed uruchomieniem, silne uwierzytelnianie i inne techniki. Warstwowe zabezpieczenia mogą pomóc w przyspieszeniu inicjatyw transformacji cyfrowej, zmniejszeniu kosztów operacyjnych i otwarciu nowych możliwości rozwoju.