ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię...

20
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.

Transcript of ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię...

Page 1: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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.

Page 2: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

■ 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ą

Page 3: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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.

Page 4: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 5: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 6: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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”);

Page 7: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 8: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 9: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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ć

Page 10: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 11: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 12: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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ł

Page 13: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 14: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 15: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 16: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 17: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 18: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 19: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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

Page 20: ezpieczeństwo przeglądarki internetowejInternecie. W tej lekcji przedstawiono metodologię hakowania przeglądarki internetowej, którą można zastosować do ofensywnych starć.

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?