Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Total Cost of Pwnership
1. Total Cost of
Pwnership
Michal Špaček
www.michalspacek.cz
@spazef0rze
Kolik vlastně stojí ta webová bezpečnost? Často slyším nebo čtu názor, že bezpečnost je drahá, že ji zákazník nezaplatí
nebo že ji dokonce ani nechce! (Tyto slajdy jsou doplňeny mými poznámkami, původní verze je neobsahuje.)
2. Total Cost of
Ownership
Název přednášky vychází z pojmu TCO, který znamená celkové náklady na vlastnění něčeho. Ty se liší od pořizovací ceny
a mohou být někdy mnohonásobně vyšší.
4. Fakturujeme Vám
Jenže u nějaké základní webové bezpečnosti je to trochu jinak. Klientovi uděláte web, taky za půl mega, a pak mu ještě
chcete naúčtovat 100k za to, že mu ho uděláte bezpečný?
5. WTF?
Cože? To jako když jdete k zubaři, tak mu taky strkáte kilo do kelímku na vypláchnutí za to, aby si tu jeho vrtačku
nespletl s laparoskopem a nepustil vám ji do břicha? Asi ne, co…
6. OWASP Top 10
Tak proč by vývojáři měli chtít za aspoň trochu bezpečný web nějaký příplatek? Je to služba navíc? Ne, není. Teď se
nebavíme o implementacích bůhvíčeho, ale dejme tomu o základních problémech, které popisuje OWASP Top 10.
7. {$address}
×
{!$address}
Vždyť jaký je rozdíl mezi výpisem proměnné bez jejího ošetření a výpisem proměnné se správným ošetřením třeba v
Nette? Skoro žádný, tak jakejpak příplatek, za co? Jasně, musíte vědět, jak to napsat, ale přesně proto si lidi nechávají
dělat weby u webových vývojářů a ne u truhlářů.
8. $tco++
Ve skutečnosti je celkový náklad na špatně zabezpečený web docela vysoký. Jakmile dojde k nějakému bezpečnostnímu
incidentu, a že k němu někdy nejspíš dojde (a když budete mít štěstí, tak se o něm i dozvíte)…
9. …tak ho musíte vyřešit, co nejrychleji a to jak technicky, tak správnou informovaností zákazníků a obojí stojí nějaké
peníze, nehledě na to, že jste se místo toho chtěli třeba někde válet na pláži.
10. It's not funny
when you're next
Je jasné, že dříve nebo později každý udělá nějakou tu chybu, to se stává, ale fakt velkýmu průšvihu se dá zabránit, třeba
pomocí více vrstev ochrany. Přesně proto hashujeme hesla (ne pomocí MD5 ani SHA-1), chráníme tak naše zákazníky.
12. Pokud někdo u vás na webu najde nějakou chybu, tak má asi tak milion možností, kam ji ohlásit a to, že si vybere zrovna
vás má nějaký důvod a je to docela dobré znamení. Mohl to napsat nejdříve třeba na Twitter nebo Facebook.
13. OpenPGP
Buďte připraveni na to, že vám reporter bude chtít poslat popis chyby nějakým zabezpečeným kanálem (ne, mobilem,
textovkou ani Skypem to nebude), mějte po ruce třeba PGP klíč. V každém případě přijetí reportu pokud možno co
nejdříve potvrďte.
14. Pokud víte, jak dlouho bude trvat oprava, rovnou to do potvrzení připište. Pokud je to něco náročnějšího a hned nevíte,
dejte to reporterovi vědět a v klidu si to odhadněte a pak pošlete další zprávu s odhadem.
15. Hmm?
Až to opravíte, požádejte reportera o ověření vaší opravy, může se totiž stát, že dva dny budete něco opravovat a nakonec
opravíte nějaký úplně jiný problém.
16. Hmmmm?
Pokud náhodou nevíte, co přesně ten reporter myslel nebo jak to opravit, tak se ho zeptejte. Kdyby nechtěl pomoci, tak
vám nepíše. A nebojte, zlí hoši vám problémy na vašem webu hlásit nebudou.
17. Když náhodou někdo ohlásí bug nejdříve vašemu klientovi a ne vám jakožto výrobci webu, tak se na něj nemůžete zlobit.
Rozhodně to není neprofesionální. Neprofesionální je nechat na webu triviální bezpečnostní díry.
18. Nikdo nemá povinnost hlásit chyby vám ani vašemu klientovi, každý si může s nalezenou chybou dělat, co chce. Někdo je
používá na školení bezpečnosti jako odstrašující případy. Jsou dokonce celá školení zaměřená jen na exploitování iOS.
19. Jsou i firmy, které chyby kupují a dál je prodávají různým vládním i nevládním spolkům. Prý je to docela dobrý business.
20. Bezpečnost je míra
ne vlastnost
Pamatujte, že bezpečnost je míra a ne vlastnost, snažte se, abyste tuto míru zbytečně nesnižovali. Držím palce!
Michal Špaček
www.michalspacek.cz
@spazef0rze