10 kõige levinumat veebiturvalisuse haavatavust
OWASP ehk Open Web Security Project on mittetulunduslik heategevusorganisatsioon, mis on keskendunud tarkvara ja veebirakenduste turvalisuse parandamisele.
Organisatsioon avaldab erinevate turvaorganisatsioonide andmetel põhinevate veebiturbe haavatavuste loendi.
Veebiturbe haavatavused seatakse prioriteediks sõltuvalt kasutatavusest, tuvastatavusest ja mõjust tarkvarale.
- Kasutatavus –Mida on vaja turvaauku ärakasutamiseks? Kõrgeim kasutatavus, kui rünnak vajab ainult veebibrauserit ja madalaim on täiustatud programmeerimine ja tööriistad.
- Tuvastatavus - Kui lihtne on ohtu tuvastada? Kõige lihtsam on teave, mis kuvatakse ekraanil. URL, Vorm või veateade ja alumine on lähtekood.
- Löök või kahjustus –Kui palju kahju tekib, kui turvaauke paljastatakse või rünnatakse? Kõrgeim on täielik süsteemi krahh ja madalaim mitte midagi.
OWASP Top 10 peamine eesmärk on harida arendajaid, disainereid, juhte, arhitekte ja organisatsioone kõige olulisemate turvaaukude kohta.
OWASP Top 10 10 parimat turvaauku on järgmised:
SQL Injection
Kirjeldus
Süstimine on turvahaavatavus, mis võimaldab ründajal taustaprogrammi muuta SQL avaldused, manipuleerides kasutaja esitatud andmetega.
Süstimine toimub siis, kui kasutaja sisend saadetakse tõlgile käsu või päringu osana ja see meelitab tõlgi täitma soovimatuid käske ja annab juurdepääsu volitamata andmetele.
SQL-käsk, mis veebirakenduse käivitamisel võib paljastada ka taustaandmebaasi.
Mõju
- Ründaja võib haavatavatele väljadele pahatahtlikku sisu süstida.
- Andmebaasist saab lugeda tundlikke andmeid nagu kasutajanimed, paroolid jne.
- Andmebaasi andmeid saab muuta (Insert/Update/Delete).
- haldus Operasaab andmebaasis käivitada
Haavatavad objektid
- Sisestusväljad
- URLsuhtleb andmebaasiga.
Näited:
- SQL süstimine sisselogimislehel
Rakendusse sisselogimine ilma kehtivate mandaatideta.
Kehtiv kasutajanimi on saadaval ja parool pole saadaval.
test URL: http://demo.testfire.net/default.aspx
Kasutajanimi: sjones
Parool: 1=1′ või pass123
SQL-päring on loodud ja saadetud Interpreterile nagu allpool
SELECT * FROM Kasutajad WHERE Kasutajanimi = sjones AND Parool = 1=1′ või pass123;
Soovitused
- Sisestusväljade valge loend
- Vältige ründajale kasulike üksikasjalike veateadete kuvamist.
Saitidevaheline skriptimine
Kirjeldus
Cross Site Scripting on lühidalt tuntud ka kui XSS.
XSS-i haavatavused on suunatud lehele manustatud skriptidele, mis käivitatakse kliendi poolel, st kasutaja brauseris, mitte serveri poolel. Need vead võivad ilmneda siis, kui rakendus võtab ebausaldusväärseid andmeid ja saadab need veebibrauserisse ilma nõuetekohase valideerimiseta.
Ründajad saavad kasutada XSS-i, et käivitada kasutajate peal pahatahtlikke skripte, antud juhul ohvriks langenud brauserites. Kuna brauser ei saa teada, kas skript on usaldusväärne või mitte, siis skript käivitatakse ja ründaja võib seansiküpsiseid kaaperdada, veebisaite rikkuda või kasutaja soovimatutele ja pahatahtlikele veebisaitidele ümber suunata.
XSS on rünnak, mis võimaldab ründajal ohvri brauseris skripte käivitada.
Mõju:
- Seda turvaauku kasutades saab ründaja sisestada rakendusse skripte, varastada seansiküpsiseid, rikkuda veebisaite ja käivitada ohvri masinates pahavara.
Haavatavad objektid
- Sisestusväljad
- URLs
Näited
1. http://www.vulnerablesite.com/home?”<script>alert(“xss”)</script>
Ülaltoodud skripti brauseris käivitamisel kuvatakse teatekast, kui sait on XSS-i suhtes haavatav.
Tõsisema rünnaku saab teha siis, kui ründaja soovib kuvada või salvestada seansiküpsist.
2. http://demo.testfire.net/search.aspx?txtSearch <iframe> http://google.com laius = 500 kõrgus 500>
Ülaltoodud skripti käivitamisel laadib brauser nähtamatu raami, mis osutab sellele http://google.com.
Rünnaku saab tõsiseks muuta, käivitades brauseris pahatahtliku skripti.
Soovitused
- Valge loendi sisestusväljad
- Sisend Väljundi kodeering
Katkestatud autentimine ja seansihaldus
Kirjeldus
Veebisaidid loovad tavaliselt iga kehtiva seansi jaoks seansiküpsise ja seansi ID ning need küpsised sisaldavad tundlikke andmeid, nagu kasutajanimi, parool jne. Kui seanss lõppeb väljalogimise või brauseri järsu sulgemisega, tuleks need küpsised tühistada, st iga seansi jaoks peaks tulema uus küpsis.
Kui küpsiseid ei tunnistata kehtetuks, on delikaatsed andmed süsteemis olemas. Näiteks kui kasutaja kasutab avalikku arvutit (Cyber Cafe), istuvad haavatava saidi küpsised süsteemi ja puutuvad kokku ründajaga. Ründaja kasutab mõne aja pärast sama avalikku arvutit, tundlikud andmed on ohus.
Samamoodi sulgeb avalikku arvutit kasutav kasutaja väljalogimise asemel brauseri järsult. Ründaja kasutab sama süsteemi, sama haavatavat saiti sirvides avatakse ohvri eelmine seanss. Ründaja võib teha mida iganes, varastada profiiliteavet, krediitkaarditeavet jne.
Kontrollida tuleks autentimise ja seansihalduse tugevust. Võtmed, seansimärgid ja küpsised tuleks rakendada õigesti, ilma paroolide ohtu seadmata.
Haavatavad objektid
- Seansi ID-d avalikustati URL võib viia seansi fikseerimise rünnakuni.
- Seansi ID-d on samad enne ja pärast välja- ja sisselogimist.
- Seansi ajalõpe pole õigesti rakendatud.
- Rakendus määrab iga uue seansi jaoks sama seansi ID.
- Rakenduse autentitud osad on kaitstud SSL-iga ja paroolid salvestatakse räsi- või krüptitud vormingus.
- Madala privilegeeritud kasutaja saab seanssi uuesti kasutada.
Mõju
- Seda haavatavust kasutades võib ründaja seansi kaaperdada, saada volitamata juurdepääsu süsteemile, mis võimaldab volitamata teavet avalikustada ja muuta.
- Seansse saab tõsta varastatud küpsiste või XSS-i kasutavate seansside abil.
Näited
- Lennufirma broneerimisrakendus toetab URL ümberkirjutamine, seansi ID-de lisamine URL:http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (Piletite müük Maldiividele) Saidi autentitud kasutaja soovib oma sõpradele müügist teada anda ja saadab e-kirja. Sõbrad saavad seansi ID ja neid saab kasutada volitamata muudatuste tegemiseks või salvestatud krediitkaardi andmete väärkasutamiseks.
- Rakendus on haavatav XSS-i suhtes, mille kaudu ründaja pääseb juurde seansi ID-le ja seda saab kasutada seansi kaaperdamiseks.
- Rakenduste ajalõpud pole õigesti seadistatud. Kasutaja kasutab avalikku arvutit ja sulgeb väljalogimise asemel brauseri ja kõnnib minema. Ründaja kasutab mõnda aega hiljem sama brauserit ja seanss autenditakse.
Soovitused
- Kõik autentimise ja seansi haldamise nõuded tuleks määratleda vastavalt OWASP-i rakenduse turbekontrolli standardile.
- Ärge kunagi avaldage oma volitusi URLs või logid.
- Samuti tuleks teha suuri jõupingutusi, et vältida XSS-i vigu, mida saab kasutada seansi ID-de varastamiseks.
Ebaturvalised otseobjektiviited
Kirjeldus
See juhtub siis, kui arendaja avaldab viite sisemisele rakendusobjektile, näiteks failile, kataloogile või andmebaasivõtmele, nagu näiteks URL või FORM-parameetrina. Ründaja saab seda teavet kasutada teistele objektidele juurdepääsuks ja luua tulevase rünnaku volitamata andmetele juurdepääsuks.
Mõju
- Seda haavatavust kasutades võib ründaja pääseda juurde volitamata sisemistele objektidele, muuta andmeid või ohustada rakendust.
Haavatavad objektid
- aasta URL.
Näited:
„Kasutaja ID” muutmine järgmistes olukordades URL saab panna ründaja vaatama teiste kasutajate andmeid.
http://www.vulnerablesite.com/userid=123 Muudetud http://www.vulnerablesite.com/userid=124
Ründaja saab vaadata teiste teavet, muutes kasutaja ID väärtust.
Soovitused:
- Rakendage juurdepääsukontrolli kontrolle.
- Vältige objektiviidete paljastamist URLs.
- Kontrollige kõigi viiteobjektide volitusi.
Saidiülese taotluse võltsimine
Kirjeldus
Cross Site Request Forgery on võltsitud taotlus, mis pärineb ristsaidilt.
CSRF-rünnak on rünnak, mis toimub siis, kui pahatahtlik veebisait, e-kiri või programm paneb kasutaja brauseri sooritama soovimatuid toiminguid usaldusväärsel saidil, mille jaoks kasutaja on praegu autentitud.
CSRF-rünnak sunnib sisselogitud ohvri brauserit saatma haavatavale veebirakendusele võltsitud HTTP-päringu, sealhulgas ohvri seansiküpsise ja muu automaatselt kaasatud autentimisteabe.
Kui ründaja klõpsab lingil, saadab ründaja ohvrile lingi. URL Algsele veebisaidile sisselogimisel varastatakse andmed veebisaidilt.
Mõju
- Selle haavatavuse kasutamine ründajana võib muuta kasutajaprofiili teavet, olekut, luua administraatori nimel uue kasutaja jne.
Haavatavad objektid
- Kasutajaprofiili leht
- Kasutajakonto vormid
- Äritehingute leht
Näited
Ohver logitakse panga veebisaidile sisse kehtivate mandaatidega. Ta saab ründajalt kirja, mis ütleb: "Palun klõpsake siin, et annetada 1 dollar."
Kui ohver sellel klõpsab, luuakse kehtiv taotlus 1 dollari annetamiseks konkreetsele kontole.
http://www.vulnerablebank.com/transfer.do?account=cause&amount=1
Ründaja jäädvustab selle päringu ja loob allpool päringu ning manustab nupule "Toetan põhjust".
http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000
Kuna seanss on autentitud ja päring tuleb panga veebisaidi kaudu, kannab server ründajale 1000 dollarit.
Soovitus
- Nõuandke tundlike toimingute tegemisel kasutaja kohalolekut.
- Rakendage selliseid mehhanisme nagu CAPTCHA, uuesti autentimine ja kordumatud päringu märgid.
Turvalisuse vale seadistamine
Kirjeldus
Rakenduse, raamistike, rakendusserveri, veebiserveri, andmebaasiserveri ja platvormi jaoks tuleb määratleda ja juurutada turbekonfiguratsioon. Kui need on õigesti konfigureeritud, võib ründajal olla volitamata juurdepääs tundlikele andmetele või funktsioonidele.
Mõnikord põhjustavad sellised vead süsteemi täieliku rikke.ping Tarkvara ajakohasus on ka hea turvalisuse tagatis.
Mõju
- Seda haavatavust kasutades saab ründaja loetleda aluseks oleva tehnoloogia ja rakendusserveri versiooniteabe, andmebaasi teabe ning hankida teavet rakenduse kohta, et korraldada veel paar rünnakut.
Haavatavad objektid
- URL
- Vormiväljad
- Sisestusväljad
Näited
- Rakendusserveri administraatorikonsool installitakse automaatselt ja seda ei eemaldata. Vaikekontosid ei muudeta. Ründaja saab sisse logida vaikeparoolidega ja pääseb volitamata juurde.
- Kataloogide loend pole teie serveris keelatud. Ründaja avastab ja saab lihtsalt loetleda kataloogid, et leida mis tahes faile.
Soovitused
- Tugev rakenduse arhitektuur, mis tagab komponentide hea eraldatuse ja turvalisuse.
- Muutke vaikimisi kasutajanimesid ja paroole.
- Keelake kataloogide loendid ja rakendage juurdepääsukontrolli kontrolle.
Ebaturvaline krüptograafiline salvestusruum
Kirjeldus
Ebaturvaline krüptograafiline salvestusruum on tavaline haavatavus, mis tekib siis, kui tundlikke andmeid ei salvestata turvaliselt.
Kasutaja volikirjad, profiiliteave, terviseandmed, krediitkaarditeave jne kuuluvad veebisaidi tundlike andmete alla.
Need andmed salvestatakse rakenduste andmebaasi. Kui neid andmeid salvestatakse valesti, kuna ei kasutata krüptimist ega räsimist*, on need ründajate suhtes haavatavad.
(*Räsimine on stringimärkide teisendamine lühemateks fikseeritud pikkusega stringideks või võtmeks. Stringi dekrüpteerimiseks peab võtme moodustamiseks kasutatav algoritm olema saadaval)
Mõju
- Seda haavatavust kasutades saab ründaja varastada, muuta selliseid nõrgalt kaitstud andmeid identiteedivarguste, krediitkaardipettuste või muude kuritegude toimepanemiseks.
Haavatavad objektid
- Rakenduste andmebaas.
Näited
Ühes pangarakenduses kasutab paroolide andmebaas kõigi paroolide salvestamiseks soolamata räsi *. SQL-i sisestamise viga võimaldab ründajal paroolifaili tuua. Kõiki soolamata räsi saab kiiresti sundida, samas kui soolatud paroolide jaoks kuluks tuhandeid aastaid.
(*Soolamata räsi – sool on algandmetele lisatud juhuslikud andmed. Sool lisatakse paroolile enne räsimist)
Soovitused
- Tagada sobivad tugevad standardalgoritmid. Ärge looge oma krüptoalgoritme. Kasutage ainult heakskiidetud avalikke algoritme, nagu AES, RSA avaliku võtme krüptograafia ja SHA-256 jne.
- Veenduge, et väljaspool saiti tehtud varukoopiad oleksid krüpteeritud, kuid võtmeid hallatakse ja varundatakse eraldi.
Piiramise suutmatus URL juurdepääs
Kirjeldus
Veebirakenduste kontroll URL juurdepääsuõigused enne kaitstud linkide ja nuppude renderdamist. Rakendused peavad iga kord, kui neile lehtedele juurde pääsetakse, tegema sarnaseid juurdepääsukontrolli kontrolle.
Enamikus rakendustes privilegeeritud lehti, asukohti ja ressursse privilegeeritud kasutajatele ei esitata.
Aruka oletuse järgi pääseb ründaja juurde privileegide lehtedele. Ründaja saab juurde pääseda tundlikele lehtedele, käivitada funktsioone ja vaadata konfidentsiaalset teavet.
Mõju
- Seda haavatavust ära kasutades saab ründaja juurdepääsu volitamata andmetele URLs, ilma rakendusse sisse logimata ja haavatavust ära kasutamata. Ründaja saab juurde pääseda tundlikele lehtedele, käivitada funktsioone ja vaadata konfidentsiaalset teavet.
Haavatavad objektid:
- URLs
Näited
- Ründaja märkab, et URL tähistab rolli kui „/user/getaccounts“. Ta muudab seda kui „/admin/getaccounts“.
- Ründaja saab rolli lisada URL.
http://www.vulnerablsite.com saab muuta kui http://www.vulnerablesite.com/admin
Soovitused
- Rakendage tugevaid juurdepääsukontrolli kontrolle.
- Autentimis- ja autoriseerimispoliitika peaksid olema rollipõhised.
- Piirake juurdepääsu soovimatutele URLs.
Ebapiisav transpordikihi kaitse
Kirjeldus
Tegeleb kasutaja (kliendi) ja serveri (rakenduse) vahelise teabevahetusega. Rakendused sageli transmit tundlikku teavet, näiteks autentimisandmeid, krediitkaardi andmeid ja seansi tokeneid võrgu kaudu.
Nõrkade algoritmide või aegunud või kehtetute sertifikaatide kasutamine või SSL-i mittekasutamine võib võimaldada suhtlust ebausaldusväärsetele kasutajatele, mis võib kahjustada veebirakendust ja/või varastada tundlikku teavet.
Mõju
- Seda veebiturvalisuse haavatavust kasutades saab ründaja nuusutada õigustatud kasutaja mandaate ja pääseda juurde rakendusele.
- Võib varastada krediitkaardi andmeid.
Haavatavad objektid
- Võrgu kaudu saadetud andmed.
Soovitused
- Lubage turvaline HTTP ja jõustage mandaatide edastamine ainult HTTPS-i kaudu.
- Veenduge, et teie sertifikaat on kehtiv ja pole aegunud.
Näited:
1. Rakendus, mis ei kasuta SSL-i, jälgib ründaja lihtsalt võrguliiklust ja jälgib autentitud ohvriseansi küpsist. Ründaja võib selle küpsise varastada ja sooritada rünnaku Man-in-the-Middle.
Kinnitamata ümbersuunamised ja edasisuunamised
Kirjeldus
Veebirakendus kasutab vähe meetodeid, et suunata ja suunata kasutajaid ettenähtud eesmärgil teistele lehtedele.
Kui teistele lehtedele ümbersuunamisel puudub nõuetekohane valideerimine, saavad ründajad seda kasutada ja ohvreid ümber suunata andmepüügi- või pahavarasaitidele või kasutada volitamata lehtedele juurdepääsuks edasisaateid.
Mõju
- Ründaja saab saata URL kasutajale, mis sisaldab ehtsat URL lisatud pahatahtliku kodeeringuga URLKasutaja saab ründaja saadetud sisu ehtsa osa nägemisega URL saab seda sirvida ja võib ohvriks langeda.
Näited
1.http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com
Muudetud
http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com
Soovitused
- Lihtsalt vältige rakenduses ümbersuunamiste ja edasisuunamiste kasutamist. Kui seda kasutatakse, ärge kasutage sihtkoha arvutamisel kasutaja parameetreid.
- Kui sihtkoha parameetreid ei saa vältida, veenduge, et esitatud väärtus on kehtiv ja kasutaja jaoks volitatud.

