Web tehnologije dovele su do trenda konzumerizacije interneta, jer sve što je korisniku potrebno jeste browser, a mogućnosti su, čini se, beskonačne. Danas svaka aplikacija koja treba da postane dostupna širokom auditorijumu na internetu jeste web aplikacija. Ona je, između ostalog, i sredstvo za komunikaciju kompanija sa korisnicima preko interneta i predstavlja više od web sajta jer omogućava korisnicima interakciju sa njom, na primer da se registruju, pri tom ostave svoje podatke kompaniji i tek nakon toga pristupe sadržaju koji im je interesantan. Kompanija podatke koji su ostavljeni može dalje iskoristiti u marketinške svrhe.
Web aplikacije poput e‑commerce aplikacija će, nakon logovanja, korisniku omogućiti da izabere proizvod koji želi da kupi i na kraju ga plati tako što će uneti broj svoje kreditne kartice. Banke kroz online banking aplikacije pokušavaju da smanje redove u ekspoziturama. Slično tome, država kroz projekat e‑uprave pokušava da pojednostavi izdavanje dokumenata. U svakom od ovih slučajeva, da bi se servis što lakše ponudio krajnjim korisnicima, a potom i da bi se lakše nadogradio, a to znači bez intervencije kod krajnjeg korisnika, kompanije, banke, pa i država biraju da servis isporuče u vidu web aplikacije.
Pod pojmom web aplikacije, dakle, podrazumevamo servis koji se isporučuje preko HTTP protokola, kojem se pristupa kroz browser, a sadržaj koji se tom prilikom prezentuje, za razliku od sajta, dinamički je skrojen prema inputu od strane korisnika. Popularnost web aplikacija, kao i njihova vrednost u smislu informacija koje mogu biti kompromitovane i tako narušiti ugled kompanija, učinile su da se maliciozni korisnici interneta posvete razvoju posebnih alata i tehnika specijalno pisanih za napade na njih.
Ranjivost web aplikacija
Mogućnost da korisnik upravlja sadržajem koji se prezentuje kroz inpute predstavlja osnov svakog napada na web aplikaciju. Kompanije uglavnom primenjuju osnovna rešenja za zaštitu svih servisa, a to su firewall i IPS. Osnovnim sigurnosnim rešenjima kompanijska web aplikacija nije u potpunosti zaštićena od napada sa interneta, jer firewall i IPS rešenja ne čitaju upite na aplikativnom nivou, već proveravaju da li HTTP funkcioniše po RFC standardima i primenjuju generičke polise za zaštitu.
Za razumevanje upita ka web aplikaciji potreban je web application firewall koji razume logiku kompanijske aplikacije i koji će i onda kada se aplikacija nadogradi novom funkcionalnošću brzo naučiti kako su nove funkcionalnosti implementirane i shodno tome prilagoditi zaštitu.
Kada se kompanija odluči da ponudi novi servis krajnjim korisnicima, u fokusu kompanije i razvojnog tima su funkcionalnosti koje servis ima, sve sa ciljem da se korisnički ugođaj u radu sa aplikacijom što više pojednostavi, uz ponudu mnoštva mogućnosti. Kako rastu funkcije koje aplikacija ima i kako raste njen značaj za poslovanje kompanije, tako raste i rizik da bi se njenim eventualnim kompromitovanjem mogao narušiti ugled kompanije ili napraviti direktna ili indirektna finansijska šteta.
Firewall i IPS nisu dovoljni
Razvojni tim se bavi funkcionalnošću same aplikacije, ali ne i njenom sigurnošću, jer ne sagledava bezbednosne rizike u potpunosti. Ono što se minimalno uvek očekuje od razvojnog tima u vezi sa zaštitom jeste implementacija osnovnih sigurnosnih preporuka prilikom dizajna aplikacije. Neke od tih preporuka podrazumevaju i da stranica za logovanje bude isporučena preko enkriptovane HTTPS sesije, a ne preko HTTP protokola, jer se u drugom slučaju podaci za logovanje ili broj kreditne kartice i PIN šalju u čitljivom obliku preko interneta.
U vezi sa tim, ako su implementirani firewall i IPS rešenja i primenjene sve sigurnosne preporuke, kompanijske web aplikacije i dalje ostaju nedovoljno zaštićene ako ne postoji mehanizam validacije korisničkih inputa. To znači da, na primer, za forme koje omogućavaju korisnicima da se loguju mora postojati mehanizam provere da li korisnik u predviđena polja unosi niz slovnih znakova, a ne specijalne znake koji bi mogli predstavljati komande kojima zlonamerni korisnik pokušava da, na primer, komunicira sa bazom podataka. Baza podataka je u dizajnu web aplikacija poslednji sloj, u tom smislu da nikada nije direktno izložena internetu, a upravo je to sloj koji sadrži najosetljivije informacije.
Opisani napad, kada ne postoji mehanizam za proveru korisničkog unosa ili kategorizacija šta je podatak kome se veruje, a gde se kroz formu šalju komande direktno SQL bazi podataka, naziva se SQL injection. Kategorija injection napada, u koju spadaju SQL, OS i LDAP injection napadi, najkritičnija je kategorija u smislu uticaja na biznis prema OWASP (Open Web Application Security Project) Top 10 dokumentu.
Unos korisničkih podataka
HTTP protokol je u osnovi stateless protokol, što znači da prvobitno nije imao mehanizam za praćenje sesije korisnika, za čim nije ni bilo potrebe kod prezentovanja statičkog sadržaja kakav su nudili prvi web sajtovi. Sa web aplikacijama, gde uvek postoji opcija logovanja kako bi se korisnik registrovao i autorizovao za pristup određenom sadržaju, potrebno je jednostavno pratiti korisnika i to se najčešće izvodi tzv. „kolačićima“ (engl. cookies).
Nedovoljno dobro rešenje za upravljanje „kolačićima“, u smislu čuvanja, enkripcije i provere vremena trajanja, gde postoji mogućnost da se posebnim alatima, nakon velikog broja pokušaja, uspešno pogodi prosta kombinacija kredencijala za logovanje, predstavlja preduslov za uspešnost napada kojima se dobija privilegovan pristup aplikaciji. Mehanizmi zaštite od ove kategorije napada su različiti: od potpisivanja „kolačića“ digitalnim sertifikatom do implementacije zaštite, gde se nakon, na primer, tri bezuspešna logovanja na neko vreme zabranjuje pristup stranici za logovanje.
XSS ili cross‑site scripting napad se takođe uspešno izvodi ako ne postoji validacija podataka koje korisnik unosi i podataka koje aplikacija prikazuje, tako da zlonamerni korisnik može da inficira aplikaciju malicioznim sadržajem preko forme za unos podataka. Uslovno rečeno, običan korisnik će prilikom sledeće posete zaraženoj web aplikaciji skinuti u pozadini malicioznu skriptu. Skripta zatim može da ukrade sa korisničkog računara „kolačiće“ i sačuvane podatke, i pošalje ih zlonamernom korisniku koji je prvobitno inficirao web aplikaciju.
Poznat je slučaj banke čija je online banking aplikacija bila predmet uspešnog XSS napada, gde je u okviru zvanične stranice za logovanje klijenata banke bila ugrađena maliciozna forma za unos login podataka. Na taj način su broj računa i PIN za autorizaciju pristupa postali dostupni hakerima.
Rešenja za zaštitu
Ukoliko aplikacija nije dovoljno zaštićena, direktna finansijska šteta bila bi, na primer, krađa novca sa računa klijenata banke, a indirektna finansijska šteta onda nastaje zbog gubitka poverenja klijenata u banku ili kompaniju. Kompanije će morati sve više da komuniciraju sa klijentima preko web aplikacija, a njihov ugled će, između ostalog, zavisiti i od toga da li korisnici mogu da veruju kompanijskoj aplikaciji. Slično tome, nedopustivo je kompromitovanje projekta e‑uprave i ličnih podataka građana.
Upravo opisani primeri napada navode na zaključak da rešenje za zaštitu kompanijske web aplikacije mora razumeti način rada aplikacije, tako da može da prepozna, između ostalog, forme za logovanje, da bi se mogle primeniti polise kojima se definiše šta je korisnicima dozvoljeno da unesu; rešenje koje zatim može da nauči šta su dozvoljeni URL‑ovi, parametri u okviru URL‑ova, da prati korisničku sesiju, odnosno, u najširem smislu, da nauči funkcionisanje web aplikacije i bude njeno ogledalo.
Rešenja koja implementiraju ove tehnike nazivaju se web application firewall (WAF) rešenjima. Ona ne isključuju firewall i IPS kao prvi nivo zaštite na mrežnom sloju, kao ni implementaciju svih sigurnosnih preporuka za zaštitu web servera, aplikativnog servera i baze podataka. Web application firewall rešenja su krovna sigurnosna rešenja, u tom smislu da fino razumeju konkretnu aplikaciju i shodno tome mogu da je zaštite od sofisticiranih napada kod kojih ideja nije da se servis učini nedostupnim, već da se neprimetno ukradu vredne informacije.
Šta radi WAF?
Web application firewall rešenja su specijalizovana za zaštitu web aplikacija. Obično se implementiraju ispred web servera, kao reverzni proksi, pošto je iskustvo pokazalo da se jedino na takav način obezbeđuje detaljna provera. Najveća prednost postiže se u slučaju kada se štite web aplikacije koje su razvijane unutar kompanija, tzv. custom web aplikacije. Generičke web aplikacije, poput Microsoft SharePoint‑a i CRM‑a, pisane su tako da obezbede funkcionalnost i da budu bezbedne. I pored toga, nije pogrešno ni ove aplikacije štititi WAF rešenjem, jer se tako može obezbediti dodatna zaštita, posebno u slučaju novih napada za koje još uvek ne postoji softverska zakrpa.
Ova rešenja često integrišu i druge tehnologije zaštite, poput DDoS rešenja, kontrole pristupa aplikaciji, Single‑Sign‑On (SSO) funkciju i SSL offloading. Jedan od eksplicitnih zahteva PCI DSS (Payment Card Industry Data Security Standard) standarda je i da se web aplikacije koje su vidljive na internetu moraju štititi web application firewall‑om, a ukoliko kompanija nije implementirala takvo rešenje web aplikacije moraju biti skenirane posebnim alatima jednom godišnje i posle svake promene na aplikaciji implementirati i nove sigurnosne preporuke. WAF je svakako elegantnije i jednostavnije rešenje.
F5 Application Security Manager
Application Security Manager je rešenje američke kompanije F5 koje obezbeđuje zaštitu kritičnih web aplikacija od napada na aplikativnom sloju, kao što su izmene cookie fajlova, SQL, LDAP i OS injection napadi ili maliciozni upiti kojima se iscrpljuju memorijski baferi aplikacije kako bi se zaustavili servisi, dobio pristup shell-u ili distribuirali virusi.
Pored toga, F5 ASM sprečava neovlašćenu promenu sadržaja aplikacije, DDoS napade, kao i napade sa nepoznatih IP adresa ili lokacija. Ovo rešenje integriše i funkcije SSL offloading-a, a kroz poseban modul obezbeđuje i kontrolu pristupa kompanijskim aplikacijama u vidu SSO funkcije.
S obzirom na arhitekturu F5 proizvoda, koji se mogu svrstati u kategoriju application delivery controller-a, load balancer je uvek deo Aplication Security Manager-a. Moguće je, dakle, ne samo štititi web aplikacije već obezbediti i load balancing funkciju, što omogućava i da se optimizuje klijent-server komunikacija kroz TCP optimizacione tehnike.
F5 štiti od tzv. zero-day napada tako što tokom prve faze implementacije „uči“ o načinu rada web aplikacije, skenirajući strukturu URL-ova i dozvoljene URL parametre, forme za unos podataka i sl. Na definisane elemente se potom primenjuju odgovarajuće sigurnosne polise.
ASM se jednostavno integriše sa VMware platformom, odnosno omogućena je komunikacija između dva rešenja. Na primer, kada zbog porasta korisničkih upita VMware pokrene dodatni web server, on šalje informaciju o tome u ASM, koji u balansiranje opterećenja uključuje i novi server. Kada se obim korisničkih upita smanji i VMware isključi nepotreban web server, ASM dobija informaciju da ga isključi iz daljeg rada.
Pored toga, F5 ASM se sa VMware-om dodatno integriše kroz NSX, kako bi se njegove funkcije mogle primeniti na nivou svake virtuelne mašine i tako pridodala važna kockica za realizaciju ideje softverski definisanog data-centra.
0 komentara