Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ......
Transcript of Zabezpieczanie aplikacji i systemów · Zabezpieczanie aplikacji i systemów Marek Zachara ......
1/23
ZabezpieczanieZabezpieczanieaplikacji i systemówaplikacji i systemów
Marek ZacharaMarek Zacharahttp://marek.zachara.namehttp://marek.zachara.name
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ć
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
4/23
Podejście Defenceindepth 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, „oneway”)
Można w ten sposób do pewnego stopnia „ratować” problematyczną aplikację
Security bydesign
Walidacjadanych
Hasła...
Inne metody
Zaporyogniowe
5/23
Walidacja danych
Typ danych
Rozmiar
Struktura (np. telefon, PESEL)
Znaki składowe
Wzorzec
integerdouble datestring?id=A34BX
[az,AZ.09]
"^[azAZ09_.+]+@[azAZ09]+\.[azAZ09.]+$"
Security bydesign
Walidacjadanych
Hasła...
Inne metody
Zaporyogniowe
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
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
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
9/23
Sposoby przechowywania haseł Hashowanie / szyfrowanie Ataki bruteforce Solenie haseł
Ataki słownikowe i bruteforce 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
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
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
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
13/23
Przykład analizy parametrów zapytań HTTP
Security bydesign
Walidacjadanych
Hasła...
Inne metody
Zaporyogniowe
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
15/23
Warstwy komunikacyjne modelu OSI
IP Firewalls
TCP Stateful Firewalls
Web ApplicationFirewalls (WAF)
Security bydesign
Walidacjadanych
Hasła...
Inne metody
Zaporyogniowe
16/23
Zasada działania firewalla
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
17/23
Rodzaje firewalla 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
18/23
Konfiguracja firewalla w systemie Windows
Source: http://www.howtogeek.com/112564
Security bydesign
Walidacjadanych
Hasła...
Inne metody
Zaporyogniowe
19/23
iptables
Mangle/NAT Routing Forward Routing
INPUT OUTPUT
Processes
Security bydesign
Walidacjadanych
Hasła...
Inne metody
Zaporyogniowe
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
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
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
23/23
Dziękuję za uwagę.
Pytania?
więcej informacji: http://marek.zachara.name
Dokument udostępniany na licencji
Creative Commons
AttributionShareAlike
Wykorzystane materiały które nie miały wcześniej podanego źródła:● Clipart – openclipart.org● Packet flow in NetFilter – Wikimedia CommonsElementy licencjonowane (royaltyfree), nie mogą być wykorzystywane oddzielnie:● Tło prezentacji, awatary postaci