Współczesne telefony i tablety stanowią kluczowy element naszego codziennego życia. Ich rola w naszym społeczeństwie stale rośnie. Jednakże, wraz z rosnącą popularnością, pojawiają się również poważne zagrożenia. Niektóre związane są z interfejsem użytkownika.
Sprawdź: Czy aplikacje mobilne są bezpieczne? I tak. I nie!
Pierwszym kluczowym aspektem bezpieczeństwa aplikacji mobilnych jest zachowanie odpowiednich standardów przy ich tworzeniu. Nieodpowiednie praktyki programistyczne i niskiej jakości kod mogą prowadzić do poważnych luk bezpieczeństwa. Projekt Open Web Application Security Project jest jednym z najczęściej cytowanych w literaturze projektów, mających na celu identyfikację najczęstszych luk bezpieczeństwa w aplikacjach. Zagrożenia takie jak niewłaściwe użycie platformy, niebezpieczne przechowywanie danych, niezabezpieczona komunikacja czy niepewne uwierzytelnianie są często analizowane i omawiane w kontekście bezpieczeństwa aplikacji mobilnych.
Zobacz małe i duże wpadki aplikacji mobilnych.
A według badań Synopsys, co najmniej 80% aplikacji ma luki w bezpieczeństwie. Kategorie związane ze stylem życia, zdrowiem i kondycją są najmniej podatne na zagrożenia. Ale aplikacje bankowe, płatnicze i budżetowe wymagają najwięcej uprawnień ze średnią powyżej 18 uprawnień, co stawia je w roli najczęściej atakowanych.
Interfejs użytkownika jako źródło zagrożeń
Interfejs użytkownika stanowi kluczowy element każdej aplikacji mobilnej, ale jednocześnie stwarza potencjalne zagrożenia. Z powodu ograniczeń fizycznych urządzeń mobilnych, takich jak rozmiar ekranu, aplikacje muszą być projektowane z uwzględnieniem specyficznych wytycznych dotyczących interakcji użytkowników.
Badania Davida Bove’a z 2022 roku wskazują na podatność interfejsu użytkownika na zmienne trendy i rosnącą złożoność. W miarę ewolucji interfejsu użytkownika, staje się on coraz bardziej niezależny od wewnętrznej struktury aplikacji mobilnych oraz systemu operacyjnego. To tworzy nowe możliwości ataków, zwłaszcza w przypadku aplikacji obsługujących transakcje finansowe czy przetwarzanie danych osobowych, co potwierdza dane Synopsys.
Architektura aplikacji a bezpieczeństwo
Bezpieczeństwo aplikacji mobilnych jest również ściśle związane z architekturą samej aplikacji oraz strukturą systemu operacyjnego urządzenia. W miarę jak smartfony stają się coraz bardziej zaawansowane technologicznie, ich architektura obejmuje wiele warstw, w tym natywne biblioteki, oprogramowanie systemowe oraz biblioteki aplikacyjne.
Dlatego też, aby zrozumieć poziom bezpieczeństwa aplikacji, konieczne jest uwzględnienie całego ekosystemu urządzenia. Należy zauważyć, że system operacyjny iOS często jest uważany za bezpieczniejszy niż Android, ze względu na mniejszą liczbę odstępstw od standardów bezpieczeństwa. Warto również podkreślić, że aktualizacje systemu operacyjnego są kluczowe dla zapewnienia bezpieczeństwa urządzenia. Statistica wskazuje, że większość użytkowników iOS korzysta z najnowszych wersji systemu, co nie zawsze jest prawdą w przypadku Androida (Mixpanel).
ML w zwiększaniu bezpieczeństwa aplikacji mobilnych
Jednym z najnowocześniejszych i najbardziej obiecujących aspektów zwiększania bezpieczeństwa aplikacji mobilnych jest wykorzystanie sztucznej inteligencji. Obecnie AI znajduje zastosowanie w wielu obszarach tworzenia oprogramowania, w tym przetwarzaniu obrazów, przetwarzaniu języka naturalnego oraz planowaniu i optymalizacji. Uczenie maszynowe, zwłaszcza deep learning, jest używane do tworzenia modeli AI, pomagających w zwiększeniu bezpieczeństwa aplikacji mobilnych.
Ale bezpieczeństwo w kontekście AI wymaga badań
Wzrost popularności ChatGPT z końca zeszłego roku, pokazał, że istnieje ogromne zainteresowanie programistów narzędziami automatycznego kodowania. Zastosowanie AI w procesie tworzenia aplikacji mobilnych stwarza nowe możliwości, ale generuje też nowe zagrożenia. Badania wskazują, że narzędzia oparte na AI mogą nadpisywać kod w sposób szablonowy. Dla przykładu Copilot był szkolony na publicznych repozytoriach GitHuba. Dzięki czemu, po rozpoznaniu problemu, mógł posłużyć się kodem, napisanym już dla danego problemu. Zwiększa to niestety ryzyko wykrycia wrażliwości aplikacji. Istnieje także większe ryzyko, a mianowicie niebiezpieczny kod generowany przez złośliwe oprogramowanie w AI. Wiele firm zastrzega programistom korzystanie z modeli GPT. Niektóre firmy nie chcą uczyć sztucznej inteligencji swoich rozwiązań. Inne obawiają się kwestii bezpieczeństwa, a jeszcze inne nie chcą robić sobie problemów prawnych związanych z prawami autorskimi do kodu.
– GPT ma już spory wpływ na biznes, zwłaszcza w obszarach contentowych. Wypluwa też dość funkcjonalne kody, ale zachowałbym przy nich czujność. Firmy mają słuszne wątpliwości do korzystania z kodu wygenerowanego przez tego typu modele. Prawa autorskie do takiego kodu są niejasne, co stanowi ryzyko w związku z jego użyciem. Sam ChatGPT twierdzi, że prawa autorskie do jego „dzieł” należą do jego operatorów, ale sposób działania modelu skłania nas do myślenia, że kod może być pochodną z open-source, chociażby z Github. W związku z tym, może być obciążony nieznaną nam licencją, np. „zaraźliwą” GPL i innymi nieciekawymi rzeczami – zauważa Jakub Król, CEO w IT.focus.
Jak podkreśla Aghakhani w swoich badaniach z 2023 roku, procesy uczenia głębokiego są w dużej mierze czarną skrzynką. Zrozumienie, jak dokładnie działają te modele, jest nadal przedmiotem badań, co może budzić wątpliwości w kwestii bezpieczeństwa. – Musimy wiedzieć, że wciąż jesteśmy na początku drogi do wyjaśnienia jak powstają określone rezultaty procesu uczenia głębokiego. Dzieje się tak dlatego, bo analizowane są różne parametry, na wielu warstwach informacji. Maszyna próbuje ułożyć spójne, statystycznie istotne wnioski dla danego procesu. Dlatego też, Dall-e 2 może generować obrazy, ale tylko jeśli zasilimy ją odpowiednią liczbą danych. Przedmiotem uczenia głębokiego jest bowiem odnalezienie struktury w pozornym jej braku – tłumaczy dr Wojewodzic, prezes Escola SA.
Nowe możliwości, nowe zagrożenia
Bezpieczeństwo aplikacji mobilnych to nie tylko kwestia standardów programistycznych i architektury. To także coraz bardziej istotna rola interfejsu użytkownika oraz rosnąca rola sztucznej inteligencji. Rozwój technologiczny stwarza nowe możliwości, ale także nowe zagrożenia, które muszą być uwzględnione przy projektowaniu i testowaniu aplikacji mobilnych. Warto również zwrócić uwagę na konieczność dalszych badań nad bezpieczeństwem aplikacji mobilnych, aby nadążać za dynamicznym rozwojem technologii.