Z czego składa się cyberbezpieczeństwo?
Cyberbezpieczeństwo to szeroki termin. W jego skład wchodzi wiele rozmaitych dziedzin, na które musi zwrócić uwagę każda osoba chcąca zacząć swoją karierę bezpiecznika. Aby odpowiednio sprawować pieczę nad urządzeniami w danej organizacji, należy skupić się nad wieloma aspektami związanymi z bezpieczeństwem, które opiszę w dalszej części.
Artykuł powstał w oparciu o mapę myśli autorstwa Henry’ego Jianga, która dostępna jest tutaj. Mapa została stworzona w języku angielskim.
Podstawowe gałęzie cybersecurity
W skład cyberbezpieczeństwa wchodzą:
- Standardy i struktury (Frameworks and Standards)
- Bezpieczeństwo fizyczne (Physical Security)
- Bezpieczeństwo aplikacji (Application Security)
- Edukacja użytkowników (User Education)
- Architektura bezpieczeństwa (Security Architecture)
- Rozwój kariery (Career Development)
- Rozpoznanie zagrożeń (Threat Intelligence)
- Ocena ryzyka (Risk Assessment)
- Zarządzanie ryzykiem (Enterprise Risk Managment)
- Operacje bezpieczeństwa (Security Operation)
- Uregulowania (Governance)
Standardy i struktury (Frameworks and Standards)
Standardy i struktury to wymagana wiedza teoretyczna i praktyczna. Dzięki nim można kontrolować funkcjonowanie danej organizacji poprzez znajomość norm i zasad.
Międzynarodowe standardy (ISO)
Normy ISO obecne są również w świecie IT. Służą one m.in. działaniu zgodnie z dobrymi praktykami lub literą prawa. Z odpowiednim dostępem do informacji związane są trzy normy:
- ISO 27001 – główna norma dotycząca bezpieczeństwa danych, składa się z audytu wewnętrznego i zewnętrznego. Udzielana jest na trzy lata.
- ISO 27017 – dotyczy usług chmurowych.
- ISO 27018 – dotyczy danych osobowych przetwarzanych w chmurze.
OWASP TOP 10
OWASP TOP 10 to lista dziesięciu największych zagrożeń dla bezpieczeństwa aplikacji. Sporządzana przez fundację non profit zajmującą się zwiększaniem poziomu zabezpieczeń oprogramowania. Jest podstawową listą kontrolną dla początkujących bezpieczników, ponieważ gromadzi najczęstsze zagrożenia w jednym miejscu.
Najnowsza wersja listy pochodzi z grudnia 2021 roku.
Źródło: https://owasp.org/Top10/
MITRE ATT&CK
MITRE ATT&CK to zbiór taktyk i technik wykorzystywanych przez hakerów. Oparty jest o scenariusze faktycznych ataków z przeszłości, dzięki czemu znajduje praktyczne zastosowanie w zabezpieczaniu sieci lub aplikacji.
MITRE ATT&CK reprezentowany jest w formie interaktywnej macierzy, dostępnej tutaj. Dokładny opis tego, czym jest MITRE ATT&CK blogu SecurityBezTabu. Warto się z nim zapoznać, ponieważ dobrze opisuje to zagadnienie.
NIST Cybersecurity Framework i CIS Top 20
NIST Cybersecurity Framework to zbiór najlepszych praktyk (best practices) dotyczących reagowania na zagrożenia w cyberprzestrzeni. Został opracowany przez amerykański Narodowy Instytut Norm i Techniki (NIST). Z wykorzystaniem tych wytycznych informacje o atakach mogą być przekazywane w unormowany sposób, dzięki czemu inne organizacje mogą wyciągnąć wnioski z podjętych działań.
Zgodnie z ankietą przeprowadzoną pośród trzystu amerykańskich firm z branży IT i ekspertów do spraw bezpieczeństwa, NIST Cybersecurity Framework jest najlepszą strukturą (ang. framework) do ograniczania zagrożeń – odpowiedziało tak 70% ankietowanych.
NIST Cybersecurity Framework składa się z pięciu głównych elementów:
- Identyfikacja (Identify)
- Ochrona (Protect)
- Wykrywanie (Detect)
- Odpowiedź (Respond)
- Odzyskiwanie (Recover)
CIS Top 20 to zbiór corocznie publikowanych najlepszych praktyk do obrony danej organizacji przed zagrożeniami. Lista jest dość obszerna i skupia się na wielu aspektach związanych z cyberbezpieczeństwem. Lista dostępna jest tutaj.
Bezpieczeństwo fizyczne (Physical Security)
Pamiętając o zabezpieczeniu urządzeń i systemów nie wolno zapominać o tym, iż nie są one jedynie w cyberprzestrzeni – każde urządzenie musi mieć swoje fizyczne miejsce, do którego dostęp powinna mieć określona grupa osób.
Przykładowo, warto pamiętać o tym, żeby dostać się do sieci nie jest konieczne przejęcie danego urządzenia – można również umieścić w niej kolejne. Pewien użytkownik Reddita o pseudonimie geek_at odkrył, iż do switcha w serwerowni podpięte jest działające Raspberry Pi z modułem Wi-Fi – więcej o tym przypadku można przeczytać tutaj.
Internet rzeczy (Internet of things, IOT)
W dobie wszechobecnej cyfryzacji choćby lodówka czy pralka mogą mieć dostęp do Internetu. Warto pamiętać o tym, iż niektóre z urządzeń IoT mają stałe połączenie z Internetem, co w połączeniu z domyślnymi danymi logowania stanowi poważne zagrożenie. Należy również zwracać uwagę na regularne aktualizowanie urządzeń – stale znajdowane są nowe podatności.
Szczególnie niebezpieczny jest scenariusz przejęcia kontroli nad danym budynkiem – takie wydarzenia miały już miejsce. W 2015 roku naukowcy z Uniwersytetu Michigan złamali zabezpieczenia SmartThings i zdołali zdalnie otworzyć drzwi. Z artykułu wynika, iż twórcy aplikacji nie zastosowali się do zasady nadawania jak najmniejszych uprawnień.
Sztuczna inteligencja przejmująca kontrolę nad światem jak na razie nam nie grozi, ale groźne jest wystawianie swojego domu lub biura do Internetu bez odpowiednich zabezpieczeń. w tej chwili mamy możliwość podejrzenia ile jajek pozostało w czyjeś lodówce.
Bezpieczeństwo aplikacji (Application Security)
Aplikacje narażone są na bardzo zróżnicowane ataki. Szczególnie niebezpieczny jest fakt, iż aplikacje muszą być zabezpieczone na wielu płaszczyznach – nie wystarczy zadbać jedynie o szyfrowanie lub wyeliminowanie podatności SQL Injection, aby spać spokojnie. Podczas tworzenia aplikacji należy działać zgodnie z SSDLC (Security Software Development Lifecycle), czyli procesem bezpiecznego tworzenia aplikacji.
Należy również zwrócić uwagę na następujące elementy:
- Diagram przepływu danych (Data Flow Diagram) – pokazuje sposób w jaki dane są przetwarzane i kto ma do nich dostęp. Pozwala na zwizualizowanie dostępu do danych i działanie zgodnie z zasadą najmniejszych uprawnień.
- Bezpieczeństwo związane z użytkowaniem aplikacji (User Experience Security) – zapewnienie m.in. szyfrowania, uwierzytelniania i ochrony danych z zachowaniem interfejsu przyjaznego dla użytkowników. Aplikacja powinna być odporna na phishing, jak i na ataki z wykorzystaniem inżynierii społecznej.
- Bezpieczeństwo API – stosowanie odpowiednich technik do przesyłania informacji. Należy zwrócić uwagę na przechowywanie kluczy API, wybór odpowiednich metod przesyłania danych (GET/PUT/DELETE itd.), podatności XML i bezpieczeństwo JWT.
- Analizowanie kodu źródłowego – w aplikacjach z otwartym kodem (open source) mogą znajdować się różne podatności, które nie są publicznie znane. Podczas korzystania z otwarto źródłowych aplikacji należy zachować czujność i analizować ich działanie.
Edukacja użytkowników (User Education)
Należy pamiętać o tym, iż za prawidłowe funkcjonowanie danej organizacji w cyberprzestrzeni odpowiada nie tylko dobrze zabezpieczona infrastruktura, ale również zachowanie użytkowników. Często użytkownik może nieświadomie spowodować incydent bezpieczeństwa, dlatego szczególnie ważne jest szkolenie użytkowników w danej organizacji pod kątem zagrożeń w sieci i nie tylko.
Edukowanie na temat odpowiedniego zachowania podczas korzystania z komputera lub urządzeń mobilnych należy zacząć od podstaw, takich jak przestrzeganie przed klikaniem w nieznane linki lub podawanie swoich haseł. Nie każda osoba musi być przyszłym CISO, dlatego należy przekazywać informacje w przystępny sposób – zrozumiały zarówno dla informatyka z doświadczeniem i osoby niezaznajomioną z tematyką cybersecurity.
Podstawowe praktyki dla zwiększenia poziomu bezpieczeństwa:
- Regularne aktualizowanie systemu
- Stosowanie rozsądnej polityki haseł
- Nierozpakowywanie nieznanych archiwów (.rar/.zip)
- Niezostawianie urządzenia zalogowanego do sieci bez nadzoru
Ciekawym zagadnieniem są ćwiczenia z reagowania na incydenty (Cybersecurity table-top exercises). Pozwalają na sprawdzenie teoretycznej gotowości na atak i sposobu naprawy szkód przy danym zagrożeniu, dzięki rozpisaniu ich w tabelach.
Architektura bezpieczeństwa (Security Architecture)
Architektura bezpieczeństwa jest jedną z najbardziej rozbudowanych gałęzi cyberbezpieczeństwa. Składa się z wielu rozmaitych kategorii takich jak:
- Kryptografia i zarządzanie kluczami szyfrowania – należy zwrócić uwagę na stosowanie odpowiednich metod szyfrowania danych (symetryczne/asymetryczne), używanie odpowiednich algorytmów do tworzenia skrótów (np. korzystanie z SHA-256 i rezygnacja z MD5). Ważne jest również zarządzanie certyfikatami i kluczami – szczególnie prywatnymi w przypadku szyfrowania asymetrycznego. Więcej o kryptografii na blogu SecurityBezTabu możesz przeczytać tutaj.
- Budowa sieci – podczas budowy sieci nie powinna być uwzględniana jedynie przepustowość, ale też gotowość na odparcie zagrożeń. Każdy serwer podłączony do Internetu jest narażony np. na atak DDOS.
Podstawową dobrą praktyką jest oddzielenie sieci Wi-Fi dla klientów danej organizacji od głównej sieci. Należy również pamiętać o konfigurowaniu zapory sieciowej, tworzeniu stref zdemilitaryzowanych i zasadzie nadawania jak najmniejszych uprawnień.
- Ochrona danych – dane narażone są na wyciek zarówno w wyniku ataku, jak i wykradnięcia ich przez pracownika danej firmy, dlatego dostęp do nich powinny mieć jedynie odpowiednie osoby. W ochronie danych warto rozważyć oprogramowanie DLP (Data Loss Prevention), szczególnie w przypadku przetwarzania wrażliwych danych.
- Kontrola dostępu – podstawą w dostępie do danych są trzy elementy:
- Identyfikacja – sprawdzenie tożsamości osoby
- Uwierzytelnienie (czasem niepoprawnie nazywane autentykacją) – sprawdzenie tego, czy dana osoba posiada uprawnienia do danego zasobu. Użytkownik podaje parę login-hasło, swoje dane biometryczne (np. odcisk palca) lub określonego klucza (np. klucz sprzętowy U2F). Uwierzytelnienie opiera się na jednej lub więcej z trzech metod: coś co wiesz, coś co masz, coś czym jesteś.
- Autoryzacja – zapewnienie uwierzytelnionemu użytkownikowi dostępu do danego zasobu
- Bezpieczeństwo chmury – zgodnie z danym modelem działania w chmurze (IaaS/PaaS/SaaS) wybierane są odpowiednie rodzaje zabezpieczeń. W tym zakresie dużą rolę odgrywa dostawca usług chmurowych.
Rozwój kariery (Career Development)
W cybersecurity szczególnie ważne jest stałe podwyższanie swoich kompetencji, wraz z potwierdzeniem umiejętności w formie certyfikatów. Można rozwijać się na wiele różnych sposobów.
Przede wszystkim ważna jest wiedza praktyczna, którą można nabyć jedynie poprzez faktyczne poświęcanie swojego czasu w naukę. Rozwijanie swoich umiejętności we własnym zakresie jest bardzo ważne, ponieważ pozwala na stały rozwój zamiast poprzestania pogłębiania wiedzy. Warto również uczestniczyć w jak największej liczbie konferencji dotyczących cyberbezpieczeństwa (i nie tylko), ponieważ mogą one znacząco zmienić postrzeganie przez nas danego tematu.
Poza rozwijaniem kompetencji twardych należy również zwrócić uwagę na kompetencje miękkie. Można je rozwijać np. poprzez czytanie książek lub słuchanie wykładów ludzi, które uważamy za autorytety w danej dziedzinie. Nie wolno również zapominać o tym, iż takie umiejętności jak komunikatywność, zaangażowanie i asertywność są cenione w zdecydowanej większości miejsc pracy.
Rozpoznanie zagrożeń (Threat Intelligence)
Dział ten dzieli się na dwie kategorie – wewnętrzne i zewnętrzne
Zagrożenia wewnętrzne
Zagrożenia wewnętrzne to wszelkie niepożądane działania związane z osobami, które pracują w danej organizacji. Do incydentów może dochodzić umyślnie i nieumyślnie.
Przykłady zagrożeń wxewnętrznych:
- Współpraca osób zatrudnionych w danej organizacji z osobami z zewnątrz w celu wyrządzenia określonych szkód
- Nieostrożne obchodzenie się z danymi, narażające je na wyciek
- Instalacja złośliwego systemu przez nieświadomą zagrożeń osobę
- Użycie swoich uprawnień w dostępie do informacji w celu zaszkodzenia danej organizacji
- Sabotaż w celu osiągnięcia korzyści majątkowych lub zdobycia przewagi nad konkurencją
Szczególne groźny jest fakt, iż niektóre z działań osób zatrudnionych w danej organizacji mogą zostać niewykryte przez długi czas. Jeden z najbardziej znanych sygnalistów świata, jakim jest Edward Snowden, używał kart SD wymagających kilku godzin na zapisanie i zaszyfrowanie danych. W ten sposób prawdopodobnie pobrał półtora miliona plików.
Podstawową praktyką zaniechania niebezpiecznych sytuacji jest nadawanie odpowiednich uprawnień. Należy działać zgodnie z zasadą jak najmniejszych uprawnień, o której wspomniałem wcześniej. Dotyczy to również takich osób jak pracownicy tymczasowi lub zewnętrzni podwykonawcy.
Praktyki pomagające zapobiec incydentom:
- Korzystanie jedynie ze służbowych kont e-mailowych
- Wysyłanie zaszyfrowanych dokumentów
- Niepodawanie haseł dostępu w sposób możliwy do przechwycenia/podsłuchania
- Wyeliminowanie bądź znaczne ograniczenie używania prywatnych nośników danych (np. pendrive)
Zagrożenia zewnętrzne
Zagrożenia zewnętrzne to zagrożenia spoza organizacji. Najbardziej efektownym są szeroko rozumiane cyberataki.
Warto pamiętać o tym, iż o bezpieczeństwie w danej organizacji świadczy najsłabsze ogniwo – jedna luka wystarczy, aby znacząco zaszkodzić danej firmie. Najlepszym sposobem na ograniczenie zagrożeń z zewnątrz jest wzmocnienie zabezpieczeń, co wynika samo z siebie.
Kolejnym aspektem jest czynnik ludzki, o którym nie wolno zapomnieć. Fizyczny dostęp niepowołanych osób do ważnych pomieszczeń (np. serwerowni) lub zabiegi inżynierii społecznej mogą spowodować horrendalne konsekwencje.
Przykładowe praktyki ograniczenia zagrożeń z zewnątrz:
- Regularne aktualizowanie systemu
- Szkolenie pracowników dot. odporności na działania hakerów – zarówno online i offline
- Regularne kontrolowanie stopnia zabezpieczeń
Ocena ryzyka (Risk Assessment)
Podejmując jakąkolwiek działalność w Internecie musimy być świadomi tego, iż narażamy się na ryzyko. Nie ma działalności w cyberprzestrzeni, która nie jest objęta chociaż minimalnym ryzykiem – mogą być to straty wizerunkowe, finansowe, utrata danych itd.
Podstawowym sposobem sprawdzenia poziomu zabezpieczeń są testy penetracyjne. Warto jednak spojrzeć na cyberbezpieczeństwo całościowo – mogą temu służyć zawody blue team vs red team, o których napisałem tutaj.
Na własną rękę można nauczyć się rozpoznawania zagrożeń z wykorzystaniem skanerów podatności, np. gvm wbudowanego w Kali Linuxa. Dla większych organizacji należy również przeprowadzać testy z wykorzystaniem inżynierii społecznej, np. wysyłania spreparowanych wiadomości e-mail lub uzyskania przez kogoś niepowołanego dostępu do serwerowni.
Podstawą odporności na ryzyko jest jego znajomość. Warto znać zarówno mocne i słabe strony danej organizacji w cyberprzestrzeni.
Zarządzanie ryzykiem (Enterprise Risk Managment)
W razie wystąpienia incydentu bezpieczeństwa każda organizacja powinna mieć określone sposoby zapobiegania dalszym niepożądanym działaniom. Przede wszystkim należy odpowiednio odnotowywać i reagować na poszczególne działania, aby wyciągać z nich wnioski na przyszłość.
Wyróżnia się pięć strategii reagowania na ryzyko: unikanie, transfer, łagodzenie, akceptacja i plan awaryjny. Z cyberbezpieczeństwem związane są szczególnie ostatnie dwie.
Akceptacja ryzyka
„Życie to wieczne ryzyko. Śmierć jest dużo prostsza.”
Cassandra Clare, Mechaniczna księżniczkaRyzyko ponoszone z faktu działania w cyberprzestrzeni powinno być znane i jasno określone, niezależnie czy są to straty wizerunkowe lub wyciek danych osobowych. Należy jednak podejmować działania mające na celu ograniczenie i zneutralizowanie potencjalnych zagrożeń.
Plan awaryjny
W przypadku wystąpienia cyberataku lub innych niechcianych działań każda organizacja powinna mieć opracowany plan działania. Plan powinien uwzględniać sposób informowania opinii publicznej o danej sytuacji, metodę ograniczenia strat i odizolowania zaatakowanej struktury, podział obowiązków pracowników itd.
Operacje bezpieczeństwa (Security Operation)
Operacje bezpieczeństwa to działania mające na celu uodpornienie organizacji na zagrożenia zewnętrzne i wewnętrzne. Wchodzą one w skład codziennej pracy eksperta w zakresie cyberbezpieczeństwa.
Security Operation Center (SOC)
Centrum Operacji Bezpieczeństwa to wydzielona część organizacji lub zewnętrzny dostawca usług, który skupia się na zapewnieniu jak najwyższego stopnia bezpieczeństwa. SOC zajmuje się wdrażaniem określonych rozwiązań w życie, jak i tworzeniem wytycznych.
Przykładowe działania SOC:
- Obsługa SIEM
- Filtrowanie poczty elektronicznej
- Zarządzanie oprogramowaniem antywirusowym
- Filtrowanie ruchu sieciowego
- Utrzymywanie serwerów z logami
SIEM
Kluczowym dla zapewnienia zorganizowanej ochrony organizacji jest stworzenie systemu SIEM (ang. Security Information and Event Management). SIEM to system pozwalający na przetwarzanie danych z różnych źródeł, dzięki czemu może ostrzegać o nietypowych działaniach lub generować raporty.
Zadania SIEM:
- Zbieranie, przechowywanie, analiza i śledzenie logów
- Alarmowanie w czasie rzeczywistym
- Monitorowanie aktywności użytkowników
- Działanie zgodne z normami i dobrymi praktykami
- Tworzenie raportów
- Prezentowanie danych w formie pulpitu nawigacyjnego lub innej czytelnej formie
- Sprawdzanie uprawnień do danych zasobów
- Monitorowanie integralności plików (ang. File integrity monitoring – FIM), np. dzięki sprawdzania sumy kontrolnej
- Zauważanie korelacji między danymi zdarzeniami
SIEM charakteryzuje się również koniecznością przechowywania danych przez dany czas. Pozwala również na wyszukiwanie danych zdarzeń dzięki określonych parametrów. Nie można jednak zapomnieć, iż do SIEM potrzebny jest również zespół, który czuwa nad systemem.
Aktywna obrona
Niektórzy mówią, iż najlepszą obroną jest atak. jeżeli chodzi o cyberbezpieczeństwo, najpopularniejszym przykładem aktywnej obrony jest stworzenie honeypota, czyli pułapki na atakującego. Honeypot to systemy lub serwery działające podobnie do produkcyjnych, ale będące poza główną siecią danej organizacji. Bez głębszego rekonesansu honeypoty wydają się być faktycznymi serwerami, dlatego stanowią idealną przynętę (ang. bait) dla atakujących. Honeypoty mogą mieć celowe podatności (np. otwarte porty), aby zachęcić atakujących do próby włamania się. Takie działanie pozwala na poznanie metod działania atakujących bez narażania swojej głównej sieci na szwank.
Przykłady działań wewnątrz honeypota:
- Tworzenie fałszywych kont poczty elektronicznej, na które przychodzi spam lub phishing.
- Umieszczanie fałszywej bazy danych
- Podmienianie plików wykonywalnych (.exe) na pozwalające namierzyć atakującego
- Tworzenie ciasteczek w przeglądarce atakującego
- Osadzanie web beacon na stronie internetowej – pozwala to na monitorowanie działań atakującego
Blue team, red team i nie tylko
W cyberbezpieczeństwie można wyróżnić dwie „drużyny” – blue team i red team. Zadaniem niebieskich jest zabezpieczanie systemu, zaś czerwonych znalezienie luki i przejęcie uprawnień administratora. Z punktu widzenia bezpiecznika szczególnie ważna jest niebieska strona mocy.
Blue team musi zabezpieczyć wszystkie dziury, zaś red team znaleźć jedną i wiedzieć jak ją wykorzystać. Więcej o podziale na drużyny możesz przeczytać tutaj.
Uregulowania (Governance)
Dbając o bezpieczeństwo w cyberprzestrzeni jesteśmy zmuszeni kierować się określonymi przepisami i wytycznymi. Zabezpieczenia powinniśmy wdrażać zgodnie z hierarchią aktów prawnych.
Umowy międzynarodowe
W przypadku Polski akty prawne regulujące pewne kwestie związane z cyberbezpieczeństwem zostały uchwalone na poziomie Unii Europejskiej. Najbardziej znanym dokumentem jest RODO, które reguluje kwestie obchodzenia się z danymi osobowymi.
W 2019 roku UE uchwaliła rozporządzenie dotyczące Agencji Unii Europejskiej ds. Cyberbezpieczeństwa. Dostępne jest tutaj.
W przypadku współpracy z osobami spoza UE warto pamiętać o tym, iż ich kraje lub regiony mogą mieć własne regulacje dot. cyberbezpieczeństwa, tak jak kalifornijskie CCPA (California Consumer Privacy Act).
Ustawy i rozporządzenia
W Polsce kwestie związane z cyberbezpieczeństwem reguluje Ustawa o krajowym systemie cyberbezpieczeństwa (Dz. U. 2018 poz. 1560). Spis polskich aktów prawnych związanych z cyberbezpieczeństwem znajduje się tutaj.
Polityka danej organizacji
Każda organizacja może wprowadzać swoje wewnętrzne uregulowania, jeżeli są zgodne z Konstytucją RP i niższymi aktami. To do SOC należy doprecyzowanie sposobu działania danej organizacji.
Podsumowanie
Cyberbezpieczeństwo składa się z wielu specjalizacji. Każda z nich wymaga innego zestawu umiejętności. Przykładowo, programowanie może nie być konieczne dla kogoś, kto doskonale odnajduje się wśród rozmaitych regulacji i dokumentów. Niezależnie od obranego kierunku warto stale się rozwijać.
Cybersecurity to dziedzina, która ciągle mierzy się z nowymi wyzwaniami. Dzięki temu coraz więcej osób może znaleźć w niej swoje miejsce.