Szukasz najlepszych programistów Java? Znajdziesz ich w kilka kliknięć.

Dobre praktyki bezpieczeństwa backendu. Zadbaj o bezpieczeństwo swojego produktu!

22 cze 20215 min czytania

Miłosz Kaczorowski

Współzałożyciel Ideamotive. Doradca technologiczny i konsultant programistyczny.

Dobre praktyki bezpieczeństwa backendu. Zadbaj o bezpieczeństwo swojego produktu!

Jako programiści backendu, którzy tworzą aplikacje zbierające, przechowujące i przetwarzające dane, ponosimy dużą odpowiedzialność wobec klientów i użytkowników, którzy powierzyli nam swoje informacje. Mamy obowiązek chronić te dane. Niestety wielu sprawców chce dostać się do bazy danych aplikacji. Tylko w USA w 2020 roku odnotowano łącznie 1001 przypadków naruszenia danych, które dotknęły ponad 155 miliardów osób. Cena zewnętrznego włamania jest wysoka.

 

Według raportu IBM Cost of Data Breach Report 2020, globalny średni koszt wycieku informacji sięgnął 3,86 mld USD. Dlatego wymagania wobec cyberbezpieczeństwa rosną. Globalne wydatki na cyberbezpieczeństwo mają sięgnąć 187 mld USD w 2021 roku.

 

Żeby wdrożyć dobre praktyki bezpieczeństwa backendu, warto najpierw poznać cele i sztuczki hakerów, a potem zastosować odpowiednie narzędzia i praktyki.

 

Python_ The Definitive Business Guide

Dlaczego hakerzy hakują?

Choć motywacja około 20% hakerów pozostaje nieznana, cele pozostałych 80% wrogich aktorów są jasne. Chodzi im o korzyść finansową, ochronę interesów państwa albo wyrażenie przekonań politycznych i społecznych.

  • Najczęstszym powodem, dla którego zdolni inżynierowie przechodzą na ciemną stronę programowania, jest chciwość. Raport IBM Cost of Data Breach Report 2020 pokazuje, że połowa wszystkich złośliwych aktorów dąży do zysku finansowego. Intruzi mogą wykraść cenne dane, zainfekować komputer ransomware’em albo go przejąć. Spośród różnych rodzajów danych (takich jak własność intelektualna czy dane pracowników) najczęściej ujawniane są dane osobowe klientów (PII), które odpowiadają za 80% wycieków. Średni koszt jednego rekordu sięga 175 USD, co mocno motywuje hakerów do atakowania baz danych. Ataki te dotyczą głównie przejętych danych logowania, błędnej konfiguracji chmury i podatności w oprogramowaniu firm trzecich.

    Najczęstsze i najkosztowniejsze początkowe wektory ataku

  • Choć większość rządów uznaje hakowanie za działalność przestępczą, władze same często zatrudniają hakerów do „cyberwojny”. Te operacje wojskowe mają na celu naruszenie docelowych organizacji lub osób, zdobycie informacji wywiadowczych i tajemnic przemysłowych, zakłócenie działania infrastruktury krytycznej oraz prowadzenie kampanii dezinformacyjnych. Aktorzy państwowi są najgroźniejsi, bo mają solidne finansowanie i najwyższy poziom kompetencji technicznych.

  • Haktywiści to druga silnie zmotywowana grupa złośliwych aktorów. Nadużywają systemów komputerowych lub sieci, żeby zwrócić uwagę opinii publicznej na coś, co uważają za ważne - jak wolność informacji czy prawa człowieka. Haktywiści zwykle uzyskują nieautoryzowany dostęp do strony, żeby wyświetlić na niej banery z hasłami politycznymi. Drugim popularnym rodzajem złośliwych działań są rozproszone ataki odmowy usługi (DDoS).

Ryzyka

Choć liczba cyberataków każdego dnia jest ogromna, wszystkie można podzielić na kilka grup. Open Web Application Security Project (OWASP) wyróżnia 10 najczęstszych rodzajów ryzyk bezpieczeństwa.

  • Najbardziej niszczącym zagrożeniem jest atak SQL injection (SQLi) - wstrzyknięcie zapytania SQL przez pole wprowadzania danych. Ataki te wykorzystują różne metody. SQLi oparte na UNION nadużywa słowa kluczowego UNION do pobrania danych z innych tabel w bazie danych. SQLi oparte na błędach zmusza bazę danych do wygenerowania komunikatu o błędzie, który może zdradzić informacje o strukturze bazy. Takie informacje można też uzyskać, obserwując czas odpowiedzi serwera na określone zapytania SQL albo analizując wyniki zapytań logicznych. Na szczęście, mimo swojej groźności, SQLi łatwo neutralizują doświadczeni programiści backendu.
    SQL injection attack (SQLi)
  • Drugą najczęstszą podatnością wykorzystywaną przez sprawców jest zepsute uwierzytelnianie. Żeby uzyskać nieautoryzowaną kontrolę nad bazą danych, intruzi mogą użyć przejętych danych logowania, zastosować zautomatyzowany atak brute force albo dobrać hasło z listy domyślnych kombinacji. Popularnym narzędziem jest też atak słownikowy, który sprawdza tylko najbardziej prawdopodobne klucze wejściowe.

  • Zepsute reguły dostępu które miały zarządzać prawami użytkowników do odczytu i modyfikacji bazy danych, mogą być kolejną luką wykorzystywaną przez hakerów. Żeby uzyskać dostęp, napastnicy mogą zmodyfikować ścieżkę URL (na przykład z http://website.domain/user/ na http://website.domain/admin) albo manipulować metadanymi, odtwarzając lub podmieniając JSON Web Token (JWT). Wykorzystać można też błędną konfigurację  Cross-Origin Resource Sharing (CORS).

  • Trudnym do wykonania, ale skutecznym narzędziem hakerskim jest wykorzystanie niebezpiecznej deserializacji przez przesyłanie na serwer specjalnie zmodyfikowanych sekwencyjnych strumieni bajtów. Konwersja przerobionych strumieni bajtów na obiekty może wywołać błędy albo - co gorsza - doprowadzić do zainfekowania serwera wirusem.

Security Development Lifecycle (SDL)

Przez lata doświadczeni kierownicy projektów sformułowali zestaw koncepcji wytwarzania, które mają gwarantować bezpieczeństwo produktów programistycznych. W najpełniejszej formie te koncepcje wcielił w życie Microsoft pod nazwą Security Development Lifecycle (SDL). Główne zasady SDL to:

  • Jasne zdefiniowanie wymagań bezpieczeństwa. Wymagania dotyczące bezpieczeństwa powinny zostać określone na samym początku cyklu wytwarzania i śledzone w trakcie postępu projektu. Warto wziąć pod uwagę lokalne przepisy o prywatności, wewnętrzne praktyki kodowania, doświadczenia z wcześniejszych incydentów i wiedzę o znanych zagrożeniach.

  • Precyzyjne metryki pomiaru bezpieczeństwa. Minimalny poziom jakości bezpieczeństwa należy uzgodnić z programistami. Metrykami mogą być:
      • średni czas między awariami
      • średni czas do przywrócenia sprawności
      • liczba użytkowników z dostępem administracyjnym
      • liczba dni do wydania poprawki
      • koszt jednego incydentu
  • Działaj proaktywnie i modeluj możliwe zagrożenia. Model może zaprojektować Twój własny zespół programistyczny albo zewnętrzni konsultanci. Można zastosować różne metodyki, takie jak STRIDE, PASTA, CVSS czy hTMM.
  • Stosuj silne standardy kryptograficzne. Żeby wdrożyć dobre praktyki bezpieczeństwa backendu, programista może zastosować standardy takie jak:
      • Triple Data Encryption Standard (3DES)
      • Rivest–Shamir–Adleman (RSA) public-key cryptosystem
      • Blowfish symmetric-key block cipher
      • Advanced Encryption Standard (AES)

Triple Data Encryption Standard (3DES)

Funkcje bezpieczeństwa backendu

Wachlarz dostępnych narzędzi, które mają zapewnić bezpieczeństwo produktów i zgodność z dobrymi praktykami bezpieczeństwa backendu, jest szeroki. Do skutecznych należą silna polityka uwierzytelniania, domyślna odmowa dostępu oraz izolacja pól wejściowych i danych.

 

Zabezpiecz dane i pola wejściowe

 

Jak już wspomniano, SQLi nadużywa pola wejściowego do wstrzykiwania złośliwych zapytań. Żeby ochronić bazę danych przed takim wstrzyknięciem, powinieneś ograniczyć użycie znaków specjalnych w polach wejściowych. Pola te powinny też przyjmować wyłącznie wpisy określonego typu: pole daty tylko datę, pole liczbowe tylko liczby itd.

 

Drugim skutecznym sposobem jest izolowanie danych. Z danej lokalizacji powinna być dostępna tylko określona część informacji.

 

Polityka uwierzytelniania

 

Według wspomnianego wyżej raportu IBM Cost of Data Breach Report 2020, co piąty przypadek kradzieży danych osobowych klienta wynika z przejętych danych logowania. Odpowiedzialne podejście użytkownika do własnych danych logowania mogą wspierać różne funkcje aplikacji:

  • obowiązkowe silne hasło, które powinno być długie (co najmniej 15 znaków) i łączyć małe litery, wielkie litery i cyfry
  • uwierzytelnianie wieloskładnikowe z dodatkową weryfikacją przez e-mail, telefon komórkowy, hasło jednorazowe oparte na czasie itd.
  • regularna zmiana hasła co 60-90 dni.

Dodatkowo uwierzytelnianie można chronić, ograniczając liczbę nieudanych logowań.

 

Ogranicz dostęp publiczny

 

Powszechną praktyką wśród programistów backendu jest domyślne blokowanie publicznego dostępu do bazy danych. Listing katalogów serwera i pliki kopii zapasowych również powinny być ukryte. Dobrym pomysłem jest też blokowanie lub dopuszczanie wybranych adresów IP.

AI i uczenie maszynowe

Ostatni rozwój uczenia maszynowego pozwolił wdrożyć AI w wielu nowych obszarach, w tym w cyberbezpieczeństwie, gdzie okazała się skuteczna w ograniczaniu strat finansowych. Według raportu IBM Cost of Data Breach Report 2020, wdrożenie AI, analityki i automatycznej orkiestracji obniżyło średni całkowity koszt naruszenia danych o 3,58 mld USD.

 

Na rynku dostępnych jest kilka produktów programistycznych opartych na AI, które pomogą Ci wzmocnić bezpieczeństwo i spełnić dobre praktyki bezpieczeństwa backendu. Najpopularniejsze z nich to:

  • Windows Defender Advanced Threat Protection, który automatyzuje badanie zagrożeń i reagowanie na nie

  • LogRhythm platforma do kontroli analityki zachowań użytkowników i podmiotów (UEBA) oraz analityki ruchu i zachowań w sieci (NTBA)
  • Cybereason system monitorowania zagrożeń
  • Splunk platforma do analityki zachowań użytkowników
  • Blackberry’s Clyace - antywirus oparty na AI
  • Tessian system filtrowania poczty e-mail

 

Innym sposobem, w jaki AI oszczędza pieniądze firmy, jest automatyczne wykrywanie oszustw. Na przykład Shift technology pomaga agencjom ubezpieczeniowym wykrywać nieuczciwe zachowania, a startup SEON pomaga identyfikować oszukańcze transakcje.

Kluczową funkcję bezpieczeństwa - uwierzytelnianie - również można wzmocnić aplikacjami opartymi na AI dzięki monitorowaniu w czasie rzeczywistym anomalii we wzorcach uwierzytelniania użytkownika.

Podsumowanie

Globalne statystyki pokazują, że we współczesnym świecie cyberprzestępczość jest bardzo dochodową działalnością nielegalną. Możliwość szybkiego wzbogacenia się skłania wielu zdolnych programistów do hakowania, co naraża każdą firmę - niezależnie od jej skali. Cena potencjalnych strat jest wysoka. Naruszenie bezpieczeństwa zrujnuje reputację firmy i przyniesie straty finansowe. Dlatego wdrożenie dobrych praktyk bezpieczeństwa backendu powinno być priorytetem product ownera od samego początku cyklu wytwarzania.

 

Szukasz właśnie konsultantów oprogramowania, którzy zadbają o bezpieczeństwo Twojego produktu? Albo programistów backendu, którzy zbudują Twój produkt cyfrowy zgodnie z najlepszymi praktykami bezpieczeństwa? Skontaktuj się z nami. Dostarczymy Ci ekspertów i specjalistów technicznych, których szukasz.

Miłosz Kaczorowski

Współzałożyciel Ideamotive. Wysokie kompetencje w Ruby on Rails, JavaScripcie i administracji systemami Linux. Doświadczony we wdrażaniu skutecznych aplikacji webowych.

Zobacz wszystkie wpisy autora

Szukasz utalentowanych programistów, którzy zbudują lub przeskalują Twój produkt webowy?

Nasi sprawdzeni eksperci są gotowi dołączyć do Twojego zespołu.

Zatrudnij programistów webowych
Newsletter 9-1
Newsletter Ideamotive
Twój dwutygodniowy przegląd najgorętszych newsów technologicznych

Szukasz ekspertów od Node.js do swojego zespołu?

W naszej sieci talentów czekają dziesiątki zweryfikowanych specjalistów Node.js.