Istnieje kilka "warstw" odpowiedzialności za funkcjonowanie sieci, które są reprezentowane w modelu Open Systems Interconnection model (OSI). Warstwy te obejmują następujące elementy:
Fizyczna warstwa sieci, która znajduje się u podstawy sieci. Warstwa ta zajmuje się faktyczną fizyczną transmisją danych, co oznacza, że jest odpowiedzialna za zapewnienie, że jeśli nadawca wysyła 1, odbiorca również otrzymuje 1. Warstwa fizyczna może na przykład przesyłać dane za pomocą przewodów światłowodowych (optycznych). Musi ona określić, czy ruch może być przesyłany w obie strony w tym samym czasie, w jaki sposób połączenie jest ustanawiane i tak dalej.
Warstwa łącza danych jest odpowiedzialna za wykrywanie i korekcję błędów, a także za pakowanie danych w pakiety zwane ramami. Jest ona strażnikiem, który umożliwia przesyłanie danych do właściwej sieci. Określa ona również, jaki adres sprzętowy jest przeznaczony dla danych. Mogą to być na przykład różne interfejsy sieciowe w obrębie tego samego komputera
Warstwa sieciowa jest warstwą odpowiedzialną za kierowanie danych do maszyny docelowej w sieci. Należy pamiętać, że sieć może być połączona z inną siecią i może nawet nie używać tego samego protokołu komunikacyjnego. Warstwa sieciowa przekazuje dane do warstwy transportowej.
Warstwa transportowa zarządza połączeniami między węzłem początkowym (fizycznymi elementami tworzącymi sieć) a węzłem końcowym. Określa ona również sposób obsługi połączenia, czy oczekuje się, że pakiety będą docierać w odpowiedniej kolejności i czy pakiet zostanie poproszony o ponowne wysłanie, jeśli zostanie pominięty. Warstwa transportowa zajmuje się również przepustowością, tak aby szybsze węzły nie przytłaczały wolniejszych.
Warstwa sesji zarządza ustanawianiem połączeń i utrzymuje je.
Warstwa prezentacji zarządza, m.in. kodowaniem, aby komputery z różnymi sposobami reprezentacji danych wewnątrz mogły komunikować się w sposób zrozumiały dla obu węzłów. Warstwa prezentacji zajmuje się również szyfrowaniem w niektórych przypadkach, np. podczas przeglądania Internetu na zabezpieczonej stronie.
Warstwa aplikacji zajmuje się właściwą warstwą protokołu. Na przykład w przeglądarce internetowej protokół HTTP definiuje sposób, w jaki aplikacja żąda strony internetowej.
Każdy bit przesyłanych danych, na przykład strona internetowa tego kursu, przechodzi przez warstwy sieciowe (zwane "stosem sieciowym"). Strona kursu używa TLS, czyli transport layer security (SSL na powyższym obrazku został w większości zastąpiony przez TLS), który jest sposobem na szyfrowanie danych w celu zapobiegania obserwowaniu danych przez niższe warstwy. Gdyby strona kursu nie używała TLS, Twoje dane zostałyby przesłane w postaci czystego tekstu przez wszystkie warstwy i wszystkie komputery biorące udział w transmisji danych. W najgorszym wypadku może to być kilkadziesiąt węzłów. Wszystkie te komputery mogłyby teoretycznie obserwować i wykraść dane.
Chociaż dobrze jest wiedzieć, że strona kursu używa TLS, aby zapewnić bezpieczeństwo, co jeśli dane, o których mowa, nie były treścią kursu, ale raczej wrażliwymi osobistymi danymi bankowymi lub zdrowotnymi? Jak możesz zaufać węzłom, przez które przesyłane są Twoje dane, skoro nie wiesz nawet, kto je obsługuje? Przekonajmy się.
Zabezpieczanie połączeń internetowych
Kiedy wysyłasz i odbierasz dane przez Internet, bardzo często robisz to za pomocą przeglądarki internetowej. Bezpieczne przeglądarki używają protokołu o nazwie TLS (transport layer security), aby chronić ruch pomiędzy przeglądarką, której używasz, aby uzyskać dostęp do Internetu (klient), a serwerem, do którego wysyłasz dane lub z którego otrzymujesz dane (np. serwer strony internetowej).
Możesz sprawdzić, czy jesteś chroniony/a za pomocą TLS, patrząc na pasek adresu przeglądarki, której używasz i upewniając się, że pokazuje on kłódkę wraz z poprawną nazwą domeny. Jeśli nie widzisz kłódki obok adresu URL, nie jesteś chroniony/a przez szyfrowanie.
Jako warstwa bezpieczeństwa sieciowego TLS wykorzystuje protokoły szyfrujące do uwierzytelniania, weryfikacji i zapewnienia bezpiecznej wymiany zaszyfrowanej komunikacji z punktu przeglądarki do serwera docelowego, chroniąc zawartość pakietów danych przed ujawnieniem niższym warstwom sieciowym i innym węzłom przesyłającym dane po drodze.
Protokoły TLS w bezpieczny sposób obsługują wymianę rzeczywistych kluczy szyfrujących. Pamiętaj - klucz szyfrujący jest tym, co chroni poufność i weryfikuje integralność przesyłanej komunikacji (wiadomości).
Przeglądarki korzystające z TLS próbują chronić użytkownika, sprawdzając ważność certyfikatu serwera witryny oraz zgodność certyfikatu z nazwą domeny witryny (URL). Jeśli certyfikat serwera nie jest ważny lub jeśli jest on używany na innej stronie, przeglądarka ostrzega, że nie jesteś chroniony. W takim przypadku na ekranie pojawia się komunikat ostrzegający przed nieprawidłowym autorytetem certyfikatu, co może na przykład oznaczać, że osoba atakująca wstawia własny certyfikat zamiast certyfikatu Google.
Niektóre witryny nadal pozwalają na połączenia z nimi za pomocą niezabezpieczonego protokołu HTTP. Oznacza to, że wszystkie dane przesyłane między przeglądarką a serwerem danej witryny mogą być podsłuchane przez każdego, kto kontroluje węzły, przez które dane są przesyłane.
Ataki na TLS
Jednak samo poleganie na ikonie kłódki nie jest wystarczające. Każdy może stworzyć certyfikat, który wskaże przeglądarkom, jakie szyfrowanie należy zastosować dla danego połączenia.
Atakujący może próbować nakłonić cię do korzystania z jego strony zamiast z oryginalnej, stosując proste sztuczki, takie jak zmiana adresu URL strony tak, aby był on podobny do oryginalnego. Można to zrobić na przykład poprzez zamianę małej litery L na cyfrę 1. W większości czcionek wyglądają one wystarczająco podobnie do siebie, aby oszukać użytkownika, jeśli nie jest on ostrożny. Strony te mogą również używać szyfrowania, więc samo zobaczenie ikony kłódki nie oznacza, że jesteś bezpieczny/a. Jeśli otrzymasz wiadomość zawierającą link, możesz zostać oszukany/a i wejść na stronę w ten sposób. Dobrym sposobem na uniknięcie tego rodzaju podmiany adresu URL jest samodzielne wpisanie adresu zamiast klikania otrzymanego linku.
Atak typu man-in-the-middle (MITM) jest atakiem, w którym atakujący znajduje się pomiędzy Tobą a serwerem i odszyfrowuje Twój ruch, przechowuje go i ponownie szyfruje przed przekazaniem go do serwera. Ten rodzaj ataku jest dość łatwy do przeprowadzenia, jeśli nie używasz szyfrowania. Sposób, w jaki TLS wymienia klucze i weryfikuje serwer ma na celu próbę ochrony przed takimi atakami. Jeśli jednak zignorujesz komunikaty ostrzegawcze dotyczące niezabezpieczonych stron, atak typu man-in-the-middle jest nadal możliwy.
Zalecenia dotyczące sprawdzania bezpieczeństwa sieciowego przeglądarki i witryny:
Zawsze sprawdzaj ważność certyfikatu, szukając kłódki w pasku adresu. Upewnij się, że nie pomijasz ostrzeżeń wyświetlanych przez przeglądarkę. Jeśli przeglądarka wyświetla komunikat, że certyfikat serwera nie jest wiarygodny, nie korzystaj z tej strony.
Ważne jest, aby pamiętać, że TLS i inne protokoły bezpieczeństwa, takie jak SSL, nie są przeznaczone tylko do komunikacji między przeglądarkami internetowymi a serwerami stron internetowych. Obecnie mogą być i są używane w innych typach aplikacji, takich jak klienty poczty elektronicznej, usługi w chmurze i aplikacje mobilne. Jest to ważne, ponieważ coraz więcej danych, które wysyłamy i odbieramy w Internecie, odbywa się za pośrednictwem aplikacji mobilnych i chmury. Określenie, czy ta komunikacja jest bezpieczna jest jednak nieco bardziej skomplikowane, jak zobaczymy w dalszej części tego rozdziału.
Korzystanie z VPN w celu ochrony
Jak można chronić się przed podsłuchami internetowymi lub atakami typu man-in-the-middle? Naprawdę dobrym rozwiązaniem jest korzystanie z VPN (virtual private network), czyli wirtualnej sieci prywatnej. Sieć VPN szyfruje Twoje dane i kieruje je z Twojego komputera do znanego i zaufanego węzła pośredniego, który odszyfrowuje dane i przekazuje je dalej, aby kontynuować podróż do węzła docelowego.
Pomyśl o sieci VPN jako o rodzaju dodatkowej koperty, która szyfruje zawartość (oryginalną kopertę z danymi) z węzła komputera, a następnie po dotarciu do węzła wyjściowego odszyfrowuje szyfrowanie koperty zewnętrznej i umożliwia kontynuowanie podróży oryginalnych danych w zwykły sposób. Może to zapobiec np. podsłuchiwaniu komunikacji przez wrogie sieci Wi-Fi.
Chociaż nie są one zalecane ze względu na ich nieodłączny brak bezpieczeństwa, jeśli korzystasz z publicznego połączenia wifi, VPN stanowi kluczowy dodatkowy element bezpieczeństwa. Zasadniczo jeśli kiedykolwiek logujesz się do publicznego wifi, takiego jak darmowy internet w kawiarni, upewnij się, że wyłączyłeś/as udostępnianie plików na swoim urządzeniu i że po wyjściu "zapomniałeś/aś o sieci" w ustawieniach sieci. Zapobiegnie to niezamierzonym automatycznym ponownym połączeniom z tymi sieciami, które mogą mieć miejsce, gdy będziesz niezabezpieczony/a i nieświadomy/a.
Przykładem rozwiązania VPN jest aplikacja w telefonie komórkowym lub zainstalowana na fizycznym urządzeniu na obrzeżu zaufanej sieci (np. routerze wewnętrznej sieci firmowej). Po aktywacji obie implementacje zabezpieczają i ukrywają komunikację przed podstawowymi warstwami sieciowymi, a tym samym również przed węzłami obsługującymi ruch.
Należy jednak pamiętać, że gdy zaszyfrowany ruch VPN opuści węzeł serwera dostawcy usług VPN, kontynuuje swoją podróż do węzła docelowego w normalny sposób - więc jeśli nie używasz zabezpieczonego protokołu sieciowego, takiego jak TLS lub szyfrowanie end-to-end (patrz rozdział 3.1), ruch jest dostępny dla każdego węzła na pozostałej części trasy.
Sieć VPN może być również użyta do ukrycia pochodzenia ruchu i sprawienia, że będzie on wyglądał tak, jakby pochodził z węzła wyjściowego VPN. Funkcja ta może być wykorzystywana do obchodzenia ograniczeń geograficznych lub ukrywania ruchu przed potencjalnie wrogimi sieciami. Sieci VPN mogą być również wykorzystywane do ukrywania komunikacji przed wrogimi rządami, które próbują podsłuchiwać obywateli swoich krajów. Sieć VPN robi to poprzez szyfrowanie i maskowanie celu komunikacji do momentu zakończenia połączenia w węźle wyjściowym, który może znajdować się w innym kraju.
Rozwiązanie VPN jest często wykorzystywane do łączenia ze sobą oddzielnych sieci. Często robi się to w celu rozszerzenia sieci między wieloma biurami firmy. Nawet jeśli oddzielne sieci nie są ze sobą fizycznie połączone, VPN może sprawić, że sieci te będą wyglądały jak jedna. Ruch, który ma być ruchem w sieci wewnętrznej, jest kierowany przez zaszyfrowane połączenie VPN do węzła wyjściowego, który w tym przypadku znajduje się na obrzeżu innej sieci.
VPN nie zawsze jest rozwiązaniem dla wszystkich przypadków. Jeśli masz VPN uruchomiony na telefonie komórkowym i używasz go do połączenia z laptopem, wbrew temu, czego można się spodziewać, połączenie z laptopa nie jest zabezpieczone przez VPN. Telefon działa jak router i nie będzie korzystać z tunelu VPN dla połączeń tethered, mimo że wszystkie aplikacje w telefonie komórkowym korzystają z VPN.
W takim przypadku najlepiej jest włączyć VPN na laptopie.
Bezpieczeństwo w aplikacjach i usługach opartych na chmurze
Zazwyczaj dane są przechowywane przez kogoś na komputerze zwanym serwerem, a serwerem i jego bezpieczeństwem zarządza ktoś inny. Początki wielu praktyk związanych z cyberbezpieczeństwem, takich jak kontrola dostępu i logowanie, sięgają początków informatyki, kiedy wszystkie urządzenia były prostsze, a wszystkie dane były przechowywane lokalnie.
W latach 80-tych i 90-tych komercjalizacja i konsumeryzacja komputerów osobistych przyniosła osobistą odpowiedzialność konsumentów za zabezpieczenie swoich komputerów - lub "punktów końcowych", jak są one powszechnie nazywane w środowiskach korporacyjnych. Zazwyczaj oznaczało to instalację programu antywirusowego. Dziś wiemy, że to nie wystarcza, zwłaszcza w przypadku cyberbezpieczeństwa na poziomie przedsiębiorstwa. Dobrą praktyką jest przynajmniej regularne szkolenie z podstawowych zasad cyberbezpieczeństwa, jeżeli pracownicy firmy wykonują pracę zdalną, w tym podróżują w celach służbowych.
Obecnie punkty końcowe, takie jak stacje robocze, telefony komórkowe i tablety nie są przeznaczone wyłącznie do użytku służbowego lub prywatnego. Wręcz przeciwnie, urządzenia i przechowywana na nich zawartość mieszają ze sobą te zastosowania. Miejsce przechowywania danych również stało się mniej oczywiste. To sprawia, że trudno jest dowiedzieć się, gdzie znajdują się kontrole bezpieczeństwa dla Twoich codziennych aplikacji.
Tylko "chmura", czy IaaS, PaaS lub SaaS?
Być może słyszałeś/aś stwierdzenie "chmura jest domyślnie bezpieczna". Z drugiej strony niektórzy mówią, że "chmura to po prostu komputer innej osoby".
Chociaż oba te stwierdzenia są niekiedy bliskie prawdy, należą one do wielu współczesnych mitów dotyczących cyberbezpieczeństwa. Aby zrozumieć specyfikę "chmury", musimy zadać kilka dodatkowych pytań. W zależności od odpowiedzi można określić również specyfikę kontroli i praktyk w zakresie cyberbezpieczeństwa.
Chmura stała się nieomal synonimem każdego przetwarzania danych obsługiwanego przez kogoś innego. Istnieją jednak różnice pomiędzy rodzajami chmury, IaaS, PaaS i SaaS:
IaaS (infrastructure as a service, czyli infrastruktura jako usługa) oznacza, że dostawca usług hostingowych, taki jak AWS, Azure lub GCP, hostuje wirtualne serwery w skalowalnym środowisku. W tym przypadku klient nadal musi dbać o bezpieczeństwo systemów operacyjnych i usług.
PaaS (platforma jako usługa) jest oferowana przez tych samych dostawców, co powyżej, ale oferuje również np. bazę danych lub oprogramowanie do analizy danych jako usługę. W tym przypadku klient może skupić się na funkcjonalności platformy, jednocześnie zabezpieczając ją poprzez odpowiednią konfigurację.
SaaS (oprogramowanie jako usługa) obejmuje usługi takie jak Salesforce, Office365 i Gmail. Tutaj klient ma najmniejszy wpływ na sposób zabezpieczenia usługi. Jednak to klient jest nadal odpowiedzialny za zarządzanie tożsamością w ramach usługi i praktykowanie dobrej higieny bezpieczeństwa sieciowego, czego nauczyliśmy się w tym kursie.
“Czy zainstalowanie tej aplikacji jest bezpieczne?”
Jest to bardzo często zadawane pytanie. Zapoznanie się z informacjami publikowanymi wraz z aplikacją nie daje prawie żadnych informacji na temat tego, jak bezpiecznie przetwarzane są dane w aplikacji lub na jej zapleczu.
Aby przeanalizować cyberbezpieczeństwo aplikacji, należy zastanowić się nad następującymi pytaniami:
Kto publikuje aplikację? Czy jest to sklep producenta, czy nieznany podmiot? Sklepy z aplikacjami (Google Play, Apple store) posiadają pewien poziom weryfikacji aplikacji pod kątem szkodliwych funkcjonalności (takich jak stalkerware, złośliwe oprogramowanie, backdoory).
Jakie informacje aplikacja zbiera od użytkownika, za jego zgodą lub bez niej?
W jaki sposób informacje są zabezpieczone pomiędzy aplikacją a backendem? (Aby dowiedzieć się więcej, zobacz rozdział 3).
W jaki sposób zabezpieczone są informacje pomiędzy nadawcą a odbiorcą (szyfrowanie end-to-end)?
Jakie jest bezpieczeństwo protokołów szyfrowania i zarządzania kluczami? - Czy aplikacja posiada np. certyfikat TLS?
W jaki sposób wydawca aplikacji może technicznie przetwarzać Twoje dane?
Czy wydawca działa w ramach ustawodawstwa, w którym jest prawnie zobowiązany do przekazania Twoich informacji władzom lokalnym (np. Chiny)?
Czy wydawca przechwytuje i zmienia treść informacji w tranzycie (również na przykład WeChat w Chinach)?
Weryfikacja faktów byłaby dużym wysiłkiem nawet dla profesjonalisty, więc możesz zobaczyć, co inni zrobili, aby się tego dowiedzieć. Można zacząć od zapytania, czy był ostatnio przeprowadzony audyt kodu i niezależna analiza bezpieczeństwa.
Być może najlepszą publicznie dostępną analizą jest porównanie funkcji bezpieczeństwa i prywatności różnych aplikacji do czatowania (Signal, Telegram, WhatsApp, Facebook Messenger).
Aby porównać różne aplikacje, zobacz na przykład porównanie EFF (Eletronic Frontier Foundation). Jest ono jednak przestarzałe, więc bardziej aktualną i znacznie bardziej szczegółową wersję można znaleźć tutaj, na stronie Securemessagingapp.com.
Ważne jest, aby pamiętać, że jeśli chodzi o każdy rodzaj oprogramowania - od oprogramowania systemowego urządzenia, przez oprogramowanie antywirusowe i VPN, po oprogramowanie aplikacji - konieczne jest instalowanie najnowszych aktualizacji (przy czym należy upewnić się, że monit o aktualizację pochodzi z zaufanego i bezpiecznego źródła). Te aktualizacje oprogramowania mogą wydawać się trywialne i łatwo je zignorować, ale bardzo często zawierają bardzo ważne poprawki bezpieczeństwa, bez których Twoje urządzenie i komunikacja mogą być narażone na atak.