Veebikodeerimise turvafirma SALT teadlased avaldasid just põneva kirjelduse selle kohta, kuidas nad avastasid autentimise viga dubleeritud CVE-2023-28131 populaarses veebirakenduste koostamise tööriistakomplektis, mida tuntakse Expo nime all.
Hea uudis on see, et Expo vastas väga kiiresti SALTi veateate juurde, leides lahenduse vaid mõne tunni jooksul pärast SALTi vastutustundlikku avalikustamist.
Õnneks ei sõltunud parandus sellest, et kliendid midagi alla laadisid, sest plaaster oli rakendatud Expo pilveteenuse sees ja see ei nõudnud plaastreid ühelegi eelinstallitud rakendusele ega kliendipoolsele koodile.
Expo'd nõuandev mitte ainult ei selgitanud, mis juhtus ja kuidas ettevõte selle parandas, vaid pakkus ka oma klientidele programmeerimisnõuandeid, kuidas vältida seda tüüpi võimalikku haavatavust teiste võrguteenustega.
Seejärel ootas SALT kolm kuud enne oma aruande avaldamist, mitte ei kiirustanud seda võimalikult kiiresti avalikustamise eesmärgil, andes Expo kasutajatele võimaluse Expo vastust seedida ja selle järgi tegutseda.
Hoides seda lihtsana
Lokalist autentimise protsessi selgitatakse üksikasjalikult artiklis SALTi aruanne, kuid esitame siin oluliselt lihtsustatud kirjelduse sellest, mis Expo OAUTH-teenuses valesti läks.
OAUTH, lühike Avage autoriseerimisraamistik, on protsess, mis võimaldab teil pääseda juurde privaatstele andmetele võrguteenuses (nt oma võrguprofiili redigeerimine, uue ajaveebi artikli lisamine või veebiteenuse heakskiitmine teie eest sotsiaalmeediapostituste tegemiseks), ilma et peaksite kunagi parooli seadistama. või otse sellesse teenusesse sisse logides.
Kui näete veebiteenuseid, mis pakuvad teile a Logige sisse Google'i või Facebookiga Näiteks kasutavad nad taustal peaaegu alati OAUTH-i, nii et teil ei ole vaja luua uut kasutajanime ja parooli veel ühe veebisaidiga ega anda oma telefoninumbrit mõnele teisele võrguteenusele.
Rangelt võttes autentige autentimine kaudselt, sisestades ainult oma Google'i või Facebooki mandaadid ühele neist saitidest.
Mõnele kasutajale see ei meeldi, sest nad ei taha end Google'is või Facebookis autentida, et tõestada oma identiteeti teistele mitteseotud saitidele. Teistele meeldib see, sest nad eeldavad, et sellistel saitidel nagu Facebook ja Google on sisselogimisprotsessi haldamisel, parooliräside turvalisel salvestamisel ja 2FA tegemisel rohkem kogemusi kui butiigi veebisaidil, mis on püüdnud luua oma krüptograafilisi turvaprotsesse.
Väljastpoolt tellitud autentimine
Oluliselt lihtsustatud, OAUTH-stiilis sisselogimine teie Facebooki konto kaudu saidile nimega example.com
, läheb umbes nii:
- Site
example.com
ütleb teie rakendusele või brauserile, "Tere, X, mine ja hankige selle saidi jaoks Facebookist maagiline juurdepääsuluba." - Külastate spetsiaalset Facebooki URL-i ja logite sisse, kui te pole seda juba teinud, ja öelge: "Anna mulle maagiline juurdepääsuluba
example.com
. " - Kui Facebook on veendunud, et olete see, kelleks pretendeerite, see vastab: "Tere, X, siin on teie maagiline juurdepääsuluba."
- Annate juurdepääsuloa kätte
example.com
, mis saab seejärel Facebooki endaga ühendust võtta, et märgi kinnitada.
Pange tähele, et ainult Facebook näeb vajadusel teie Facebooki parooli ja 2FA-koodi, seega toimib Facebooki teenus teie ja teie vahel autentimisvahendajana. example.com
.
Kulisside taga toimub selline lõplik kinnitus:
- Site
example.com
ütleb Facebookile, "Kas te andsite selle märgi välja ja kas see kinnitab kasutaja X?" - Kui Facebook nõustub, see ütleb
example.com
, "Jah, me peame seda kasutajat autendituks."
Subverteeritav jada
Vea, mille SALT-i teadlased Expo koodist leidsid, võib käivitada Expo käitumise pahatahtliku õõnestamise tõttu, mida võiks nimetada autentimisvahendusprotsessiks.
Põhipunktid on järgmised:
- Expo ise lisab kinnitusprotsessile ümbrise, nii et see tegeleb teie eest autentimise ja valideerimisega, edastades lõpuks soovitud veebisaidi maagilise juurdepääsumärgi (
example.com
ülaltoodud vahetuses) tagasi rakendusse või veebisaidile, millelt ühenduse loote. - Kontrollimisel kasutatud parameetrid on pakitud suurele URL-ile, mis esitatakse Expo teenusele.
- Üks neist parameetritest salvestatakse ajutiselt veebiküpsisesse mis määrab URL-i, kuhu juurdepääsu võimaldamiseks saadetakse lõplik maagiline turvamärk.
- Enne turvamärgi kohaletoimetamist hüpikaken palub teil kinnitada URL-i, mida hakatakse autoriseerima, et saaksite tabada kõiki, kes üritavad sisselogimisprotsessis võlts-URL-i asendada.
- Kui kiidate hüpikakna heaks, Expo suunab teid Facebooki kinnitamisprotsessi.
- Kui Facebook kinnitab kinnituse, see tagastab Expo teenusele maagilise juurdepääsumärgi ja Expo saadab selle edasi URL-ile, mille just hüpikaknas kinnitasite ja mida nimetatakse
returnURL
. - Rakendus või veebisait, mis kuulab määratud kohas
returnURL
võtab vastu Expo tagasihelistamise, omandab juurdepääsuloa ja on seetõttu teiena autentitud.
Kahjuks leidsid SALT-i teadlased, et nad võivad sisselogimisprotsessi õõnestada, kasutades JavaScripti koodi, et käivitada juurdepääs Expo algsele sisselogimis-URL-ile, kuid seejärel kustutada kinnitushüpik, enne kui teil oli aega seda lugeda või see ise heaks kiita.
Sel hetkel oli Expo teenus aga juba määranud küpsise nimega ru
(lühike returnURL
), et öelda, kuhu tagasi helistada, kasutades lõpus oma maagilist juurdepääsuluba.
See tähendas, et küberkurjategija võib meelitada Expo koodi nii, et ta mäletaks a returnURL
nagu https://roguesite.example
, ilma et te kunagi näeksite dialoogi, mis hoiatab teid, et rünnak on käimas, rääkimata selle kogemata heakskiitmisest.
Seejärel kasutasid teadlased teist JavaScripti koodi tükki, et simuleerida Expo ümbersuunamist Facebooki kinnitusprotsessile, mis õnnestub automaatselt, kui (nagu paljud inimesed) olete juba Facebooki sisse logitud.
Facebooki kontrollimine suunaks omakorda Expo sisselogimisprotsessi tagasi Expo enda JavaScripti koodi…
…mis haaraks usalduslikult, kuid ekslikult kunagi tegelikult kontrollimata returnURL
selle maagia tagasihelistamise eest ru
küpsis, mille ta alguses ilma teie nõusolekuta või teadmata seadis.
Ebaõnnestunud avamine või ebaõnnestumine suletud?
Nagu ülaltoodud kirjeldusest näha, põhjustas haavatavuse Expo koodi sobimatu tõrge.
Autentimiskood peaks üldiselt ebaõnnestumine suletud, žargoonis, mis tähendab, et protsess ei tohiks õnnestuda, kui pole teatatud mingist aktiivsest heakskiitmisest.
Oletame, et Expo ei kavatsenud seda süsteemi teha avamine ebaõnnestub, arvestades, et SALTi aruanne näitab, et selle hüpikakna kinnitamise dialoog nägi välja selline:
Rakendus aadressil https://roguesite.example palub teil oma Facebooki kontole sisse logida. Kas usaldate täielikult https://roguesite.example ja nõustute seda lubama: [Ei] [Jah]
Vaikimisi vastus määrati, nagu arvata võis [No]
, kuid see põhjustaks süsteemi sulgemise ebaõnnestumise ainult siis, kui kasutaksite kinnitamisprotsessi juhtimiseks usuliselt Expo enda kliendipoolset koodi.
Varustades oma JavaScripti kinnitustaotluste jada käivitamiseks, suutsid teadlased käsitleda kinnitusdialoogi nii, nagu oleks see öelnud:
Kui te ei kästa meil selgesõnaliselt blokeerida https://roguesite.example oma Facebooki konto kaudu sisselogimist, siis lubame tal seda teha: [Luba] [Blokeeri]
Lahendus muude muudatuste hulgas oli see, et Expo esialgne sisselogimiskood määras selle maagia ru
küpsis alles pärast seda, kui olete nn returnURL
, nii et Expo hilisem JavaScripti sisselogimiskood ei suletaks, kui kinnitamise hüpikaken jäetaks vahele, selle asemel et usaldada pimesi URL-i, mida te pole kunagi näinud või heaks kiitnud.
See viga on paljuski sarnane Belkin Wemo nutikas pistik viga, millest kirjutasime kaks nädalat tagasi, kuigi Belkini juhtumi algpõhjus oli puhvri ületäitumine, mitte võltsitud veebi tagasihelistamine.
Belkini kood eraldas oma serveripoolses koodis 68-baidise mälupuhvri, kuid tugines kliendipoolse koodi kontrollimisele, et te ei üritanud saata rohkem kui 68 baiti, jättes seega serveri ründajate meelevalda, kes otsustasid. et rääkida serveriga, kasutades oma kliendipoolset koodi, mis möödus kinnitusprotsessist.
Mida teha?
- Vigadest teatades ja üles kirjutades kaaluge SOOLA järgimist näide. Avalikustage vastutustundlikult, andes müüjale mõistliku aja haavatavuse parandamiseks ja mõistlikku aega oma kasutajate nõustamiseks, enne kui avaldate üksikasjad, mis võimaldavad kellelgi teisel oma ärakasutamist luua.
- Kui saate veateateid, kaaluge Expo jälgimist näide. Vastake kiiresti, hoidke veateatajaga ühendust, parandage haavatavus esimesel võimalusel, esitage oma kasutajatele kasulik uurimisaruanne ja hoidke seda objektiivsena. (Pidage vastu oma turundusmeeskonna soovitustele kiita ennast turvalisuse tõsiselt võtmise eest või jätta see probleem ebaoluliseks. See on teie kasutajate otsustada, lähtudes teie vastuse kiirest ja asjakohasusest ning nende enda riskihinnangust.)
- Veenduge, et teie autentimiskoodi sulgemine ebaõnnestub. Veenduge, et teil poleks kinnitus- või heakskiitmise toiminguid, mida saaks lihtsalt neid ignoreerides või tühistades neutraliseerida.
- Ärge kunagi eeldage, et teie enda kliendipoolne kood juhib kinnitusprotsessi. Eeldage, et ründajad muudavad teie protokolli ümber ja loovad oma kliendikoodi, et vältida võimalikult palju kontrolle.
- Logige veebikontodelt välja, kui te neid aktiivselt ei kasuta. Paljud inimesed logivad sisse sellistele kontodele nagu Google, Amazon, Facebook, Apple ja teised ning jäävad seejärel lõputult sisse logima, sest see on mugav. Väljalogimine takistab paljude toimingute (sh autentimised, postitused, meeldimised, jagamised ja palju muud) toimumist siis, kui te neid ei oota – selle asemel näete sisselogimisviipa.
Ärge unustage, et kui logite igal võimalusel veebiteenustest välja ning kustutate sageli kõik brauseri küpsised ja salvestatud veebiandmed, vähendate ka jälgimisteabe hulka, mida saidid saavad teie kohta sirvimise ajal koguda.
Lõppude lõpuks, kui te pole sisse logitud ja teil pole varasemast jälgimisküpsiseid järgi jäänud, ei tea saidid enam täpselt, kes te olete või mida te viimati külastasite.
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoAiStream. Web3 andmete luure. Täiustatud teadmised. Juurdepääs siia.
- Tuleviku rahapaja Adryenn Ashley. Juurdepääs siia.
- Ostke ja müüge IPO-eelsete ettevõtete aktsiaid koos PREIPO®-ga. Juurdepääs siia.
- Allikas: https://nakedsecurity.sophos.com/2023/05/30/serious-security-verification-is-vital-examining-an-oauth-login-bug/
- :on
- :on
- :mitte
- : kus
- $ UP
- 1
- 15%
- 2FA
- a
- Võimalik
- MEIST
- üle
- absoluutne
- juurdepääs
- konto
- Kontod
- Omandab
- tegu
- meetmete
- aktiivne
- aktiivselt
- õigusaktid
- lisades
- Lisab
- nõuanne
- nõustama
- pärast
- tagasi
- Materjal: BPA ja flataatide vaba plastik
- paigutatud
- võimaldama
- võimaldab
- üksi
- juba
- Ka
- alati
- Amazon
- vahel
- summa
- an
- ja
- Teine
- vastus
- mistahes
- keegi
- midagi
- app
- õun
- heakskiit
- heaks kiitma
- heaks
- apps
- OLEME
- ümber
- artikkel
- AS
- hindamine
- At
- rünnak
- autentida
- autenditud
- Autentimine
- autor
- volitatud
- luba
- auto
- automaatselt
- vältima
- tagasi
- tagapõhi
- background-image
- põhineb
- BE
- sest
- olnud
- enne
- vahel
- Suur
- pimesi
- Blokeerima
- Blogi
- piir
- põhi
- maakler
- brauseri
- brauseri küpsised
- puhver
- puhvri ülevool
- Bug
- vead
- kuid
- by
- helistama
- kutsutud
- CAN
- juhul
- maadlus
- Põhjus
- põhjustatud
- keskus
- võimalus
- Vaidluste lahendamine
- kontroll
- Kontroll
- nõudma
- Kliiring
- klient
- suletud
- Cloud
- kood
- Kodeerimine
- koguma
- värv
- tulevad
- ettevõte
- ühendamine
- Arvestama
- kontakt
- kontrollida
- Mugav
- küpsis
- küpsised
- võiks
- cover
- looma
- volikiri
- krüptograafia
- Kliendid
- KÜBERKRIMINAAL
- andmed
- otsustama
- otsustatud
- vaikimisi
- esitatud
- kirjeldus
- soovitud
- detail
- detailid
- Dialoog
- DID
- Digest
- otse
- Avalikustama
- avalikustamine
- Jätta
- Ekraan
- do
- ei
- teeme
- don
- Ära
- dubleeritud
- toimetamine
- teine
- võimaldama
- lõpp
- Isegi
- KUNAGI
- täpselt
- Uurimine
- näide
- vahetamine
- ootama
- kogemus
- selgitas
- Ekspluateeri
- Expo
- FAIL
- vastasel
- ei
- lummav
- vähe
- lõplik
- Määrama
- fikseeritud
- Järel
- järgneb
- eest
- avastatud
- sageli
- Alates
- täielikult
- üldiselt
- saama
- Andma
- antud
- andmine
- Go
- Goes
- hea
- rüütama
- suuresti
- olnud
- käsi
- Varred
- Käsitsemine
- juhtus
- Juhtub
- Olema
- kõrgus
- kasulik
- siin
- Lahtiolekuajad
- hõljuma
- Kuidas
- Kuidas
- aga
- HTTPS
- Identity
- if
- rakendatud
- in
- Kaasa arvatud
- kaudselt
- info
- esialgne
- selle asemel
- kavatsevad
- sisse
- uuritav
- probleem
- IT
- ITS
- ise
- erikeel
- JavaScript
- lihtsalt
- hoidma
- Võti
- kududa
- Teadma
- teadmised
- teatud
- viimane
- pärast
- jätmine
- lahkus
- nagu
- Kuulamine
- ll
- loginud
- metsaraie
- Logi sisse
- enam
- Vaatasin
- maagiline
- tegema
- palju
- palju inimesi
- Varu
- Turundus
- max laiuse
- tähendus
- tähendas
- Meedia
- Mälu
- võib
- viga
- kuu
- rohkem
- palju
- Nimega
- Vajadus
- vaja
- mitte kunagi
- Uus
- uudised
- ei
- normaalne
- number
- oauth
- eesmärk
- of
- maha
- pakkuma
- pakutud
- on
- ONE
- Internetis
- ainult
- avatud
- valik
- or
- Muu
- teised
- välja
- üle
- enda
- pakitud
- parameetrid
- möödub
- Mööduv
- Parool
- Plaaster
- Paikade
- Paul
- Inimesed
- telefon
- Platon
- Platoni andmete intelligentsus
- PlatoData
- pluss
- Punkt
- võrra
- populaarne
- positsioon
- võimalik
- Postitusi
- esitada
- takistab
- era-
- protsess
- Protsessid
- profiil
- Programming
- protokoll
- Tõesta
- anda
- avalikkus
- avaldatud
- Kirjastamine
- eesmärkidel
- Putting
- kiiresti
- pigem
- Lugenud
- tõesti
- mõistlik
- saab
- vastuvõtmine
- suunata
- vähendama
- lootma
- vastus
- aru
- reporter
- Aruandlus
- Aruanded
- Taotlusi
- nõudma
- Teadlased
- vastus
- vastutav
- Tulu
- õige
- Oht
- juur
- jooks
- Ütlesin
- sool
- rahul
- ütlema
- ütleb
- stseenide
- Teine
- kindlalt
- turvalisus
- turvakoodi
- vaata
- nägemine
- nähtud
- näeb
- saatma
- Saadetud
- Jada
- tõsine
- teenus
- Teenused
- komplekt
- kehtestamine
- Aktsiad
- Lühike
- peaks
- Näitused
- kirjutama
- sarnane
- lihtsustatud
- lihtsalt
- site
- Saidid
- nutikas
- So
- sotsiaalmeedia
- Sotsiaalse meedia
- Sotsiaalmeedia postitused
- tahke
- lahendus
- mõned
- midagi
- Varsti
- rääkimine
- eriline
- määratletud
- algus
- jääma
- Sammud
- ladustatud
- esitatud
- edukas
- selline
- varustamise
- SVG
- süsteem
- rääkima
- öelda
- ütleb
- kui
- et
- .
- oma
- Neile
- SIIS
- seetõttu
- Need
- nad
- see
- need
- kuigi?
- kolm
- aeg
- et
- sümboolne
- Käsiraamat
- ülemine
- Jälgimine
- üleminek
- läbipaistev
- käsitlema
- proovitud
- vallandada
- vallandas
- Usalda
- usaldav
- püüdma
- Pöörake
- kaks
- lõpuks
- all
- peale
- URL
- us
- Kasutatud
- Kasutaja
- Kasutajad
- kasutamine
- KINNITAGE
- kinnitamine
- müüja
- Kontrollimine
- kontrollima
- kaudu
- visiit
- külastatud
- tähtis
- haavatavus
- tahan
- oli
- Tee..
- kuidas
- we
- web
- veebiteenused
- veebisait
- nädalat
- läks
- olid
- M
- millal
- millal iganes
- mis
- WHO
- will
- koos
- jooksul
- ilma
- oleks
- kirjutamine
- Vale
- X
- jah
- veel
- sa
- Sinu
- ise
- sephyrnet