Aspekty bezpieczeństwa aplikacji internetowych



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

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Bezpieczeństwo systemów komputerowych

Program szkolenia: Bezpieczny kod - podstawy

Projektowani Systemów Inf.

Wprowadzenie do kryptografii i bezpieczeństwa. Po raz czwarty

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Kurs rozszerzony języka Python

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

The OWASP Foundation Session Management. Sławomir Rozbicki.

Wybrane działy Informatyki Stosowanej

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Drobne błędy w portalach WWW

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Nowoczesne projektowanie aplikacji intrnetowych - opis przedmiotu

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

Wykrywanie i analiza złośliwych stron WWW. Łukasz Juszczyk CERT Polska/NASK lukasz.juszczyk@cert.pl

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

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

OWASP. The Open Web Application Security Project. OWASP Top rc1. Dziesięć najbardziej krytycznych zagrożeń w web aplikacjach

Przedmowa Podziękowania O autorach Redaktorzy techniczni... 24

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Aplikacje WWW. Wykład 13. Zagrożenia bezpieczeństwa aplikacji WWW. wykład prowadzi: Maciej Zakrzewicz. Zagrożenia bezpieczeństwa

Projekt strony internetowej firmy organizującej przyjęcia

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Bezpieczeństwo aplikacji internetowych

Języki programowania wysokiego poziomu. Ćwiczenia

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Oracle11g: Wprowadzenie do SQL

Wykład 6. SQL praca z tabelami 3

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Techniki komputerowe w robotyce

Aplikacje WWW i PHP - opis przedmiotu

Analiza skuteczności zabezpieczeń przed atakami na aplikacje Web

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

ATAKI TYPU CROSS-SITE SCRIPTING

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

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

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Od assemblera do html5

LUKI BEZPIECZEŃSTWA W APLIKACJACH INTERNETOWYCH. Waldemar Korłub. Wytwarzanie Aplikacji Internetowych KASK ETI Politechnika Gdańska

Wykład 8. SQL praca z tabelami 5

6. Bezpieczeństwo przy współpracy z bazami danych

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Programowanie w Ruby

Szczegółowy opis zamówienia:

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Dworakowski. Wojciech. Zagrożenia i metody ataku. Aplikacje internetowe -

KARTA KURSU. Języki hipertekstowe i tworzenie stron WWW. Opis kursu (cele kształcenia) Warunki wstępne. Efekty kształcenia. Nazwa

Microsoft SQL Server Podstawy T-SQL

Wydział Ekonomiczno-Informatyczny w Wilnie. 1. Podstawy programowania strukturalnego (C) 2. Wstęp do programowania obiektowego

Autor: Joanna Karwowska

Bazy danych i strony WWW

Zarządzanie sesją w aplikacjach Internetowych. Kraków, Paweł Goleń

Znaj wroga i samego siebie, a możesz stoczyć sto bitew, nie zaznając porażki

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

KARTA PRZEDMIOTU. Internetowe aplikacje bazodanowe D1_12

Udostępnianie klientom zasobów serwera

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Dostęp do baz danych przy wykorzystaniu interfejsu ROracle i biblioteki Shiny

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Bazy danych i usługi sieciowe

Zasady bezpiecznego korzystania z bankowości elektronicznej

SQL injection. Metody włamań do systemów komputerowych p. 1/13. Bogusław Kluge, Karina Łuksza, Ewa Makosa

Pakiety podprogramów Dynamiczny SQL

Ulotka. Zmiany w wersji Data produkcji wersji: 25 czerwca Wersja

Web Application Firewall - potrzeba, rozwiązania, kryteria ewaluacji.

Aplikacje WWW - laboratorium

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

PRZEWODNIK PO PRZEDMIOCIE

METADANE GEOINFORMACYJNE PODLASIA

Autor: Joanna Karwowska

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Wykład 05 Bazy danych

Baza danych do przechowywania użytkowników

Zadanie 4. Zadanie 5. Zadanie 6. Który z wymienionych znaczników należy do części <head> dokumentu HTML? A. <img> B. < tle> C. <span> D.

Wybrane działy Informatyki Stosowanej

Wprowadzenie do Internetu Zajęcia 5

Programowanie i projektowanie obiektowe

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Hurtownie danych i systemy informacji gospodarczej. Vastosowanie w handlu elektronicznym.

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Transkrypt:

Aspekty bezpieczeństwa aplikacji internetowych Kamil Witecki (kamil@witecki.net.pl) Wojciech Wodo (wojciech.wodo@gmail.com) 21 kwietnia 2010

Kto, co, dlaczego? Popularne typy ataków Kim jesteśmy i dlaczego to robimy Niski poziom świadomości społeczeństwa Niejasne terminy Częste problemy

Kto, co, dlaczego? Popularne typy ataków Popularne typy ataków Session hijacking Cross site scripting () Cross site request forgery

W trakcie warsztatu omówimy podstawowe ataki i skuteczne metody obrony, prezentowane również będą przykładowe aplikacje i skutki wywołane niewłaściwą implementacją

Czym jest sesja? Wprowadzenie Bezstanowość HTTP Metody przekazywania danych Przechowywanie stanu w aplikacjach bazujących na protokole HTTP

I w czym tkwi problem? Wprowadzenie Bob, czyli persona non grata Bob jako wyrocznia odróżnialna od Alicji Bob może dokładnie to co Alicja. Nie może tylko być w tym samym miejscu Jak możemy pomóc Alicji?

Niestety nie żyjemy w krainie czarów Bob może jednak stać w tym samym miejscu co Alicja Czy rozkładać bezradnie ręce? NIE! Użyjmy SSL/TLS! Cookies przesyłane bezpiecznym kanałem Narzuty związane z SSL/TLS Na bezpiecznym gruncie Pomysł - bezpieczna sesja bez (nadmiarowych) narzutów SSL/TLS

Skąd pochodzą dane? Wprowadzenie Nie mamy wpływu na dane, które otrzymujemy od użytkownika A gdy ustalamy pewne konwencje? W jakim stopniu możemy ufać? Walidacja po stronie klienta - dlaczego nie

Nie bierz cukierków od obcych! Do czego używamy danych od użytkownika Bob kontratakuje czyli osadzanie niepożądanych skryptów - podziel się wiedzą - czy to aby problem?

JavaScript i jego możliwości Skryptowanie przeglądarki Przekierowania Dostęp do danych Zmiana budowy i elementów witryny

- cross site scripting Osadzanie niepożądanych skryptów Persistent and nonpersistent Nie tylko JavaScript i nie tylko poprawny kod mogą być złośliwe

I co dalej? Wprowadzenie Jak dużo z języka HTML pozwalać używać klientom? Osadzony HTML może zaszkodzić równie mocno jak Używając CSS można "przykryć"dowolny element i nadać mu nowe znaczenie

Użyteczność, a bezpieczeństwo Najlepsze rozwiązanie - własne języki opisu (np. BBCode) Usuwanie wszystkich tagów, łącznie z tymi, które nie są poprawne Użycie Tidy przed parsowaniem niebezpiecznych danych

- cross site request forgery Mechanizm działania Różnice między, a Związane z zastosowaniem problemy Referer = ślad

- właściwie po co? Jak zmusić uzytkownika do wykonania ataku na samego siebie? XMLHttpRequest nie wystarczy - Cross-Domain Protection Policy Osadzanie wywołań w obrazkach itp. Ukrywanie śladów - wywołania z poziomu CSS i tagów nierenderowalnych

Wstrzyknąć SQL, ale jak i gdzie? Example Po raz kolejny - walidacja danych wejściowych <?php $ s q l = "SELECT FROM [ u s e r s ] WHERE [ l o g i n ] = ". $_POST[ l o g i n ]. " AND [ password ] =. md5($_post[ password ] ) ; mysql_query ( $ s q l ) ;

Wstrzyknąć, ale co i gdzie II? Example A co jeśli użytkownik wyśle login = login --? <?php $ s q l = "SELECT FROM [ u s e r s ] WHERE [ l o g i n ] = ". $_POST[ l o g i n ]. " AND [ password ] =. md5($_post[ password ] ) ; mysql_query ( $ s q l ) ;

Wizyta w hurtowni Wprowadzenie Jakie możliwości stwarza tego typu atak? Zależy to od rodzaju zapytania (SELECT, INSERT, UPDATE etc.) Zależy też od pozycji w zapytaniu (klauzula WHERE, klauzula ORDER BY) INFORMATION SCHEMA - skąd zdobyć dane o schemacie operacja UNION - jak dołączyć wyniki klauzula ORDER BY - jak przewidzieć liczbę kolumn

Wnioski Dane pochodzące od użytkownika wymagają szczególnej uwagi SSL i TLS pozwalają na bezpieczne zarządzanie sesją wymagając narzutu tylko wtedy, gdy rzeczywiście wykonujemy istotnie poufne operacje Samo sprawdzenie zgodności ze standardami nie wystarczy - należy wiedzieć, jak zachowają narzędzia w przypadku błędnych danych Dostarczane nam przez języki programowania narzędzia nie zawsze są wystarczające

Podziękowania Dziękujemy za uwagę i zapraszamy na kolejny wykład.