Bezpieczeństwo przeglądarki internetowej
Na szerokich barkach skromnej przeglądarki internetowej spoczywa duża odpowiedzialność.
Przeglądarka internetowa została zaprojektowana do żądania instrukcji z całego Internetu, a instrukcje
te są następnie wykonywane prawie bez pytania. Przeglądarka musi wiernie zgromadzić zdalnie
pobierane treści w znormalizowanym pliku strawnym i obsługiwać bogaty zestaw funkcji dostępnych
w dzisiejszym Web 2.0. Pamiętaj, to jest to samo oprogramowanie, z którym prowadzisz ważne sprawy
- od utrzymywania sieci społecznościowych po bankowość internetową. Oczekuje się również, że to
oprogramowanie ochroni Ciebie, nawet jeśli zaryzykujesz wiele figuratywnych ciemnych zaułków
Internetu. Oczekuje się, że wesprze zejście tak alejką, jednocześnie dokonując bezpiecznego zakupu w
innej zakładce lub oknie. Wielu uważa, że ich przeglądarka jest jak samochód pancerny, zapewniając
bezpieczne i wygodne środowisko do obserwowania świata zewnętrznego, chroniąc wszystkie aspekty
osobistych interesów i odbijając wszystko, co niebezpieczne. Zespół programistów tego
oprogramowania do „śpiewania i tańczenia” musi się upewnić, że każdy z licznych zakamarków nie
zapewnia możliwości hakera. Niezależnie od tego, czy wiesz to świadomie, za każdym razem, gdy
korzystasz z przeglądarki, ufasz zespołowi osób, których prawdopodobnie nigdy nie spotkałeś (i
prawdopodobnie nigdy nie będziesz) w celu ochrony ważnych informacji przed atakującymi w
Internecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można
zastosować do ofensywnych starć. Badasz rolę przeglądarki internetowej w ekosystemie
internetowym, w tym zagłębiasz się w interakcję między nią a serwerem internetowym.
Przeanalizowałeś także niektóre podstawy bezpieczeństwa przeglądarki, które zapewnią podstawę dla
pozostałych lekcji.
Podstawowe zasady
Zapraszamy do chwilowego zapomnienia o przeglądarce internetowej i refleksji nad pustym płótnem
zabezpieczającym. Wyobraź sobie siebie w tej sytuacji: jesteś odpowiedzialny za utrzymanie
bezpieczeństwa organizacji i musisz podjąć decyzję. Czy wdrażasz oprogramowanie oparte na poziomie
ryzyka, jakie będzie ono stwarzać? Oprogramowanie zostanie zainstalowane w standardowym
środowisku operacyjnym (SOE) dla prawie każdej maszyny w organizacji. Będzie ono używane do
uzyskiwania dostępu do najbardziej wrażliwych danych i przeprowadzania najbardziej wrażliwych
operacji. To oprogramowanie będzie podstawowym narzędziem dla praktycznie całego personelu, w
tym dyrektora generalnego, zarządu, administratorów systemu, finansów, zasobów ludzkich, a nawet
klientów. Przy całej tej kontroli i dostępie do kluczowych danych biznesowych z pewnością brzmi to jak
wymarzony cel hakera i propozycja wysokiego ryzyka. Ogólne specyfikacje oprogramowania są
następujące:
■ Będzie żądał instrukcji z Internetu i je wykonywał.
■ Obrońca nie będzie kontrolował tych instrukcji.
■ Niektóre instrukcje mówią oprogramowaniu, aby uzyskać więcej instrukcji od:
■ Inne miejsca w Internecie
■ Inne miejsca w intranecie
■ Niestandardowe porty HTTP i HTTPS TCP
■ Niektóre instrukcje nakazują oprogramowaniu wysyłanie danych przez TCP. Może to spowodować
ataki na inne urządzenia sieciowe.
■ Szyfruje komunikację do dowolnych lokalizacji w Internecie. Obrońca nie będzie mógł zobaczyć
komunikacji.
■ Będzie stale zwiększać liczbę atakujących. Będzie aktualizować się w tle bez powiadamiania Cię.
■ Często zależy od wtyczek, aby umożliwić efektywne użycie. Nie ma metody inicjującej do aktualizacji
wtyczek.
Ponadto badania terenowe oprogramowania ujawniają:
■ Wtyczki są ogólnie uważane za mniej bezpieczne niż samo oprogramowanie podstawowe.
■ Każdy wariant oprogramowania ma historię udokumentowanych luk w zabezpieczeniach.
■ Raport wywiadu bezpieczeństwa podsumowujący ataki na to oprogramowanie jako największe
zagrożenie dla przedsiębiorstwa
Bez wątpienia się zorientowaliśmy, że odwołujemy się do przeglądarki internetowej. Zapominając o
tym i wydarzeniach z historii po raz kolejny i wracając do naszej pustej kanwy bezpieczeństwa,
szaleństwem byłoby nie kwestionować mądrości wdrażania tego oprogramowania. Nawet bez korzyści
z danych z pola jego specyfikacje wydają się niezwykle alarmujące z punktu widzenia bezpieczeństwa.
Cała ta dyskusja ma jednak w rzeczywistości charakter czysto koncepcyjny. Jesteśmy już daleko od
punktu, w którym nie ma powrotu, a biorąc pod uwagę masę krytyczną witryn internetowych, nikt nie
może stwierdzić, że przeglądarka internetowa stanowi potencjalnie poważne zagrożenie
bezpieczeństwa i jako taka nie zostanie dostarczona każdemu pracownikowi. Jak już wiesz, wdrożono
dosłownie miliardy przeglądarek internetowych. Niewprowadzenie przeglądarki internetowej do
pracowników organizacji prawie na pewno wpłynie negatywnie na ich produktywność. Nie
wspominając o tym, że byłoby to uważane za raczej drakońskie lub zacofane. Przeglądarka internetowa
ma coraz większe zastosowania i stwarza różne wyzwania związane z hakowaniem i bezpieczeństwem
w zależności od kontekstu użytkowania. Przeglądarka jest tak wszechobecna, że wiele nietechnicznych
populacji uważa ją za „Internet”. Mają ograniczoną ekspozycję na inne przejawy danych, które może
wywołać protokół internetowy. W dobie Internetu daje to przeglądarce niezaprzeczalnie dominującą
pozycję w życiu codziennym, dlatego przemysł informatyczny jest do niej przywiązany. Przeglądarka
internetowa jest prawie wszędzie w sieci - w strefie sieci użytkownika, strefach gości, a nawet w
bezpiecznych strefach DMZ. Nie zapominaj, że w wielu przypadkach administratorzy użytkowników
muszą zarządzać swoimi urządzeniami sieciowymi za pomocą przeglądarek internetowych. Producenci
wskoczyli na modę internetową i wykorzystali dostępność przeglądarek, zamiast wymyślać koło na
nowo. Poleganie na tym oprogramowaniu do przeglądania stron internetowych jest absolutne. W
dzisiejszym świecie bardziej efektywne jest pytanie, gdzie przeglądarka internetowa nie znajduje się w
twojej sieci, niż gdzie jest.
Eksplorowanie przeglądarki
Gdy dotkniesz sieci, sieć dotknie Cię od razu. W rzeczywistości, niezależnie od tego, czy zdajesz sobie z
tego sprawę, czy nie, zapraszasz ją, by cię dotknęła. Poprosisz go, aby sięgnął po różne środki
bezpieczeństwa wprowadzone w celu ochrony sieci i wykonał instrukcje, nad którymi masz kontrolę
tylko na wysokim poziomie, wszystko w imię renderowania strony i dostarczania na ekran nieznanej /
niezaufanej treści. Przeglądarka działa z zestawem uprawnień przyznanych jej przez system
operacyjny, identycznym jak każdy inny program w przestrzeni użytkownika. Te uprawnienia są
równoważne z tymi, które Tobie, użytkownikowi, został przypisane! Nie zapominajmy, że dane
wejściowe użytkownika są przez cały czas niczym więcej niż zestawem instrukcji dla aktualnie
uruchomionego programu - nawet jeśli jest to Eksplorator Windows lub powłoka UNIX. Jedyną różnicą
między danymi wejściowymi użytkownika a danymi wejściowymi otrzymanymi z dowolnego innego
źródła są różnice narzucone przez program odbierający dane wejściowe! Gdy zastosujesz to
zrozumienie do przeglądarki internetowej, której podstawową funkcją jest przyjmowanie i
wykonywanie instrukcji z dowolnych lokalizacji na świecie, potencjalne ryzyko z tym związane staje się
bardziej oczywiste.
Symbioza z aplikacją internetową
Sieć wykorzystuje szeroko rozpowszechnione podejście sieciowe zwane modelem klient-serwer, które
zostało opracowane w latach siedemdziesiątych. Komunikuje się za pomocą procesu odpowiedzi na
żądanie, w którym przeglądarka internetowa realizuje żądanie, a serwer WWW odpowiada
odpowiedzią. Ani serwer sieciowy, ani klient sieciowy nie są w stanie w pełni wykorzystać swojego
potencjału bez drugiego. Są prawie całkowicie współzależne; przeglądarka internetowa nie miałaby
prawie nic do wyświetlenia, a serwer sieciowy nie miałby żadnego celu w udostępnianiu treści. Ta
niezbędna symbioza tworzy niezliczone dynamiczne splecione pasma sieci. Więź między tymi dwoma
kluczowymi elementami obejmuje również pozycję bezpieczeństwa. Bezpieczeństwo przeglądarki
internetowej może mieć wpływ na aplikację internetową i odwrotnie. Niektóre kontrole można
zabezpieczyć w izolacji, ale wiele zależy od ich odpowiednika. W wielu przypadkach związek między
przeglądarką a aplikacją musi zostać wzmocniony lub, z perspektywy hakera, zaatakowany. Na
przykład, gdy serwer WWW ustawia plik cookie na określone pochodzenie, oczekuje się, że
przeglądarka internetowa będzie przestrzegać tej dyrektywy i nie ujawni (potencjalnie wrażliwego)
pliku cookie innym źródłom. Bezpieczeństwo zaangażowania przeglądarki internetowej w aplikację
internetową należy rozumieć w kontekście. W wielu przypadkach dyskusje zagłębiają się w interakcje
między tymi dwoma elementami. Wykorzystanie relacji między tymi dwoma podmiotami omówiono
w kolejnych rozdziałach. Zdecydowanie zachęca się do dalszych badań nad lukami w aplikacjach
internetowych.
Zasady tego samego pochodzenia
Najważniejszą kontrolą bezpieczeństwa w przeglądarce internetowej jest zasada tego samego
pochodzenia, znana również jako SOP. Ta kontrola ogranicza zasoby z jednego źródła współdziałające
z innymi źródłami. SOP uznaje strony o tej samej nazwie hosta, schemacie i porcie za znajdujące się w
tym samym źródle. Jeśli którykolwiek z tych trzech atrybutów jest zmienny, zasób ma inne
pochodzenie. Dlatego pod warunkiem, że zasoby pochodzą z tej samej nazwy hosta, schematu i portu,
mogą one współpracować bez ograniczeń. SOP początkowo został zdefiniowany tylko dla zasobów
zewnętrznych, ale został rozszerzony o inne rodzaje źródeł. Obejmowało to dostęp do lokalnych plików
za pomocą schematu file: // i zasobów związanych z przeglądarką za pomocą schematu chrome: //.
Dzisiejsze przeglądarki obsługują wiele innych programów.
Nagłówki HTTP
Możesz myśleć o nagłówkach HTTP jako o adresie i innych instrukcjach zapisanych na kopercie, które
określają, gdzie paczka powinna się znaleźć i jak należy postępować z zawartością paczki. Przykładami
mogą być „Kruche: obchodzić się ostrożnie”, „Trzymaj płasko” lub „Niebezpieczeństwo: materiały
wybuchowe!” Są to główne dyrektywy, których protokół HTTP używa do dyktowania, co zrobić z
następującą zawartością. Klienci WWW dostarczają nagłówki HTTP na początku wszystkich żądań do
serwera WWW, a serwery WWW odpowiadają nagłówkami HTTP jako pierwszym elementem w każdej
odpowiedzi. Treść nagłówków określa, w jaki sposób następująca treść jest przetwarzana przez serwer
WWW lub przeglądarkę internetową. Niektóre nagłówki są wymagane, aby interakcja mogła działać;
inne są opcjonalne, a niektóre mogą być wykorzystywane wyłącznie w celach informacyjnych.
Języki znaczników
Języki znaczników to sposób określania sposobu wyświetlania zawartości. W szczególności definiują
one znormalizowany sposób tworzenia symboli zastępczych danych i symboli zastępczych do adnotacji
związanych z danymi w tym samym dokumencie. Każda strona internetowa, którą widziałeś w życiu,
prawdopodobnie używała języka znaczników, aby przekazać instrukcje przeglądarki dotyczące
wyświetlania tej strony. Istnieją różne rodzaje języków znaczników. Niektóre języki znaczników są
bardziej popularne niż inne i każdy ma swoje mocne i słabe strony. Jak zapewne już wiesz, HTML jest
wybranym językiem znaczników przeglądarki internetowej.
HTML
HyperText Markup Language, lub HTML, jest podstawowym językiem programowym używanym do
wyświetlania stron internetowych. Choć początkowo rozszerzony ze Standardowego Uogólnionego
Języka Znaczników (SGML), obecny HTML przeszedł wiele zmian od tego czasu. Bezwzględna zależność
od znaczników (współistnienie danych i adnotacji lub instrukcji) jest przyczyną kilku ważnych, trwałych
i systemowych problemów bezpieczeństwa.
XML
XML jest ściśle związany z HTML. Jeśli znasz język HTML, nie znajdziesz zbyt dużego wyzwania dla XML.
Chociaż żadne z nich nie jest szczególnie przyjemne dla ludzkiego oka, oba zapewniają bardzo bogaty
sposób przedstawiania złożonych danych. Plik XML będzie często używany w Internecie, zwykle jako
transport usług internetowych lub inne interakcje zdalnego wywoływania procedur (RPC).
Kaskadowe arkusze stylów
Kaskadowe arkusze stylów (CSS) to główna metoda wykorzystywana przez przeglądarki internetowe
do określania stylu zawartości strony internetowej (nie należy mylić jej z XSS, który jest skrótem od luki
w zabezpieczeniach dotyczącej skryptów krzyżowych). CSS zapewnia sposób na oddzielenie treści od
jej stylu. Bardzo podstawowym tego przykładem jest pogrubienie zdania. Oczywiście CSS jest znacznie
potężniejszy niż ten prosty przykład i rozszerza się na złożoność widzianą w sieci.
Skrypty
Języki skryptów internetowych to sztuka, której warto się nauczyć! Jeśli wchodzisz w interakcję z
internetem na poziomie technicznym, w jednym lub drugim miejscu natkniesz się na nich. Skrypty są
warunkiem wstępnym do pracy w informatyce, która w jakiś sposób wślizgnęła się i zajęła bardzo
ważne miejsce w przeglądarce. W późniejszych lekcjach dowiesz się, że osoby atakujące używają
skryptów w przeglądarce do uruchamiania niektórych z najbardziej popularnych exploitów, w tym XSS.
Będziesz potrzebował tej wiedzy w swoim arsenale.
JavaScript
JavaScript obsługuje funkcjonalne i obiektowe koncepcje programowania. W przeciwieństwie do Java,
który jest silnie typowanym językiem, JavaScript jest pisany luźno. Język ma dominującą pozycję w
ekosystemie internetowym i będzie dostępny w najbliższej przyszłości. Domyślnie działa w każdej
przeglądarce. Znajomość JavaScript jest niezbędna dla Ciebie jako czytelnika, ponieważ większość kodu
w tej książce używa tego języka. Ataki napisane w JavaScript (nie znoszące dziwactw przeglądarki) są
kompatybilne we wszystkich przeglądarkach. To czyni go fantastycznym językiem bazowym do
hakowania przeglądarki.
VBScript
VBScript jest obsługiwany tylko w przeglądarkach Microsoft i rzadko jest używany w poważnym
tworzeniu stron internetowych. Wynika to z faktu, że nie obsługuje on różnych przeglądarek. Jest to
alternatywa Microsoftu dla JavaScript Netscape, a jego pochodzenie sięga wczesnych wojen
przeglądarki. Wiele funkcji można uzyskać w JavaScript. Oczywiście rodzi to pytanie, czy VBScript jest
w ogóle potrzebny. Jeśli już, to wydaje się być powrotem do czasów, gdy Internet Explorer miał
całkowitą dominację w tej przestrzeni.
Model obiektowy dokumentu
Model obiektowy dokumentu (częściej nazywany DOM) to podstawowa koncepcja przeglądarki
internetowej. Jest to interfejs API do interakcji z obiektami w dokumentach HTML lub XML. DOM
zapewnia metodę interakcji języków skryptowych z silnikiem renderującym, zapewniając odniesienia
do elementów HTML w postaci obiektów. DOM jest skutecznie połączony z JavaScript (lub innymi
wybranymi językami skryptowymi). Został stworzony, aby umożliwić zdefiniowaną metodę dostępu do
żywego renderowanego dokumentu, tak aby skrypty działające w przeglądarce mogły odczytywać i /
lub zapisywać do niego dynamicznie. Umożliwiło to zmianę strony bez wysyłania nowych żądań do
serwera WWW i bez konieczności interakcji użytkownika
Silniki do renderowania
Silniki renderowania nazywane są różnymi nazwami w kontekście przeglądarek internetowych, w tym
silników układu i silników przeglądarki internetowej. Nazwy te są używane zamiennie. Te komponenty
odgrywają istotną rolę w ekosystemie przeglądarki. Odpowiadają za konwersję danych do formatu
przydatnego do prezentacji użytkownikowi na ekranie. Przeglądarka internetowa prawdopodobnie
użyje HTML i obrazów w połączeniu z CSS do stworzenia końcowego produktu graficznego, który
użytkownicy zobaczą w swojej przeglądarce. To właśnie te silniki zapewniają użytkownikowi wrażenia
graficzne. Choć zwykle określane graficznie, istnieją oparte na tekście silniki renderujące też takie jak
Lynx i W3M. W Internecie używanych jest wiele silników renderujących. Popularne silniki
renderowania graficznego omówione w naszych lekcjach to WebKit, Blink, Trident i Gecko.
WebKit
WebKit jest najpopularniejszym silnikiem renderującym i jest wykorzystywany w wielu przeglądarkach
internetowych. Najbardziej znaną przeglądarką korzystającą z silnika jest Apple Safari, a w przeszłości
Google Chrome również go używała. Jest to jeden z bardziej popularnych obecnie używanych silników
renderujących. Celem tego projektu typu open source jest przekształcenie WebKit w silnik interakcji i
prezentacji ogólnego zastosowania dla aplikacji. Oprócz zastosowania w przeglądarkach internetowych
silnik jest wykorzystywany w różnego rodzaju oprogramowaniu, w tym w klientach poczty e-mail i
komunikatorach internetowych.
Trident
Mechanizm renderujący firmy Microsoft nazywa się MSHTML lub, częściej, Trident. Nic dziwnego, że
Trident to silnik o zamkniętym źródle znaleziony w Internet Explorerze. Jest to drugi najpopularniejszy
silnik renderujący. Podobnie jak WebKit, Trident jest również używany w oprogramowaniu innym niż
przeglądarki internetowe. Jednym z przykładów jest Google Talk. Oprogramowanie może korzystać z
silnika za pomocą biblioteki mshtml.dll, która jest dostarczana z systemem Windows. Trident po raz
pierwszy pojawił się w wersji 4 przeglądarki internetowej i od tego czasu stał się podstawowym
elementem Internetu. Najnowsza wersja przeglądarki Microsoft Internet Explorer nadal wykorzystuje
Trident jako główny silnik renderujący.
Gecko
Firefox to najwybitniejszy program wykorzystujący silnik renderujący Gecko typu open source. Jest to
prawdopodobnie trzeci najpopularniejszy silnik renderujący po WebKit i Trident. Gecko to silnik
renderujący typu open source, pierwotnie opracowany przez Netscape w latach 90. dla przeglądarki
internetowej Netscape Navigator. Nowoczesne wersje Gecko znajdują się głównie w aplikacjach
opracowanych przez Mozilla Foundation i Mozilla Corporation, w szczególności przeglądarkę Firefox.
Presto
Presto jest mechanizmem renderującym dla Opery. Jednak w 2013 r. Zespół Opery publicznie ogłosił,
że wkrótce porzuci swój wewnętrzny silnik renderujący Presto i przeprowadzi migrację do pakietu
WebKit Chromium. Nazwa pakietu WebKit Chromium została następnie przemianowana na Blink. W
żadnym innym przypadku poważna przeglądarka nie zmieniła kursu z silnikiem renderowania w tak
dramatyczny sposób. To prawie na pewno oznaczać będzie wyginięcie Presto i stanie się jedną z
ostatnich ofiar wojen przeglądarkowych.
Blink
W 2013 roku Google ogłosił, że zienia WebKit, aby utworzyć nowy silnik renderowania Blink.
Początkowym celem Blink jest lepsze wsparcie wieloprocesowej architektury Chrome i zmniejszenie
złożoności przeglądarki. Czas pokaże, czy ten silnik będzie działał tak dobrze, jak WebKit, ale sugestia,
że Google usunie zbędne funkcje, to dobry początek.
Geolokalizacja
Geolokalizacja API zapewnia urządzeniom mobilnym i komputerom stacjonarnym dostęp do położenia
geograficznego przeglądarki internetowej. Osiąga to poprzez różne metody, w tym GPS, triangulację
witryny komórkowej, geolokalizację IP i lokalne punkty dostępu Wi-Fi. Istnieje wiele oczywistych
przypadków, w których informacje te mogłyby zostać wykorzystane w rzeczywistych sytuacjach.
Wprowadzono rygorystyczne zabezpieczenia przeglądarki w celu ograniczenia wyzysku, pozostawiając
główny wektor ataku jako socjotechnikę.
Pamięć internetowa
Pamięć internetowa, czasami nazywana pamięcią DOM, była częścią specyfikacji HTML5, ale już nie
jest. Pomocne może być przeglądanie pamięci internetowej jako doładowanych plików cookie.
Podobnie jak pliki cookie, istnieją dwa główne typy przechowywania: jeden zachowuje się lokalnie, a
drugi jest dostępny podczas sesji. W przypadku pamięci internetowej pamięć lokalna utrzymuje
wielokrotne odwiedziny użytkownika i przechowywanie sesji jest dostępne tylko w zakładce, która go
utworzyła. Jedną z głównych różnic między plikami cookie a pamięcią internetową jest to, że pamięć
internetowa jest tworzona tylko przez JavaScript, a nie przez nagłówki HTTP, ani nie jest przesyłana do
serwera przy każdym żądaniu. Pamięć internetowa pozwala na znacznie większe rozmiary niż
tradycyjne ciasteczka. Rozmiar zależy od przeglądarki, ale ogólnie wynosi co najmniej 5 megabajtów.
Inną ważną różnicą jest to, że nie ma koncepcji ograniczeń ścieżki w przypadku lokalnego
przechowywania
PRZECHOWYWANIE SESJI
Oto prosty przykład użycia interfejsu API do przechowywania danych w sieci Web. Uruchom
następujące polecenia w konsoli JavaScript przeglądarki internetowej. Ustawią wartość „BHH” w
magazynie sesji bieżącej karty:
sessionStorage.setItem („BHH”, „http://browserhacker.com”);
sessionStorage.getItem („BHH”);
SOP ma zastosowanie do lokalnego przechowywania z podziałem na poszczególne źródła. Inne źródła
nie mogą uzyskać dostępu do lokalnego magazynu ani do subdomen.
Udostępnianie zasobów między źródłami
Udostępnianie zasobów między źródłami lub CORS to specyfikacja, która zapewnia metodę inicjowania
ignorowania SOP. W najłagodniejszej konfiguracji aplikacja internetowa może pozwolić
XMLHttpRequest na różne źródła na dostęp do wszystkich swoich zasobów z dowolnego źródła.
Nagłówki HTTP informują przeglądarkę, czy dostęp jest dozwolony. Podstawowym składnikiem CORS
jest dodanie następujących nagłówków odpowiedzi HTTP do serwera WWW:
Access-Control-Allow-Origin: *
Metody kontroli dostępu-Allow: POST, GET
Gdy przeglądarka wysyła XMLHttpRequest z innego źródła na serwer, który nie odpowiada tymi
nagłówkami, dostęp do treści odpowiedzi nie będzie możliwy. Jest to dostosowane do oczekiwanego
zachowania SOP. Jeśli jednak serwer internetowy zwróci poprzednie nagłówki, nowoczesne
przeglądarki uznają specyfikację CORS i zezwalają na dostęp do treści odpowiedzi źródła.
HTML5
HTML5 to przyszłość. Cóż, niezupełnie… to jest teraźniejszość. Chociaż standard nie został jeszcze
ukończony, nowoczesne przeglądarki już wdrażają podstawową funkcjonalność. Jest wysoce
prawdopodobne, że używana przeglądarka obsługuje teraz wiele elementów ze specyfikacji HTML5.
HTML5 to kolejny standard HTML. Definiuje dodatki do specyfikacji, które zwiększają funkcjonalność,
a tym samym wygodę korzystania z Internetu. Oczywistą zmianą z punktu widzenia bezpieczeństwa
jest wzrost powierzchni ataku. Udostępnia wiele innych metod, które nie były ujawniane w poprzedniej
generacji HTML4. Zwiększa także permutacje, według których funkcjonalność może być użyta. Oba te
czynniki łącznie zwiększają ryzyko udanych ataków. Dzieje się tak w przypadku większości postępów
technologicznych i samo w sobie nie powinno być powodem do rezygnacji z postępu. Te lekcje
obejmują niektóre dodatki, ale nie wszystkie. Te wykorzystane w atakach w dalszej części zostały
krótko omówione w następnej lekcji.
WebSocket
WebSocket to technologia przeglądarki, która umożliwia otwieranie interaktywnego i bardzo
responsywnego kanału komunikacji w trybie pełnego dupleksu między przeglądarką a serwerem. To
zachowanie pozwala na wykonywanie rygorystycznych akcji sterowanych zdarzeniami bez wyraźnej
potrzeby odpytywania serwera. WebSocket zastępuje inne technologie AJAX-Push, takie jak Comet.
Podczas gdy Comet wymaga dodatkowych bibliotek klienckich, WebSocket API jest implementowany
natywnie w nowoczesnych przeglądarkach. Wszystkie najnowsze przeglądarki, w tym Internet Explorer
10, natywnie obsługują WebSocket. Jedynymi wyjątkami są niektóre przeglądarki mobilne, takie jak
Opera Mini i natywna przeglądarka Androida.
Pracownicy sieci
Przed robotami WWW, JavaScript w przeglądarce był środowiskiem jednowątkowym. Programiści
użyliby setTimeout() i setInterval (), aby uzyskać wykonanie podobne do współbieżności. HTML5
wprowadza pracowników sieciowych, które mogą być postrzegane jako wątki przeglądarki, ponieważ
działają w tle. Istnieją dwa typy: jeden jest wspólny dla wszystkiego, co działa w źródle, a drugi
komunikuje się tylko z funkcją powrotu , która go utworzyła. Interfejs API ma różne inne ograniczenia,
ale pracownicy sieci zapewniają programistom większą elastyczność. Tej samej elastyczności zapewnia
się atakującym, dając im więcej opcji na wdrożenie ataku w przeglądarce internetowej.
Manipulacja historią
Różne ataki są ukierunkowane na funkcjonalność historii przeglądarki internetowej. Możliwości
historii ciągle się zmieniają wraz ze zmianami zapotrzebowania przeglądarki. W przeszłości śledzenie
historii wystarczyło, gdy użytkownicy kliknęli link prowadzący do innej strony. Dzisiaj kliknięcie linku
może wykorzystywać skrypty do renderowania strony, co jest liczone jako kamień milowy w
doświadczeniu użytkownika. HTML5 oferuje metody manipulowania stosem historii. Skrypty mogą
dodawać lub usuwać lokalizacje za pomocą obiektu historii, a także mogą przenosić bieżącą stronę do
przodu lub do tyłu w łańcuchu historii.
WebRTC
Interfejs API Web Real-Time Communication (WebRTC) to znaczący rozwój wykorzystujący możliwości
HTML5 i JavaScript. Pozwala przeglądarkom komunikować się ze sobą przy niskim opóźnieniu i dużej
przepustowości niezbędnej do obsługi komunikacji w czasie rzeczywistym, bogatej w media. WebRTC
jest obsługiwany w najnowszych przeglądarkach Chrome, Firefox i Opera i jest w nie wbudowany.
Udostępnia funkcje, takie jak bezpośredni dostęp do kamery i sprzętu audio (w celu obsługi
wideokonferencji). Potencjalne implikacje bezpieczeństwa dla tego typu technologii o wysokiej
użyteczności, ale inwazyjnej są oczywiste. Na szczęście WebRTC jest oprogramowaniem typu open
source, więc nie jest poza zasięgiem przejrzystej analizy.
Luki w zabezpieczeniach
Termin „podatności na zagrożenia” jest abstrakcyjnym zbiorowym, a zatem złożonym tematem. Można
wywnioskować, że istnienie tych ludzi wynika wyłącznie z istnienia tak zwanych „luk”. Jednak definicja
tego, co jest podatne na zagrożenia, a co nie, nie zawsze jest jasne. Czasami luka w zabezpieczeniach
to tak naprawdę funkcjonalność, jak pierwotnie zamierzano, ale która później okazała się zbyt
liberalna. Co gorsza, niektóre klasy podatności mają wiele nazw. Jako całość cała sytuacja może być
myląca. We wszystkich lekcjach luki zostały wyjaśnione w kontekście ataku w celu zachowania
przejrzystości. Wiele książek napisano na temat wykorzystywania luk w skompilowanym kodzie. Nie
mamy na celu powtórzenie tego obszaru badań.
Presje ewolucyjne
Przeglądarki internetowe przeżyły jedną z najbardziej dramatycznych i ekscytujących zmian w branży
informatycznej. Obecnie przeglądarki wykorzystują najnowocześniejsze techniki w zakresie
wydajności, bezpieczeństwa i rozwoju. Przetrwają lub zginą na niezwykle agresywnym polu bitwy.
Przeglądarki internetowe były kiedyś znacznie mniej zaawansowanym oprogramowaniem. Pierwsze
przejawy przeglądarki internetowej miały prosty cel - były wyświetlaniem i podążały za hiperłączami w
embrionalnej sieci. Teraz mają wsparcie dla dodatków, wtyczek, kamer, mikrofonów i geolokalizacji.
Nie trzeba dodawać, że jest to długa droga od miejsca, w którym zaczęli. Krajobraz udziału w rynku
przeglądarki internetowej nie był stały w całej kolorowej historii przeglądarki. Pojawili się zwycięzcy i
przegrani, przeglądarki niszowe i głównego nurtu, a reputacja wzrosła i spadła. Netscape był wczesną
ofiarą bitew przeglądarkowych, ale jego śmierć dała początek organizacji Mozilla, a ostatecznie
Firefoxowi. Internet Explorer, niegdyś dominujący na rynku przeglądarek i pogromca późnego
Netscape, stopniowo traci grunt pod przeglądarkami open source, a w ostatnich latach ofertami
komercyjnymi, takimi jak Google Chrome i Safari Apple. Jednak ze względu na ciągły rozwój i
fundament giganta finansowego Microsoftu, nadal przetrwa i ewoluuje. Można śmiało powiedzieć, że
ta opowieść wojenna jest daleka od końca. Pole bitwy uległo zmianie, a przeglądarki ewoluowały, by
zmierzyć się z nowym terenem. Ważnym rezultatem tego wyścigu zbrojeń jest to, że dostawcy
przeglądarek rozumieją, że bezpieczeństwo jest ważne dla ich użytkowników i stale utrudniają
korzystanie z przeglądarki. Spowodowało to różne postępy w technologiach obronnych. W poniższych
sekcjach opisano niektóre z głównych funkcji bezpieczeństwa przeglądarki obecnych w dzisiejszym
ciężkim oprogramowaniu do obrony.
Nagłówki HTTP
Duża część ewolucji bezpieczeństwa przeglądarki nastąpiła w nagłówkach HTTP. Ponieważ dyrektywy
w zakresie całego żądania lub odpowiedzi są umieszczone w nagłówkach HTTP, stanowią one naturalny
mechanizm dla serwera, który instruuje przeglądarkę o wprowadzeniu dodatkowych kontroli
bezpieczeństwa.
Polityka bezpieczeństwa treści
XSS jest omawiany w Lekcji 2, ale krótko omówiono go tutaj, aby umieścić politykę bezpieczeństwa
treści (CSP) w kontekście. CSP został zaprojektowany w celu ograniczenia luk w zabezpieczeniach XSS
poprzez zdefiniowanie rozróżnienia między instrukcjami a treścią. Nagłówek CSP HTTP Content-
Security-Policy lub X-Content-Security-Policy jest wysyłany z serwera w celu wskazania lokalizacji, w
których można załadować skrypty. Określa również ograniczenia dotyczące tych skryptów; na przykład,
czy można użyć funkcji eval() JavaScript.
Bezpieczna flaga pliku cookie
Historycznie pliki cookie były przesyłane zarówno przez HTTP, jak i HTTPS, bez rozróżnienia między
dwoma źródłami. Może to wpłynąć na bezpieczeństwo sesji ustanowionej za pomocą przeglądarki
internetowej. Token sesji bezpiecznie ustanowiony między serwerem a przeglądarką za
pośrednictwem protokołu HTTPS można przekazać osobie atakującej za pomocą standardowego
żądania HTTP. W tym miejscu flaga bezpiecznego pliku cookie przeskakuje wysokie budynki w jednym
miejscu. Głównym celem tej flagi jest poinstruowanie przeglądarki, aby nigdy nie wysyłała pliku cookie
przez niezabezpieczony kanał. W ten sposób wrażliwy token sesji może pozostać zamknięty w
zaszyfrowanej barierze za każdym razem, gdy jest przesyłany.
HttpOnly Cookie Flag
Flaga HttpOnly to kolejna opcja, którą można zastosować do plików cookie, a wszystkie nowoczesne
przeglądarki przestrzegają tej dyrektywy. Flaga HttpOnly instruuje przeglądarkę, aby zabroniła dostępu
do treści plików cookie z jakichkolwiek skryptów. Ma to tę zaletę, że ogranicza kradzież plików cookie
wynikających z XSS z JavaScript
Opcje X-Content-Type-Type
Przeglądarki mogą stosować różne metody wyszukiwania zawartości, aby zgadywać, jaki typ treści
został zwrócony z serwera WWW. Na tej podstawie przeglądarka wykona odpowiednią akcję
odwzorowaną na ten typ zawartości. Dyrektywa nosniff istnieje, aby wyłączyć tę funkcję i zmusić
przeglądarkę do renderowania treści zgodnie z nagłówkiem typu zawartości. Na przykład, jeśli serwer
wysyła dyrektywę nosniff w odpowiedzi na tag skryptu, przeglądarka zignoruje odpowiedź, chyba że
typ MIME pasuje do application / javascript (i kilku innych). Na stronie takiej jak Wikipedia (co pozwala
na przesyłanie), może to być szczególnie niepokojące. Brak dyrektywy staje się problemem, gdy
specjalnie spreparowany plik zostanie przesłany, a następnie pobrany. Przeglądarka może zostać
oszukiwana w celu niepoprawnej interpretacji typu danych MIME i interpretacji JPEG na przykład jako
skryptu. Ma to oczywiste problemy przy rozważaniu kontroli bezpieczeństwa przeglądarki; użytkownik
może uzyskać kontrolę nad przeglądarką za pośrednictwem publicznej aplikacji internetowej. Jednym
ze sposobów byłoby przesłanie plików dozwolonego (i pozornie bezpieczny) typ treści, które są
następnie interpretowane w inny, bardziej niebezpieczny i niestabilny sposób.
Ścisłe bezpieczeństwo transportu
Ten nagłówek HTTP instruuje przeglądarkę, że komunikacja z witryną musi odbywać się przez
prawidłowy tunel HTTPS. Użytkownik nie będzie mógł zaakceptować żadnych błędów HTTPS i przejść
przez niepewne połączenie. Zamiast tego przeglądarka wyjaśni błąd, nie pozwalając użytkownikowi
kontynuować przeglądania.
Opcje X-Frame.
Nagłówek HTTP X-Frame-Options służy do zapobiegania kadrowaniu strony w przeglądarce
internetowej. Gdy przeglądarka zobaczy nagłówek, powinna upewnić się, że wysłana strona nie będzie
wyświetlana w ramce IFrame. Ten nagłówek został opracowany w celu zapobiegania atakom
polegającym na przywracaniu interfejsu użytkownika, z których jednym jest Clickjacking. Atak polega
na kadrowaniu strony ofiary w oknie pierwszego planu, które jest w 100 procentach przezroczyste.
Użytkownicy uważają, że wchodzą w interakcję z nieprzezroczystą stroną w tle (atakującego), ale w
rzeczywistości klikają niewidoczną stronę pierwszego planu (ofiary). Nagłówek HTTP X-Frame-Options
uniemożliwia pomyślne wykonanie podzbioru ataków naprawczych interfejsu użytkownika.
Odbicie Filtrowanie XSS
Jest to funkcja bezpieczeństwa przeglądarki internetowej, która próbuje wykryć, zdezynfekować i
zablokować Reflected XSS. Przeglądarka próbuje pasywnie odkryć udaną eksploatację Reflected XSS.
Następnie próbuje zdezynfekować skrypty dostarczone w odpowiedzi i, w większości przypadków,
uniemożliwia ich wykonanie.
Sandboxing
Sandboxing jest próbą rozwiązania rzeczywistego problemu w rzeczywistym świecie. Podstawowym
założeniem jest to, że przeglądarka zostanie przejęta i znajdzie się pod kontrolą atakującego. Nigdy nie
wypowiedziano prawdziwszych słów! Podstawowa (i pragmatyczna) pozycja polega na tym, że
programiści nieuchronnie napiszą wrażliwy kod. Wielu uważa, że podatny kod nieuchronnie pojawi się
gdzieś w oprogramowaniu. Spójrzmy prawdzie w oczy, nawet ci ze społeczności bezpieczeństwa, którzy
wskazują ,że ich palce u deweloperów są podatne. Sandbox jest dobrą próbą rozwiązania tego
uniwersalnego problemu. Oczywiście stopień, w jakim programiści zastosują się do tej przesłanki (czyli
napisz wrażliwy kod) będzie się różnić w zależności od wielu złożonych czynników, takich jak brak snu
lub jakość ziaren kawy. Sandbox to po prostu kontrolą łagodzącą. Próbuje zamknąć obszar o wysokim
prawdopodobieństwie naruszenia bezpieczeństwa przeglądarki w ścianie ochronnej. Pozwala to na
większą koncentrację na mniejszej powierzchni ataku. Zapewnia to dobrą inwestycję zasobów w ryzyko
i wynagrodzenie dla zespołu bezpieczeństwa przeglądarki. Sandbox nie jest nowym rozwiązaniem;
różnice zaobserwowano w innych obszarach informatyki. Na przykład Sun używał podziału na
przedziały w Trusted Solaris, a FreeBSD używał Jails. To ograniczyło dostęp do zasobów w zależności
od uprawnień procesu.
Sandbox przeglądarki
Sandbox może być stosowana na wielu poziomach. Można go na przykład zastosować na poziomie
jądra, aby oddzielić jednego użytkownika od innego użytkownika. Można go zastosować na poziomie
sprzętowym, aby uzyskać separację uprawnień między jądrem a przestrzenią użytkownika. Sandbox
przeglądarki jest piaskownicą najwyższego poziomu możliwą dla programu przestrzeni użytkownika.
Jest to bariera między uprawnieniami nadanymi przeglądarce przez system operacyjny a
uprawnieniami podprocesu działającego w przeglądarce. Aby całkowicie skompromitować
przeglądarkę, musisz wykonać co najmniej dwa kroki. Pierwszym z nich jest znalezienie luki w
funkcjonalności przeglądarki. Następnym krokiem jest przebicie się przez piaskownicę. Ten ostatni jest
znany jako obejście piaskownicy. Niektóre strategie piaskownicy przeglądarki otwierają każdą witrynę
w osobnych procesach, co utrudnia złośliwemu serwisowi wywieranie dalszego wpływu na inne
aktualnie odwiedzane strony lub na sam system operacyjny. Ten obszar izolowany dotyczy również
wtyczek i rozszerzeń, takich jak osobne przetwarzanie do renderowania PDF. Luki w zabezpieczeniach
typu piaskownica-obejście są zwykle skompilowanymi odmianami kodu i próbują całkowicie podważyć
funkcjonalność uruchomionego procesu. Na tym etapie testowana jest efektywność piaskownicy: czy
może zapobiec osiągnięciu pełnych uprawnień procesu przez zepsutą ścieżkę wykonania?
IFrame Sandboxing
Ramki IFrame mogą być używane jako mechanizm do włączania potencjalnie niezaufanej zawartości z
zasobów pochodzących z różnych źródeł, a w niektórych przypadkach niezaufanej zawartości z tych
samych źródeł. Na przykład jednym z popularnych sposobów umieszczania na stronach internetowych
jest widżet mediów społecznościowych Facebooka. Możliwość wrogości IFrame nie jest nowym
pomysłem, a dostawcy przeglądarek od dawna oferują różne sposoby zmniejszenia szkód ubocznych
spowodowanych przez nieuczciwe IFrame. Specyfikacja HTML5 przedstawiła propozycję piaskownicy
IFrame, która została przyjęta przez nowoczesne przeglądarki. Zapewnia to programistom sposób na
stosowanie najmniejszych uprawnień. Ramki IFrame w piaskownicy to metoda uwzględnienia atrybutu
HTML5, który dodaje dodatkowe ograniczenia do wbudowanej ramki. Ograniczenia te obejmują
uniemożliwienie korzystania z formularzy, zatrzymywanie wykonywania skryptu, niedopuszczanie do
nawigacji na górze i zatrzymywanie go w źródle. Ograniczenia te rozciągają się na każdą ramkę
nadrzędną, zapewniając, że wszelkie zagnieżdżone ramki IFrame automatycznie dziedziczą
ograniczenia po utworzeniu.
Ochrona przed phishingiem i złośliwym oprogramowaniem
Sfałszowanie podmiotów online (w tym wiadomości e-mail) w celu kradzieży danych osobowych, takich
jak dane uwierzytelniające, jest tradycyjnie nazywane wyłudzaniem informacji. Wiele organizacji
posiada usługi katalogujące znane strony phishingowe, a nowoczesne przeglądarki mogą z nich
korzystać. Przeglądarka sprawdza każdą odwiedzoną stronę pod kątem znanej listy złośliwych stron.
Jeśli wykryje, że żądana witryna jest faktycznie witryną phishingową, przeglądarka podejmie działania.
Podobnie serwery internetowe mogą zostać zainfekowane bez zgody ich właściciela lub tworzone
specjalnie w celu hostowania treści, które mogą próbować naruszyć przeglądarkę poprzez
wykorzystanie znanych luk. Strony te mogą również zachęcać użytkownika do ręcznego pobierania i
uruchamiania oprogramowania, które ominie zabezpieczenia przeglądarki i zostanie uruchomione
bezpośrednio. Różne organizacje utrzymują aktywne czarne listy witryn, na których udowodniono, że
zawierają złośliwy kod, i można je łączyć bezpośrednio z przeglądarką, aby zapewnić ochronę w czasie
rzeczywistym.
Mieszana treść
Witryny z lukami w zabezpieczeniach dotyczących zawartości mieszanej pochodzą od schematu HTTPS,
a następnie żądają treści przez HTTP. Oznacza to, że wszystko, co wchodzi w skład strony, nie jest
dostarczane przez HTTPS. Dane nieprzekazywane przez HTTPS mogą zostać zmodyfikowane i mogą
zostać zanegowane przez wszelkie korzyści wynikające z zastosowania szyfrowania niektórych danych.
W przypadku przesyłania skryptu niezaszyfrowanym kanałem osoba atakująca może wstrzyknąć
instrukcje do strumienia danych, które zakłócają interakcję między przeglądarką internetową a
aplikacją internetową
Podstawowe problemy bezpieczeństwa
Ewolucja stale rozszerzającego się zestawu funkcji kontroli bezpieczeństwa przeglądarki stanowi
podstawę dla większego i bardziej podstawowego obrazu. Tradycyjne zabezpieczenia sieci polegały na
wdrażaniu i konserwacji zewnętrznych lub obwodowych zabezpieczeń, takich jak zapory ogniowe. Z
biegiem czasu zaobserwowano, że urządzenia te blokują cały ruch oprócz nie tylko w twojej organizacji,
ale także poza nią. Chociaż sieć staje się coraz ściślejsza, firmy nadal wymagają dostępu do swoich
informacji, a wzrost wykorzystania technologii internetowych (prawie wszystko, co podróżuje przez
port TCP 80 lub 443) rośnie w coraz szybszym tempie. W rzeczywistości zapory ogniowe odniosły tak
duży sukces w zmniejszaniu otwartych bram ruchu, że często pozostaje nam tylko świecąca wiązka
ruchu HTTP. Dobrym przykładem tego jest wzrost popularności technologii SSL VPN w porównaniu z
tradycyjnymi sieciami VPN IPSEC. Prawdopodobnie wszystkie zapory skutecznie wykonały ograniczenie
ruchu sieciowego do dwóch portów: 80 i 443. Przenosi to ekstremalne poleganie na model
bezpieczeństwa przeglądarki internetowej. Poniższe podsekcje przedstawiają ogólny obraz
bezpieczeństwa przeglądarki i dlaczego sprzeczne siły w grze tworzą złożony plac do ataku i obrony..
Powierzchnia ataku
Znaczenie powierzchni ataku prawdopodobnie nie będzie dla ciebie nowe. Powierzchnia ataku to
obszar przeglądarki, który jest wrażliwy na wpływy z niezaufanych źródeł. Biorąc pod uwagę, że w
najmniejszym przypadku jest to cały silnik renderujący, zakres problemu staje się jasny. Przeglądarka
internetowa ma dużą i stale rosnącą powierzchnię ataku. Istnieje szeroki wachlarz interfejsów API i
liczne abstrakcje do przechowywania i przywoływania danych. I odwrotnie, powierzchnia ataku całej
sieci jest teraz w stanie być pod ścisłą kontrolą. Punkty dostępu i dozwolone przepływy ruchu są dobrze
zrozumiałe, a procesy kontroli zmian mogą uwzględniać zmiany. Na przykład dostęp do różnych portów
zapory można w prosty sposób zweryfikować i ograniczyć za pomocą dobrze znanych metod.
Sprzedawca przeglądarek często usuwa funkcje z oprogramowania. Częściej sprzedawcy dodają
najnowsze dzwonki i gwizdy. Podobnie jak większość produktów, rzadko jest widoczna nagroda za
zmniejszenie możliwości, przy jednoczesnym zachowaniu kompatybilności wstecznej. Wraz z
rozszerzeniem zestawu funkcji zwiększa się również rozmiar potencjalnej powierzchni ataku.
Nowoczesne przeglądarki aktualizują się automatycznie i po cichu w tle, czasami zmieniając
powierzchnię ataku bez wiedzy obrońcy. W niektórych przypadkach może to być dobra rzecz. Jednak
dla dojrzałego i zdolnego zespołu ds. bezpieczeństwa może to stanowić więcej wyzwań niż korzyści.
Jednak jeśli chodzi o zwykłą przeglądarkę internetową, rzadko można znaleźć członków zespołu
bezpieczeństwa organizacji z dużym doświadczeniem w jej obronie. Chociaż to jedno oprogramowanie
jest jednym z najbardziej zaufanych, potencjalnie stanowi największą powierzchnię ataku w Internecie.
Tempo zmian
Zespoły bezpieczeństwa przeglądarki mogą nie pracować na osi czasu zgodnej z organizacją. Często
organizacja nie ma kontroli nad wprowadzaniem poprawek do przeglądarki, które mogą być potrzebne
do poprawy bezpieczeństwa. Błędy przeglądarki związane z bezpieczeństwem często mają niższy
priorytet niż programiści. Wraz ze wydaniem Firefoksa 18.0 ze stycznia 2013 r. Mozilla chwaliła się, że
jedną z poprawek było zapobieganie podatności na mieszane treści. Oznacza to wyłączenie ładowania
treści HTTP, gdy źródło ma schemat HTTPS. Możesz być zaskoczony, gdy dowiesz się, że ten błąd został
zgłoszony po raz pierwszy w grudniu 2000 r. Jest to prawdopodobnie najgorszy przykład, ale służy on
do wykazania opóźnienia, które może wystąpić. Brak kontroli użytkownika końcowego nad
aktualizacjami zabezpieczeń przeglądarki internetowej nie różni się od innych programów. Jest również
mało prawdopodobne, aby organizacja była w stanie zatrzymać korzystanie z każdej przeglądarki,
czekając na krytyczną poprawkę. Jeśli to założenie się utrzyma, większość organizacji będzie narażona
na ataki na przeglądarkę w oknie czasowym między wydaniem publicznego exploita a dostawcą, który
wyda poprawkę.
Ciche aktualizowanie
Ciche aktualizacje w tle, oferując potencjalną możliwość ataku, zapewniają również prawdopodobnie
większą wartość dla użytkowników. Konieczność szybkiego zastosowania dostępnych aktualizacji
skłoniła niektórych programistów do wdrożenia własnych cichych mechanizmów. Google na przykład
wdrożył funkcję cichej aktualizacji dla przeglądarki Chrome. Użytkownik nie miał możliwości wyłączenia
tej funkcji upewniając się, że wszystkie aktualizacje zostały zastosowane na czas, bez interwencji
użytkownika. Jednym z godnych uwagi przykładów jest wykorzystanie przez Google cichego
aktualizowania do wdrożenia własnego silnika renderowania PDF w Chrome w celu zastąpienia
oprogramowania Adobe Reader. Dzięki temu każda aktualizacja Chrome nie była już obserwowana w
procesie aktualizacji tej wtyczki innej firmy. Przeglądarki aktualizujące i dodające funkcje w tle
potencjalnie zwiększają powierzchnię ataku każdej przeglądarki, jeśli zostanie to wykonane
nieprawidłowo. Konieczne jest także, aby zespół ds. bezpieczeństwa każdej organizacji zlecał
programistom przeglądarki pewien stopień zależności. W połączeniu z faktem, że obszary poświęcone
uwadze twórcy przeglądarki mogą nie być dostosowane do potrzeb danej organizacji użytkowników
końcowych, zależność ta może być frustrująca.
Rozszerzenia
Rozszerzenia zapewniają metodę poprawiania działania przeglądarki bez użycia samodzielnego
oprogramowania. Mogą wpływać na każdą stronę ładowaną przez przeglądarkę i odwrotnie - każda
strona może potencjalnie wpływać na nie. Każde rozszerzenie dodaje miejsce, na które haker może
celować, a tym samym zwiększa powierzchnię ataku przeglądarki. W niektórych przypadkach dla tej
przeglądarki można nawet wprowadzić uniwersalne luki w zabezpieczeniach XSS. .
Wtyczki
Wtyczka to na ogół oprogramowanie, które można uruchomić niezależnie od przeglądarki. W
przeciwieństwie do rozszerzeń przeglądarka uruchamia wtyczki tylko wtedy, gdy aplikacja internetowa
umieszcza je na stronie za pomocą znacznika obiektu lub, w niektórych przypadkach, nagłówka typu
zawartości. Nie można uzyskać dostępu do niektórych Internetu bez odpowiednich wtyczek i dlatego
przeglądarki umożliwiają rozszerzenie ich funkcjonalności. Na przykład aplety Java są używane w
niektórych bramach VPN, takich jak Juniper. Wiele standardowych wtyczek do przeglądarek jest
wymaganych do standardowych praktyk biznesowych, a niektóre z tych wtyczek zawierają historię luk
w zabezpieczeniach. Oznacza to, że obrońca musi podjąć decyzję o użyciu podatnego oprogramowania
lub wyłączeniu części działalności biznesowej. Większość wtyczek nie ma centralnego mechanizmu
aktualizacji. Oznacza to, że w niektórych przypadkach należy ręcznie zastosować zabezpieczenia.
Oczywiście stwarza to koszty ogólne i komplikacje związane z obroną infrastruktury. Wtyczki mają
często negatywny zasięg w mediach bezpieczeństwa. Wiele z tych aplikacji ma poważne luki, a w
niektórych przypadkach są tak niepewne, że spowodowało to, że specjaliści ds. Bezpieczeństwa zalecili
organizacjom ich całkowite usunięcie. Dostawcy systemów operacyjnych działali również niezależnie,
dezaktywując podatne wtyczki za pomocą własnych schematów automatycznych aktualizacji na czas
nieokreślony lub do momentu znalezienia rozwiązania. Wtyczki mogą zwiększyć powierzchnię ataku.
Ujawniają dodatkową funkcjonalność i cele dla hakera
Kontrola przekazania
Przeglądarka żąda instrukcji z dowolnych lokalizacji w Internecie. Jego podstawową funkcją jest
renderowanie treści na ekran i zapewnienie interfejsu użytkownika dla tych treści, dokładnie w sposób
zamierzony przez autora. Jako produkt uboczny tej podstawowej funkcji konieczne jest przekazanie
znacznego stopnia kontroli serwerowi WWW. Przeglądarka musi wykonać dostarczone polecenia lub
ryzykować niepoprawne renderowanie strony. We współczesnej sieci aplikacja często zawiera wiele
zasobów i skryptów z innych źródeł. Te również muszą zostać wykonane, jeśli strona ma być
wyświetlana zgodnie z przeznaczeniem. Tradycyjnie instrukcje te mogły być tak proste, jak: „Gdzie
powinienem umieścić ten tekst i dokąd zmierza ten obraz?” Z drugiej strony nowoczesne aplikacje i
przeglądarki internetowe mogą zapytać: „Teraz włączę mikrofon i wyślemy te dane asynchronicznie do
serwera tam”. Ten rodzaj inwazyjnej funkcjonalności natychmiast nasuwa pytanie, czy wszyscy
użytkownicy mają zagwarantowane przeglądanie tylko niezłośliwych stron internetowych. Odpowiedź
jest w prawie wszystkich okolicznościach, oczywiście, że nie! Niemożność zagwarantowania w czasie
rzeczywistym świętości treści pozyskanych ze zdalnych lokalizacji jest podstawową podstawą wszelkich
niepewności przeglądarki i ich wykorzystania.
Kontrola protokołu TCP
Model serwer-klient nie jest tak powszechny, aby zapewniać tak dużą elastyczność, przez który port
komunikuje się klient, lub które adresy IP klient może wykorzystać podczas wymiany danych. Ta funkcja
może być bardzo przydatna dla atakującego. Oznacza to, że prawie nie ma ograniczeń tylko do
atakowania protokołów HTTP lub konkretnych systemów. W grę wchodzą inne czynniki, które
przygotowują grunt pod zupełnie nową klasę ataków.
Szyfrowana komunikacja
Za pomocą protokołu SSL i TLS można komunikować się z zaufanymi organizacjami przez Internet,
chroniąc integralność i poufność wiadomości za pomocą szyfrowania. I odwrotnie, dokładnie tej samej
technologii można również użyć do bezpiecznej komunikacji z atakującymi. Celem szyfrowanej
komunikacji między przeglądarką a serwerem jest ochrona danych między tymi dwoma punktami
końcowymi. Stwarza to znaczne komplikacje dla obrońców. Nie mają możliwości wykrycia szkodliwych
danych. Ten obsługiwany przez przeglądarkę zaszyfrowany tunel działa na korzyść atakujących, którzy
przemycają swoje polecenia i przemycają swoje łupy
Polityka tego samego pochodzenia
SOP jest stosowany niespójnie we wszystkich technologiach przeglądarki i jest prawdopodobnie jedną
z najbardziej mylących koncepcji. Jak wcześniej wspomniano, SOP został utworzony w celu
odizolowania zasobów zamanifestowanych w przeglądarce, aby zapobiec interakcji elementów z
jednej lokalizacji z innymi niepowiązanymi zasobami pochodzącymi z innych lokalizacji, również
działających w tej samej przeglądarce. Zasadniczo jest to sandbox. Ten konkretny piaskownica ma
ogromne znaczenie dla bezpieczeństwa przeglądarki. Biorąc pod uwagę główną pozycję przeglądarki
na środkowym etapie aktywności sieciowej, przeglądarka skutecznie łączy różne strefy zaufania jako
standard - i jest odpowiedzialna za utrzymanie pokoju. Aby zaspokoić potrzeby każdej strefy,
autonomiczne funkcje, które mogą wchodzić w interakcje z punktem początkowym, są dość
rozbudowane. Jeśli funkcje te mogą naruszyć SOP, legalne funkcje stają się wrogie, ponieważ mogą
teraz przechodzić przez strefy bezpieczeństwa. Zrozumienie SPO nie kończy się na zrozumieniu jego
implementacji w samej przeglądarce. Implementacje SOP często różnią się zasadniczo między
przeglądarkami, ich wersjami, a nawet wtyczkami. Rozdział 4 zanurza się bardzo głęboko w SPO we
wszystkich jego wcieleniach i oferuje mnóstwo sposobów na ominięcie tej kontroli. Te obejścia są
dostępne dzięki dziwactwom SOP w Javie, Adobe Reader, Silverlight i różnym implementacjom
przeglądarki.
Błędy
Wiele praktycznych reguł, które działały w przeszłości, nie mają już zastosowania w obecnym
globalnym krajobrazie zagrożeń. Następujące błędy są łatwymi pułapkami. Niestety wiele z tych
błędów jest nadal rozpowszechnianych przez ludzi, którzy mają dobre intencje.
Błąd zasady niezawodności
Zasada solidności, znana również jako Prawo Postela, instruuje programistów, aby „byli
konserwatywni w tym, co robisz, byli liberalni w tym, co akceptujesz od innych”. Nie idzie to w parze z
praktycznym bezpieczeństwem. Przeglądarka internetowa jest niezwykle liberalna pod względem
renderowania. Jest to jeden z głównych powodów, dla których XSS tak trudno było usunąć.
Przeglądarka utrudnia opracowanie bezpiecznych filtrów i koderów, ponieważ przeglądarka
internetowa zezwala na wykonywanie instrukcji na wiele sposobów. Aby zachęcić deweloperów do
bezpiecznego kodowania, zasadę odporności należy zastąpić „zachowawczą w tym, co robisz, bądź
ultra-konserwatywną w tym, co akceptujesz od innych”. Gdyby zostało to zaszczepione w kolejnej
wersji deweloperów, hakerzy mieliby znacznie trudniejszy czas!
Błąd zewnętrzny obwodu bezpieczeństwa
Wiele organizacji chce wyodrębnić swoje granice bezpieczeństwa, aby stworzyć spersonalizowany
model zamku i fosy. Rozumieją, że ich obrona ma pierścienie ścian, które chronią ich krytyczne aktywa.
Błędne założenie jest takie, że warstwowe podejście w stylu cebuli zapewnia najbezpieczniejsze wyniki.
Niestety nie jest to średniowieczna Europa. To złożona sieć! Podstawowym problemem związanym z
tym wzorem obrony jest to, że zakłada on, że atakujący wchodzą z najbardziej zewnętrznej warstwy i,
w sposób odważny, walczą kolejno przez każdą ścianę. Pojęcie to odbiega od rzeczywistości prawie tak
bardzo, jak filmy hollywoodzkie od prawdziwych wydarzeń historycznych. Intranet organizacji to stale
ewoluujące środowisko, w którym atakujący pojawiają się w stylu Whac-A-Mole w całej
infrastrukturze. Rzeczywistość jest taka, że przeglądarka internetowa jest płodna, a w niektórych
przypadkach działa jak portal prosto przez zewnętrzny obwód. Obwody obrony zostały zatem
pośrednio zagrożone i nie mogą bronić się przed atakami rykoszetującymi z przeglądarki. Środki
defensywne muszą być inwestowane w obwód zabezpieczeń Micro, który musi obejmować krytyczne
zasoby. Dzisiejsze sieci muszą bronić się przed urządzeniami zmieniającymi się z sojusznika w wroga w
najmniej oczekiwanym momencie. W prawdziwym świecie bezpieczeństwo jest ograniczonym
zasobem, który powinien zostać przydzielony tam, gdzie wzmocni obronę najcenniejszych zasobów.
Metodyka hakowania przeglądarki
W tym momencie lekcji mamy nadzieję, że doceniasz złożoność wyzwań, przed którymi stoi
przeglądarka. Zabezpieczanie sieci nie jest łatwym zadaniem i prawdopodobnie duża odpowiedzialność
za to spoczywa na przeglądarce. To pierwsza i ostatnia linia obrony. W hipotetycznym,
postapokaliptycznym, zaawansowanym technologicznie świecie, w którym każda witryna jest
zagrożona i złośliwa, idealna przeglądarka nadal utrzyma komputer bezpiecznym. Jesteśmy bardzo
daleko od tej utopii bezpieczeństwa. Nadszedł czas, aby zdekonstruować niejasne pojęcie hakowania
przeglądarki i przekształcić je w podejście etapowe, które może trwać poza eliminacją obecnych
słabości i przetrwać redakcję. Zdefiniowaliśmy metodę, która, jak mamy nadzieję, może mieć znaczenie
niezależnie od obecnego terenu bezpieczeństwa. W tej sekcji przedstawiono naszą metodologię i
proponowaną chronologię hakowania przeglądarki internetowej. Jest pokazany na poniższym rysunku
i analizuje przepływ ścieżek ataku oraz decyzje mające na celu osiągnięcie kompromisu. Ta
metodologia ma na celu skuteczne kierowanie atakami hakerów w przeglądarce. Nasze lekcje zostały
zorganizowane w taki sposób, aby bezpośrednio odwzorować główne etapy metodologii. Każda lekcja
koncentruje się na zaangażowanym etapie praktycznym i omawia techniczne szczegóły. Gdy opanujesz
każdą lekcję, twoje szersze zrozumienie metodologii wzrośnie. W zależności od celu. niektóre ścieżki w
metodologii mogą być trywialne, ponieważ proces ten będzie ułatwiał swobodnie dostępne narzędzia
bezpieczeństwa. Inne części przedstawią więcej wyzwań. Metodologia hakowania przeglądarki składa
się z trzech głównych sekcji, które zawierają w sobie etapy hakowania na wysokim poziomie. Są one
reprezentowane jako kropkowane linie otaczające różne fazy na schemacie. Ta grupa etapów zapewnia
przegląd postępów metodologii, rozpoczynając od inicjacji, przechodząc do zatrzymania, a następnie
do ataku. Pierwszą enkapsulacją jest Inicjowanie, czyli konfiguracja dla całego procesu. Następnie
zostanie zachowana enkapsulacja zachowująca, dzięki której zachowasz kontrolę nad przeglądarką.
Jest to tworzenie przyczółka w docelowej przeglądarce lub na urządzeniu, na którym przeglądarka się
znajduje; jest to inicjalizacja kompromisu przeglądarki. Prawdziwa akcja pojawi się w kolejnym
zgrupowaniu. Hermetyzacja ataku zawiera siedem opcji ataku, które zostały omówione w poniższych
sekcjach, a bardziej szczegółowo w dalszej części. Podczas tych faz różne aspekty przeglądarki będą
atakowane i wykorzystywane. Niektóre z omawianych technik atakowania mogą powodować
dodatkowe fazy inicjowania w innych instancjach przeglądarki, powodując cykliczne rozszerzanie się
ataku i zakres kompromisów
Inicjowanie
Inicjowanie enkapsulacji obejmuje jedną fazę. Ta pozornie nieszkodliwa faza jest pierwszym i
najważniejszym krokiem w hakowaniu przeglądarki internetowej. Bez tej fazy żadne inne ataki nie są
możliwe, a docelowa przeglądarka jest poza zasięgiem.
Kontrola inicjująca
Każda permutacja sekwencji ataku rozpoczyna się od uruchomienia instrukcji w przeglądarce
internetowej. Aby tak się stało, przeglądarka musi napotkać (i wykonać) instrukcje pod twoją kontrolą.
To jest temat lekcji 2, który omawia metody, dzięki którym można oszukać, zwabić, oszukać lub zmusić
przeglądarkę do napotkania i, co najważniejsze, wykonania dowolnego kodu.
Zachowanie
Po udanym zaatakowaniu, jak zwiększyć kontrolę nad celem? Musisz zachować kontrolę nad
przeglądarką w sposób ułatwiający dalsze przeprowadzanie ataków.
Zachowanie kontroli
Rozważmy dżina i trzy życzenia fantasy; pojawia się dżin i spełnia trzy życzenia. Przebiegły odbiorca
może próbować przedłużyć swoją fortunę, pragnąc więcej życzeń z ostatnim życzeniem, testując w ten
sposób stres polityki wykluczenia dżina! Cóż, w przypadku utrzymywania komunikacji z zainfekowaną
przeglądarką internetową, kod początkowy instruuje przeglądarkę, aby wielokrotnie pytała o twoje
następne życzenie. Uwalniasz dżina na etapie zaczepiania i odtąd zniewalasz przeglądarkę, aby nadal
spełniać życzenia. Tak jak dżin może zniknąć w kłębach dymu, ten stan rzeczy może nie potrwać długo.
Pozycja niekończących się życzeń zależy od działań, które następnie podejmuje użytkownik. Mógł
zamknąć zakładkę, w której miała miejsce pierwsza eksploatacja, lub użyć go do przejścia do innej
strony, tym samym kończąc ładunek JavaScript, a tym samym kanał komunikacji. Zanim dasz się
ponieść atakom, mądrze jest uzbroić się w cierpliwość i zamiast tego rozważyć metody zwiększenia
wpływu na przeglądarkę. W tej fazie metodologii próbujesz zmniejszyć ryzyko utraty kontroli nad
przeglądarką przez użytkownika surfującego z dala od źródła, a nawet zamykającego przeglądarkę
internetową. Możesz to osiągnąć na kilka sposobów na różnych poziomach uporczywości. Ważne jest,
aby przed kontynuowaniem zachować cierpliwość i maksymalnie wykorzystać tę fazę do następnej,
ponieważ im dłużej możesz trzymać przeglądarkę zaczepioną, tym więcej powierzchni ataku możesz
przesłuchać i tym bardziej kontrolowany będzie twój atak. Warto również zauważyć, że czasami
podczas kolejnego hermetyzacji Ataku udane ataki ujawnią metody zwiększenia siły przyczółka,
poprawiając stopień kontroli. Z tego powodu istnieje dwukierunkowa strzałka między dwiema fazami
metodologii. Doświadczenie pomoże określić, gdzie wysiłki mające na celu zwiększenie odporności
kanału kontrolnego powinny zastąpić wysiłki atakujące, a gdzie wysiłki atakujące przełożyły się na
elastyczność i wytrwałość kanału kontrolnego.
Atakujący
Na tym etapie metodologii wykorzystujesz kontrolę nad przeglądarką i eksplorujesz możliwości ataku
z obecnej pozycji. Ataki mogą przybierać różne formy, od ataków „lokalnych” na instancję przeglądarki
lub systemu operacyjnego, w którym się ona znajduje, po ataki na zdalne systemy w różnych
lokalizacjach. Spostrzegawczy czytelnik zauważy, że Obchodzenie zasady tego samego pochodzenia
znajduje się na szczycie i poza innymi elementami hermetyzacji ataku. Dlaczego to jest tak? Ponieważ
mieści się we wszystkich krokach ataku. Jest to kontrola bezpieczeństwa, która będzie obchodzona lub
wykorzystywana podczas innych faz eksploatacji. Coś innego, co powinno szybko stać się widoczne, to
cykliczna strzała w centrum enkapsulacji Ataku. Dalekie od bycia tylko rewolucyjnym, jest
prawdopodobne, że którakolwiek z faz ataku ujawni szczegóły, które mogą doprowadzić do udanego
ataku w dowolnej innej fazie. Z tej pozycji prawdopodobnie będziesz przeskakiwać między różnymi
kategoriami, w zależności od tego, która z nich najprawdopodobniej zapewni najbardziej wydajne
nagrody. Zdefiniowano siedem podstawowych klas ataków, które można uruchomić z przeglądarki
internetowej. Przy podejmowaniu decyzji, którą ścieżkę należy obrać, w grę wchodzą różne czynniki.
Głównymi wpływami będą zakres zaangażowania, pożądany cel i możliwości uzależnionej przeglądarki.
Omijanie zasad tego samego pochodzenia
SOP można uznać za główny obszar izolowany. Jeśli możesz go ominąć, automatycznie utworzyłeś
udany atak, uzyskując dostęp do innego źródła uprzednio zablokowanego przez przeglądarkę.
Pomijając SOP, możesz teraz atakować nowo odkryte pochodzenie dowolną inną odpowiednią
techniką w potencjalnej reakcji łańcuchowej. Różne interpretacje SPO są szczegółowo omówione w
Lekcji 4. Gdy masz obwodnicę, możesz przeprowadzić wiele ataków bez ingerencji. W tym rozdziale
zapoznasz się z niektórymi niespójnościami i sposobami wykorzystania tego błędu w najbardziej
podstawowej kontroli bezpieczeństwa przeglądarki.
Atakowanie użytkowników
Pierwszą opcją ataku przedstawioną w metodyce hakerów przeglądarki jest Atakowanie
użytkowników, co zostało omówione w Lekcji 5. Obejmuje to ataki z udziałem użytkowników
przeglądarki i ich potencjalnie ukrytego zaufania do środowiska kontrolowanego przez osobę
atakującą. Korzystając z dźwigni uzyskanej w przeglądarce i możliwości kontrolowania po wyświetleniu
strony możesz stworzyć środowisko, które może zachęcić użytkownika do wprowadzenia szkodliwych
informacji, aby można je było przechwycić i wykorzystać. Możesz oszukać użytkownika, aby
nieświadomie udzielił zgody na wystąpienie zdarzenia zabezpieczonego w inny sposób, takiego jak
uruchomienie dowolnego programu lub udzielenie dostępu do zasobów lokalnych. Możesz tworzyć
ukryte okna dialogowe i przezroczyste ramki lub sterować zdarzeniami myszy, aby pomóc w tym celu,
opierając się na prawdziwej funkcji interfejsu użytkownika i przedstawiając użytkownikowi fałszywe
wrażenie.
Atakowanie przeglądarek
Kategoria Atakowania Przeglądarek obejmuje bezpośrednie ataki na samą przeglądarkę podstawową.
Zagłębiasz się w to w Lekcji 6, gdzie eksplorujesz szereg obszarów, od dostawców odcisków palców po
pełne wykorzystanie. Przeglądarka internetowa to mamut atakujący powierzchnię. Istnieje szeroki
wachlarz interfejsów API i abstrakcji do przechowywania i wywoływania danych. Nic dziwnego, że od
lat w przeglądarkach internetowych występują luki w takiej czy innej formie. Bardziej zaskakujące jest
to, że twórcy przeglądarki internetowej robią to poprawnie tyle razy, ile robią.
Atakowanie Rozszerzenia
Jeśli nie uda ci się zaatakować podstawowej przeglądarki, drzwi w żadnym wypadku nie są zamknięte.
Możesz także atakować jego (prawdopodobnie liczne) opcjonalnie zainstalowane dodatki. Jest to
omówione w Lekcji 7 i zostało sklasyfikowane w metodyce jako rozszerzenia ataków. W tej lekcji
omówiono różnice między wariantami a konkretnymi implementacjami rozszerzeń. Poznasz różne
klasy luk w zabezpieczeniach rozszerzeń. Luki w zabezpieczeniach rozszerzeń można wykorzystać do
wykorzystania rezydujących w nich funkcji do przeprowadzania żądań crossorigin, a nawet
wykonywania poleceń systemu operacyjnego.
Atakowanie wtyczek
Jednym z najbardziej wrażliwych obszarów przeglądarki internetowej są wtyczki. Wtyczka różni się
znacznie od rozszerzenia tym, że są komponentami stron trzecich, które są inicjowane wyłącznie
według uznania obsługiwanej strony internetowej (w przeciwieństwie do stałego włączania się do
przeglądarki). Kategoria wtyczek atakujących w metodologii została omówiona w Lekcji 8. Obejmuje to
ataki na wszechobecne wtyczki, takie jak Java i Flash. Badasz, jak odkryć, które wtyczki są
zainstalowane, ujawniasz słabości historyczne, które można wykorzystać odkryte przez różnych
badaczy w tej dziedzinie i dowiedz się, w jaki sposób można ominąć niektóre funkcje bezpieczeństwa
zaprojektowane w celu ochrony przed nadużyciami wtyczek.
Atakowanie aplikacji internetowych
Przeglądarka została zbudowana do korzystania z Internetu, dlatego nie powinno dziwić, że w
metodologii istnieje faza Atakowanie aplikacji internetowych. Obszar ten obejmuje atakowanie
aplikacji internetowych przy użyciu standardowej funkcjonalności przeglądarki internetowej. Lekcja 9
opisuje wykorzystanie standardowej funkcjonalności przeglądarki do wykorzystywania aplikacji
internetowych. Wyobraź sobie bogactwo powszechnie dostępnych aplikacji dostępnych w intranecie
tylko z obwodu organizacji. Co jeśli zewnętrzna witryna w innej zakładce może przeglądać te witryny?
Dowiesz się, że założenie, że witryny intranetowe są chronione przed zewnętrznym atakiem zapory,
jest w sposób oczywisty fałszywe.
Atakowanie sieci
Być może nie zauważyłeś, że Twoja przeglądarka łączy się z niestandardowymi portami, ale ten
scenariusz jest dość powszechny. Aplikacje często instalują serwer WWW na dowolnym numerze
portu, a niektóre strony internetowe nawet publikują swoje treści na portach innych niż 80 lub 443. Co
jeśli Twoja przeglądarka w ogóle nie łączyła się z serwerem WWW? Co jeśli łączy się z usługą, która
spełnia zupełnie inny cel i używa zupełnie innego protokołu? Nie naruszałoby to SOP i w większości
przypadków byłoby ważne z punktu widzenia kontroli bezpieczeństwa przeglądarki. Zmiana
przeznaczenia tych zachowań przeglądarki pozwala na wyrafinowane scenariusze ataku. Faza
atakowania sieci przeskakuje do celowania w niższe warstwy modelu OSI. W rozdziale 10 odkryłeś, że
wszystkie techniki mogą jednakowo odnosić się do atakowania dowolnej sieci TCP / IP.
Podsumowanie
Prawdopodobnie przeglądarka internetowa jest najważniejszym oprogramowaniem tego
dziesięciolecia. Dostawcy oprogramowania rzadko opracowują niestandardowe oprogramowanie
klienckie do swoich aplikacji. Częściej rozwijają interfejsy użytkownika aplikacji z technologią
internetową; nie tylko tradycyjne aplikacje internetowe, ale także lokalne i intranetowe. Przeglądarka
internetowa dominuje pozycję klienta w modelu serwer-klient. Przeglądarka internetowa wywiera już
moc w prawie wszystkich sieciach, a nawet gdyby chciał ją usunąć z jakiejkolwiek organizacji, jest mało
prawdopodobne, aby udało się to osiągnąć. Organizacja nie ma wyboru, musi mieć przeglądarki
sieciowe w swojej sieci. Hakerzy zwykle atakują z perspektywy udawania, że nie są złośliwym serwerem
sieciowym wysyłającym prawidłową komunikację do przeglądarki internetowej. W większości
przypadków przeglądarka internetowa nie wie, że komunikuje się z nieuczciwym serwerem
internetowym. Przeglądarka wykonuje wszystkie instrukcje wysłane przez nieuczciwy serwer
internetowy w rzekomo bezpiecznej przystani w obwodzie zapory. W dalszej części opanujesz
metodologię i nauczysz się, jak korzystać z przeglądarki internetowej i urządzeń, do których ma dostęp.
Pytania
1. Jaką funkcję DOM ma w przeglądarce internetowej?
2. Dlaczego bezpieczna przeglądarka jest ważna dla całościowego podejścia do bezpieczeństwa?
3. Wymień niektóre różnice między JavaScript a VBScript.
4. Wymień trzy sposoby, w jakie serwer może zmniejszyć bezpieczeństwo przeglądarki internetowej.
5. Jaka jest powierzchnia ataku przeglądarki internetowej?
6. Opisz sandboxing.
7. Czy przeglądarka używa protokołu HTTPS do komunikacji, czy serwer proxy może wyświetlić
komunikację?
8. Wymień trzy nagłówki HTTP związane z bezpieczeństwem.
9. Dlaczego zasada solidności nie jest przyjacielem specjalisty ds. Bezpieczeństwa?
10. Który język skryptowy jest dostępny w Internet Explorerze, a nie w innych współczesnych
przeglądarkach?