10 kõige levinumad veebiturbe turvaaugud

Lang L: none (table-of-contents):

Anonim

OWASP ehk Open Web Security Project on mittetulunduslik heategevusorganisatsioon, mis on keskendunud tarkvara ja veebirakenduste turvalisuse parandamisele.

Organisatsioon avaldab nimekirja peamistest veebiturvalisuse haavatavustest, mis põhinevad erinevate turvaorganisatsioonide andmetel.

Veebiturbe haavatavused on prioriteetsed, sõltuvalt kasutatavusest, tuvastatavusest ja mõjust tarkvarale.

  • Kasutatavus -

    Mida on vaja turvanõrkuse kasutamiseks? Suurim ärakasutatavus, kui rünnak vajab ainult veebibrauserit, ja madalaim on täiustatud programmeerimine ja tööriistad.

  • Tuvastatavus -

    Kui lihtne on ohtu tuvastada? Kõrgeim on URL-is kuvatav teave, vorm või veateade ja madalaim lähtekood.

  • Mõju või kahjustus -

    Kui palju kahju tekitatakse, kui turvahaavatavus paljastatakse või seda rünnatakse? Kõrgeim on täielik süsteemi krahh ja madalaim pole üldse midagi.

OWASP Top 10 põhieesmärk on õpetada arendajaid, disainereid, juhte, arhitekte ja organisatsioone kõige olulisemate turvaaukude kohta.

Kümme parimat turvaauku vastavalt OWASP Top 10-le on:

  • SQL-i süstimine
  • Saididevahelised skriptid
  • Katkine autentimine ja seansside haldamine
  • Ebaturvalised otsesed objektiviited
  • Saidiülene taotlus võltsimise kohta
  • Turvalisuse vale seadistamine
  • Ebaturvaline krüptograafiline salvestusruum
  • URL-i juurdepääsu piiramine ebaõnnestus
  • Puudulik transpordikihi kaitse
  • Valideerimata ümbersuunamised ja edasisuunamised

SQL-i süstimine

Kirjeldus

Injection on turvanõrkus, mis võimaldab ründajal muuta kasutajate sisestatud andmetega manipuleerides SQL-i taustaprogramme.

Sissepritsimine toimub siis, kui kasutaja sisend saadetakse tõlgi juurde käsu või päringu osana ja see petab tõlgi tahtmatud käske täitma ning annab juurdepääsu volitamata andmetele.

SQL-i käsk, mis veebirakenduse käivitamisel võib paljastada ka taguotsa andmebaasi.

Mõju

  • Ründaja võib haavatavatele väljadele süstida pahatahtlikku sisu.
  • Delikaatseid andmeid, nagu kasutajanimed, paroolid jne, saab andmebaasist lugeda.
  • Andmebaasi andmeid saab muuta (sisestamine / värskendamine / kustutamine).
  • Haldustoiminguid saab teha andmebaasis

Haavatavad objektid

  • Sisestusväljad
  • Andmebaasiga suhtlevad URL-id.

Näited:

  • SQL-i sisselogimine sisselogimislehele

Rakendusse sisselogimine ilma kehtivate mandaatideta.

Valid userName on saadaval ja parool pole saadaval.

Testi URL: http://demo.testfire.net/default.aspx

Kasutajanimi: sjones

Parool: 1 = 1 'või pass123

Loodud ja tõlgile saadetud SQL-päring allpool

VALI * kasutajate hulgast KUS Kasutajanimi = sjones JA parool = 1 = 1 'või pass123;

Soovitused

  1. Valge, kus on sisendväljad
  2. Vältige ründajale kasulike üksikasjalike veateadete kuvamist.

Saididevahelised skriptid

Kirjeldus

Saididevaheline skriptimine on lühidalt tuntud ka kui XSS.

XSS-i haavatavused sihivad lehele manustatud skripte, mis käivitatakse pigem kliendipoolel, st kasutaja brauseris, mitte serveri poolel. Need vead võivad ilmneda siis, kui rakendus võtab ebausaldusväärsed andmed ja saadab need veebibrauserisse ilma nõuetekohase valideerimiseta.

Ründajad saavad XSS-i abil käivitada kasutajatele pahatahtlikud skriptid, antud juhul ohvribrauserid. Kuna brauser ei saa teada, kas skript on usaldusväärne või mitte, käivitatakse skript ja ründaja saab kaaperdada seansiküpsiseid, kahjustada veebisaite või suunata kasutaja soovimatutele ja pahatahtlikele veebisaitidele.

XSS on rünnak, mis võimaldab ründajal skripte käivitada ohvri brauseris.

Mõju:

  • Seda turvanõrkust kasutades saab ründaja süstida rakendusse skripte, varastada seansiküpsiseid, rikkuda veebisaite ja käitada ohvri masinates pahavara.

Haavatavad objektid

  • Sisestusväljad
  • URL-id

Näited

1. http://www.vulnerablesite.com/home?" < script > alert(" xss") script >

Ülaltoodud skript brauseris käivitamisel kuvatakse teatekast, kui sait on XSS-i suhtes haavatav.

Tõsisema rünnaku saab teha, kui ründaja soovib seansiküpsist kuvada või salvestada.

2. http://demo.testfire.net/search.aspx?txtSearch > http://google.com width = 500 height 500>

Ülaltoodud skripti käivitamisel laadib brauser nähtamatu kaadri, mis osutab aadressile http://google.com .

Rünnaku saab tõsiseks muuta, kui brauseris käivitada pahatahtlik skript.

Soovitused

  1. Valge loendi sisendväljad
  2. Sisend Väljundi kodeerimine

Katkine autentimine ja seansside haldamine

Kirjeldus

Veebisaidid loovad tavaliselt seansiküpsise ja seansi ID iga kehtiva seansi jaoks ning need küpsised sisaldavad tundlikke andmeid, nagu kasutajanimi, parool jne. Kui seanss lõpeb kas väljalogimisega või brauser suletakse järsult, tuleks need küpsised kehtetuks muuta, st iga seansi jaoks peaks olema uus küpsis.

Kui küpsiseid ei tühistata, eksisteerivad süsteemis tundlikud andmed. Näiteks avalikku arvutit (Cyber ​​Cafe) kasutav kasutaja, haavatava saidi küpsised istuvad süsteemis ja on ründajale avatud. Ründaja kasutab mõnda aega sama avalikku arvutit, tundlikud andmed on ohustatud.

Samamoodi sulgeb avalikku arvutit kasutav kasutaja sisselogimise asemel brauseri järsult. Ründaja kasutab sama süsteemi, kui sirvib sama haavatavat saiti, avatakse ohvri eelmine seanss. Ründaja saab teha kõike, mida ta tahab, varastades näiteks profiiliteavet, krediitkaardiandmeid jne.

Autentimise ja seansside haldamise tugevuse leidmiseks tuleks kontrollida. Võtmed, seansimärgid, küpsised tuleks õigesti rakendada paroole kahjustamata.

Haavatavad objektid

  • URL-il kuvatud seansi ID-d võivad põhjustada seansi fikseerimise rünnaku.
  • Seansi ID-d on samad enne ja pärast välja logimist ja sisselogimist.
  • Seansi ajalõppu ei rakendata õigesti.
  • Rakendus määrab iga uue seansi jaoks sama seansi ID.
  • Rakenduse autentsed osad on kaitstud SSL-i abil ja paroolid salvestatakse räsitud või krüpteeritud vormingus.
  • Madala privileegiga kasutaja saab seanssi uuesti kasutada.

Mõju

  • Selle haavatavuse abil saab ründaja kaaperdada seansi, saada süsteemile volitamata juurdepääsu, mis võimaldab loata teabe avalikustamist ja muutmist.
  • Seansid võivad olla varjatud küpsiste abil kõrgendatud, või XSS-i kasutades.

Näited

  1. Lennufirma broneerimisrakendus toetab URL-ide ümberkirjutamist, lisades seansi ID-d URL-i:

    http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldiivid (piletite müük Maldiividele)

    Autenditud saidi 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.

  2. Rakendus on XSS-i suhtes haavatav, mille abil saab ründaja juurdepääsu seansi ID-le ja seda saab kasutada seansi kaaperdamiseks.
  3. Rakenduste ajalõppude arv pole õigesti määratud. Kasutaja kasutab avalikku arvutit ja sulgeb brauseri sisselogimise asemel ja läheb minema. Ründaja kasutab mõnda aega hiljem sama brauserit ja seanss on autentitud.

Soovitused

  1. Kõik autentimise ja seansihalduse nõuded tuleks määratleda vastavalt OWASP-i rakenduse turvalisuse kontrollimise standardile.
  2. Ärge kunagi paljastage URL-ides ega logides mandaate.
  3. Samuti tuleks teha suuri jõupingutusi XSS-i vigade vältimiseks, mida saab kasutada seansi ID-de varastamiseks.

Ebaturvalised otsesed objektiviited

Kirjeldus

See juhtub siis, kui arendaja paljastab viite sisemisele rakendusobjektile, näiteks failile, kataloogile või andmebaasivõtmele URL-is või parameetrina FORM. Ründaja saab seda teavet kasutada teistele objektidele juurdepääsemiseks ja võib loata andmetele juurdepääsemiseks luua tulevase rünnaku.

Mõju

  • Selle haavatavuse abil saab ründaja juurdepääsu volitamata siseobjektidele, andmeid muuta või rakendust ohustada.

Haavatavad objektid

  • URL-is.

Näited:

Järgmises URL-is "userid" muutmine võib muuta ründaja teise kasutaja teabe vaatamiseks.

http://www.vulnerablesite.com/userid=123 Muudetud aadressiks http://www.vulnerablesite.com/userid=124

Ründaja saab vaadata muud teavet, muutes kasutaja ID väärtust.

Soovitused:

  1. Rakendage juurdepääsu kontroll.
  2. Vältige URL-ide objektiviidete paljastamist.
  3. Kontrollige kõigi viiteobjektide volitusi.

Saidiülene taotlus võltsimise kohta

Kirjeldus

Saididevahelise päringu võltsimine on võltsitud taotlus, mis saadi ristsaidilt.

CSRF-rünnak on rünnak, mis tekib siis, kui pahatahtlik veebisait, e-post või programm põhjustab kasutaja brauseril soovimatu toimingu usaldusväärsel saidil, mille kasutaja on praegu autentitud.

CSRF-i rünnak sunnib sisseloginud ohvri brauserit saatma haavatavale veebirakendusele võltsitud HTTP-päringu, sealhulgas ohvri seansiküpsise ja muu automaatselt lisatud autentimisteabe.

Ründaja saadab ohvrile lingi, kui kasutaja klõpsab algsele veebisaidile sisse logides URL-i, andmed varastatakse veebisaidilt.

Mõju

  • Selle haavatavuse kasutamine ründajana võib muuta kasutajaprofiili teavet, muuta olekut, luua administraatori nimel uue kasutaja jne.

Haavatavad objektid

  • Kasutajaprofiili leht
  • Kasutajakonto vormid
  • Äritehingute leht

Näited

Ohver logitakse kehtivate volikirjade abil panga veebisaidile. Ta saab ründajalt kirja, milles öeldakse: "Palun klõpsake siin, et annetada 1 dollar põhjustamiseks."

Kui ohver sellel klõpsab, luuakse kehtiv taotlus 1 dollari annetamiseks kindlale kontole.

http://www.vulnerablebank.com/transfer.do?account=cause&amount=1

Ründaja haarab selle taotluse ja loob taotluse allpool ning manustab nupu, milles öeldakse "Ma toetan põhjust".

http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000

Kuna seanss on autentitud ja päring tuleb panga veebisaidi kaudu, kannaks server ründajale üle 1000 dollarit.

Soovitus

  1. Volitage kasutaja kohalolekut tundlike toimingute tegemisel.
  2. Rakendage selliseid mehhanisme nagu CAPTCHA, uuesti autentimine ja unikaalsed taotlusmärgid.

Turvalisuse vale seadistamine

Kirjeldus

Turvakonfiguratsioon tuleb määratleda ja juurutada rakenduse, raamistike, rakendusserveri, veebiserveri, andmebaasiserveri ja platvormi jaoks. 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 kompromissi. Tarkvara ajakohasena hoidmine on ka hea turvalisus.

Mõju

  • Seda haavatavust kasutades saab ründaja loendada aluseks oleva tehnoloogia ja rakendusserveri versiooni teavet, andmebaasiteavet ning hankida teavet rakenduse kohta, et veel mõned rünnakud luua.

Haavatavad objektid

  • URL
  • Vormiväljad
  • Sisestusväljad

Näited

  1. Rakendusserveri administraatorikonsool installitakse automaatselt ja seda ei eemaldata. Vaikekontosid ei muudeta. Ründaja saab sisse logida vaikeparoolidega ja saada volitamata juurdepääsu.
  2. Kataloogide loendamine pole teie serveris keelatud. Ründaja avastab ja saab failide leidmiseks lihtsalt katalooge loetleda.

Soovitused

  1. Tugev rakendusarhitektuur, mis tagab komponentide hea eraldamise ja turvalisuse.
  2. Vaikimisi kasutajanimede ja paroolide muutmine.
  3. Keela kataloogide loendid ja juuruta juurdepääsu kontroll.

Ebaturvaline krüptograafiline salvestusruum

Kirjeldus

Ebaturvaline krüptograafiline salvestusruum on tavaline haavatavus, mis ilmneb siis, kui tundlikke andmeid pole turvaliselt salvestatud.

Kasutaja mandaadid, profiiliteave, terviseandmed, krediitkaardiandmed jms kuuluvad veebisaidil tundliku teabe alla.

Need andmed salvestatakse rakenduste andmebaasi. Kui neid andmeid krüptimist või räsimist * kasutamata valesti salvestatakse, on see ründajate jaoks haavatav.

(* Räsimine on stringimärkide teisendamine lühemateks kindla pikkusega stringideks või võtmeks. Stringi dekrüpteerimiseks peaks olema saadaval võtme moodustamiseks kasutatud algoritm)

Mõju

  • Selle haavatavuse abil saab ründaja varastada, muuta 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äsisid *. SQL-i viga võimaldab ründajal paroolifaili hankida. Kõiki soolamata rässe saab kiiresti toorelt sundida, samas kui soolatud paroolid võtaksid tuhandeid aastaid.

(* Soolamata räsid - sool on juhuslikud andmed, mis on lisatud algandmetele. Sool lisatakse enne räsimist paroolile)

Soovitused

  1. Tagage asjakohased tugevad standardalgoritmid. Ärge looge oma krüptograafilisi algoritme. Kasutage ainult heakskiidetud avalikke algoritme nagu AES, RSA avaliku võtme krüptograafia ja SHA-256 jne.
  2. Veenduge, et välised varukoopiad oleksid krüptitud, kuid võtmeid hallatakse ja varundatakse eraldi.

URL-i juurdepääsu piiramine ebaõnnestus

Kirjeldus

Veebirakendused kontrollivad URL-ide juurdepääsuõigusi enne kaitstud linkide ja nuppude renderdamist. Rakendused peavad iga kord, kui neile lehtedele juurde pääsevad, tegema sarnaseid juurdepääsu kontrollimise kontrolle.

Enamikus rakendustes ei kuvata privilegeeritud lehti, asukohti ja ressursse privilegeeritud kasutajatele.

Aruka oletuse järgi pääseb ründaja privileegide lehtedele juurde. Ründajal on juurdepääs tundlikele lehtedele, funktsioonide käivitamine ja konfidentsiaalse teabe vaatamine.

Mõju

  • Selle haavatavuse ründaja kasutamine võib juurdepääsu loata URL-idele ilma rakendusse sisse logimata ja haavatavust ära kasutada. Ründajal on juurdepääs tundlikele lehtedele, funktsioonide käivitamine ja konfidentsiaalse teabe vaatamine.

Haavatavad objektid:

  • URL-id

Näited

  1. Ründaja märkab, et URL näitab rolli kui "/ user / getaccounts". Ta muudab kui "/ admin / getaccounts".
  2. Ründaja saab URL-ile rolli lisada.

http://www.vulnerablsite.com saab muuta aadressiks http://www.vulnerablesite.com/admin

Soovitused

  1. Rakendada tugevat juurdepääsu kontrollimist.
  2. Autentimis- ja autoriseerimispõhimõtted peaksid olema rollipõhised.
  3. Piirake juurdepääsu soovimatutele URL-idele.

Puudulik transpordikihi kaitse

Kirjeldus

Tegeleb teabevahetusega kasutaja (klient) ja serveri (rakendus) vahel. Rakendused edastavad võrgu kaudu sageli tundlikku teavet, näiteks autentimise üksikasju, krediitkaarditeavet ja seansimärke.

Nõrkade algoritmide või aegunud või kehtetute sertifikaatide kasutamine või SSL-i kasutamata jätmine võib võimaldada suhtlemist ebausaldusväärsete kasutajatega, mis võib ohustada veebirakendust ja varastada tundlikku teavet.

Mõju

  • Seda veebiturvalisuse haavatavust kasutades saab ründaja nuusutada seadusliku kasutaja mandaate ja saada rakendusele juurdepääsu.
  • Saab varastada krediitkaardi andmeid.

Haavatavad objektid

  • Võrgu kaudu saadetud andmed.

Soovitused

  1. Luba turvaline HTTP ja jõusta mandaatide edastamine ainult HTTPS-i kaudu.
  2. Veenduge, et teie sertifikaat on kehtiv ega ole 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 saab selle küpsise varastada ja sooritada rünnaku keskel mees.

Valideerimata ümbersuunamised ja edasisuunamised

Kirjeldus

Veebirakendus kasutab kasutajaid sihtotstarbeliselt teistele lehtedele suunamiseks ja edastamiseks vähe meetodeid.

Kui teistele lehtedele ümbersuunamise korral pole nõuetekohast valideerimist, saavad ründajad seda kasutada ja suunata ohvrid õngitsemis- või pahavara saitidele või kasutada volitamata lehtedele juurdepääsemiseks edastust.

Mõju

  • Ründaja võib kasutajale saata URL-i, mis sisaldab ehtsat URL-i, millele on lisatud kodeeritud pahatahtlik URL. Ründaja saadetud URL-i ehtsat osa nähes saab kasutaja seda sirvida ja temast võib saada ohver.

Näited

1. http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com

Muudetud

http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com

Soovitused

  1. Vältige rakenduses lihtsalt ümbersuunamiste ja edasisaatmiste kasutamist. Kui seda kasutatakse, ärge kasutage sihtkoha arvutamisel kasutaja parameetrite kasutamist.
  2. Kui sihtkoha parameetreid ei saa vältida, veenduge, et sisestatud väärtus on kehtiv ja kasutaja jaoks lubatud.

Selle artikli autor on Prasanthi Eati