Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ......

23
1/23 Zabezpieczanie Zabezpieczanie aplikacji i systemów aplikacji i systemów Marek Zachara Marek Zachara http://marek.zachara.name http://marek.zachara.name

Transcript of Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ......

Page 1: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

1/23

ZabezpieczanieZabezpieczanieaplikacji i systemówaplikacji i systemów

Marek ZacharaMarek Zacharahttp://marek.zachara.namehttp://marek.zachara.name

Page 2: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

2/23

Główne aspekty

 Bezpieczeństwo nie jest     „dodatkową funkcjonalnością” Trudno jest „dodać bezpieczeństwo” Powinno być wpisane w proces    tworzenia i wdrażania aplikacji

Security by designDefence in Depth

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Dane

AplikacjaHost

Sieć

Page 3: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

3/23

Bezpieczeństwo zaczyna się na poziomie specyfikacja wymagań

 Poziomy użytkowników / role / prawa Powiązanie funkcjonalności z prawami Określenie zbiorów danych i ich wrażliwości Konsekwencje złamania zabezpieczeń Logowanie zdarzeń Audyt danych (w tym historia) Metody transmisji i przekazywania danych Procedury uzyskiwania i odwoływania dostępu

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 4: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

4/23

Podejście Defence­in­depth Minimalne uprawnienia na bazie danych Widoki, procedury składowane itp. Aktualny i bezpieczny system operacyjny Firewall aplikacyjny (WAF) Firewall i ochrona na poziomie sieciowym IDS/IPS Centralizowany system logowania     (niewidoczny, „one­way”)

Można w ten sposób do pewnego stopnia „ratować” problematyczną aplikację

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 5: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

5/23

Walidacja danych

Typ danych

 Rozmiar

 Struktura (np. telefon, PESEL)

 Znaki składowe

 Wzorzec 

integerdouble datestring?id=A34BX

[a­z,A­Z.0­9]

"^[a­zA­Z0­9_.+­]+@[a­zA­Z0­9­]+\.[a­zA­Z0­9­.]+$"

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 6: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

6/23

Strategie walidacji Blacklist     odrzucamy znane niebezpieczne wzorce Whitelist

dopuszczamy tylko znane 'bezpieczne' Sanityzacja 

usunięcie lub unieszkodliwienie znaków Whitelist Blacklist

/home/?id=A34BX&pass=' OR 1==1'

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 7: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

7/23

Zasada minimalnych uprawnień

Dane

Aplikacja

HostSieć

Tylko niezbędne uprawnienia SELECT / INSERT  CREATE / DROP Granulacja per tabela

Uprawnienia per moduł Java security policy

Prawa dostępu do plików dla użytkownika (­ów) (nie root/admin!)

Filtrowanie pakietówPortów, protokołów, nagłówków, SRC IP

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 8: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

8/23

Metody uwierzytelniania Hasło („coś co wiem”) Token/SMS („coś co mam”) Biometria („coś czym jestem”)

Uwierzytelnianie dwuskładnikowe Dla skuteczności musi korzystać    z dwóch NIEZALEŻNYCH kanałów Bankowość mobilna z autoryzacją     SMS na tym samym telefonie

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 9: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

9/23

Sposoby przechowywania haseł Hashowanie / szyfrowanie Ataki brute­force Solenie haseł

Ataki słownikowe i brute­force Reguły haseł Ograniczenie prób logowania

Ograniczanie skutków Okres ważności haseł Minimalne uprawnienia

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 10: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

10/23

Wymuszanie zachowań na użytkowniku

Automatyczne wylogowanie (timeout) (Prawie) same zalety

Reguły tworzenia i zmiany haseł Ryzyko „upraszczania życia”

Ograniczenie dostępu Określone terminale / IP Określone godziny

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 11: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

11/23

Security by ObscurityHasła i dane dostępowe

 Gdy raz się „wydostaną”,   to jest game over

Algorytmy szyfrujące Czy na pewno mamy najlepszych kryptologów na świecie?

Zaciemnianie kodu „Obfuscation”

Obscurity jako dodatkowa warstwa np. port knock

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 12: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

12/23

Analiza zachowań użytkowników Z reguły „wisienka na torcie”

Może być realizowana na różnym poziomie Wzorców czasu logowań Rozkładu geograficznego Wykonywanych operacji Parametrów zapytań

 HTTP,SQL itp.

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 13: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

13/23

Przykład analizy parametrów zapytań HTTP

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 14: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

14/23

Honeypot Specjalnie spreparowana pułapka

Może przybierać różne formy Wirtualne osoby (spam/phishing)  Konto użytkownika ze słabym hasłem Podatna strona internetowa Dedykowany host / system

Ważne procedury 'obsługi' Raportowanie Blokowanie Śledzenie / Forensic

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 15: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

15/23

Warstwy komunikacyjne modelu OSI

IP ­ Firewalls

TCP ­ Stateful Firewalls

Web ApplicationFirewalls (WAF)

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 16: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

16/23

Zasada działania firewall­a

Version Header

Length Type of Service Total Length

Fragment Identification Flags Fragment Offset

TTL Protocol Header Checksum

Source Address

Destination Address

Options & Padding

0 32 Bit

Listareguł

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 17: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

17/23

Rodzaje firewall­a Firewall bezstanowy: analizuje każdy    pakiet oddzielnie Firewall stanowy (stateful): analizuje    pakiet w kontekście sesji TCP (lub innych    zmiennych stanu)

Zastosowania firewalli Separacja sieci DMZ

Page 18: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

18/23

Konfiguracja firewall­a w systemie Windows

Source: http://www.howtogeek.com/112564

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 19: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

19/23

iptables

Mangle/NAT Routing Forward Routing

INPUT OUTPUT

Processes

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 20: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

20/23

$IPT -F INPUT$IPT -F OUTPUT$IPT -F FORWARD $IPT -t nat -F $IPT -P INPUT DROP$IPT -P OUTPUT ACCEPT$IPT -P FORWARD DROP # zabezpieczenie przed skanerami ssh z kont uzytkownikow $IPT -A FORWARD -o eth0 -p tcp --dport 22 -d 10.0.0.0/8 -j ACCEPT $IPT -A FORWARD -o eth0 -p tcp --dport 22 -j DROP

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT$IPT -A INPUT -s $MYNETWORK -j ACCEPT$IPT -A INPUT -i lo -j ACCEPT$IPT -A INPUT -p icmp -j ACCEPT$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT$IPT -A FORWARD -i eth1 -o eth0 -j ACCEPT

$IPT -t nat -A PREROUTING -d $EXTIP -p tcp --dport 22 -j DNAT --to-destination $LOCAL$IPT -t nat -A PREROUTING -d $EXTIP -p tcp --dport 80 -j DNAT --to-destination $LOCAL:8080$IPT -t nat -A PREROUTING -d $EXTIP -p tcp --dport 443 -j DNAT --to-destination $LOCAL$IPT -A FORWARD -d $LOCAL -p tcp --dport 22 -j ACCEPT$IPT -A FORWARD -d $LOCAL -p tcp --dport 80 -j ACCEPT$IPT -A FORWARD -d $LOCAL -p tcp --dport 443 -j ACCEPT

$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Przykładowe reguły iptables

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 21: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

21/23

ModSecurity Powstał jako moduł reguł do Apache Rozwój w kierunku WAF Dostępne zbiory reguł Darmowe (OWASP Core Rule Set)

 DoS Protection Generic Web Attack Protection Error detection  i inne...

 Komercyjne Możliwość tworzenia własnych reguł

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 22: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

22/23

Przykłady reguł ModSecurity (CRS)XSS:SecRule ARGS "(?i)(<script[^>]*>[\s\S]*?

<\/script[^>]*>|<script[^>]*>[\s\S]*?....

 Operatory SQLSecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!

REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "(?i:(\!\=|\&\&|\|\||>>|<<|>=|<=|<>|<=>|\bxor\b|\brlike\b|\bregexp\b|\bisnull\b)..

 Malware118.216.255.31/

123.143.98.5/ 123.242.165.138/ 125.163.251.219/ ...

więcej: https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project

Security bydesign

Walidacjadanych

Hasła...

Inne metody

Zaporyogniowe

Page 23: Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ... Procedury uzyskiwania i odwoływania dostępu Security by design Walidacja danych Hasła...

23/23

Dziękuję za uwagę.

Pytania?

więcej informacji: http://marek.zachara.name

Dokument udostępniany na licencji

Creative Commons

AttributionShare­Alike

Wykorzystane materiały które nie miały wcześniej podanego źródła:● Clipart – openclipart.org● Packet flow in NetFilter – Wikimedia CommonsElementy licencjonowane (royalty­free), nie mogą być wykorzystywane oddzielnie:● Tło prezentacji, awatary postaci