home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 January / Chip_2004-01_cd1.bin / redakce / chip_txt / txt / 86-87.TXT < prev    next >
Text File  |  2003-11-24  |  9KB  |  52 lines

  1. BezpeΦnost webov²ch aplikacφ
  2. Chra≥te svß data na webu
  3. O kriminßlnφcφch, kte°φ ke sv²m nekal²m Φin∙m vyu₧φvajφ poΦφtaΦov²ch sφtφ, jste u₧ mnohokrßt slyÜeli. Dokß₧φ napßchat obrovskΘ Ükody, avÜak mnoho provozovatel∙ poΦφtaΦov²ch systΘm∙ si to stßle zcela neuv∞domuje. ╚φm vφce se na internet p°esouvajφ dalÜφ a dalÜφ lidskΘ aktivity, tφm vφc je t°eba o bezpeΦnosti p°em²Ület. Ohro₧eny jsou penφze, informace, soukromφ, dobrß pov∞st, a v n∞kter²ch p°φpadech dokonce i hospodß°skß infrastruktura.
  4.  
  5. S neustßl²m r∙stem slo₧itosti sφtφ je zajiÜt∞nφ jejich bezpeΦnosti stßle komplikovan∞jÜφm ·kolem. Jedinß bezpeΦnostnφ chyba vede ke kompromitaci celΘ soukromΘ sφt∞. Tento Φlßnek se zam∞°uje na to, jak proti hackersk²m ·tok∙m co nejlΘpe zabezpeΦit webovΘ aplikace, kterΘ mohou b²t cφlem ·toku samy o sob∞ nebo kterΘ se mohou stßt prost°edkem pr∙niku do vnit°nφ sφt∞. Webovß aplikace je systΘm n∞kolika kooperujφcφch Φßstφ. Jednß se o webov² server, interpreter jazyka aplikace a databßzov² server. Proti ·tok∙m je proto nutnΘ oÜet°it nejen zdrojovΘ k≤dy, ale i webov² a databßzov² server, p°φpadn∞ vhodn∞ konfigurovat interpeter jazyka.
  6.  
  7. HACKER CHOD═ HLAVN═M VCHODEM
  8. Brßnou do WWW aplikace je internetov² prohlφ₧eΦ. B∞₧n² u₧ivatel ho pou₧φvß k nakupovßnφ, psanφ a Φtenφ (sv²ch) e-mail∙, ke komunikaci s ·°ady, s knihovnou, Ükolou atd. Sedne-li si k prohlφ₧eΦi hacker, je mo₧nΘ, ₧e se mu poda°φ krßst v elektronick²ch obchodech, Φφst a psßt cizφ e-maily, zm∞nit strßnky politickΘ partaje, kterß ho ve veΦernφch zprßvßch pon∞kud naÜtvala, a provΘst mnoho dalÜφch ·tok∙. Hackerskß komunita disponuje pro svou "prßci" specializovan²mi nßstroji, kter²mi lze ·tok provΘst, ale nejsou v²jimkou ani p°φpady ·toku pouze s internetov²m prohlφ₧eΦem.
  9. Aby mohl hacker na webovou aplikaci za·toΦit, pot°ebuje jφ alespo≥ povrchn∞ porozum∞t a odvodit tak mo₧nΘ slabiny celΘho systΘmu. K tomu mu prohlφ₧eΦ dob°e poslou₧φ. Hackera nap°φklad zajφmß, na jakΘm typu webovΘho serveru aplikace "b∞₧φ", zajφmß ho pou₧itß databßze, jazyk v n∞m₧ je aplikace napsßna, struktura soubor∙ aplikace. Kde konkrΘtn∞ tyto informace zφskß, ji₧ mo₧nß sami tuÜφte. URL v adresovΘ °ßdce Φasto napovφ typ pou₧itΘho jazyka a parametry, s nimi₧ aplikace pracuje. V HTTP hlaviΦce b²vß krom∞ jin²ch zajφmav²ch informacφ uveden i nßzev webovΘho serveru. Princip sprßvy u₧ivatelsk²ch relacφ je mo₧nΘ zjistit z cookies a z URL. Databßzov² server lze odhalit vyvolßnφm chybovΘho hlßÜenφ vhodnou zm∞nou n∞kterΘ z Φßstφ URL.
  10. Na zßklad∞ takovΘ anal²zy se pak ·toΦnφk pokusφ najφt slabß mφsta aplikace. Vy se ale m∙₧ete pokusit hacker∙m takovΘ techniky zkomplikovat, pop°φpad∞ ·pln∞ znemo₧nit.
  11.  
  12. ZDROJOV╔ K╙DY BEZ BEZPE╚NOSTN═CH D╠R
  13. Proto₧e hacker pravd∞podobn∞ vyu₧ije k "hacknutφ" aplikace prohlφ₧eΦ, aplikace by m∞la v₧dy sama prov∞°it vstupnφ ·daje p°ebφranΘ z prohlφ₧eΦe a zßsadn∞ jim ned∙v∞°ovat.
  14. M∞la by prov∞°it dΘlku i obsah ka₧dΘho vstupnφho parametru. Nikdy nenechßvejte kontrolu vstupnφch dat na klientsk²ch skriptech, jako je nap°φklad JavaScript - ten toti₧ lze v prohlφ₧eΦi vypnout nebo pozm∞nit. Ani vlastnosti nastavenΘ u prvk∙ formulß°e nemohou kontrolu vstupu v ₧ßdnΘm p°φpad∞ zabezpeΦit. UrΦenφ maximßlnφ dΘlky vstupnφho pole nebo p°edßvßnφ vstupnφch ·daj∙ ve skryt²ch polφch je sice na prvnφ pohled praktickß v∞c, ale nenφ to v∙bec bezpeΦnΘ. U₧ivatel, vlastn∞ hacker, toti₧ m∙₧e celou strßnku p°ed odeslßnφm ulo₧it k sob∞ na poΦφtaΦ, zm∞nit n∞kterΘ ·daje v k≤du a pak teprve zm∞n∞n² formulß° odeslat aplikaci. V aplikaci by se m∞ly mezi jejφmi jednotliv²mi stavy p°edßvat jen nezbytnΘ ·daje a vÜe ostatnφ byste m∞li v₧dy znovu naΦφtat z databßze. Argument o rychlosti aplikace zde neusp∞je!
  15. Krom∞ d∙kladnΘho ov∞°enφ vstupnφch hodnot je hlavnφ zßsadou d∙kladnΘ oÜet°enφ chybov²ch stav∙ aplikace. O ka₧dΘ chyb∞, kterß nastane, by m∞la aplikace zaslat do prohlφ₧eΦe krßtkΘ upozorn∞nφ, kterΘ neprozradφ vφc, ne₧ je nutnΘ. NespolΘhejte se na generovßnφ hlßÜenφ samotn²m serverem, m∙₧e hackerovi prozradit u₧iteΦnΘ informace (viz v²Üe).
  16.  
  17. NA INTERNETU NIKDO NEV═, ÄE JSI PES
  18. Tento citßt z kreslenΘho vtipu, aΦ star² deset let, platφ i dnes doslova. Poda°φ-li se hackerovi zmocnit se n∞Φφ identity, mφvß to pro poÜkozenΘho velmi nep°φjemnΘ nßsledky.
  19. Aplikace, kterß poskytuje urΦitΘ u₧ivatelskΘ soukromφ, nejprve nabφdne p°ihlaÜovacφ formulß° a po ·sp∞ÜnΘ autentizaci pak po celou dobu p°ihlßÜenφ udr₧uje tzv. relaci, jejφm₧ primßrnφm ·Φelem je odliÜit jednotlivΘ p°ihlßÜenΘ u₧ivatele. D∙vodem tvorby relacφ je bezstavov² princip komunikace mezi serverem a prohlφ₧eΦem. Chce-li se neoprßvn∞nß osoba dostat na cizφ webov² ·Φet, musφ bu∩ prolomit p°ihlaÜovacφ formulß°, nebo oklamat skript pro sprßvu relace.
  20. Na prolomenφ autentizace existujφ programy nebo si hacker napφÜe vlastnφ skript - ΦßsteΦn∞ se mu dß zamezit dodr₧ovßnφm pravidel pro tvorbu hesel. Pou₧φvßnφ minimßln∞ Üestimφstn²ch (rad∞ji delÜφch) hesel, kterß jsou kombinacemi pφsmen, Φφsel a znak∙, m∙₧e prolomenφ p°inejmenÜφm prodlou₧it.
  21. U₧ivatelskß relace b²vß obecn∞ realizovßna tak, ₧e se po p°ihlßÜenφ vygeneruje identifikßtor, kter² se pak p°edßvß a ov∞°uje ze strßnky na strßnku, tak jak u₧ivatel prochßzφ aplikacφ. Identifikßtory se v∞tÜinou p°edßvajφ v cookies, skryt²ch polφch Φi v URL °et∞zci. Proto₧e cookies m∙₧e u₧ivatel v prohlφ₧eΦi vypnout, je jejich pou₧itφ v∞tÜinou jeÜt∞ kombinovßno s p°edßvßnφm v URL. Poda°φ-li se hackerovi rozluÜtit zp∙sob generovßnφ identifikßtoru a nahradφ sv∙j identifikßtor identifikßtorem jinΘ osoby, dojde ke krßde₧i relace a ·toΦnφk se tak p°φmo ocitß na cizφm ·Φtu.
  22. Brßnit se proti uhßdnutφ principu relace lze mnoha zp∙soby. Tv∙rce aplikace by se m∞l sna₧it, aby tvorba identifikßtoru byla pokud mo₧no obtφ₧n∞ rozluÜtitelnß. VhodnΘ je takΘ p°i p°echodu ze strßnky na strßnku identifikßtor m∞nit. Ov∞°ovßnφ identifikßtoru by m∞lo b²t kombinovßno jeÜt∞ nap°φklad s kontrolu IP adresy Φi jin²ch ·daj∙.
  23.  
  24. ZABEZPE╚EN═ WEBOV╔HO SERVERU A DATAB┴ZE
  25. Pokud vyu₧φvßte webhosting, moc toho s bezpeΦnostφ serveru a databßze nenad∞lßte a nezbude vßm ne₧ se spolehnout na firmu, u kterΘ aplikaci na serveru mßte. Na druhou stranu si ale takΘ uÜet°φte mnoho starostφ i pen∞z.
  26. Jestli₧e je webovß aplikace umφst∞na na vaÜem vlastnφm serveru, je pot°eba se o jeho zabezpeΦenφ neustßle starat. Nedobytn² software bohu₧el neexistuje, i kdy₧ se vßm to mo₧nß n∞jak² prodejce pokusφ tvrdit - velmi zßle₧φ hlavn∞ na konfiguraci softwarovΘho i hardwarovΘho vybavenφ.
  27. Informace o konkrΘtnφm nastavenφ webovΘho a databßzovΘho serveru od v²robce je vhodnΘ doplnit zkuÜenostmi ostatnφch u₧ivatel∙ z diskusnφch f≤r a z webov²ch strßnek zab²vajφcφch se bezpeΦnostnφ problematikou. Ka₧dopßdn∞ je nutnΘ neustßle sledovat aktualizace programovΘho vybavenφ. Tyto "zßplaty" (patche) v²robci v∞tÜinou zve°ej≥ujφ na sv²ch WWW strßnkßch.
  28.  
  29. NUTN╔, ALE NE POSTA╚UJ═C═ ZABEZPE╚OVAC═ TECHNOLOGIE
  30. Existuje °ada technologiφ, kterΘ p°inßÜejφ v∞tÜφ obranu proti ·tok∙m. Äßdnß z nich bohu₧el takΘ nefunguje stoprocentn∞, ale to nenφ d∙vod, proΦ je nevyu₧φvat. Samoz°ejm∞, ka₧d² server by m∞l mφt svou "vstupnφ brßnu", firewall, kter² brßnφ vnit°nφ sφ¥ proti nepovolenΘmu druhu p°φstupu zvenΦφ, pop°φpad∞ mß i dalÜφ funkce. Firewall vÜak nemusφ b²t jako zabezpeΦenφ proti ·toku na samotnou webovou aplikaci ·Φinn², proto₧e propouÜtφ webovou komunikaci na portu 80.
  31. Detektor pr∙niku (IDS - Intrusion Detection Systems) je za°φzenφ, kterΘ mß za ·kol na zßklad∞ monitoringu Φinnostφ v sφti odhalit webov² ·tok a zamezit mu. Mezi komerΦnφmi programy je i jeden open source detektor - jmenuje se Snort a vφce informacφ o n∞m hledejte na adrese www.snort.org.
  32. ┌daje, kterΘ by m∞ly z∙stat utajeny, nap°φklad hesla, je vhodnΘ posφlat zaÜifrovanΘ. NejΦast∞ji se pro zak≤dovßnφ pou₧φvß SSL (Secure Sockets Layer). Podpora SSL se konfiguruje na serveru. Komunikace mezi poΦφtaΦi pak neprobφhß protokolem HTTP, ale HTTPS. Pro provoz je t°eba zφskat od certifikaΦnφho serveru digitßlnφ certifikßt. Takto zaÜifrovanß data je mo₧nΘ odposlouchßvat stejn∞ jako nezaÜifrovanß, ale rozÜifrovat je lze pouze se znalostφ certifikßtu.
  33. JednorßzovΘ heslo (OTP - One-Time Password) je ·Φinn² lΘk na odposlouchßvßnφ a krßde₧e hesel. Pokud ho vet°elec zφskß, je mu k niΦemu. Toto heslo toti₧ m∙₧e b²t pou₧ito pouze jednou, potom jeho platnost konΦφ. Jistota, ₧e u₧ivatel, kter² prßv∞ ₧ßdß aplikaci o autentizaci, je skuteΦn∞ tφm, za koho se vydßvß, je pak mnohonßsobn∞ vyÜÜφ. Heslo vygeneruje u₧ivateli za°φzenφ, kterΘ mß u sebe a kterΘ je synchronizovßno s technick²m vybavenφm na cφlovΘm serveru.
  34.  
  35. TEST SLAB▌CH M═ST
  36. Abyste zjistili "obrn∞nost" svΘ aplikace proti ·tok∙m, nemusφte Φekat na nezvanΘ hosty, ale aplikaci i ostatnφ souvisejφcφ Φßsti, nap°φklad SQL server, si m∙₧ete otestovat. Na internetu jsou k dispozici testovacφ nßstroje (nap°. www.nextgenss.com), pop°φpad∞ je mo₧nΘ si zdarma stßhnout programy pro hackery - hacke°i si toti₧ v rßmci svΘ komunity nßstroje ochotn∞ sdφlejφ. Existujφ takΘ spoleΦnosti, kterΘ vaÜe strßnky za nevelk² penφz na bezpeΦnostnφ chyby otestujφ (nap°. http://netcraft.com/).
  37.  
  38. NA Z┴V╠R
  39. Na zßv∞r vßm chci p°ipomenout, abyste si pro p°φpad ·toku nezapomn∞li svß data zßlohovat, a pop°ßt vßm co nejvφce odra₧en²ch ·tok∙.
  40. So≥a ÄßΦkovß
  41.  
  42.  
  43. ODKAZY, KDE LZE Z═SKAT PRAKTICK╔ INFORMACE
  44. http://packetstormsecurity.nl
  45. www.owasp.org
  46. http://neworder.box.sk
  47. www.defcon.org (Nejznßmn∞jÜφ hackerskΘ centrum, bu∩te opatrnφ!)
  48.  
  49.  
  50.  
  51.  
  52.