際際滷

際際滷Share a Scribd company logo
Bezpenost
Mgr. Luk叩邸 Vacek
lukas.vacek@uhk.cz
TNPW2 2015/2016
2
Dobr箪 admin nemus鱈 b箪t paranoidn鱈.
Ale hodn to pom叩h叩.  Michal A. Val叩邸ek
 O obecn箪ch bezpenostn鱈ch metodik叩ch
 O fyzick辿m p鱈stupu osob k po鱈ta哲m, server哲m, 炭lo転i邸t鱈m dat apod.
 O pravidlech, kde se maj鱈 uskladovat z叩lohovan叩 data
 O tom, co je nap. redundantn鱈 zdroj, geo-cluster, rootkit, backdoor, nebudeme e邸it
problematiku firewall哲, antiviry apod.
 O hodnocen鱈 rizik, jak se takov叩 anal箪za prov叩d鱈
 O s鱈le bezpenostn鱈ch mechanism哲, kl鱈哲, hesel atd.
 O z叩t転ov辿m testov叩n鱈 aplikac鱈 (MS TFS, HP LoadRunner, JMeter a spol.)
 O stupn鱈ch 噛温恢艶噛沿艶艶稼鱈 OS (Common Criteria)
 O pr叩vn鱈 a ekonomick辿 str叩nce bezpenosti
 O soci叩ln鱈m in転en箪rstv鱈 (pette si Kevina Mitnicka )
 Problematika bezpenosti je velice komplexn鱈 oblast, proto se budeme na pedn叩邸ce
vnovat jen jej鱈 mal辿 叩sti
O em pedn叩邸ka nebude? 3
 Na co si d叩t z bezpenostn鱈ho hlediska pozor pi n叩vrhu, programov叩n鱈,
testov叩n鱈, konfiguraci a provozu aplikace
 ada bezpenostn鱈ch incident哲 je zp哲sobena chybou v aplikaci, jej鱈 邸patnou
konfigurac鱈 nebo nastaven鱈m provozn鱈ho prosted鱈
 Toto v邸echno lze relativn jednodu邸e ovlivnit, kdy転 o tom v鱈te
O em pedn叩邸ka bude? 4
Agenda
 Bezpenost?
 Z叩kladn鱈 pojmy
 Autentizan鱈 mechanismy
 Nejastj邸鱈 chyby v 噛温恢艶噛沿艶艶稼鱈
 HTTP hlaviky
 Pravidla pro vytv叩en鱈 bezpen辿ho k坦du
 Internet, doporuen叩 literatura
 Z叩vr
5
 Bezpenost je nikdy nekon鱈c鱈 proces!
 100% spolehliv辿 噛温恢艶噛沿艶艶稼鱈 IS neexistuje, je nutn辿 po鱈tat se selh叩n鱈m!
 Je obt鱈転n辿 pipravit aplikaci na ka転d箪 potencion叩ln鱈 炭tok
 Nejslab邸鱈m l叩nkem ka転d辿ho IS je obvykle jeho u転ivatel 
 Zabezpeen鱈 mus鱈 b箪t integr叩ln鱈 sou叩st鱈 z叩kladn鱈ho n叩vrhu syst辿mu!
 rove (m鱈ra) 噛温恢艶噛沿艶艶稼鱈 v転dy ovlivuje v箪slednou cenu aplikace
 Anal箪za bezpenostn鱈ch rizik (nap. dle ISO) se proto prov叩d鱈 ve spolupr叩ci
se zadavatelem (z叩kazn鱈kem)
 Nejcennj邸鱈 叩st鱈 IS jsou obvykle ulo転en叩 data!
 I chybn叩 implementace bezpenostn鱈ch pravidel je lep邸鱈 ne転 転叩dn叩!
 Dejte si pozor na vnitn鱈ho nep鱈tele! Je jednodu邸邸鱈 pesvdit nkoho
s vnitn鱈m opr叩vnn鱈m, ne転 to v邸echno dlat s叩m zvenku
Co byste mli vdt o bezpenosti? 6
 Nikdy nevte dat哲m od klient哲!
 Udlujte pouze nejnutnj邸鱈 p鱈stupov叩 pr叩va, v鱈ce 炭rovn鱈 = v鱈ce hesel
 V転dy pou転鱈vejte nejjednodu邸邸鱈 e邸en鱈 (minimalismus)
 Nikdy nezakl叩dejte bezpenost na utajen鱈!
 Chrate citliv辿 炭daje (nap. 邸ifrov叩n鱈m), neveejn辿 informace um鱈stte mimo
veejnou oblast
 Instalujte jen nejnutnj邸鱈 SW
 Hl鱈dejte si bezpenostn鱈 d鱈ry v pou転鱈van辿m SW
 Pesute weby na nesyst辿mov箪 disk
 Sledujte logy a statistiky
Z叩kladn鱈 pravidla (program叩torsk箪 pud sebez叩chovy) 7
Z叩kladn鱈 pojmy
 Identifikace  Kdo jsi?
 Autentizace  Proces oven鱈 identity (jm辿no a heslo, certifik叩t apod.)
 Klient nco v鱈 (heslo, PIN)
 Klient nco m叩 (kalkul叩tor, priv叩tn鱈 kl鱈)
 Klient n鱈m je, nebo se njak chov叩 (biometriky)
 Autorizace  Opr叩vnn鱈 k pou転it鱈 konkr辿tn鱈 slu転by
 SSO (Single Sign-On)  u転ivatel se jednou pihl叩s鱈 (prok叩転e identitu) a v r叩mci jedn辿
relace z鱈sk叩 p鱈stup k r哲zn箪m aplikac鱈m (b転n辿 u tzv. port叩lov箪ch slu転eb)
 e邸en鱈 obvykle vyu転鱈v叩 https, tzv. adres叩ov辿 slu転by (nap. LDAP, OIM) a centr叩ln鱈
Federan鱈 server, kter箪 autentizaci u転ivatele zaji邸泥uje a vyd叩v叩 jednotliv箪m
aplikac鱈m tzv. SAML token s p鱈slu邸n箪mi 炭daji o identit u転ivatele
 Vlastn鱈 autorizaci si n叩sledn u ka転d辿ho autentizovan辿ho u転ivatele zaji邸泥uje ka転d叩
aplikace sama!
Z叩kladn鱈 pojmy 9
 Symetrick叩 komunikace  spolen箪 kl鱈 pro ob strany
 HMAC  kontroln鱈 souet (hash) pen叩邸en箪ch informac鱈 se sol鱈
(s哲l = n叩hodn辿 znaky)
 Nen鱈 nepopirateln叩 (kl鱈 je zn叩m obma komunikuj鱈c鱈m stran叩m)
 Nesm鱈 doj鱈t ke kompromitaci kl鱈e, pozor na vnitn鱈ho nep鱈tele!
 Nez叩vis鱈 na s鱈le pou転it辿ho hash algoritmu (funguje i slab邸鱈 MD5),
 Jde pou転鱈t GET
 Asymetrick叩 komunikace  pou転it鱈 dvojice RSA kl鱈哲 (private, public)
 Je nepopirateln叩 (v箪jimkou je zapen鱈 doruen鱈 zpr叩vy, nedostanu odpov)
 Mnohem bezpenj邸鱈 zp哲sob komunikace, ale pen叩邸鱈 se v鱈ce dat (certifik叩ty)
 Je nutn辿 dobe zabezpeit 炭lo転i邸t priv叩tn鱈ch kl鱈哲
 Nelze pou転鱈t metodu GET
Z叩kladn鱈 pojmy II. 10
 Digit叩ln鱈 certifik叩t
 Datov叩 struktura identifikuj鱈c鱈 jej鱈ho dr転itele pi el. komunikaci
 B箪v叩 ulo転en buto v souboru nebo na HW za鱈zen鱈
 Je uren k podepisov叩n鱈 a 邸ifrov叩n鱈 dat
 Podobu certifik叩t哲 stanovuje norma X.509
 Vyd叩v叩 ho certifikan鱈 autorita, m哲転e odvolat jeho platnost pes CRL
 PKI (Public Key Infrastructure)
 Prosted鱈 pro ochranu informan鱈ch syst辿m哲, elektronick箪ch transakc鱈 a komunikace
 Zahrnuje ve邸ker箪 software, technologie a slu転by, kter辿 vyu転鱈vaj鱈 邸ifrov叩n鱈 s veejn箪m
a priv叩tn鱈m kl鱈em (podpis ve form叩tu PKCS7)
 Pozor na kompromitaci priv叩tn鱈ch kl鱈哲 >> PROBLM
Z叩kladn鱈 pojmy III. 11
 V souasn辿 dob nelze p鱈mo prov叩dt ve webov箪ch aplikac鱈ch 転叩dn辿 kryptografick辿
operace (邸ifrov叩n鱈, podepisov叩n鱈) v JavaScriptu na stran klienta
 JavaScript m叩 probl辿m s dostaten bezpen箪m
 gener叩torem n叩hodn箪ch 鱈sel
 炭lo転i邸tm kl鱈哲
 a d哲vryhodn箪m doruen鱈m kryptografick辿ho zdrojov辿ho k坦du
 Prohl鱈転ee podporuj鱈 pouze zabezpeen辿 spojen鱈 mezi klientem a serverem (SSL, TLS)
 Obas je nutn辿 za邸ifrovat data (zpr叩vu, soubor) tak, aby je samotn箪 server nemohl
roz邸ifrovat bez njak辿 podp哲rn辿 aplikace to dnes nejde
 Mo転n辿 e邸en鱈 draft Web Cryptography API (W3C)
 http://tech.ihned.cz/geekosfera/c1-60754800-webcrytoapi-sifrovani-webove-aplikace
Kryptografick辿 operace ve webov箪ch aplikac鱈ch? 12
 C鱈lem je zajistit v邸em opr叩vnn箪m u転ivatel哲m bezpen箪 p鱈stup k poskytovan箪m
slu転b叩m a informac鱈m
 Webov辿 aplikace pou転鱈vaj鱈 jednoduch辿 i v鱈ce-faktorov辿 autentizan鱈 mechanismy
 Vyu転鱈vaj鱈 se jm辿na + hesla, adres叩ov辿 slu転by, certifik叩ty, PINy, biometriky apod.
 Bezpen箪 p鱈stup zahrnuje nap.:
 Oven鱈 identity u転ivatele 転叩daj鱈c鱈ho o p鱈stup
 Autorizaci (opr叩vnn鱈) tohoto u転ivatele
 Bezpen箪 (邸ifrovan箪, SSL) penos komunikace mezi u転ivatelem a serverem
 Integritu (pravost) informac鱈 ped叩van箪ch mezi komunikuj鱈c鱈mi stranami
 Velmi popul叩rn鱈 a 炭inn辿 jsou autentizan鱈 mechanismy zalo転en辿 na PKI, kdy ka転d箪
炭astn鱈k (u転ivatel a slu転ba) m叩 vyd叩n vlastn鱈 certifik叩t veejn辿ho kl鱈e podepsan箪
d哲vryhodnou certifikan鱈 autoritou
 http://www.ics.muni.cz/zpravodaj/articles/522.html
 http://si.vse.cz/archive/proceedings/2001/autentizacni-mechanismy.pdf
Autentizan鱈 mechanismy 13
 V箪br vhodn辿ho autentizan鱈ho mechanismu z叩vis鱈 na cel辿 ad krit辿ri鱈
 Kdo je u転ivatelem?  Zamstnanec vs. Z叩kazn鱈k (klient)
 O jakou operaci jde?  Pasivn鱈 (ten鱈 informace) vs. Aktivn鱈 (zmna dat)
 Kdo m叩 kontrolu nad prosted鱈m?  Provozovatel vs. u転ivatel vs. tet鱈 strana
 N叩klady, po転adavky na HW a SW
 http://si.vse.cz/archive/proceedings/2001/autentizacni-mechanismy.pdf
V箪br autentizan鱈ho mechanismu 14
Nejastj邸鱈 chyby v 噛温恢艶噛沿艶艶稼鱈
 Klient
 Webov箪 prohl鱈転e (bugy, podsouv叩n鱈 k坦du)
 Komunikace
 Pou転it辿 protokoly,
 Odposlech komunikace,
 Pesmrov叩n鱈 komunikace,
 Slab辿 邸ifrov叩n鱈
 Webov箪 server
 Bugy, konfigurace, logy
 Aplikace a data
 Autentizace, opr叩vnn鱈, 鱈zen鱈 p鱈stupu, validace vstup哲 a v箪stup哲, manipulace s datab叩z鱈
 http://www.slideshare.net/DCIT/bezpenos-webovch-aplikci
 S鱈t tvo鱈 hardware, software a velmi dlouh辿 dr叩ty 
 V podstat libovoln叩 叩st m哲転e selhat nebo b箪t napadena, po鱈tejte s t鱈m!
Potencion叩ln slab叩 m鱈sta v 噛温恢艶噛沿艶艶稼鱈 16
 The top 10 reasons Web sites get hacked  Jon Brodkin (InfoWorld.com)
 The Open Web Application Security Project (OWASP)
 Neziskovka zamen叩 na bezpenost
 V箪born箪 zdroj informac鱈!
 Vyd叩v叩 転eb鱈ky nejastj邸鱈ch chyb Top 10 za rok 2013
 Cross Site Scripting (XSS) *
 Chyby umo転uj鱈c鱈 炭toky typu SQL/Script injection *
 Vnucen箪 po転adavek (Cross-Site Request Forgery, CSRF) *
 nik informac鱈 a nespr叩vn辿 o邸eten鱈 chyb *
 Naru邸en叩 spr叩va autentizace a session management
 Nezabezpeen辿 ulo転en鱈 kryptografick箪ch dat
 Nezabezpeen辿 炭lo転i邸t dat, p鱈stup do datab叩ze
 Nechr叩nn叩 komunikace
Nejastj邸鱈 chyby v 噛温恢艶噛沿艶艶稼鱈 webov箪ch aplikac鱈 I. 17
 Nekontrolovan箪 vstup dat od u転ivatel哲 *
 Nedostaten叩 vnitn鱈 kontrola (u転ivatel辿, Broken access control, integrace)
 Peteen鱈 vyrovn叩vac鱈 pamti (Buffer Overflow)
 Nepodaen箪 z叩kaz p鱈m辿ho p鱈stupu k objektu
 Nevalidn鱈 redirect a forwarding na webov辿m serveru
 Pou転鱈v叩n鱈 komponent se zn叩mou zranitelnost鱈
 Denial of Service (DoS) *
 Clickjacking (炭tok pekr箪v叩n鱈m vizu叩ln鱈ch vrstev aplikace)
 Nezabezpeen叩 konfiguran鱈 spr叩va *
 Nevyu転鱈v叩n鱈 log哲 *
Pozn叩mka: Velmi ast箪 je kombinovan箪 炭tok na slab zabezpeen叩 m鱈sta aplikace!
http://zdrojak.root.cz/clanky/prehled-utoku-na-webove-aplikace/
http://www.sectheory.com/clickjacking.htm
Nejastj邸鱈 chyby v 噛温恢艶噛沿艶艶稼鱈 webov箪ch aplikac鱈 II. 18
 Nikdy nevte vstupn鱈m dat哲m od u転ivatel哲!
 Kdokoli m哲転e poslat jak叩koliv data
 Chyba (aplikace, u転ivatele), neznalost, zl箪 炭mysl
Obrana
 Ped vlastn鱈m zpracov叩n鱈m vstupn鱈ch dat prov叩dt jejich d哲slednou validaci, nap.:
 Pi邸lo to, co oek叩v叩m?
 Odpov鱈daj鱈 typy promnn箪ch?
 Co d辿lka etzc哲?
 Jsou zaslan辿 hodnoty p鱈pustn辿 (鱈seln鱈ky)?
 Nebyl zasl叩n njak箪 nebezpen箪 obsah (kolizn鱈 znaky, SQL p鱈kazy)?
 Validaci (kontrolu) vstupn鱈ch dat lze prov叩dt na stran klienta (tady m哲転u)
a na stran serveru (a tady mus鱈m!)
Nekontrolovan箪 vstup dat od u転ivatel哲 19
 Webov叩 aplikace pou転鱈v叩 zas鱈lan辿 parametry k p鱈stupu na extern鱈 syst辿my
nebo k operan鱈mu syst辿mu
 Pokud 炭ton鱈k dok叩転e tyto parametry pozmnit (nap. SQL dotaz) a pipojit
vlastn鱈 k坦d, extern鱈 syst辿m tyto p鱈kazy spust鱈 s opr叩vnn鱈mi serveru
Obrana
 Striktn鱈 typovost dat, valid叩tory, regul叩rn鱈 v箪razy ve filtrech, HTML encoding,
kontrola vstupu i v箪stupu, pou転鱈v叩n鱈 parametr哲 pro vkl叩d叩n鱈 do SQL p鱈kaz哲
 Z叩vadn箪 obsah se do aplikace m哲転e dostat nejen ze strany u転ivatele (formul叩),
ale i prostednictv鱈m integrovan箪ch aplikac鱈 tet鱈ch stran, po鱈tejte s t鱈m!
 https://www.owasp.org/index.php/Top_10_2013-A1-Injection
 http://php.vrana.cz/obrana-proti-sql-injection.php
 http://videoarchiv.altairis.cz/Entry/11-sql-injection.aspx
Vkl叩d叩n鱈 neautorizovan辿ho k坦du (SQL/Script injection) 20
 Webov叩 aplikace m哲転e b箪t pou転ita jako mechanismus pro penesen鱈 炭toku
p鱈mo do internetov辿ho prohl鱈転ee u転ivatele >> po邸le mu z叩vadn箪 k坦d, kter箪
se v prohl鱈転ei nate a interpretuje
 sp邸n箪 炭tok m哲転e odhalit pihla邸ovac鱈 炭daje u転ivatele, umo転nit 炭tok
na u転ivatel哲v po鱈ta nebo podvrhnout obsah str叩nky k oklam叩n鱈 u転ivatele
 Vlo転en箪 skript (m哲転e b箪t i extern鱈) m叩 p鱈stup ke cookies a pes DOM i k obsahu
str叩nky, v jej鱈m転 kontextu b転鱈!
Obrana
 Validace vstupn鱈ch dat, HTML encoding, kontrola v箪stup哲 na str叩nku apod.
 XSS (OWASP)
 XSS Filter Evasion Cheat Sheet
 Pedn叩邸ka Michala paka o XSS (Youtube.com)
XSS (Cross Site Scripting) 21
 Webov箪 trojsk箪 k哲, prov叩d鱈 se skryt na pozad鱈
 tok prob鱈h叩 ze str叩nky, kterou kontroluje 炭ton鱈k (soci叩ln鱈 ing.)
 Zfal邸ov叩n鱈 HTTP po転adavku, nap. vlo転en鱈m skriptu do tagu pro obr叩zek apod.
 Nepozorovan prov叩d鱈 pod identitou u転ivatele, kter箪 na odkaz kliknul, njakou
skrytou a vt邸inou nep鱈jemnou innost
Obrana
 D哲sledn叩 kontrola vstup哲 a v箪stup哲, autentizan鱈 token pro formul叩, kontrola
hlaviky HTTP REFERRER (odkud je po転adavek >> nen鱈 100% = spoofing),
formul叩ov辿 炭daje ped叩vat metodou POST, HTTP X-Frame-Options DENY
 CSRF (OWASP)
 http://zdrojak.root.cz/clanky/co-je-cross-site-request-forgery-a-jak-se-branit/
 http://php.vrana.cz/cross-site-request-forgery.php
 http://zdrojak.root.cz/clanky/html5-nova-bezpecnostni-rizika/
Vnucen箪 po転adavek (Cross-Site Request Forgery, CSRF) 22
 ton鱈k se 炭mysln pokou邸鱈 vyvol叩vat chyby, kter辿 aplikace neo邸etuje korektn
 D鱈ky informac鱈m o chyb se m哲転e dostat k detailn鱈m informac鱈m o cel辿m
syst辿mu, kter辿 lze n叩sledn zneu転鱈t >> z鱈skat citliv辿 informace, zak叩zat celou
slu転bu, obej鱈t bezpenostn鱈 mechanismus nebo zp哲sobit p叩d serveru
Obrana
 Validace vstupn鱈ch dat
 D哲sledn o邸etovat a testovat chybov辿 stavy >> pou転鱈vat v箪jimky!
 Nevypisovat chybov叩 hl叩邸en鱈 tzv. z v箪roby, ale upravit je tak, aby z nich nebylo
mo転n辿 z鱈skat informace kompromituj鱈c鱈 aplikaci
 Dokumentovat nastal辿 chyby do logu a pr哲b転n prov叩dt jejich kontrolu!
 Information Leakage and Improper Error Handling (OWASP)
nik informac鱈, nespr叩vn辿 o邸etov叩n鱈 chyb 23
 ton鱈k m哲転e pet鱈転it syst辿m samostatn leg叩ln鱈mi po転adavky >> dal邸鱈 opr叩vnn鱈
u転ivatel辿 nemohou slu転bu nad叩le pou転鱈vat nebo k n鱈 pistupovat
 Pro distribuovan辿 DoS 炭toky (DDoS) se pou転鱈vaj鱈 s鱈t tzv. bot哲 >> atak prob鱈h叩
z nkolika stovek nebo tis鱈c哲 po鱈ta哲 najednou
Obrana
 Jsou-li p鱈inou chyby v aplikaci (nen鱈 to ast辿), lze je odstranit
 Pi 炭toku z jednoho m鱈sta lze pou転鱈t blokov叩n鱈 IP adresy
 Jinak 100% spolehliv叩 ochrana neexistuje, zvl叩邸t u distribuovan箪ch DDoS 炭tok哲
je obrana velmi obt鱈転n叩
 toky typu DoS (seri叩l Lupa)
 http://www.root.cz/zpravicky/internet-byl-napaden-silou-40-gbps
 DDoS (wiki)
DoS 炭tok (Denial of Service) 24
 Velk辿 konfiguran鱈 n叩roky na server (OS + instalovan箪 SW) mohou m鱈t 邸patn箪 vliv
na 噛温恢艶噛沿艶艶稼鱈 webov辿 aplikace
 Mnoho konfiguran鱈ch mo転nost鱈 ovlivuje i bezpenost aplikace v p鱈pad
邸patn辿ho nastaven鱈
V鱈ce mo転nost鱈 >> v鱈ce chyb >> v鱈ce bezpenostn鱈ch dr!
Obrana
 Peliv叩 (pehledn叩 a zdokumentovan叩) konfigurace prosted鱈
 D哲sledn叩 eliminace v箪choz鱈ch opr叩vnn鱈, 炭t哲 a hesel
 Instalujte jen nutn箪 SW!
 P鱈stup ke konfiguraci maj鱈 m鱈t pouze povolan辿 osoby s vlastn鱈mi 炭ty (vnitn鱈 nep鱈tel)
 Sledov叩n鱈 zmn v konfiguran鱈ch souborech, nap. syst辿mem pro 鱈zen鱈 konfigurace
(spr叩vu zdrojov辿ho k坦du, verzov叩n鱈)
Nezabezpeen叩 konfiguran鱈 spr叩va 25
 Pr叩ce s logy je nesm鱈rn d哲le転it叩!
 Logovat lze v IS t辿m cokoliv a kdykoliv (v箪voj, testov叩n鱈, provoz)
 Pi vhodn辿m nastaven鱈 pravidel jsou logy v箪born箪m pomocn鱈kem pi monitorov叩n鱈
aktu叩ln鱈ch nebo mo転n箪ch budouc鱈ch nedostatk哲 v 噛温恢艶噛沿艶艶稼鱈 aplikace
 Je vhodn辿 zamezit neautorizovan辿 manipulaci s logy (nap. elektronick箪m podpisem)
ast辿 chyby pi spr叩v log哲
 Logy nejsou pou転鱈v叩ny
 Logy jsou pou転鱈v叩ny, ale nejsou prohl鱈転eny
 Logy jsou ukl叩d叩ny na p鱈li邸 kr叩tkou dobu
 Jsou upednostnny jen nkter辿 logy
 Jsou ignorov叩ny logy aplikac鱈
 Jsou prohl鱈転eny jen ty log哲, kde v鱈me, 転e jsou probl辿my
 Pozor na Log Injection, m哲転e k nmu doj鱈t 
 Six Mistakes of Log Management  Anton Chuvakin (PDF)
Logy 26
HTTP hlaviky
 Do HTTP hlaviky m哲転u napsat skoro cokoliv!
 GET url/file HTTP/1.0
HOST: njak箪 k坦d v JavaScriptu
 K坦d v JS se provede na URL adrese str叩nky a je mal辿r!
 Doporuen鱈: Obalit i HTTP hlaviky serveru ped v箪pisem na str叩nku pes
HTMLSpecialChar funkce

 P鱈m辿mu p鱈stupu na citliv辿 URL adresy (/admin) lze zamezit pes tzv. port knocking.
Spr叩vn叩 sekvence klep叩n鱈 na porty resp. URL oteve /admin nco se ulo転鱈 do Session,
a potom to jde. Jinak zobraz鱈 k坦d chyby HTTP 404
 Michal paek o HTTP hlavik叩ch na DevFestu 2013
HTTP hlaviky 28
 X-XSS-Protection: 1; mode=block; report=https://
 Defaultn v prohl鱈転e鱈ch vypnuto 0,
 Zapnut鱈 se pokus鱈 XSS filtrem opravit k坦d str叩nky (jen odkazem, ne pro stored
skripty!) pozor, riziko, 転e tam stejn probhne 炭tok
 Proto pou転ijte mode=block, str叩nka se v哲bec nezobraz鱈!
 Na URL v parametru report se ode邸le JSON (request-url a request-body) >
funguje pro Webkit a Chrome!
 Podpora IE 8+, Chrome, Safari 4+
HTTP hlaviky: XSS-Protection 29
 Nco jako white list adres server哲, odkud se skripty a dal邸鱈 objekty mohou
do str叩nky stahovat. Pozor, CSP hlavika m哲転e b箪t docela velk叩!
 Content-Security-Policy:
 default-src 'self'; nate jen zdroje (skripty, obr叩zky) z dom辿ny, na kter辿 je str叩nka
 default-src 'self'; img-src 'self' url; povol鱈 obr叩zky z url dom辿ny
 default-src 'none'; v邸echno zak叩転e, a postupn to povol鱈m
 script-src 'unsafe-inline' url; umo転n鱈 inline skripty z url adresy
 frame-src url; umo転n鱈 naten鱈 iframe z url
 form-action 'self'; uruje, kam se mohou odes鱈lat formul叩e (pozor na HTML5)
 report-uri url; m哲転ete pou転鱈t i slu転bu report-uri.io (pehledn箪 dashboard)
 Content-Security-Policy-Report-Only: neblokuje obsah, vytv叩鱈 reporty
 Podpora IE 10+, Firefox 4+ (X-Content-Security-Policy), Firefox 25+, Chrome 23+,
Opera 15+ (Content-Security-Policy), lze poslal ob hlaviky.
HTTP hlaviky: Content-Security-Policy 30
 Nem叩 k nim p鱈stup JavaScript, pos鱈laj鱈 se jen mezi serverem a prohl鱈転eem
 Zapnut鱈 v PHP session.cookie_httponly: true;
 Pos鱈l叩n鱈 cookies jen pes zabezpeen辿 HTTPS spojen鱈
session.cookie_secure: true;
 Podpora od IE 6 SP1+
HTTP hlaviky: HTTP-Only Cookie 31
X-Frame-Options DENY
 Obrana proti CSRF 炭tok哲m
 Zabrauje pou転鱈v叩n鱈 iframe pro Clickjacking 炭toky (pr哲hledn箪 frame, na kter箪
user klik叩)
 Podpora IE 8+, Firefox 3.6.9+, Chrome 4.1+, Safari 4+
 Video pro ASP.NET (Altaris)
X-Content-Type-Options nosniff
 Zak叩転e nkter箪m prohl鱈転e哲m odhadovat typ obsahu str叩nky
 Podpora IE 8+, Chrome
HTTP hlaviky: X-Frame-Options a X-Content-Type-Options 32
 HTTP Strict-transport-security max-age=(parametr as)
 Pechod HTTP -> (?) HTTPS pi pesmrov叩n鱈 je rizikov箪
 Man-in-the-middle 炭tok (sslstrip) prohl鱈転e neupdatuje jako https,
user si toho nev邸imne
 Hlavika zajist鱈 upgrade na HTTPS je邸t ped 1. po転adavkem
 S neplatn箪m certifik叩tem nepovol鱈 pokraovat!
 Je to relativn nov叩 hlavika!
 Podpora Chrome 4+, Firefox 4+, Opera 12+
HTTP hlaviky: HTTP Strict-transport-security 33
Pravidla pro vytv叩en鱈 bezpen辿ho k坦du
 Huseby, Sverre H.  Zraniteln箪 k坦d, Computer Press 2006
 Nikdy nepodceujte s鱈lu protivn鱈ka!
 Pokud maj鱈 akce vedlej邸鱈 efekty, pou転鱈vejte pro odesl叩n鱈 po転adavk哲 metodu POST
 Z hlediska serveru neexistuje bezpen箪 klient!
 Nikdy nepou転鱈vejte pro ovov叩n鱈 u転ivatele nebo pro kontrolu p鱈stupov箪ch pr叩v
hlaviku REFERER
 Pi pihl叩邸en鱈 u転ivatele zajistte v転dy vygenerov叩n鱈 nov辿ho identifik叩toru relace!
 Nikdy nepos鱈lejte klient哲m podrobn叩 chybov叩 hl叩邸en鱈!
 Nezapomete identifikovat ka転d箪 metaznak ped叩van箪 do subsyst辿mu
 Metaznaky je nutno o邸etit v転dy, kdy転 pos鱈l叩te data do dal邸鱈ho subsyst辿mu
 V転dy, kdy転 je to mo転n辿, pos鱈lejte data oddlen od 鱈d鱈c鱈ch informac鱈
 D叩vejte pozor na interpretaci znak哲 na v鱈ce 炭rovn鱈ch
Pravidla pro vytv叩en鱈 bezpen辿ho k坦du  I. 35
 Sna転te se ze v邸ech sil uplatovat mechanismus Defense in depth (souasn辿
噛温恢艶噛沿艶艶稼鱈 nkolika mechanismy)
 Nikdy slep ned哲vujte dokumentaci API (nap. vstupn鱈 data)
 Zjistte v邸echny zdroje, odkud data do aplikace vstupuj鱈
 Pozor na neviditelnou bezpenostn鱈 bari辿ru; nezapomete v転dy kontrolovat
v邸echny vstupy
 Pi filtrov叩n鱈 d叩vejte pednost whitelistingu ped blacklistingem
 Nikdy neupravujte neplatn箪 vstup, abyste z nj udlali platn箪
 Vytv叩ejte z叩znamy i na 炭rovni aplikac鱈
 Nikdy nepou転鱈vejte pro testov叩n鱈 噛温恢艶噛沿艶艶稼鱈 skripty b転鱈c鱈 na stran klienta
 Pou転鱈vejte pro vstup vytvoen箪 serverem nep鱈m箪 p鱈stup k dat哲m v転dy,
kdy転 je to mo転n辿
 Ped叩vejte klientovi o vnitn鱈m stavu co nejm辿n informac鱈
Pravidla pro vytv叩en鱈 bezpen辿ho k坦du  II. 36
 Nepedpokl叩dejte, 転e jednotliv辿 po転adavky pich叩zej鱈 v urit辿m poad鱈
 Prov叩djte filtrov叩n鱈 v邸ech dat, a to bez ohledu na jejich p哲vod, pedt鱈m,
ne転 se data zobraz鱈 na webov辿 str叩nce
 Nevytv叩ejte vlastn鱈 kryptografick辿 algoritmy, pou転鱈vejte existuj鱈c鱈
 Nikdy neukl叩dejte hesla v ne邸ifrovan辿 podob
 Nikdy nepou転鱈vejte metodu GET v souvislosti s tajn箪mi informacemi
nebo v souvislosti s identifik叩torem relace
 Pedpokl叩dejte, 転e se zdrojov箪 k坦d na serveru se m哲転e ocitnout v rukou 炭ton鱈k哲
 Bezpenost nen鱈 produkt, ale proces (nikdy nekon鱈c鱈!)
Pravidla pro vytv叩en鱈 bezpen辿ho k坦du  III. 37
Internetov辿 odkazy, literatura
Odkazy na internetu I. 39
 http://crypto-world.info/
 http://www.owasp.org/  OWASP (The Open Web Application Security Project)
 http://kryl.info/clanek/561-bezpecnostni-audit-pres-obed
 http://www.interval.cz  cel叩 ada l叩nk哲 a seri叩l哲 vnovan箪ch problematice bezpenosti
 http://secunia.com/
 http://www.securityfocus.com/
 http://www.cert.org/
 http://kryl.info/clanek/429-top-15-bezpecnostnich-a-hackovacich-nastroju
 http://www.xssed.com/archive/special=1/ 
 http://www.sweb.cz/jobabroad/teorie.htm  teorie spoofingu 
 http://www.dbsvet.cz/view.php?cisloclanku=2008100101
 http://blog.softeu.cz/europen-bezpecnost-na-webu-2008/
 https://www.secpublica.cz/
Odkazy na internetu II. 40
 http://code.google.com/p/browsersec/wiki/Main  bezpenostn鱈 omezen鱈 a probl辿my prohl鱈転e哲
 http://blog.synopsi.com/2009-07-23/test-ssl-certifikaty-slovenskych-a-ceskych-bank
 http://blog.synopsi.com/2009-08-11/dread-analyza-rizik-podle-microsoftu
 http://blog.synopsi.com/2009-09-25/hes-hes-zly-hacker
 http://www.slideshare.net/MedvidekPU/trendy-v-internetov-bezpenosti
 http://www.slideshare.net/synopsi/socialne-siete-navod-pre-deti
 http://www.slideshare.net/synopsi/socilne-siete-a-bezpenos  soci叩ln鱈 s鱈t
 http://www.slideshare.net/synopsi/synopsi-barcamp  trendy
 http://vimeo.com/8869477  platebn鱈 karty
 http://www.lupa.cz/clanky/jak-vas-budou-na-webu-spehovat-v-novem-desetileti/
 http://zdrojak.root.cz/clanky/html5-nova-bezpecnostni-rizika/
 http://blog.synopsi.com/2010-06-15/facebook-a-clickjacking  nezabezpeen箪 Facebook
 http://www.diit.cz/clanek/firefox-3-6-9-konecne-podporuje-zakaz-behu-stranky-v-i-
frame/36935/
 http://html5sec.org/ HTML5 Security Cheatsheet
 http://www.lupa.cz/clanky/myty-o-bezpecnosti-mobilniho-bankovnictvi-jsou-nutna-dlouha-
hesla-a-sms/
 BeEF (The Browser Exploitation Framework)
 Microsoft  Vytv叩鱈me zabezpeen辿 aplikace v Microsoft ASP.NET,
CP Books (Computer Press) 2004
 Taylor, Art; Buege Brian; Layman Randy  Hacking bez tajemstv鱈: Java a J2EE,
Computer Press 2003
 Huseby, Sverre H.  Zraniteln箪 k坦d, Computer Press 2006
 Aulds, Charles  Linux  administrace serveru Apache, Grada 2003
 Po邸mura, Vlastimil  Apache  P鱈ruka spr叩vce WWW serveru,
Computer Press 2002
 Dost叩lek, Libor, a kol.  Velk箪 pr哲vodce protokoly TCP/IP  Bezpenost, Computer Press 2003
 Mitnick, Kevin  Umn鱈 klamu, Helion 2003
  Singh, Simon  Kniha k坦d哲 a 邸ifer, Argo, Doko叩n, 2003
Doporuen叩 literatura 41
 Je velmi d哲le転it辿 si uvdomit, 転e ka転d叩 webov叩 aplikace je potencion叩ln鱈m c鱈lem pro 炭ton鱈ky
a m哲転e b箪t napadena!
 Znovu: Bezpenost je nikdy nekon鱈c鱈 proces!
 Nic se nem叩 peh叩nt, 炭rove 噛温恢艶噛沿艶艶稼鱈 by mla odpov鱈dat charakteru aplikace
a vynalo転en箪m n叩klad哲m. Nem叩 smysl utr叩cet v鱈ce, ne転 z鱈sk叩te.
 Aby byl Internet bezpen箪, mus鱈 se odpov鱈daj鱈c鱈m zp哲sobem chovat v邸ichni v箪voj叩i,
provozovatel辿 i u転ivatel辿 aplikac鱈!
 Veejnost za鱈n叩 vn鱈mat Internet jako rizikov箪 prostor, co転 je v po叩dku; jej鱈 znan叩 叩st v邸ak
bude oek叩vat, 転e ji m叩 ochr叩nit njak叩 st叩tn鱈 autorita  a to v po叩dku nen鱈.  Petr Koubsk箪
Z叩vr 42
Z叩vr, dotazy

More Related Content

TNPW2-2016-04

  • 2. 2 Dobr箪 admin nemus鱈 b箪t paranoidn鱈. Ale hodn to pom叩h叩. Michal A. Val叩邸ek
  • 3. O obecn箪ch bezpenostn鱈ch metodik叩ch O fyzick辿m p鱈stupu osob k po鱈ta哲m, server哲m, 炭lo転i邸t鱈m dat apod. O pravidlech, kde se maj鱈 uskladovat z叩lohovan叩 data O tom, co je nap. redundantn鱈 zdroj, geo-cluster, rootkit, backdoor, nebudeme e邸it problematiku firewall哲, antiviry apod. O hodnocen鱈 rizik, jak se takov叩 anal箪za prov叩d鱈 O s鱈le bezpenostn鱈ch mechanism哲, kl鱈哲, hesel atd. O z叩t転ov辿m testov叩n鱈 aplikac鱈 (MS TFS, HP LoadRunner, JMeter a spol.) O stupn鱈ch 噛温恢艶噛沿艶艶稼鱈 OS (Common Criteria) O pr叩vn鱈 a ekonomick辿 str叩nce bezpenosti O soci叩ln鱈m in転en箪rstv鱈 (pette si Kevina Mitnicka ) Problematika bezpenosti je velice komplexn鱈 oblast, proto se budeme na pedn叩邸ce vnovat jen jej鱈 mal辿 叩sti O em pedn叩邸ka nebude? 3
  • 4. Na co si d叩t z bezpenostn鱈ho hlediska pozor pi n叩vrhu, programov叩n鱈, testov叩n鱈, konfiguraci a provozu aplikace ada bezpenostn鱈ch incident哲 je zp哲sobena chybou v aplikaci, jej鱈 邸patnou konfigurac鱈 nebo nastaven鱈m provozn鱈ho prosted鱈 Toto v邸echno lze relativn jednodu邸e ovlivnit, kdy転 o tom v鱈te O em pedn叩邸ka bude? 4
  • 5. Agenda Bezpenost? Z叩kladn鱈 pojmy Autentizan鱈 mechanismy Nejastj邸鱈 chyby v 噛温恢艶噛沿艶艶稼鱈 HTTP hlaviky Pravidla pro vytv叩en鱈 bezpen辿ho k坦du Internet, doporuen叩 literatura Z叩vr 5
  • 6. Bezpenost je nikdy nekon鱈c鱈 proces! 100% spolehliv辿 噛温恢艶噛沿艶艶稼鱈 IS neexistuje, je nutn辿 po鱈tat se selh叩n鱈m! Je obt鱈転n辿 pipravit aplikaci na ka転d箪 potencion叩ln鱈 炭tok Nejslab邸鱈m l叩nkem ka転d辿ho IS je obvykle jeho u転ivatel Zabezpeen鱈 mus鱈 b箪t integr叩ln鱈 sou叩st鱈 z叩kladn鱈ho n叩vrhu syst辿mu! rove (m鱈ra) 噛温恢艶噛沿艶艶稼鱈 v転dy ovlivuje v箪slednou cenu aplikace Anal箪za bezpenostn鱈ch rizik (nap. dle ISO) se proto prov叩d鱈 ve spolupr叩ci se zadavatelem (z叩kazn鱈kem) Nejcennj邸鱈 叩st鱈 IS jsou obvykle ulo転en叩 data! I chybn叩 implementace bezpenostn鱈ch pravidel je lep邸鱈 ne転 転叩dn叩! Dejte si pozor na vnitn鱈ho nep鱈tele! Je jednodu邸邸鱈 pesvdit nkoho s vnitn鱈m opr叩vnn鱈m, ne転 to v邸echno dlat s叩m zvenku Co byste mli vdt o bezpenosti? 6
  • 7. Nikdy nevte dat哲m od klient哲! Udlujte pouze nejnutnj邸鱈 p鱈stupov叩 pr叩va, v鱈ce 炭rovn鱈 = v鱈ce hesel V転dy pou転鱈vejte nejjednodu邸邸鱈 e邸en鱈 (minimalismus) Nikdy nezakl叩dejte bezpenost na utajen鱈! Chrate citliv辿 炭daje (nap. 邸ifrov叩n鱈m), neveejn辿 informace um鱈stte mimo veejnou oblast Instalujte jen nejnutnj邸鱈 SW Hl鱈dejte si bezpenostn鱈 d鱈ry v pou転鱈van辿m SW Pesute weby na nesyst辿mov箪 disk Sledujte logy a statistiky Z叩kladn鱈 pravidla (program叩torsk箪 pud sebez叩chovy) 7
  • 9. Identifikace Kdo jsi? Autentizace Proces oven鱈 identity (jm辿no a heslo, certifik叩t apod.) Klient nco v鱈 (heslo, PIN) Klient nco m叩 (kalkul叩tor, priv叩tn鱈 kl鱈) Klient n鱈m je, nebo se njak chov叩 (biometriky) Autorizace Opr叩vnn鱈 k pou転it鱈 konkr辿tn鱈 slu転by SSO (Single Sign-On) u転ivatel se jednou pihl叩s鱈 (prok叩転e identitu) a v r叩mci jedn辿 relace z鱈sk叩 p鱈stup k r哲zn箪m aplikac鱈m (b転n辿 u tzv. port叩lov箪ch slu転eb) e邸en鱈 obvykle vyu転鱈v叩 https, tzv. adres叩ov辿 slu転by (nap. LDAP, OIM) a centr叩ln鱈 Federan鱈 server, kter箪 autentizaci u転ivatele zaji邸泥uje a vyd叩v叩 jednotliv箪m aplikac鱈m tzv. SAML token s p鱈slu邸n箪mi 炭daji o identit u転ivatele Vlastn鱈 autorizaci si n叩sledn u ka転d辿ho autentizovan辿ho u転ivatele zaji邸泥uje ka転d叩 aplikace sama! Z叩kladn鱈 pojmy 9
  • 10. Symetrick叩 komunikace spolen箪 kl鱈 pro ob strany HMAC kontroln鱈 souet (hash) pen叩邸en箪ch informac鱈 se sol鱈 (s哲l = n叩hodn辿 znaky) Nen鱈 nepopirateln叩 (kl鱈 je zn叩m obma komunikuj鱈c鱈m stran叩m) Nesm鱈 doj鱈t ke kompromitaci kl鱈e, pozor na vnitn鱈ho nep鱈tele! Nez叩vis鱈 na s鱈le pou転it辿ho hash algoritmu (funguje i slab邸鱈 MD5), Jde pou転鱈t GET Asymetrick叩 komunikace pou転it鱈 dvojice RSA kl鱈哲 (private, public) Je nepopirateln叩 (v箪jimkou je zapen鱈 doruen鱈 zpr叩vy, nedostanu odpov) Mnohem bezpenj邸鱈 zp哲sob komunikace, ale pen叩邸鱈 se v鱈ce dat (certifik叩ty) Je nutn辿 dobe zabezpeit 炭lo転i邸t priv叩tn鱈ch kl鱈哲 Nelze pou転鱈t metodu GET Z叩kladn鱈 pojmy II. 10
  • 11. Digit叩ln鱈 certifik叩t Datov叩 struktura identifikuj鱈c鱈 jej鱈ho dr転itele pi el. komunikaci B箪v叩 ulo転en buto v souboru nebo na HW za鱈zen鱈 Je uren k podepisov叩n鱈 a 邸ifrov叩n鱈 dat Podobu certifik叩t哲 stanovuje norma X.509 Vyd叩v叩 ho certifikan鱈 autorita, m哲転e odvolat jeho platnost pes CRL PKI (Public Key Infrastructure) Prosted鱈 pro ochranu informan鱈ch syst辿m哲, elektronick箪ch transakc鱈 a komunikace Zahrnuje ve邸ker箪 software, technologie a slu転by, kter辿 vyu転鱈vaj鱈 邸ifrov叩n鱈 s veejn箪m a priv叩tn鱈m kl鱈em (podpis ve form叩tu PKCS7) Pozor na kompromitaci priv叩tn鱈ch kl鱈哲 >> PROBLM Z叩kladn鱈 pojmy III. 11
  • 12. V souasn辿 dob nelze p鱈mo prov叩dt ve webov箪ch aplikac鱈ch 転叩dn辿 kryptografick辿 operace (邸ifrov叩n鱈, podepisov叩n鱈) v JavaScriptu na stran klienta JavaScript m叩 probl辿m s dostaten bezpen箪m gener叩torem n叩hodn箪ch 鱈sel 炭lo転i邸tm kl鱈哲 a d哲vryhodn箪m doruen鱈m kryptografick辿ho zdrojov辿ho k坦du Prohl鱈転ee podporuj鱈 pouze zabezpeen辿 spojen鱈 mezi klientem a serverem (SSL, TLS) Obas je nutn辿 za邸ifrovat data (zpr叩vu, soubor) tak, aby je samotn箪 server nemohl roz邸ifrovat bez njak辿 podp哲rn辿 aplikace to dnes nejde Mo転n辿 e邸en鱈 draft Web Cryptography API (W3C) http://tech.ihned.cz/geekosfera/c1-60754800-webcrytoapi-sifrovani-webove-aplikace Kryptografick辿 operace ve webov箪ch aplikac鱈ch? 12
  • 13. C鱈lem je zajistit v邸em opr叩vnn箪m u転ivatel哲m bezpen箪 p鱈stup k poskytovan箪m slu転b叩m a informac鱈m Webov辿 aplikace pou転鱈vaj鱈 jednoduch辿 i v鱈ce-faktorov辿 autentizan鱈 mechanismy Vyu転鱈vaj鱈 se jm辿na + hesla, adres叩ov辿 slu転by, certifik叩ty, PINy, biometriky apod. Bezpen箪 p鱈stup zahrnuje nap.: Oven鱈 identity u転ivatele 転叩daj鱈c鱈ho o p鱈stup Autorizaci (opr叩vnn鱈) tohoto u転ivatele Bezpen箪 (邸ifrovan箪, SSL) penos komunikace mezi u転ivatelem a serverem Integritu (pravost) informac鱈 ped叩van箪ch mezi komunikuj鱈c鱈mi stranami Velmi popul叩rn鱈 a 炭inn辿 jsou autentizan鱈 mechanismy zalo転en辿 na PKI, kdy ka転d箪 炭astn鱈k (u転ivatel a slu転ba) m叩 vyd叩n vlastn鱈 certifik叩t veejn辿ho kl鱈e podepsan箪 d哲vryhodnou certifikan鱈 autoritou http://www.ics.muni.cz/zpravodaj/articles/522.html http://si.vse.cz/archive/proceedings/2001/autentizacni-mechanismy.pdf Autentizan鱈 mechanismy 13
  • 14. V箪br vhodn辿ho autentizan鱈ho mechanismu z叩vis鱈 na cel辿 ad krit辿ri鱈 Kdo je u転ivatelem? Zamstnanec vs. Z叩kazn鱈k (klient) O jakou operaci jde? Pasivn鱈 (ten鱈 informace) vs. Aktivn鱈 (zmna dat) Kdo m叩 kontrolu nad prosted鱈m? Provozovatel vs. u転ivatel vs. tet鱈 strana N叩klady, po転adavky na HW a SW http://si.vse.cz/archive/proceedings/2001/autentizacni-mechanismy.pdf V箪br autentizan鱈ho mechanismu 14
  • 15. Nejastj邸鱈 chyby v 噛温恢艶噛沿艶艶稼鱈
  • 16. Klient Webov箪 prohl鱈転e (bugy, podsouv叩n鱈 k坦du) Komunikace Pou転it辿 protokoly, Odposlech komunikace, Pesmrov叩n鱈 komunikace, Slab辿 邸ifrov叩n鱈 Webov箪 server Bugy, konfigurace, logy Aplikace a data Autentizace, opr叩vnn鱈, 鱈zen鱈 p鱈stupu, validace vstup哲 a v箪stup哲, manipulace s datab叩z鱈 http://www.slideshare.net/DCIT/bezpenos-webovch-aplikci S鱈t tvo鱈 hardware, software a velmi dlouh辿 dr叩ty V podstat libovoln叩 叩st m哲転e selhat nebo b箪t napadena, po鱈tejte s t鱈m! Potencion叩ln slab叩 m鱈sta v 噛温恢艶噛沿艶艶稼鱈 16
  • 17. The top 10 reasons Web sites get hacked Jon Brodkin (InfoWorld.com) The Open Web Application Security Project (OWASP) Neziskovka zamen叩 na bezpenost V箪born箪 zdroj informac鱈! Vyd叩v叩 転eb鱈ky nejastj邸鱈ch chyb Top 10 za rok 2013 Cross Site Scripting (XSS) * Chyby umo転uj鱈c鱈 炭toky typu SQL/Script injection * Vnucen箪 po転adavek (Cross-Site Request Forgery, CSRF) * nik informac鱈 a nespr叩vn辿 o邸eten鱈 chyb * Naru邸en叩 spr叩va autentizace a session management Nezabezpeen辿 ulo転en鱈 kryptografick箪ch dat Nezabezpeen辿 炭lo転i邸t dat, p鱈stup do datab叩ze Nechr叩nn叩 komunikace Nejastj邸鱈 chyby v 噛温恢艶噛沿艶艶稼鱈 webov箪ch aplikac鱈 I. 17
  • 18. Nekontrolovan箪 vstup dat od u転ivatel哲 * Nedostaten叩 vnitn鱈 kontrola (u転ivatel辿, Broken access control, integrace) Peteen鱈 vyrovn叩vac鱈 pamti (Buffer Overflow) Nepodaen箪 z叩kaz p鱈m辿ho p鱈stupu k objektu Nevalidn鱈 redirect a forwarding na webov辿m serveru Pou転鱈v叩n鱈 komponent se zn叩mou zranitelnost鱈 Denial of Service (DoS) * Clickjacking (炭tok pekr箪v叩n鱈m vizu叩ln鱈ch vrstev aplikace) Nezabezpeen叩 konfiguran鱈 spr叩va * Nevyu転鱈v叩n鱈 log哲 * Pozn叩mka: Velmi ast箪 je kombinovan箪 炭tok na slab zabezpeen叩 m鱈sta aplikace! http://zdrojak.root.cz/clanky/prehled-utoku-na-webove-aplikace/ http://www.sectheory.com/clickjacking.htm Nejastj邸鱈 chyby v 噛温恢艶噛沿艶艶稼鱈 webov箪ch aplikac鱈 II. 18
  • 19. Nikdy nevte vstupn鱈m dat哲m od u転ivatel哲! Kdokoli m哲転e poslat jak叩koliv data Chyba (aplikace, u転ivatele), neznalost, zl箪 炭mysl Obrana Ped vlastn鱈m zpracov叩n鱈m vstupn鱈ch dat prov叩dt jejich d哲slednou validaci, nap.: Pi邸lo to, co oek叩v叩m? Odpov鱈daj鱈 typy promnn箪ch? Co d辿lka etzc哲? Jsou zaslan辿 hodnoty p鱈pustn辿 (鱈seln鱈ky)? Nebyl zasl叩n njak箪 nebezpen箪 obsah (kolizn鱈 znaky, SQL p鱈kazy)? Validaci (kontrolu) vstupn鱈ch dat lze prov叩dt na stran klienta (tady m哲転u) a na stran serveru (a tady mus鱈m!) Nekontrolovan箪 vstup dat od u転ivatel哲 19
  • 20. Webov叩 aplikace pou転鱈v叩 zas鱈lan辿 parametry k p鱈stupu na extern鱈 syst辿my nebo k operan鱈mu syst辿mu Pokud 炭ton鱈k dok叩転e tyto parametry pozmnit (nap. SQL dotaz) a pipojit vlastn鱈 k坦d, extern鱈 syst辿m tyto p鱈kazy spust鱈 s opr叩vnn鱈mi serveru Obrana Striktn鱈 typovost dat, valid叩tory, regul叩rn鱈 v箪razy ve filtrech, HTML encoding, kontrola vstupu i v箪stupu, pou転鱈v叩n鱈 parametr哲 pro vkl叩d叩n鱈 do SQL p鱈kaz哲 Z叩vadn箪 obsah se do aplikace m哲転e dostat nejen ze strany u転ivatele (formul叩), ale i prostednictv鱈m integrovan箪ch aplikac鱈 tet鱈ch stran, po鱈tejte s t鱈m! https://www.owasp.org/index.php/Top_10_2013-A1-Injection http://php.vrana.cz/obrana-proti-sql-injection.php http://videoarchiv.altairis.cz/Entry/11-sql-injection.aspx Vkl叩d叩n鱈 neautorizovan辿ho k坦du (SQL/Script injection) 20
  • 21. Webov叩 aplikace m哲転e b箪t pou転ita jako mechanismus pro penesen鱈 炭toku p鱈mo do internetov辿ho prohl鱈転ee u転ivatele >> po邸le mu z叩vadn箪 k坦d, kter箪 se v prohl鱈転ei nate a interpretuje sp邸n箪 炭tok m哲転e odhalit pihla邸ovac鱈 炭daje u転ivatele, umo転nit 炭tok na u転ivatel哲v po鱈ta nebo podvrhnout obsah str叩nky k oklam叩n鱈 u転ivatele Vlo転en箪 skript (m哲転e b箪t i extern鱈) m叩 p鱈stup ke cookies a pes DOM i k obsahu str叩nky, v jej鱈m転 kontextu b転鱈! Obrana Validace vstupn鱈ch dat, HTML encoding, kontrola v箪stup哲 na str叩nku apod. XSS (OWASP) XSS Filter Evasion Cheat Sheet Pedn叩邸ka Michala paka o XSS (Youtube.com) XSS (Cross Site Scripting) 21
  • 22. Webov箪 trojsk箪 k哲, prov叩d鱈 se skryt na pozad鱈 tok prob鱈h叩 ze str叩nky, kterou kontroluje 炭ton鱈k (soci叩ln鱈 ing.) Zfal邸ov叩n鱈 HTTP po転adavku, nap. vlo転en鱈m skriptu do tagu pro obr叩zek apod. Nepozorovan prov叩d鱈 pod identitou u転ivatele, kter箪 na odkaz kliknul, njakou skrytou a vt邸inou nep鱈jemnou innost Obrana D哲sledn叩 kontrola vstup哲 a v箪stup哲, autentizan鱈 token pro formul叩, kontrola hlaviky HTTP REFERRER (odkud je po転adavek >> nen鱈 100% = spoofing), formul叩ov辿 炭daje ped叩vat metodou POST, HTTP X-Frame-Options DENY CSRF (OWASP) http://zdrojak.root.cz/clanky/co-je-cross-site-request-forgery-a-jak-se-branit/ http://php.vrana.cz/cross-site-request-forgery.php http://zdrojak.root.cz/clanky/html5-nova-bezpecnostni-rizika/ Vnucen箪 po転adavek (Cross-Site Request Forgery, CSRF) 22
  • 23. ton鱈k se 炭mysln pokou邸鱈 vyvol叩vat chyby, kter辿 aplikace neo邸etuje korektn D鱈ky informac鱈m o chyb se m哲転e dostat k detailn鱈m informac鱈m o cel辿m syst辿mu, kter辿 lze n叩sledn zneu転鱈t >> z鱈skat citliv辿 informace, zak叩zat celou slu転bu, obej鱈t bezpenostn鱈 mechanismus nebo zp哲sobit p叩d serveru Obrana Validace vstupn鱈ch dat D哲sledn o邸etovat a testovat chybov辿 stavy >> pou転鱈vat v箪jimky! Nevypisovat chybov叩 hl叩邸en鱈 tzv. z v箪roby, ale upravit je tak, aby z nich nebylo mo転n辿 z鱈skat informace kompromituj鱈c鱈 aplikaci Dokumentovat nastal辿 chyby do logu a pr哲b転n prov叩dt jejich kontrolu! Information Leakage and Improper Error Handling (OWASP) nik informac鱈, nespr叩vn辿 o邸etov叩n鱈 chyb 23
  • 24. ton鱈k m哲転e pet鱈転it syst辿m samostatn leg叩ln鱈mi po転adavky >> dal邸鱈 opr叩vnn鱈 u転ivatel辿 nemohou slu転bu nad叩le pou転鱈vat nebo k n鱈 pistupovat Pro distribuovan辿 DoS 炭toky (DDoS) se pou転鱈vaj鱈 s鱈t tzv. bot哲 >> atak prob鱈h叩 z nkolika stovek nebo tis鱈c哲 po鱈ta哲 najednou Obrana Jsou-li p鱈inou chyby v aplikaci (nen鱈 to ast辿), lze je odstranit Pi 炭toku z jednoho m鱈sta lze pou転鱈t blokov叩n鱈 IP adresy Jinak 100% spolehliv叩 ochrana neexistuje, zvl叩邸t u distribuovan箪ch DDoS 炭tok哲 je obrana velmi obt鱈転n叩 toky typu DoS (seri叩l Lupa) http://www.root.cz/zpravicky/internet-byl-napaden-silou-40-gbps DDoS (wiki) DoS 炭tok (Denial of Service) 24
  • 25. Velk辿 konfiguran鱈 n叩roky na server (OS + instalovan箪 SW) mohou m鱈t 邸patn箪 vliv na 噛温恢艶噛沿艶艶稼鱈 webov辿 aplikace Mnoho konfiguran鱈ch mo転nost鱈 ovlivuje i bezpenost aplikace v p鱈pad 邸patn辿ho nastaven鱈 V鱈ce mo転nost鱈 >> v鱈ce chyb >> v鱈ce bezpenostn鱈ch dr! Obrana Peliv叩 (pehledn叩 a zdokumentovan叩) konfigurace prosted鱈 D哲sledn叩 eliminace v箪choz鱈ch opr叩vnn鱈, 炭t哲 a hesel Instalujte jen nutn箪 SW! P鱈stup ke konfiguraci maj鱈 m鱈t pouze povolan辿 osoby s vlastn鱈mi 炭ty (vnitn鱈 nep鱈tel) Sledov叩n鱈 zmn v konfiguran鱈ch souborech, nap. syst辿mem pro 鱈zen鱈 konfigurace (spr叩vu zdrojov辿ho k坦du, verzov叩n鱈) Nezabezpeen叩 konfiguran鱈 spr叩va 25
  • 26. Pr叩ce s logy je nesm鱈rn d哲le転it叩! Logovat lze v IS t辿m cokoliv a kdykoliv (v箪voj, testov叩n鱈, provoz) Pi vhodn辿m nastaven鱈 pravidel jsou logy v箪born箪m pomocn鱈kem pi monitorov叩n鱈 aktu叩ln鱈ch nebo mo転n箪ch budouc鱈ch nedostatk哲 v 噛温恢艶噛沿艶艶稼鱈 aplikace Je vhodn辿 zamezit neautorizovan辿 manipulaci s logy (nap. elektronick箪m podpisem) ast辿 chyby pi spr叩v log哲 Logy nejsou pou転鱈v叩ny Logy jsou pou転鱈v叩ny, ale nejsou prohl鱈転eny Logy jsou ukl叩d叩ny na p鱈li邸 kr叩tkou dobu Jsou upednostnny jen nkter辿 logy Jsou ignorov叩ny logy aplikac鱈 Jsou prohl鱈転eny jen ty log哲, kde v鱈me, 転e jsou probl辿my Pozor na Log Injection, m哲転e k nmu doj鱈t Six Mistakes of Log Management Anton Chuvakin (PDF) Logy 26
  • 28. Do HTTP hlaviky m哲転u napsat skoro cokoliv! GET url/file HTTP/1.0 HOST: njak箪 k坦d v JavaScriptu K坦d v JS se provede na URL adrese str叩nky a je mal辿r! Doporuen鱈: Obalit i HTTP hlaviky serveru ped v箪pisem na str叩nku pes HTMLSpecialChar funkce P鱈m辿mu p鱈stupu na citliv辿 URL adresy (/admin) lze zamezit pes tzv. port knocking. Spr叩vn叩 sekvence klep叩n鱈 na porty resp. URL oteve /admin nco se ulo転鱈 do Session, a potom to jde. Jinak zobraz鱈 k坦d chyby HTTP 404 Michal paek o HTTP hlavik叩ch na DevFestu 2013 HTTP hlaviky 28
  • 29. X-XSS-Protection: 1; mode=block; report=https:// Defaultn v prohl鱈転e鱈ch vypnuto 0, Zapnut鱈 se pokus鱈 XSS filtrem opravit k坦d str叩nky (jen odkazem, ne pro stored skripty!) pozor, riziko, 転e tam stejn probhne 炭tok Proto pou転ijte mode=block, str叩nka se v哲bec nezobraz鱈! Na URL v parametru report se ode邸le JSON (request-url a request-body) > funguje pro Webkit a Chrome! Podpora IE 8+, Chrome, Safari 4+ HTTP hlaviky: XSS-Protection 29
  • 30. Nco jako white list adres server哲, odkud se skripty a dal邸鱈 objekty mohou do str叩nky stahovat. Pozor, CSP hlavika m哲転e b箪t docela velk叩! Content-Security-Policy: default-src 'self'; nate jen zdroje (skripty, obr叩zky) z dom辿ny, na kter辿 je str叩nka default-src 'self'; img-src 'self' url; povol鱈 obr叩zky z url dom辿ny default-src 'none'; v邸echno zak叩転e, a postupn to povol鱈m script-src 'unsafe-inline' url; umo転n鱈 inline skripty z url adresy frame-src url; umo転n鱈 naten鱈 iframe z url form-action 'self'; uruje, kam se mohou odes鱈lat formul叩e (pozor na HTML5) report-uri url; m哲転ete pou転鱈t i slu転bu report-uri.io (pehledn箪 dashboard) Content-Security-Policy-Report-Only: neblokuje obsah, vytv叩鱈 reporty Podpora IE 10+, Firefox 4+ (X-Content-Security-Policy), Firefox 25+, Chrome 23+, Opera 15+ (Content-Security-Policy), lze poslal ob hlaviky. HTTP hlaviky: Content-Security-Policy 30
  • 31. Nem叩 k nim p鱈stup JavaScript, pos鱈laj鱈 se jen mezi serverem a prohl鱈転eem Zapnut鱈 v PHP session.cookie_httponly: true; Pos鱈l叩n鱈 cookies jen pes zabezpeen辿 HTTPS spojen鱈 session.cookie_secure: true; Podpora od IE 6 SP1+ HTTP hlaviky: HTTP-Only Cookie 31
  • 32. X-Frame-Options DENY Obrana proti CSRF 炭tok哲m Zabrauje pou転鱈v叩n鱈 iframe pro Clickjacking 炭toky (pr哲hledn箪 frame, na kter箪 user klik叩) Podpora IE 8+, Firefox 3.6.9+, Chrome 4.1+, Safari 4+ Video pro ASP.NET (Altaris) X-Content-Type-Options nosniff Zak叩転e nkter箪m prohl鱈転e哲m odhadovat typ obsahu str叩nky Podpora IE 8+, Chrome HTTP hlaviky: X-Frame-Options a X-Content-Type-Options 32
  • 33. HTTP Strict-transport-security max-age=(parametr as) Pechod HTTP -> (?) HTTPS pi pesmrov叩n鱈 je rizikov箪 Man-in-the-middle 炭tok (sslstrip) prohl鱈転e neupdatuje jako https, user si toho nev邸imne Hlavika zajist鱈 upgrade na HTTPS je邸t ped 1. po転adavkem S neplatn箪m certifik叩tem nepovol鱈 pokraovat! Je to relativn nov叩 hlavika! Podpora Chrome 4+, Firefox 4+, Opera 12+ HTTP hlaviky: HTTP Strict-transport-security 33
  • 34. Pravidla pro vytv叩en鱈 bezpen辿ho k坦du
  • 35. Huseby, Sverre H. Zraniteln箪 k坦d, Computer Press 2006 Nikdy nepodceujte s鱈lu protivn鱈ka! Pokud maj鱈 akce vedlej邸鱈 efekty, pou転鱈vejte pro odesl叩n鱈 po転adavk哲 metodu POST Z hlediska serveru neexistuje bezpen箪 klient! Nikdy nepou転鱈vejte pro ovov叩n鱈 u転ivatele nebo pro kontrolu p鱈stupov箪ch pr叩v hlaviku REFERER Pi pihl叩邸en鱈 u転ivatele zajistte v転dy vygenerov叩n鱈 nov辿ho identifik叩toru relace! Nikdy nepos鱈lejte klient哲m podrobn叩 chybov叩 hl叩邸en鱈! Nezapomete identifikovat ka転d箪 metaznak ped叩van箪 do subsyst辿mu Metaznaky je nutno o邸etit v転dy, kdy転 pos鱈l叩te data do dal邸鱈ho subsyst辿mu V転dy, kdy転 je to mo転n辿, pos鱈lejte data oddlen od 鱈d鱈c鱈ch informac鱈 D叩vejte pozor na interpretaci znak哲 na v鱈ce 炭rovn鱈ch Pravidla pro vytv叩en鱈 bezpen辿ho k坦du I. 35
  • 36. Sna転te se ze v邸ech sil uplatovat mechanismus Defense in depth (souasn辿 噛温恢艶噛沿艶艶稼鱈 nkolika mechanismy) Nikdy slep ned哲vujte dokumentaci API (nap. vstupn鱈 data) Zjistte v邸echny zdroje, odkud data do aplikace vstupuj鱈 Pozor na neviditelnou bezpenostn鱈 bari辿ru; nezapomete v転dy kontrolovat v邸echny vstupy Pi filtrov叩n鱈 d叩vejte pednost whitelistingu ped blacklistingem Nikdy neupravujte neplatn箪 vstup, abyste z nj udlali platn箪 Vytv叩ejte z叩znamy i na 炭rovni aplikac鱈 Nikdy nepou転鱈vejte pro testov叩n鱈 噛温恢艶噛沿艶艶稼鱈 skripty b転鱈c鱈 na stran klienta Pou転鱈vejte pro vstup vytvoen箪 serverem nep鱈m箪 p鱈stup k dat哲m v転dy, kdy転 je to mo転n辿 Ped叩vejte klientovi o vnitn鱈m stavu co nejm辿n informac鱈 Pravidla pro vytv叩en鱈 bezpen辿ho k坦du II. 36
  • 37. Nepedpokl叩dejte, 転e jednotliv辿 po転adavky pich叩zej鱈 v urit辿m poad鱈 Prov叩djte filtrov叩n鱈 v邸ech dat, a to bez ohledu na jejich p哲vod, pedt鱈m, ne転 se data zobraz鱈 na webov辿 str叩nce Nevytv叩ejte vlastn鱈 kryptografick辿 algoritmy, pou転鱈vejte existuj鱈c鱈 Nikdy neukl叩dejte hesla v ne邸ifrovan辿 podob Nikdy nepou転鱈vejte metodu GET v souvislosti s tajn箪mi informacemi nebo v souvislosti s identifik叩torem relace Pedpokl叩dejte, 転e se zdrojov箪 k坦d na serveru se m哲転e ocitnout v rukou 炭ton鱈k哲 Bezpenost nen鱈 produkt, ale proces (nikdy nekon鱈c鱈!) Pravidla pro vytv叩en鱈 bezpen辿ho k坦du III. 37
  • 39. Odkazy na internetu I. 39 http://crypto-world.info/ http://www.owasp.org/ OWASP (The Open Web Application Security Project) http://kryl.info/clanek/561-bezpecnostni-audit-pres-obed http://www.interval.cz cel叩 ada l叩nk哲 a seri叩l哲 vnovan箪ch problematice bezpenosti http://secunia.com/ http://www.securityfocus.com/ http://www.cert.org/ http://kryl.info/clanek/429-top-15-bezpecnostnich-a-hackovacich-nastroju http://www.xssed.com/archive/special=1/ http://www.sweb.cz/jobabroad/teorie.htm teorie spoofingu http://www.dbsvet.cz/view.php?cisloclanku=2008100101 http://blog.softeu.cz/europen-bezpecnost-na-webu-2008/ https://www.secpublica.cz/
  • 40. Odkazy na internetu II. 40 http://code.google.com/p/browsersec/wiki/Main bezpenostn鱈 omezen鱈 a probl辿my prohl鱈転e哲 http://blog.synopsi.com/2009-07-23/test-ssl-certifikaty-slovenskych-a-ceskych-bank http://blog.synopsi.com/2009-08-11/dread-analyza-rizik-podle-microsoftu http://blog.synopsi.com/2009-09-25/hes-hes-zly-hacker http://www.slideshare.net/MedvidekPU/trendy-v-internetov-bezpenosti http://www.slideshare.net/synopsi/socialne-siete-navod-pre-deti http://www.slideshare.net/synopsi/socilne-siete-a-bezpenos soci叩ln鱈 s鱈t http://www.slideshare.net/synopsi/synopsi-barcamp trendy http://vimeo.com/8869477 platebn鱈 karty http://www.lupa.cz/clanky/jak-vas-budou-na-webu-spehovat-v-novem-desetileti/ http://zdrojak.root.cz/clanky/html5-nova-bezpecnostni-rizika/ http://blog.synopsi.com/2010-06-15/facebook-a-clickjacking nezabezpeen箪 Facebook http://www.diit.cz/clanek/firefox-3-6-9-konecne-podporuje-zakaz-behu-stranky-v-i- frame/36935/ http://html5sec.org/ HTML5 Security Cheatsheet http://www.lupa.cz/clanky/myty-o-bezpecnosti-mobilniho-bankovnictvi-jsou-nutna-dlouha- hesla-a-sms/ BeEF (The Browser Exploitation Framework)
  • 41. Microsoft Vytv叩鱈me zabezpeen辿 aplikace v Microsoft ASP.NET, CP Books (Computer Press) 2004 Taylor, Art; Buege Brian; Layman Randy Hacking bez tajemstv鱈: Java a J2EE, Computer Press 2003 Huseby, Sverre H. Zraniteln箪 k坦d, Computer Press 2006 Aulds, Charles Linux administrace serveru Apache, Grada 2003 Po邸mura, Vlastimil Apache P鱈ruka spr叩vce WWW serveru, Computer Press 2002 Dost叩lek, Libor, a kol. Velk箪 pr哲vodce protokoly TCP/IP Bezpenost, Computer Press 2003 Mitnick, Kevin Umn鱈 klamu, Helion 2003 Singh, Simon Kniha k坦d哲 a 邸ifer, Argo, Doko叩n, 2003 Doporuen叩 literatura 41
  • 42. Je velmi d哲le転it辿 si uvdomit, 転e ka転d叩 webov叩 aplikace je potencion叩ln鱈m c鱈lem pro 炭ton鱈ky a m哲転e b箪t napadena! Znovu: Bezpenost je nikdy nekon鱈c鱈 proces! Nic se nem叩 peh叩nt, 炭rove 噛温恢艶噛沿艶艶稼鱈 by mla odpov鱈dat charakteru aplikace a vynalo転en箪m n叩klad哲m. Nem叩 smysl utr叩cet v鱈ce, ne転 z鱈sk叩te. Aby byl Internet bezpen箪, mus鱈 se odpov鱈daj鱈c鱈m zp哲sobem chovat v邸ichni v箪voj叩i, provozovatel辿 i u転ivatel辿 aplikac鱈! Veejnost za鱈n叩 vn鱈mat Internet jako rizikov箪 prostor, co転 je v po叩dku; jej鱈 znan叩 叩st v邸ak bude oek叩vat, 転e ji m叩 ochr叩nit njak叩 st叩tn鱈 autorita a to v po叩dku nen鱈. Petr Koubsk箪 Z叩vr 42