Ajax a bezpieczeństwo aplikacji webowych. Jakub Wierzgała



Podobne dokumenty
Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2013/2014

Kancelaris - Zmiany w wersji 2.50

PERSON Kraków

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

API transakcyjne BitMarket.pl

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Regulamin Usługi Certyfikat SSL. 1 Postanowienia ogólne

Polityka prywatności i wykorzystywania plików cookies w serwisie internetowym mateuszgrzesiak.tv

Tworzenie aplikacji internetowych E14

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

Standard aplikacji WWW Urzędu Miasta Olsztyna

Polityka prywatności strony internetowej wcrims.pl

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Instrukcja Obsługi STRONA PODMIOTOWA BIP

WYKŁAD 1 SYSTEMY CMS CZĘŚĆ 1

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Aplikacje internetowe i rozproszone - laboratorium

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

System do kontroli i analizy wydawanych posiłków

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

Scenariusz lekcji. podać definicję pojęcia cywilizacja informacyjna ; scharakteryzować społeczeństwo informacyjne;

Wyzwania bezpieczeństwa nowoczesnych platform nauczania zdalnego

Instrukcja programu PControl Powiadowmienia.

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Regulamin serwisu internetowego ramowka.fm

Co nowego w systemie Kancelaris 3.31 STD/3.41 PLUS

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

INSTRUKCJA WebPTB 1.0

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Platforma do obsługi zdalnej edukacji

REGULAMIN PRZESYŁANIA I UDOSTĘPNIANIA FAKTUR W FORMIE ELEKTRONICZNEJ E-FAKTURA ROZDZIAŁ 1. I. Postanowienia ogólne

Segmentacja i plasowanie dr Grzegorz Mazurek. Wybór rynku docelowego. Istota segmentacji

Microsoft Management Console

Automatyzacja procesu publikowania w bibliotece cyfrowej

I. Zakładanie nowego konta użytkownika.

Archiwum Prac Dyplomowych

1. Warunki. 2. Zakładanie konta. 3. Logowanie. 4. Korzystanie z portalu partnera serwisowego 5. Subkonta 5.1Zakładanie subkonta. 5.

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ).

Warszawa, r.

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Instrukcja obsługi aplikacji internetowej Obroty Paliw

Regu g l u a l min i n w s w pó p ł ó p ł r p acy O ow o iązuje od dnia

Utrzymanie aplikacji biznesowych SI PSZ

Instrukcja użytkownika Akademickiego Systemu Archiwizacji Prac dla nauczyciela akademickiego

INSTRUKCJA Panel administracyjny

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

REGULAMIN SKLEPU INTERNETOWEGO 1 POSTANOWIENIA OGÓLNE

Spring MVC Andrzej Klusiewicz 1/18

Asystent Firma 2015 MAX - licencja na 1 rok

elektroniczna Platforma Usług Administracji Publicznej

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

REGULAMIN II WOJEWÓDZKIEGO KABARETONU OSÓB NIEPEŁNOSPRAWNYCH

Inspiracje dla branży. Sport i rekreacja

W wyświetlonym okienku New Web Server Application wybierz opcję Web App Debugger Executable, a w polu Class Name wpisz: P1.

Zarządzanie Zasobami by CTI. Instrukcja

Siemens IO-Link. Smart TIA integration of sensors and actuators

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

PL/SQL. Zaawansowane tematy PL/SQL

Projekt z dnia 2 listopada 2015 r. z dnia r.

TAJEMNICA BANKOWA I OCHRONA DANYCH OSOBOWYCH W PRAKTYCE BANKOWEJ

Zasady dostępu i korzystania z usług sieciowych Web API oraz SFTP w ramach systemu RRM TGE / RRM TGE OTC

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

KONFIGURACJA PRZEGLĄDAREK

Strona główna góra

Zarządzanie sieciami SN Seria Easergy Wykrywanie uszkodzeń i zdalne sterowanie

Sieci komputerowe. Definicja. Elementy

Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp z o. o.

Regulamin świadczenia usług drogą elektroniczną przez PZU SA w zakresie obsługi klienta PZU SA

Microsoft Windows GDI

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Sieci komputerowe cel

PRZETWARZANIE DANYCH OSOBOWYCH

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Instrukcja obsługi platformy zakupowej PHU VECTOR SP. Z O.O.

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy

SYSTEM PASZPORTYZACJI I KONTROLI URZĄDZEŃ EX

Wtedy wystarczy wybrać właściwego Taga z listy.

INSTRUKCJA KORZYSTANIA Z ELEKTRONICZNEJ ŚCIEŻKI WYKAZÓW

SpedCust 5 instrukcja instalacji

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

OPIS PRZEDMIOTU ZAMÓWIENIA:

ODPOWIEDZI NA ZAPYTANIA

Opis instalacji systemu Intranet Komunikator

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHICZNA 1

UŜywanie wtyczki pluginu Enigmail w progamie Mozilla Thunderbird

Aplikacje internetowe i mobilne (blended learning)

StacjaSQL.2012 /PIERWSZE URUCHOMIENIE I PODSTAWOWE USTAWIENIA/ str. 1 z 8. Copyright NORCOM 2012

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence.

Projektowani Systemów Inf.

HAŚKO I SOLIŃSKA SPÓŁKA PARTNERSKA ADWOKATÓW ul. Nowa 2a lok. 15, Wrocław tel. (71) fax (71) kancelaria@mhbs.

SZABLONY KOMUNIKATÓW SPIS TREŚCI

Transkrypt:

Ajax a bezpieczeństwo aplikacji webowych Jakub Wierzgała

Web 2.0 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 2

Web 2.0 Zawartość tworzona przez uŝytkowników Wysoka interaktywność Aplikacja webowa platformą do działań uŝytkowników 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 3

Web 2.0 - konsekwencje Brak kontroli nad treścią serwisu przez jego twórcę Zwiększenie powierzchni ataku Aplikacja webowa platformą do wykonywania ataków na uŝytkowników 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 4

Ajax Nowe podejście do wykorzystania juŝ istniejących technologii XHTML i CSS Document Object Model XML i XSLT XMLHttpRequest JavaScript 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 5

Ajax Asynchroniczność Kod wykonywany i widoczny po stronie klienta Komunikacja z serwerem nie tylko na Ŝyczenie uŝytkownika Zwiększenie usability oraz responsiveness 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 6

Thick - Thin Thick-Client Logika aplikacji u klienta Potrzeba instalacji Mały czas odpowiedzi Utrudniona modyfikacja aplikacji Przyjazny interfejs Thin-Client Logika aplikacji na serwerze Brak potrzeby instalacji DuŜy czas odpowiedzi Prosta modyfikacja aplikacji Uproszczony interfejs A gdzie jest Ajax? 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 7

Thick - Thin Thick-Client Logika aplikacji u klienta Potrzeba instalacji Mały czas odpowiedzi Utrudniona modyfikacja aplikacji Przyjazny interfejs Thin-Client Logika aplikacji na serwerze Brak potrzeby instalacji DuŜy czas odpowiedzi Prosta modyfikacja aplikacji Uproszczony interfejs Połączenie najbardziej poŝądanych cech!!! 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 8

Bezpieczeństwo Thick-Client Logika aplikacji u klienta Wiadomości wysyłane pomiędzy serwerem i klientem trudne do odczytania Aplikacja dostępna tylko dla posiadaczy programu klienckiego Thin-Client Logika aplikacji na serwerze Wiadomości wysyłane pomiędzy serwerem i klientem łatwe do odczytania Aplikacja dostępna dla wszystkich A gdzie jest Ajax? 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 9

Bezpieczeństwo Thick-Client Logika aplikacji u klienta Wiadomości wysyłane pomiędzy serwerem i klientem trudne do odczytania Aplikacja dostępna tylko dla posiadaczy programu klienckiego Thin-Client Logika aplikacji na serwerze Wiadomości wysyłane pomiędzy serwerem i klientem łatwe do odczytania Aplikacja dostępna dla wszystkich Połączenie najmniej poŝądanych cech!!! 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 10

Doskonałe połączenie Aplikacje Ajax w stosunku do aplikacji klasycznych Bardziej złoŝone Bardziej transparentne Większe Skutek: Doskonałe połączenie cech zmniejszających bezpieczeństwo aplikacji 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 11

Umiejętności twórców Nowa technika Brak doświadczenia twórców Brak gruntownej wiedzy o działaniu aplikacji 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 12

Rzeczywistość Wysokie wymagania + Krótkie terminy + Ograniczone moŝliwości szkolenia + Dostęp do frameworków = DuŜa grupa programistów, którzy wiedzą, Ŝe aplikacja działa, ale nie wiedzą jak. 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 13

Ataki na aplikacje webowe Wyliczanie zasobów Manipulacja parametrami SQL Injection XPath Injection Cross Site Scripting Przechwytywanie sesji Cross Site Request Forgery Denial-of-Service 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 14

Ataki na aplikacje Ajax Wszystkie powyŝsze!!!,ale Zwiększona powierzchnia ataku Wgląd w kod aplikacji Ataki specyficzne dla Ajax 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 15

Powierzchnia ataku na aplikacje Ajax Pola formularzy Cookies Nagłówki HTTP Ukryte pola formularzy Parametry zapytań Uploadowane pliki Zdalne metody Ajax 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 16

Powierzchnia ataku na aplikacje Ajax Powierzchnia ataku na aplikacje Ajax Powierzchnia ataku na tradycyjne aplikacje webowe 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 17

Niebezpieczeństwa Ajax: Transparentność aplikacji Script-lib.js Messages.action getmessages() UŜytkownik Statistics.action getstatistics() Administrator 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 18

Niebezpieczeństwa Ajax: Transparentność aplikacji Script-lib.js UŜytkownik getmessages() Statistics.action getstatistics() Administrator 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 19

Niebezpieczeństwa Ajax: Transparentność aplikacji Stan sesji przechowywany w JavaScript // pobierz cenę piosenki var songprice = getsongprice(songid); // sprawdź czy uŝytkownik posiada wystarczająco duŝo środków if (getaccountbalance(username) < songprice) { alert( Nie posiadasz wystraczjącej ilości środków ); return; } // pobierz środki z konta uŝytwkonika debitaccount(username, songprice); 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 20

Niebezpieczeństwa Ajax: Transparentność aplikacji Ujawnienie danych <script type="text/javascript"> function processdiscountcode(discountcode) { if (discountcode == "HALF-OFF-MUSIC") { // przekieruj do strony zamówienia z upustem window.location = "SecretDiscountOrderForm.html"; } } </script> 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 21

Niebezpieczeństwa Ajax: Transparentność aplikacji Komentarze i dokumentacja w kodzie Ułatwienie dla atakującego Nierzadko kompletny opis działania, parametrów oraz przeznaczenia metod 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 22

Niebezpieczeństwa Ajax: Transparentność aplikacji Manipulowanie danymi po stronie klienta userid Select * from users where userid= userid name userid name creditcardno Działanie tradycyjnej aplikacji 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 23

Niebezpieczeństwa Ajax: Transparentność aplikacji userid Select * from users where userid= userid userid name creditcardno userid name creditcardno Działanie źle zaprojektowanej aplikacji Ajax 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 24

Niebezpieczeństwa Ajax: Transparentność aplikacji Środki zaradcze Zaciemnianie kodu Autoryzowanie wywoływania metod po stronie serwera Unikanie zbiorczych bibliotek skryptów Przesyłanie do klienta minimalnego zestawu danych Unikanie komentarzy i dokumentacji w kodzie 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 25

Niebezpieczeństwa Ajax: Przesłanianie funkcji Typowo w aplikacjach wraŝliwych na XSS umoŝliwiających ładowanie własnego kodu JS (np. JavaScript widget) rodzaju JavaScript mashup Bazuje na fakcie, Ŝe JavaScript pozwala na przedefiniowanie funkcji (nawet tych wbudowanych) Kto ostatni ten lepszy 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 26

Niebezpieczeństwa Ajax: Przesłanianie funkcji <script> //tworzymy referencję do funkcji orginalnej var oldalert = window.alert; //tworzymy funkcje maskującą function newalert(msg) { out = "No i udało się zamaskować funkcję\n"; out +=msg.touppercase(); oldalert(out); } //zmieniamy referencje funkcji window.alert = newalert; alert("testujemy napisany skrypt"); </script> 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 27

Niebezpieczeństwa Ajax: Przesłanianie funkcji 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 28

Niebezpieczeństwa Ajax: Przesłanianie funkcji MoŜliwości??? Ograniczone niemal jedynie wyobraźnią uŝytkownika! 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 29

Same-Origin Policy Kod JavaScript moŝe uzyskać dostęp tylko do dokumentów pochodzących z tej samej domeny co on sam. Reguła implementowana przez wszystkie wiodące przeglądarki 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 30

JSON Notacja pozwalająca na przedstawianie tablic i obiektów w JavaScript Definicja tablicy jest interpretowana jako poprawny kod JavaScript; wywołanie konstruktora Array() [["Jakub", "Wierzgała", "wierzgala@gmail.com"], ["Jan", "Kowalski" kowalski@foobar.com]], 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 31

JSON Hijacking Połączenie ataku CSRF oraz przesłaniania funkcji JavaScript. CSRF umoŝliwia zmuszenie atakowanego klienta do wysłania dowolnego Ŝądania HTTP, ale nie pozwala na podejrzenie odpowiedzi przez atakującego Z pomocą przychodzi przesłanianie funkcji 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 32

JSON Hijacking Scenariusz: Atakujący tworzy złośliwą stronę Nadpisuje funkcję konstruującą tabele JSON Na stronie zamieszcza Ŝądanie HTTP do atakowanego serwisu Nakłania atakowanego do wejścia na utworzoną stronę 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 33

JSON Hijacking Przykład nadpisania konstruktora tabeli function Array() { var foo = this; var bar = function() { var ret = Przechwycona tablica: ["; for(var x in foo) { ret += foo[x] + ", "; } ret += "]"; //powiadom atakującego (w tym przypadku tylko wyświetlamy) alert(ret); }; settimeout(bar, 100); } 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 34

JSON Hijacking Zawartość złośliwej strony <html> <head> <title>json Hijacking Demo</title> </head> <body> <script> function Array() {<!--wcześniej pokazany kod-->} </script> <! -ładowanie skryptu bezpośrednio z atakowanego serwisu--> <script src= "http://www.atakowany.serwis.com/funkcje/ajaxcalls/" + metoda.ashx"> </script> </body> </html> 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 35

JSON Hijacking zlosliwa.strona.com [JSON Array] GET/HTTP/1.1 HTML Alicja (uŝytkownik) GET metoda.ashx HTTP/1.1 Cookie: AE783F [JSON Array] atakowany.serwis.com 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 36

JSON Hijacking Jak się zabezpieczyć? Dodanie niepoprawnej linii kodu przed definicją tablicy (np. I /\/\ a bl0ck of inva1id $ynt4x!) Zamknięcie definicji tablicy wewnątrz komentarza Dodanie nieskończonej pętli przed definicją tablicy for(;;) while(1) 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 37

JSON Hijacking Jak się zabezpieczyć? Dodanie niepoprawnej linii kodu przed definicją tablicy (np. I /\/\ a bl0ck of inva1id $ynt4x!) Zamknięcie definicji tablicy wewnątrz komentarza Dodanie nieskończonej pętli przed definicją tablicy for(;;) while(1) 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 38

Ataki na aplikacje Ajax Wykradanie danych przechowywanych po stronie klienta Atakowanie warstwy prezentacji Atakowanie serwisów typu mashup JavaScript Worms i wiele innych 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 39

Podsumowanie UŜycie Ajax zmniejsza bezpieczeństwo aplikacji Niski poziom wiedzy twórców na temat działania aplikacji Niski poziom świadomości zagroŝeń Zwiększenie powierzchni starych ataków Nowe rodzaje ataków specyficzne tylko dla Ajax 2 grudnia 2008r. Ajax a bezpieczeństwo aplikacji webowych 40