fbpx
goodfirms LOGO Created with Sketch.








    Jak zabezpieczyć aplikacje Flutter?

    06
    wrzesień
    2022
    6 minut czytania
    Udostępnij

    Bezpieczeństwo aplikacji internetowych oraz mobilnych to jedno z wielu wyzwań, z jakimi zmagają się współcześnie programiści. Skuteczne zabezpieczenie aplikacji przed manipulacjami po stronie klienta oraz atakami cyberprzestępców nie należy jednak do najłatwiejszych zadań. W poniższym artykule nie uda nam się z pewnością omówić wszystkich znanych podatności, błędów i luk w zabezpieczeniach, niemniej jednak spróbujemy podpowiedzieć jakimi działaniami można poprawić bezpieczeństwo natywnych aplikacji. Jak zabezpieczyć aplikację przed wyciekiem wrażliwych danych? Czym są ataki MITM i jak się można przed nimi uchronić? Jak poprawić bezpieczeństwo aplikacji, których logika biznesowa zapisana jest po stronie front-endu? Na wszystkie te pytania postaramy się odpowiedzieć w poniższym artykule.

    Jak skutecznie zweryfikować bezpieczeństwo aplikacji Flutter?

    Wielu programistów nie zdaje sobie sprawy, iż o bezpieczeństwo natywnych aplikacji trzeba zacząć dbać już na etapie tworzenia i projektowania kodu Flutter. Błędy w logice biznesowej aplikacje, takie jak IDORy (https://it-solve.pl/idor-w-nowoczesnych-aplikacjach/) są doskonałym przykładem tego, do czego prowadzić może nieuwaga developerów. Świetnym sposobem na zweryfikowanie poziomu bezpieczeństwa aplikacji Flutter jest zlecenie audytu doświadczonym testerom penetracyjnym. Warto zwrócić też uwagę, iż coraz większa liczba przedsiębiorstw z segmentów SMB i Enterprise decyduje się dołączyć do tzw. Bug Bounty Programs. Obydwa te rozwiązania ułatwiają nie tylko testowanie bezpieczeństwa aplikacji, ale również wychwytywanie mniej oczywistych luk w zabezpieczeniach i podatności.

    Jak zabezpieczyć aplikacje Flutter przed atakami typu MITM?

    Coraz częściej występujące ataki typu MITM (ang. Man In The Middle) ukierunkowane są przede wszystkim na aplikacje internetowe oraz mobilne, które do transmisji danych pomiędzy front-endem i back-endem wykorzystują starszy i zdecydowanie gorzej zabezpieczony protokołów HTTP. Przysłanie danych za pośrednictwem HTTPS zdecydowanie utrudnia nasłuchiwanie, ponieważ są one nie tylko pofragmentowane, ale także i zaszyfrowane. Konieczność potencjalnie czasochłonnego procesu odszyfrowywania przechwyconych w ten sposób kluczy, haseł czy loginów skutecznie zniechęca większość cyberprzestępców. Aby podnieść bezpieczeństwo natywnych aplikacji, warto wprowadzić też przemyślany system dwuskładnikowego uwierzytelniania logowania oraz upewnić się, czy wszystkie wrażliwe dane przechowywane są tylko i wyłącznie po stronie back-endu.

    Jak uwierzytelnianie dwuskładnikowe podnosi bezpieczeństwo aplikacji?

    Zdawać by się mogło, iż większość internautów wie, czym dokładnie jest uwierzytelnianie dwuskładnikowe i jak powinno ono działać, ale w praktyce jest ono często źle skonfigurowane. Dwuetapowa weryfikacja ma sens, tylko jeżeli:

    - urządzenia nie są zapamiętywane w systemie

    - kod uwierzytelniania przesyłany jest za pośrednictwem niezależnego kanału (tzn. nie da się go przechwycić poprzez nasłuchiwanie lub eskalacje uprawnień)

    Niestety na skutek działań takich jak podłączenie skrzynki SMS do laptopa czy automatyczne logowanie zapamiętanych urządzeń można znacząco ułatwić zadanie cyberprzestępcom, którzy wykorzystają to, aby ominąć dwuetapową weryfikację w trakcie logowania.

    Jak zadbać o bezpieczeństwo natywnych aplikacji?

    Zastanawiając się jak zabezpieczyć aplikację Flutter, warto zacząć od zweryfikowania tego, w jaki sposób przetwarzane są wrażliwe dane użytkowników. Zaliczyć można do nich przede wszystkim loginy, hasła, klucze, tokeny, ciasteczka, unikatowe identyfikatory (np. IMEI/UDID), logi, dane osobowe i historię zakupów. Wszystkie te informacje powinny znajdować się jedynie po stronie serwera (tzn. back-end), ponieważ po stronie klienta nie da się ich równie skutecznie zabezpieczyć.

    Jak zabezpieczyć aplikację bez back-endu?

    Mniej skomplikowane i złożone aplikacje często przenoszą logikę biznesową z back-endu do front-endu, dzięki czemu z danego narzędzia korzystać można np. w trybie offline. Aby zadbać o bezpieczeństwo aplikacji, Flutter wprowadził szereg funkcjonalności i udogodnień dla developerów. Zaliczyć można do nich przede wszystkim tzw. sekrety, które w zależności od architektury i potrzeb da się zdalnie wstrzykiwać za pośrednictwem Firebase Remote Config. Przy zabezpieczaniu logiki biznesowej po stronie front-endu aplikacji webowych warto zwrócić też uwagę na czytelność kodu, który w tym scenariuszu jest publicznie dostępny w źródle strony.

    Przechowywane lokalnie dane a bezpieczeństwo aplikacji Flutter

    Nie wiedząc, jak zabezpieczyć aplikacje Flutter przed manipulacjami ze strony klienta można łatwo doprowadzić do wycieku wrażliwych danych. Aby poprawić bezpieczeństwo aplikacji po stronie użytkowników, należy sprawdzić, jakie dane zapisywane są lokalnie oraz czy są one usuwane wraz z zakończeniem sesji logowania. Zaniedbanie w tym wątku może prowadzić do wielu nadużyć oraz błędów, ponieważ z jednego urządzenia korzystać może kilka osób.

    Podsumowanie – bezpieczeństwo natywnych aplikacji Flutter

    Wszystkie wspomniane wyżej wskazówki dotyczącego tego, jak zabezpieczyć aplikacje Flutter nie są w stanie zapewnić 100% bezpieczeństwa użytkownikom i przetwarzanym danym, ale mogą pomóc w znalezieniu potencjalnych luk oraz najbardziej poważnych podatności lub wrażliwości. W przypadku jakichkolwiek pytań lub wątpliwości zachęcamy do kontaktu z naszymi doświadczonymi developerami.

    Wiktor Sobczyk

    Bezpłatna konsultacja

    Powiedz nam czego potrzebujesz, a nasi eksperci Powiedzą Ci jak to zrobić, ile to kosztuje i na kiedy będzie gotowe.

    Inne wpisy na blogu

    Cykl życia defektów we Flutterze
    Karol
    6 minut czytania
    18
    listopad
    2022
    Testowaniem opracowywanych, utrzymywanych i rozwijanych aplikacji webowych zajmują się nie tylko programiści, którzy odpowiedzialni są za kod źródłowy, ale także testerzy. Przy pomocy zautomatyzowanych i manualnych testów da się zweryfikować pod kątem obecności błędów każdy rodzaj oprogramowania. Dzięki wsparciu profesjonalistów można uniknąć nieprzyjemnej sytuacji, w której rozeźleni użytkownicy sami zgłaszają wykryte wady i defekty. Aby…
    tagi: #Bezpieczeństwo
    czytaj artykuł
    16
    sierpień
    2022
    W świetle obowiązujących w Polsce oraz na terenie wszystkich unijnych państw przepisów GDPR (ang. General Data Protection Regulation) dotyczących ochrony danych osobowych wszystkie nowoczesne aplikacje muszą zostać odpowiednio zabezpieczone. Pomóc mogą w tym oczywiście profesjonaliści z branży cyberbezpieczeństwa albo doświadczeni testerzy z działu QA. Warto tu jednak zaznaczyć, iż dużo bardziej istotną rolę w kontekście…
    tagi: #Bezpieczeństwo
    czytaj artykuł
    Jak możemy Ci pomóc?
    Porozmawiaj z nami!








      Kamil
      Head of Business Development
      Kliknij, aby podejrzeć