Informatyka

Bezpieczeństwo stron internetowych

6 lat temu

Zobacz slidy

Bezpieczeństwo stron internetowych - Slide 1
Bezpieczeństwo stron internetowych - Slide 2
Bezpieczeństwo stron internetowych - Slide 3
Bezpieczeństwo stron internetowych - Slide 4
Bezpieczeństwo stron internetowych - Slide 5
Bezpieczeństwo stron internetowych - Slide 6
Bezpieczeństwo stron internetowych - Slide 7
Bezpieczeństwo stron internetowych - Slide 8
Bezpieczeństwo stron internetowych - Slide 9
Bezpieczeństwo stron internetowych - Slide 10
Bezpieczeństwo stron internetowych - Slide 11
Bezpieczeństwo stron internetowych - Slide 12
Bezpieczeństwo stron internetowych - Slide 13
Bezpieczeństwo stron internetowych - Slide 14
Bezpieczeństwo stron internetowych - Slide 15
Bezpieczeństwo stron internetowych - Slide 16

Treść prezentacji

Slide 1

Bezpieczeństwo stron internetowych Opracował: Piotr Arciszewski

Slide 2

Spis treści 1. SQL Injection 2. Cross-site scripting (XSS) 3. Session Fixation 4. Session Hijacking 5. Co to jest Captcha?

Slide 3

1. SQL Injection SQL Injection (dosłownie zastrzyk SQL) luka w zabezpieczeniach aplikacji internetowych polegająca na nieodpowiednim filtrowaniu lub niedostatecznym typowaniu i późniejszym wykonaniu danych przesyłanych w postaci zapytań SQL do bazy danych. Podatne są na niego systemy złożone z warstwy programistycznej (przykładowo skrypt w PHP, ASP, JSP itp.) dynamicznie generującej zapytania do bazy danych (MySQL, PostgreSQL itp.). Wynika on zwykle z braku doświadczenia lub wyobraźni programisty.

Slide 4

1. SQL Injection Atak SQL Injection polega na przesłaniu do serwera odpowiednio spreparowanego kodu SQL, który zostanie na nim wykonany. W wyniku tego atakujący może wykraść dane lub włamać się na serwer.

Slide 5

1. SQL Injection - Niedostateczne filtrowanie danych Ten typ ataków opiera się na nieodpowiednim filtrowaniu znaków ucieczki z danych wejściowych, co pozwala na przekazanie dodatkowych parametrów do zapytania. Poniższy kod prezentuje ten problem (PHP): q mysqlquery(SELECT FROM uzytkownicy WHERE uzytkownik uzytkownik); Gdy użytkownik przekaże jako uzytkownik wartość kowalski, całe zapytanie przyjmie postać: SELECT FROM uzytkownicy WHERE uzytkownik kowalski i będzie spełniało swoją funkcję. Jednak gdy złośliwy użytkownik przekaże wartość x OR 11, to całe zapytanie będzie wyglądało: SELECT FROM uzytkownicy WHERE uzytkownik x OR 11 przez co pobierze z bazy danych wszystkie rekordy zamiast jednego wybranego.

Slide 6

1. SQL Injection - Niedostateczne filtrowanie danych Podstawowym sposobem zabezpieczania przed SQL injection jest niedopuszczenie do nieuprawnionej zmiany wykonywanego zapytania. W PHP można to zrobić, poprzez wykonanie na każdym tekstowym parametrze wykorzystywanym do budowy zapytania wbudowanej funkcji addslashes(), która dodaje backslash przed znakami, takimi jak , czy , dzięki czemu znaki te nie są traktowane jak znaki specjalne. Dostępne są również funkcje specyficzne dla poszczególnych silników, takie jak np. oferowana przez serwer MySQL mysqlrealescapestring(). login mysqlescapestring(login); Wróć do menu

Slide 7

2. Cross-site scripting (XSS) Cross-site scripting (XSS) sposób ataku na serwis WWW polegający na osadzeniu w treści atakowanej strony kodu (zazwyczaj JavaScript), który wyświetlony innym użytkownikom może doprowadzić do wykonania przez nich niepożądanych akcji. Skrypt umieszczony w zaatakowanej stronie może obejść niektóre mechanizmy kontroli dostępu do danych użytkownika.

Slide 8

2. Cross-site scripting (XSS) Aby atak XSS był możliwy witryna musi prezentować treść przekazaną od użytkownika jako kod HTML serwisu, bez uprzedniej konwersji tekstu na HTML (poprzez zamianę specjalnych znaków HTML na encje). Ochrona przed XSS poprzez samą weryfikację i filtrowanie niebezpiecznych danych jest bardzo trudna. Jeśli treść zawierająca spreparowany skrypt prezentowana jest wyłącznie w odpowiedzi na to konkretne zapytanie, podatność określana jest jako non-persistent XSS i z reguły może być każdorazowo użyta tylko wobec pojedynczych ofiar. Jeśli serwis zapamiętuje przesłaną treść i prezentuje ją kolejnym odwiedzającym (np. na forum internetowym), atak określany jest jako persistent XSS i jego jednorazowe wykorzystanie może posłużyć do naruszenia bezpieczeństwa kont tysięcy użytkowników.

Slide 9

2. Cross-site scripting (XSS) Ze względu na szeregową strukturę dokumentów HTML i trudność oddzielenia kodu JavaScript od znaczników kontrolujących prezentację treści, a także ze względu na wady przewidzianych przez JavaScript mechanizmów zabezpieczeń, podatności tego typu są niezwykle częstym problemem we współczesnych dynamicznych witrynach WWW, zwłaszcza w tak zwanych stronach Web 2.0, a ich wyeliminowanie wymaga dużej staranności. ;alert(String.fromCharCode(88,83,83));alert(String.fromCharCode( 88,83,83));alert(String.fromCharCode(88,83,83));alert(String.fro mCharCode(88,83,83))script!-scriptalert(String.fromCharCode(88,83,83))script Wykonanie powyższych instrukcji języka JavaScript spowoduje wyświetlenie monitu z komunikatem o treści XSS (jeśli tylko występuje podatność).

Slide 10

2. Cross-site scripting (XSS) Wróć do menu

Slide 11

3. Session Fixation Kolejny rodzaj ataku, określany terminem Session Fixation, różni się od opisanych wyżej metod tym, że atakujący nie skupia swojej uwagi na zdobyciu identyfikatora sesji ofiary, a raczej na skłonieniu ofiary do użycia identyfikatora określonego przez niego samego, np. poprzez odpowiednio spreparowany odnośnik z dołączonym identyfikatorem sesji. Innymi słowy, użytkownik zostaje nieświadomie skłoniony do użycia sesji zainicjowanej przez atakującego.

Slide 12

3. Session Fixation Atak ten przebiega standardowo w trzech krokach : 1. Ustanowienie sesji - w pierwszym kroku atakujący tworzy losowy identyfikator sesji lub rozpoczyna nową sesję na docelowym serwerze i pozyskuje z niej identyfikator. Zazwyczaj musi on utrzymywać sesję przez wielokrotne wysyłanie żądań, aby uniknąć jej wygaśnięcia. 2. Wymuszenie sesji - atakujący przekazuje ofierze ustalony identyfikator. Przekazanie to może się odbyć na wiele sposobów m.in. może on wykorzystać techniki polegające na iniekcji i wykonaniu wrogiego kodu, np. Cross Site Scripting. Może także skłonić ofiarę do uruchomienia odpowiednio spreparowanego odnośnika lub formularza HTML. 3. Uzyskanie dostępu - w ostatnim kroku atakującemu pozostaje tylko czekać, aż ofiara zaloguje się do aplikacji używając ustalonego identyfikatora, po czym wykorzystując ten sam identyfikator atakujący może podszyć się pod ofiarę. Wróć do menu

Slide 13

4. Session Hijacking Session Hijacking (ang. to hijack porywać, uprowadzać), czyli przechwytywanie sesji, odnosi się do wszystkich ataków, gdzie włamywacz próbuje uzyskać dostęp do istniejącej sesji użytkownika, tzn. takich gdzie identyfikator został już wcześniej przydzielony. Polegają na uzyskiwaniu nieuprawnionego dostępu do systemów komputerowych na skutek przechwycenia sesji legalnego użytkownika. Opiera się na przesyłaniu w sesji np. adresu IP komputera wraz z nazwą przeglądarki, spod których została ona utworzona, a następnie porównywać je przy kolejnych wizytach z danymi dostarczonymi przez serwer.

Slide 14

4. Session Hijacking Przeciwdziałanie przechwyceniu identyfikatora sesji Sposób przekazywania identyfikatora sesji Identyfikator sesji możemy przekazywać zarówno w adresie URL, jak i w ciasteczku. Pierwszy z wymienionych sposobów zdecydowanie nie jest dobrym pomysłem, ponieważ: Każda osoba używająca tego samego komputera będzie mogła poznać identyfikator sesji z historii stron przeglądarki. Adresy URL często zapisywane są przez serwery proxy, dzienniki zdarzeń, itp. W wyniku ich analizy można przeczytać identyfikatory sesji. Bardzo łatwo zmodyfikować identyfikator sesji poprzez manipulacje łańcuchem żądania. Kiedy użytkownik przechodzi na inną stronę, adres URL wraz z identyfikatorem sesji dostępny jest w nagłówku HTTP Referer. Użytkownik, przekazując adres URL innym osobom, nieumyślnie udostępnia także identyfikator sesji.

Slide 15

4. Session Hijacking Naturalnym wyborem do przekazywania identyfikatora sesji są więc ciasteczka. Wadą tego rozwiązania jest to, że odwiedzający stronę ma pełne prawo i możliwości do odmówienia przyjęcia cookie. Niestety coś za coś. Lepszym wyjściem jest jednakże wyjaśnienie użytkownikowi dlaczego ciasteczka są potrzebne, niż opieranie obsługi sesji na rozwiązaniu, które nie jest bezpieczne. Aby wymusić używanie ciasteczek do przekazywania identyfikatora sesji powinniśmy ustawić odpowiednie dyrektywy konfiguracyjne : session.usecookies - ustawia przekazywanie identyfikatora w ciasteczkach, session.useonlycookies - ustawia pobieranie identyfkatora tylko z ciasteczek, session.transsid - ustawia przekazywanie identyfikatora poprzez adres URL i formularze WWW możliwość tą oczywiście należy wyłączyć. Wróć do menu

Slide 16

5. Co to jest Captcha? CAPTCHA rodzaj techniki stosowanej jako zabezpieczenie na stronach www, celem której jest dopuszczenie do przesłania danych tylko wypełnionych przez człowieka. Technika ta chroni m.in.: formularze przed spamem portale - przed zakładaniem kont przez automaty fora dyskusyjne blogi - przed reklamami w komentarzach Przykładowy captchacha Wróć do menu

Dane:
  • Liczba slajdów: 16
  • Rozmiar: 0.61 MB
  • Ilość pobrań: 4163
  • Ilość wyświetleń: 52011
Mogą Cię zainteresować
Czegoś brakuje?

Brakuje prezentacji,
której potrzebujesz?

Nie znalazłeść potrzebnej prezentacji multimedialnej? Wypełnij formularz a my zrobimy to za Ciebie i poinformujemy mailowo. Wszystko w mniej niż 24 godziny!

Znajdziemy prezentację
za Ciebie