Bezpečnost webových aplikací http://www.bezpecnost-webovych-aplikaci.cz/
Search
Začátek
Bezpečnost webových aplikací Luboš Matějka
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Bezpečnost čeho ?
• Zneužití – Data na serveru – Data uživatelů na PC – Odesílaná data • Odmítnutí – Kompromitace serveru – Odmítnutí služeb
Search
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/ Oblasti
bezpečnosti WWW
• Server – Prostředí, aplikace, dostupnost ...
• Programátor – Zdrojový kod, špatné
• Prostředí – SSL, DNSSEC, Viry, ...
• Uživatel – Čemu věřit, co zadávat a kam ....
Search
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Server
• • • • • •
Sdílené prostředí ? Práva všem? Chroot ? Nepotřebný SW ? Monitorovací služby? Zálohování
Problém NE! ANO! Smazat! Zakázat! ANO ANO ANO
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Co může vadit ?
• Vkládání cizího obsahu – allow_url_include, allow_url_fopen
• Přistup k cizím datům – safe_mode, open_basedir, chroot, práva...
• Nahrávání dat – file_upload, upload_max_filesize – Nahraný soubor nahradí jiný – Může jít spustit
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Musím to vidět ??
• server-status – Kdo, kam, kdy a odkud přistupuje
• phpinfo(), server-info, banner – Verze, nastavení, cesty
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Proměnné
• register_globals
OFF OFF OFF!
– GET přebíhá POST – index.php?stranka=/etc/passwd
• mail() – Spamování, ale kdo to byl ?? – Wrapper přidávající identitu virtuálu – Odesílat přes WWW z jiného portu než 25
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Programátor
Kontrola vstupních dat Problém při práci s databází Ladící výpisy Nepořádek na serveru i v kódu Ukládání citlivých dat Cizí aplikace Bezpečné prostředí
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Kontrola vstupních dat
• Kontrolujte vše! • Mezní hodnoty – index.php?=timeout=10000000 –
• Neoprávněný přístup – index.php?command=edit&id=3
• Validace Javascriptem ?
NE!
– pěkné, ale pro bezpečnost k ničemu
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Práce s databází
• Escapování všech dat! – mysql_real_escape_string() – addslashes() / stripslashes()
• Bindovaní proměnných $bind=mysqli->preprare(„insert into user values(?,?)“); $bind->bind_parm(„pepa“,“pepa“); $bind->execute();
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
XSS – HTML a Javascript
• Vložení obsahu přes formulář • Místo pokus vložím
pokus • Ale mohu i javascript a mám problém – <script src=“http://s.cz/xss2.js“> – replace(//g, '>') – htmlspecialchars()
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
XSS - CSS
• MS IE
“Gecko” - Mozilla, Firefox
x
• WhiteListy + Filter – Programová filtrace – Vlastní – není úplně triviální – Existující, např HTML Purifier • http://htmlpurifier.org/
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
XSS - Zneužití
• Odcizení cookie – Jména, hesla, adresa, telefon, ..... • Přesměrování na jiný obsah – Přihlášení do banky, reklama... • Sběr informací – Vlastně se nic nestane, ale má data má někdo jiný
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Ladící výpisy
• Logování všeho jen do souboru – soubor nenalezen ? – Když něco na obrazovku tak jen pro uživatele – A musí to být vidět ? @mysql_conect(....) – Logování jako zdroj dat po útoku
• Ladící výpisy pod heslem – Produkční server není na ladění
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Nepořádek
• V kódu – V HTML zakomentované části – pryč s nimi – V kódu – hesla v komentářích – V souborech • neco.bak, neco.php~, zaloha.... • Zakázat výpis adresářů • Neumožnit stahování .htaccess, xx.inc, config.ini
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Ukládání citlivých dat
• Citlivá data – Co nemusím, neukládám – Hesla, č. kreditek, maily, RD,OP, č. pasu – Vždy přes POST, GET se ukládá
• Šifrovat ukládání – sha256(náhodná čísla+sha256(cit.data))
• Šifrovat komunikaci – https, kontrolovat a redirectovat
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Bezpečné prostředí
• Aktualizace operačního systému • Aktualizace prohlížeče • Minimalizace doplňků – Sice nevím co to je, ale instaluju ?? NE!
• Co nepoužívám nepotřebuji, tedy zakazuji/mažu • Na sporné prvky se ptám – ActiveX, Java
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Bezpečné prostředí
• Šifrování spojení – Dříve nutná vlastní IP, dnes SNI – Certifikační autority Verisign, Thawte
• DNSSEC – Ověření platnosti záznamu – Podepsané kořenové servery – Cyklické generování
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Uživatel == Problém
• Social engineering – Nikomu nevěř! – Nevíš kde jsi ? Pryč odsud! – Vypadá to podobně, ale ... – Pošlete heslo mailem ?? Nikdy! – Řekněte heslo do telefonu pro ověření? NE!
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Search
Cena za bezpečnost
• Vše něco stojí, bezpečnost dvojnásob – Náročnější HW – šifrovaní – Náklady navíc, certifikáty, testování ... – Menší komfort, captcha, hesla, potvrzování...
• Co je a co není nutné ? – 100% zabezpečení neexistuje – Skládanka, každý dílek pomůže – Čím více tím lépe, ale ...
Your Page Name – Internet Web Browser http://www.bezpecnost-webovych-aplikaci.cz/
Bezpečný konec
Děkuji za pozornost! Dotazy ??
Search