Verkkosovellusten palomuuri ( englanniksi Web-sovellusten palomuuri , WAF) on joukko näyttöjä ja suodattimia, jotka on suunniteltu havaitsemaan ja estämään verkkohyökkäyksiä verkkosovelluksia vastaan . WAF:t kuuluvat OSI-mallin [1] sovelluskerrokseen .
Itse sovelluksen kehittäjät voivat suojata verkkosovelluksen ilman WAF:ia. Tämä vaatii lisäkehityskustannuksia. Esimerkiksi tietoturvaosaston sisältö . WAF on omaksunut kyvyn suojautua kaikilta tunnetuilta tietohyökkäyksiltä, minkä ansiosta voit siirtää suojaustoiminnon sille. Näin kehittäjät voivat keskittyä sovelluksen liiketoimintalogiikan toteuttamiseen , mikä antaa heille enemmän aikaa korjata haavoittuvuuksia [2] .
Verkkosovellusten palomuuria käytetään peittokuvasuojana. Tämä tarkoittaa, että se istuu pääverkkosovelluksen edessä ja analysoi saapuvaa ja lähtevää liikennettä. Reaaliajassa hän päättää myöntää tai estää pääsyn [1] .
WAF:ssa voidaan tukea mitä tahansa suojausmallia: positiivista, negatiivista tai niiden yhdistelmiä. Nykyaikaiset WAF:it ovat PCI DSS :ssä kuvattujen vaatimusten alaisia . He tarkastavat myös HTTP/HTTPS-pyynnöt ja tiedonsiirtoprotokollan vastaukset suojauspolitiikan mukaisesti [3] . Lisäksi OWASP -avoin projekti kerää tietoa kompromisseista kaikkialta maailmasta ja muodostaa verkkosovellusten hyökkäysvektorien luokituksen - OWASP Top Ten [4] . WAF:t on suunniteltu vastaamaan onnistuneesti tässä luokituksessa kuvattuihin uhkiin [3] .
On huomattava, että WAF:t eivät ole ehdoton tapa suojata tietoa. Ne sisältyvät yleensä verkkosovellusten yleiseen turvajärjestelmään yhdessä muiden elementtien kanssa, esimerkiksi elementtien kanssa, jotka ratkaisevat muiden protokollien kuin HTTP / HTTPS:n, tapaustenhallintajärjestelmien, petostentorjuntapalvelujen ongelmia [5] .
SQL-injektiot ovat pitkään olleet onnistuneiden hyökkäysten päävektori [6] . Erilaisten tietojen käsittelyyn - poistamiseen, muuttamiseen, lisäämiseen - sovellus käyttää tietokantaa . Kun sovellus käyttää tietokantaa, se luo kyselytekstin, jonka hyökkääjä voi huijata [7] . Tämän seurauksena esimerkiksi tietoja voidaan vuotaa, poistaa tai kirjoittaa. Suojauksen vuoksi käyttäjältä saadut tiedot tarkistetaan huolellisesti, käytetään mustia tai valkoisia merkkijonojen luetteloita, pyyntöteksti on pakotettu [8] .
Käyttäjien erottamiseksi, kun käyttäjä on valtuutettu sivustolle, asetetaan istuntoeväste tai myönnetään valtuutustunnus, jonka selain tallentaa ja lähettää palvelimelle joka kerta varmistaakseen, että tämä on oikea käyttäjä. Hyökkääjä voi saada tämän avaimen ja käyttää tiliä [9] . Suojauksen vuoksi tarkistetaan avaimen ohella asiaan liittyvät tiedot, kuten IP-osoite, selain. Istuntoavaimelle annetaan myös suhteellisen lyhyt käyttöikä [10] .
Tämäntyyppinen hyökkäys koostuu siitä, että hyökkääjä välittää Java-Script- tai Html - koodin käyttäjän selaimeen, jossa tämä koodi suoritetaan [7] . Siten hyökkääjä voi saada evästeitä tai tietoja, jotka on syötetty tartunnan saaneen sivun muotoon. Suojauksen vuoksi tulo- ja lähtötiedot on pakotettu. Säännöllisiä lausekkeita käytetään kenttien vahvistamiseen [11] .
Tämäntyyppinen hyökkäys on suunniteltu varastamaan arkaluontoisia tietoja. Useimmiten tämä tapahtuu silloin, kun ne siirretään asiakkaalta palvelimelle suojaamattoman HTTP- tai FTP-protokollan kautta. Matkalla palvelimelle jossain solmussa, saatuaan pääsyn siihen, hyökkääjä voi lukea avoimen, suojaamattoman pyynnön, joka sisältää luottamuksellisia käyttäjätietoja [12] . Tällaisten tietojen siirtämiseen käytetään suojattuja HTTPS- ja TLS-siirtoprotokollia. Lisäksi, jos tällaisia tietoja on tarpeen tallentaa, ne tallennetaan salatussa muodossa [12] .
Pääsynhallinnan haavoittuvuudet liittyvät riittämättömään perusteelliseen tiettyjen tietojen käyttöoikeuksien tarkistamiseen. Jos sinulla on oikeuksia, hyökkääjä voi päästä käsiksi tietoihin, jotka on suljettu näiden oikeuksien vuoksi [13] .
Esimerkiksi, jos hyökkääjän tunnus on 1 ja hän voi nähdä luettelon viesteistään linkin avulla
mysite.com/messages?id=1
sitten riittämättömällä oikeuksien tarkistuksella, korvataan id-arvo 2:lla
mysite.com/messages?id=2
palvelin lähettää viestejä käyttäjältä, jonka tunnus on 2. Valkoisia listoja käytetään suojana pääsyn tarkistamiseen. Vaikka jotkin WAF:t suorittavat tällaisia vahvistustoimintoja, nämä toiminnot suoritetaan pääasiassa palvelimella [14] .
Vuoden 2017 OWASP-raportissa sellainen hyökkäysvektori kuin XML External Entities (XXE) [15] oli yksi suurimmista mahdollisista riskeistä verkkosovelluksille . Tällaisten hyökkäysten mahdollisuus syntyy, kun sovellus sallii käyttäjän käyttää XML-dokumentteja tiedonsiirtoon, jonka sisällön jäsentää huonosti konfiguroitu jäsentäjä. Tämän seurauksena hyökkääjä voi välittää XML-muodossa viittauksen ulkoiseen kokonaisuuteen, mikä voi johtaa tietojen katoamiseen tai muihin ei-toivottuihin vaikutuksiin palvelimessa [16] [17] . Suojauksena käytetään huolellisesti määritettyä XML-serialisaattoria tai se korvataan toisella, esimerkiksi JSONilla. Tai ulkoisten XML-olioiden tuki on poistettu käytöstä [18] .
Raakavoimahyökkäykset ovat eräänlainen hyökkäys verkkosovellusta vastaan, jossa hyökkääjä yrittää päästä käsiksi verkkosovellukseen tai tietoihin raa'alla voimalla (tilit, salasanat, istuntotiedot).
Esimerkiksi lajittelemalla salasanaparametrin arvoa hyökkääjä voi määrittää onnistuneen valtuutuksen vastauskoodin [19] perusteella :
GET /vulnerabilities/brute/?username=admin&password=123456&Login=Kirjaudu
On huomattava, että joitain tavallisia hyökkäyksiä voidaan torjua sisällyttämällä kaikkiin nykyaikaisiin selaimiin asianmukaiset otsikot ja liput. Esimerkiksi X-XSS-Protection-otsikko tai HTTPonly-lippu Set-Cookie [20] [21] -otsikossa .
WAF:t käyttävät aktiivisesti allekirjoitusanalyysiä liikenteen suodattamiseen. Toteutuksessaan allekirjoitusmenetelmä käyttää vertailuun haitallisen liikenteen sanakirjaa [22] . Jos saapuvasta liikenteestä löytyi osa pyynnöstä (allekirjoituksesta), joka vastaa haitallista liikennettä, WAF:t estävät tämän pyynnön. Esimerkki allekirjoituksista [23] .
Menetelmä perustuu IP-osoitteiden ja verkkotunnusten valkoisiin ja mustiin listoihin. Näihin listoihin viitaten WAF:t arvioivat saapuvat pyynnöt [2] .
Jotkut suositut estoluettelot:
Käyttäytymisanalyysi perustuu koneoppimiseen. Tämän avulla voit havaita käyttäytymisen poikkeavuuksia syvällä ymmärryksen tasoilla. Tällainen mekanismi voidaan kouluttaa sekä opettajan kanssa että ilman opettajaa pääsytunnisteisiin. Saapuvat parametrit voivat olla pääsytunnisteita, kuten HTTP-parametreja, resurssin tunniste (URL, URN), istuntotunniste [1] . Siten allokoidaan kelvollisten pääsytunnisteiden matemaattinen vertailumalli. Jos tämä malli ei täsmää, seuraava pyyntö estetään [5] . Tämän avulla voit heijastaa sekä tunnetut hyökkäykset että nollapäivän hyökkäykset [2] .
Tietojen suojaamisen lisäksi WAF:t voivat tarjota toimintoja sen saatavuudesta ja torjua DoS-hyökkäyksiä. Kun hyökkäys havaitaan, liikennekuormaan osallistuvia käyttäjiä rajoitetaan tai estetään. WAF:t voivat myös ottaa käyttöön captchan palvelimen vastauksessa, mikä estää automaattiset pyynnöt ja mahdollistaa todellisten käyttäjien [5] .
Mukana toimitetuilla WAF:eilla voi olla oma haavoittuvuusskanneri. Skanneri kiinnittää sovelluskehittäjien huomion puutteisiin, jotka voidaan myöhemmin korjata tai vastuu niistä voidaan siirtää WAF:lle. Tämän analyysin aikana skanneri voi luoda pyyntöjä tietyillä parametriarvoilla, jotka mahdollistavat löydetyn haavoittuvuuden hyödyntämisen. Tietäen verkkosovelluksen heikot kohdat, WAF:t luovat virtuaalisia korjaustiedostoja, jotka sulkevat tällaiset paikat [24] .
WAF tarjoaa useita erilaisia tarvikkeita.
Kaikissa näissä tapauksissa WAF:t voidaan ottaa käyttöön jollakin seuraavista vaihtoehdoista: läpinäkyvä silta , läpinäkyvä tai käänteinen välityspalvelin [25] .
Internetissä olevien verkkosovellusten määrän kasvaessa niiden pätevän suojan tarve kasvaa [26] . Tämä on tekijä yritysten kehityksessä tähän suuntaan. Monet yritykset ovat mukana alan kehittämisessä. Suorita avointa markkinoiden, teknologioiden ja uhkien analytiikkaa. Koska tietoturvaperiaatteet ja -standardit on kehitetty verkkosuojauksen kehittämisen aikana, eri yritysten WAF-tuotteet ovat toiminnaltaan samanlaisia ja eroavat toisistaan vain graafisessa kuoressa [3] .
Suosituimmat ratkaisut:
WAF avoin lähdekoodi: