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
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
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/
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