Razvoj požarnega zidu spletnih aplikacij: od požarnih zidov do zaščitnih sistemov v oblaku s strojnim učenjem

V prejšnjem gradivu o oblakih smo povedal, kako zaščititi IT vire v javnem oblaku in zakaj tradicionalni antivirusi za te namene niso povsem primerni. V tej objavi bomo nadaljevali temo varnosti v oblaku in govorili o razvoju WAF in o tem, kaj je bolje izbrati: strojno opremo, programsko opremo ali oblak. 

Razvoj požarnega zidu spletnih aplikacij: od požarnih zidov do zaščitnih sistemov v oblaku s strojnim učenjem

Kaj je WAF

Več kot 75 % hekerskih napadov je usmerjenih na ranljivosti spletnih aplikacij in spletnih mest: takšni napadi so običajno nevidni za informacijsko varnostno infrastrukturo in storitve informacijske varnosti. Ranljivosti v spletnih aplikacijah pa prinašajo tveganje vdora in goljufije uporabniških računov ter osebnih podatkov, gesel in številk kreditnih kartic. Poleg tega ranljivosti na spletnem mestu služijo kot vstopna točka za napadalce v korporativno omrežje.

Požarni zid spletnih aplikacij (WAF) je zaščitni zaslon, ki blokira napade na spletne aplikacije: vbrizgavanje SQL, skriptiranje med spletnimi mesti, oddaljeno izvajanje kode, surovo silo in obvod avtorizacije. Vključno z napadi, ki izkoriščajo ranljivosti ničelnega dne. Požarni zidovi aplikacij zagotavljajo zaščito s spremljanjem vsebine spletnih strani, vključno s HTML, DHTML in CSS, ter filtriranjem potencialno zlonamernih zahtev HTTP/HTTPS.

Kakšne so bile prve odločitve?

Prvi poskusi izdelave požarnega zidu spletne aplikacije so bili narejeni že v zgodnjih 90. letih. Znano je, da so na tem področju delovali vsaj trije inženirji. Prvi je profesor računalništva Gene Spafford z univerze Purdue. Opisal je arhitekturo požarnega zidu proxy aplikacije in jo leta 1991 objavil v knjigi "Varnost UNIX v praksi".

Drugi in tretji sta bila strokovnjaka za informacijsko varnost William Cheswick in Marcus Ranum iz Bell Labs. Razvili so enega prvih prototipov aplikacijskega požarnega zidu. Distribuiral ga je DEC - izdelek je izšel pod imenom SEAL (Secure External Access Link).

Toda SEAL ni bil popolna rešitev WAF. Šlo je za klasični omrežni požarni zid z napredno funkcionalnostjo – možnostjo blokiranja napadov na FTP in RSH. Iz tega razloga velja, da je prva rešitev WAF danes izdelek Perfecto Technologies (kasneje Sanctum). Leta 1999 je predstavljeno Sistem AppShield. Perfecto Technologies je takrat razvijal informacijsko varnostne rešitve za e-trgovino, spletne trgovine pa so postale ciljna publika njihovega novega produkta. AppShield je lahko analiziral zahteve HTTP in blokirane napade na podlagi politik dinamične varnosti informacij.

Približno v istem času kot AppShield (leta 2002) se je pojavil prvi odprtokodni WAF. Je postal ModSecurity. Ustvarjen je bil z namenom popularizacije tehnologij WAF in ga IT skupnost še vedno podpira (tukaj je repozitorij na GitHubu). ModSecurity blokira napade na aplikacije na podlagi standardnega niza regularnih izrazov (podpisov) - orodja za preverjanje zahtev na podlagi vzorcev - Osnovni nabor pravil OWASP.

Posledično je razvijalcem uspelo doseči svoj cilj - na trgu so se začele pojavljati nove rešitve WAF, vključno s tistimi, zgrajenimi na podlagi ModSecurity.

Tri generacije so že zgodovina

Običajno ločimo tri generacije sistemov WAF, ki so se razvijale z razvojem tehnologije.

Prva generacija. Deluje z regularnimi izrazi (ali slovnicami). To vključuje ModSecurity. Ponudnik sistema preučuje vrste napadov na aplikacije in generira vzorce, ki opisujejo legitimne in potencialno zlonamerne zahteve. WAF preveri te sezname in se odloči, kaj storiti v določeni situaciji - blokirati promet ali ne.

Primer detekcije na podlagi regularnih izrazov je že omenjeni projekt Osnovni nabor pravil odprtokodno. Še en primer - Naxsi, ki je prav tako odprtokoden. Sistemi z regularnimi izrazi imajo vrsto slabosti, predvsem, ko se odkrije nova ranljivost, mora skrbnik ročno ustvariti dodatna pravila. V primeru obsežne IT infrastrukture je lahko več tisoč pravil. Upravljanje toliko regularnih izrazov je precej težko, da ne omenjamo dejstva, da lahko njihovo preverjanje zmanjša zmogljivost omrežja.

Regularni izrazi imajo tudi precej visoko stopnjo lažno pozitivnih rezultatov. Slavni jezikoslovec Noam Chomsky je predlagal klasifikacijo slovnic, v kateri jih je razdelil na štiri pogojne stopnje kompleksnosti. V skladu s to klasifikacijo lahko regularni izrazi opisujejo samo pravila požarnega zidu, ki ne vključujejo odstopanj od vzorca. To pomeni, da lahko napadalci zlahka "pretentajo" prvo generacijo WAF. Eden od načinov za boj proti temu je dodajanje posebnih znakov zahtevam aplikacij, ki ne vplivajo na logiko zlonamernih podatkov, vendar kršijo pravilo podpisa.

Razvoj požarnega zidu spletnih aplikacij: od požarnih zidov do zaščitnih sistemov v oblaku s strojnim učenjem

Druga generacija. Da bi se izognili težavam z zmogljivostjo in natančnostjo WAF, so bili razviti požarni zidovi aplikacije druge generacije. Zdaj imajo razčlenjevalnike, ki so odgovorni za identifikacijo strogo definiranih vrst napadov (na HTML, JS itd.). Ti razčlenjevalniki delujejo s posebnimi žetoni, ki opisujejo poizvedbe (na primer spremenljivka, niz, neznano, število). Potencialno zlonamerna zaporedja žetonov so uvrščena na ločen seznam, ki ga sistem WAF redno preverja. Ta pristop je bil prvič prikazan na konferenci Black Hat 2012 v obliki C/C++ knjižnice libinjection, ki vam omogoča zaznavanje vbrizgavanja SQL.

V primerjavi s prvo generacijo WAF so lahko specializirani razčlenjevalniki hitrejši. Niso pa rešili težav, povezanih z ročno konfiguracijo sistema, ko se pojavijo novi zlonamerni napadi.

Razvoj požarnega zidu spletnih aplikacij: od požarnih zidov do zaščitnih sistemov v oblaku s strojnim učenjem

Tretja generacija. Razvoj logike zaznavanja tretje generacije je sestavljen iz uporabe metod strojnega učenja, ki omogočajo, da se slovnica zaznavanja čim bolj približa dejanski slovnici SQL/HTML/JS zaščitenih sistemov. Ta logika zaznavanja je sposobna prilagoditi Turingov stroj za pokrivanje rekurzivno števnih slovnic. Poleg tega je bila prej naloga ustvarjanja prilagodljivega Turingovega stroja nerešljiva, dokler niso bile objavljene prve študije nevronskih Turingovih strojev.

Strojno učenje zagotavlja edinstveno zmožnost prilagajanja katere koli slovnice za pokrivanje katere koli vrste napadov brez ročnega ustvarjanja seznamov podpisov, kot je potrebno pri odkrivanju prve generacije, in brez razvoja novih tokenizatorjev/razčlenjevalnikov za nove vrste napadov, kot so Memcached, Redis, Cassandra, vbrizgavanje SSRF , kot zahteva metodologija druge generacije.

S kombinacijo vseh treh generacij logike zaznavanja lahko narišemo nov diagram, v katerem je tretja generacija zaznavanja predstavljena z rdečim obrisom (slika 3). Ta generacija vključuje eno od rešitev, ki jo v oblak implementiramo skupaj z Onsekom, razvijalcem platforme za prilagodljivo zaščito spletnih aplikacij in Wallarm API.

Logika zaznavanja zdaj uporablja povratne informacije iz aplikacije, da se samonastavi. V strojnem učenju se ta povratna zanka imenuje "okrepitev". Običajno obstaja ena ali več vrst takšne ojačitve:

  • Analiza obnašanja odziva aplikacije (pasivno)
  • Scan/fuzzer (aktiven)
  • Prijavite datoteke/postopke prestreznikov/pasti (po dejstvu)
  • Ročno (določi nadzornik)

Posledično logika zaznavanja tretje generacije obravnava tudi pomembno vprašanje natančnosti. Zdaj se je mogoče ne le izogniti lažno pozitivnim in lažno negativnim rezultatom, ampak tudi zaznati veljavne prave negativne rezultate, kot je zaznavanje uporabe ukaznega elementa SQL na nadzorni plošči, nalaganje predloge spletne strani, zahteve AJAX, povezane z napakami JavaScript, in drugo.

Razvoj požarnega zidu spletnih aplikacij: od požarnih zidov do zaščitnih sistemov v oblaku s strojnim učenjem

Razvoj požarnega zidu spletnih aplikacij: od požarnih zidov do zaščitnih sistemov v oblaku s strojnim učenjem

Razvoj požarnega zidu spletnih aplikacij: od požarnih zidov do zaščitnih sistemov v oblaku s strojnim učenjem

Nato bomo preučili tehnološke zmogljivosti različnih možnosti izvedbe WAF.

Strojna oprema, programska oprema ali oblak – kaj izbrati?

Ena izmed možnosti implementacije aplikacijskih požarnih zidov je strojna rešitev. Tovrstni sistemi so specializirane računalniške naprave, ki jih podjetje namesti lokalno v svoj podatkovni center. Toda v tem primeru morate kupiti lastno opremo in plačati denar integratorjem za njeno nastavitev in odpravljanje napak (če podjetje nima lastnega IT oddelka). Hkrati vsaka oprema zastari in postane neuporabna, zato so kupci prisiljeni v proračun vložiti sredstva za nadgradnjo strojne opreme.

Druga možnost za uvedbo WAF je programska izvedba. Rešitev je nameščena kot dodatek za neko programsko opremo (na primer ModSecurity je konfiguriran na vrhu Apache) in deluje na istem strežniku z njo. Takšne rešitve je praviloma mogoče namestiti tako na fizičnem strežniku kot v oblaku. Njihova slabost je omejena razširljivost in podpora prodajalcev.

Tretja možnost je nastavitev WAF iz oblaka. Takšne rešitve ponujajo ponudniki oblakov kot naročniško storitev. Podjetju ni treba kupiti in konfigurirati specializirane strojne opreme; te naloge so na ramenih ponudnika storitev. Pomembna točka je, da sodoben oblak WAF ne pomeni selitve virov na platformo ponudnika. Spletno mesto je mogoče namestiti kjerkoli, tudi na mestu uporabe.

Podrobneje bomo razložili, zakaj ljudje zdaj vedno bolj iščejo oblak WAF.

Kaj zmore WAF v oblaku

Kar zadeva tehnološke zmogljivosti:

  • Za posodobitve je odgovoren ponudnik. WAF je na voljo z naročnino, zato ponudnik storitev spremlja ustreznost posodobitev in licenc. Posodobitve ne zadevajo le programske, ampak tudi strojne opreme. Ponudnik nadgrajuje strežniški park in ga vzdržuje. Odgovoren je tudi za uravnoteženje obremenitve in redundanco. Če strežnik WAF odpove, se promet takoj preusmeri na drugo napravo. Racionalna porazdelitev prometa vam omogoča, da se izognete situacijam, ko požarni zid vstopi v način neuspešnega odprtja - ne more obvladati obremenitve in preneha filtrirati zahteve.
  • Virtualno popravilo. Virtualni popravki omejujejo dostop do ogroženih delov aplikacije, dokler razvijalec ne zapre ranljivosti. Posledično dobi stranka ponudnika oblaka možnost, da mirno počaka, da dobavitelj te ali one programske opreme objavi uradne "popravke". Prednostna naloga dobavitelja programske opreme je, da to stori čim hitreje. Na primer, v platformi Wallarm je za virtualno popravilo odgovoren ločen programski modul. Skrbnik lahko doda regularne izraze po meri za blokiranje zlonamernih zahtev. Sistem omogoča, da nekatere zahteve označite z oznako »Zaupni podatki«. Nato so njihovi parametri prikriti in pod nobenim pogojem se ne prenašajo izven delovnega območja požarnega zidu.
  • Vgrajen skener perimetra in ranljivosti. To vam omogoča neodvisno določanje omrežnih meja IT infrastrukture z uporabo podatkov iz poizvedb DNS in protokola WHOIS. Nato WAF samodejno analizira storitve, ki se izvajajo znotraj perimetra (izvaja skeniranje vrat). Požarni zid je sposoben zaznati vse običajne vrste ranljivosti - SQLi, XSS, XXE itd. - in prepoznati napake v konfiguraciji programske opreme, na primer nepooblaščen dostop do Git in BitBucket repozitorijev ter anonimne klice Elasticsearch, Redis, MongoDB.
  • Napade spremljajo viri v oblaku. Ponudniki v oblaku imajo praviloma velike količine računalniške moči. To vam omogoča analizo groženj z visoko natančnostjo in hitrostjo. V oblaku je razporejen grozd filtrirnih vozlišč, skozi katerega poteka ves promet. Ta vozlišča blokirajo napade na spletne aplikacije in pošiljajo statistiko analitičnemu centru. Uporablja algoritme strojnega učenja za posodobitev pravil blokiranja za vse zaščitene aplikacije. Izvedba takšne sheme je prikazana na sl. 4. Takšna prilagojena varnostna pravila zmanjšajo število lažnih alarmov požarnega zidu.

Razvoj požarnega zidu spletnih aplikacij: od požarnih zidov do zaščitnih sistemov v oblaku s strojnim učenjem

Zdaj pa nekaj o značilnostih oblakov WAF v smislu organizacijskih vprašanj in upravljanja:

  • Prehod na OpEx. V primeru oblačnih WAF bo strošek implementacije enak nič, saj je vsa strojna oprema in licence že plačana s strani ponudnika, plačilo storitve pa poteka z naročnino.
  • Različni tarifni načrti. Uporabnik storitve v oblaku lahko hitro omogoči ali onemogoči dodatne možnosti. Funkcije se upravljajo z ene nadzorne plošče, ki je tudi varna. Do njega se dostopa prek HTTPS, poleg tega obstaja dvofaktorski mehanizem za preverjanje pristnosti, ki temelji na protokolu TOTP (Time-based One-Time Password Algorithm).
  • Povezava preko DNS. Sami lahko spremenite DNS in konfigurirate omrežno usmerjanje. Za rešitev teh težav ni treba zaposlovati in usposabljati posameznih strokovnjakov. Praviloma lahko tehnična podpora ponudnika pomaga pri nastavitvi.

Tehnologije WAF so se razvile od preprostih požarnih zidov s pravili palca do kompleksnih sistemov zaščite z algoritmi strojnega učenja. Aplikacijski požarni zidovi zdaj ponujajo široko paleto funkcij, ki jih je bilo v 90. letih težko implementirati. V mnogih pogledih je pojav novih funkcionalnosti postal mogoč zaradi tehnologij v oblaku. Rešitve WAF in njihove komponente se še naprej razvijajo. Tako kot druga področja informacijske varnosti.

Besedilo je pripravil Alexander Karpuzikov, vodja razvoja izdelkov za informacijsko varnost pri ponudniku oblakov #CloudMTS.

Vir: www.habr.com

Dodaj komentar