Fedezze fel, hogyan védheti meg weboldaladat a reCAPTCHA v3 és a Cloud Armor
Ismerd meg a fejlett botvédelmi stratégiákat reCAPTCHA v3 és Cloud Armor használatával. Védd meg webhelyét a CommIT Smart átfogó útmutatójával...
Erősítsd meg webhelyed biztonságát a Google reCAPTCHA Enterprise és Cloud Armor segítségével
A Google reCAPTCHA Enterprise használatával megakadályozhatja a spam és visszaélések előfordulását a webhelyén. Az Action tokenek a reCAPTCHA Enterprise egyik funkciója, amely lehetővé teszi, hogy szabályozza, hogyan használja a reCAPTCHA-t.
A cikk célja, hogy elmagyarázza, hogyan használhatók az Action tokenek a Cloud Armorral. Ezenkívül megmutatjuk, hogyan konfigurálja a reCAPTCHA Enterprise-t Terraformmal.
Összehasonlítás a reCAPTCHA Enterprise Action tokenek és más funkciók között
reCAPTCHA akció-tokenek
Felhasználási eset: Különösen az egyes felhasználói lépések, például bejelentkezési kísérletek vagy hozzászólás beküldések védelmére tervezett.
Támogatott platformok: Zökkenőmentesen működik weboldalakon és mobil applikációkon egyaránt.
Integráció bonyolultsága: Közepes besorolású. A sikeres telepítéshez:
A reCAPTCHA JavaScript-et be kell építeni a webhely megfelelő oldalaira, vagy a reCAPTCHA Enterprise mobil SDK-t kell használni mobil alkalmazásokhoz.
Az akció tokent minden egyes kérés fejlécéhez csatolni kell.
A konfigurációkat a Google Cloud Armor biztonsági házirendjein kell végrehajtani, vagy ha harmadik fél által nyújtott WAF szolgáltatókkal dolgoznak, a reCAPTCHA tűzfalakérelményi politikáin keresztül kell végezni.
Észlelési pontosság: A legfelső szinten helyezkedik el a legnagyobb pontossággal az egyedi felhasználói lépésekre összpontosítás miatt.
reCAPTCHA munkamenet-tokenek
Felhasználási eset: Az akció tokenekkel ellentétben, amelyek adott felhasználói lépések védelmét szolgálják, a munkamenet tokenek egy teljes felhasználói munkamenet lefedésére szolgálnak egy domainen.
Támogatott platformok: A munkamenet-tokenek csak weboldalakra korlátozódnak, míg az akció-tokenek mobil alkalmazásokat is támogatnak.
Integráció bonyolultsága: Mindkettő közép, de a munkamenet-tokenek nem igénylik az akciótoken headerbe történő csatolását.
Észlelési pontosság: Míg az akció-tokenek a legmagasabb szintű pontosságot nyújtják az egyedi akciókra összpontosítva, a munkamenet-tokenek is magas pontossággal rendelkeznek, ahogy a teljes felhasználói munkamenetet követik.
Támogatott verzió: Mindkettő a reCAPTCHA Enterprise pontozás alapú webhely kulcsait használja, de az akciótokenek a jelölőnégyzetes webhely kulcsokat is támogatják.
reCAPTCHA kihívásoldal:
Felhasználási eset: Az akció tokenekkel ellentétben, amelyek a háttérben működnek, a kihívásoldal megszakítja a felhasználói tevékenységeket, és arra kényszeríti őket, hogy fejezzék be a CAPTCHA kihívást, amikor gyanús tevékenységet észlel.
Támogatott platformok: Mindkettő weboldalakra készült.
Integráció összetettsége: A kihívásoldal integrációja alacsonyabb, és egyszerűbb, mint az akció-tokenek. Megszünteti az egyes oldalakra telepítendő JavaScript szükségességét.
Észlelési pontosság: A kihívásoldal közepes pontossággal rendelkezik, egy szinttel az akció tokenek alatt, mivel esetleg hiányozhatnak bizonyos oldal-specifikus jelek.
Támogatott verzió: A kihívásoldal a reCAPTCHA optimalizált verzióját használja, amely eltér az akció tokenek által támogatott Enterprise pontozás alapú vagy jelölőnégyzetes webhely kulcsoktól.
reCAPTCHA WAF expressz védelem:
Felhasználási eset: Ez egy megoldás, amikor a környezet nincs barátságban a reCAPTCHA JavaScript- vagy mobil SDK-val, ellentétben az akció tokenekkel, amelyek ezek az integrációk szükségesek.
Támogatott platformok: A WAF expressz védelem a legváltozatosabb, API-kat, IoT eszközöket, weboldalakat és mobil alkalmazásokat szolgál ki. Az akció tokenek csak weboldalakat és mobil alkalmazásokat fednek.
Integráció bonyolultsága: Mindkettőnek alacsony a bonyolultsága, de az integrációs módszerek különböznek. Az akció tokenek JavaScript vagy SDK telepítéseket igényelnek, míg a WAF expressz harmadik fél WAF-okkal vagy szerver kérdésekkel állíthatók be.
Észlelési pontosság: A WAF expressz rendelkezik a legalacsonyabb észlelési pontossággal, mivel hiányoznak a kliensoldali jelek. Ezzel ellentétben az akció tokenek a legmagasabb pontossággal büszkélkedhetnek.
Támogatott verzió: Mindkettő a reCAPTCHA Enterprise pontozás alapú webhely kulcsokat használja.
A megoldás megvalósításának lépései
Először hozzunk létre egy reCAPTCHA v3 kulcsot a Google Cloud konzolon. Biztonság -> reCAPTCHA Enterprise -> Kulcs létrehozása

A reCAPTCHA kulcs alapvető paramétereinek meghatározása után meg kell határoznunk a kulcs néhány viselkedését.


A lehető legnagyobb biztonság érdekében ajánlott az ellenőrzés engedélyezése a domain számára. Fontos azonban megjegyezni, hogy ha a kulcsot a Cloud Armorral integrálja, akkor jelenleg közvetlen támogatás nem áll rendelkezésre (Issue Tracker a részletekért). Ezt úgy kezelheti, hogy ezt viselkedési mintát manuálisan meghatározza a szabályaiban, amit a következő részekben bemutatok Önnek.
A kulcs beállítása után belekezdünk a kódolás fázisába.
A mechanizmus, amelyet implementálunk, egyértelmű. Ha egy akció token eléri a terheléselosztót, a kijelölt Cloud Armor szolgáltatás értékeli azt. Elsősorban két paraméterrel dolgozunk:
token.recaptcha_action.valid
token.recaptcha_action.score
Többet a reCAPTCHA token attribútumairól a Google Cloud Armorhoz. Ha egy kérés nem rendelkezik tokennel, az valid
paraméter automatikusan hamisra lesz állítva. Ilyen körülmények között Ön mérlegelheti a kérés további útját. A mi megvalósításunkban egy MISSING
értéket fogunk hozzáadni a reCAPTCHA-Warning
fejlécünkhöz. Másrészt, ha jelen van a token, a figyelem a score
paraméterre összpontosul. Ez a mérőszám betekintést nyújt a felhasználóra vonatkozóan, lényegében megbecsülve a kérést beküldő valószínű bot vagy igazi felhasználó mivoltát. A 0.8-at meghaladó pontszám arra utasítja a szabályt, hogy alacsony értéket küldjön a backend-nek a reCAPTCHA-Warning
fejlécen belül. Ha azonban ez a küszöbérték alá esik, egy HIGH
érték kerül továbbításra.
Ezekkel az adatokkal a backend szolgáltatásunk körültekintően képes értékelni az értéket és meghatározni a további eljárásmenetet.
A biztonsági politika beállítása
Ez a kódrészlet elindít egy Cloud Armor Edge biztonságpolitikai szabályt. Itt egy új Google Cloud Platform (GCP) biztonságpolitikai erőforrást definiálunk „default-security-policy” néven a Cloud Armor szélén. További információ a [google_compute_security_policy] (https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_security_policy)erőforrásról.
A reCAPTCHA beállításainak konfigurálása
A biztonsági politikánkban beépítjük a reCAPTCHA opciókat is. A redirect_site_key
paraméter a reCAPTCHA helyszínkulcsra van kiosztva. Terraform erőforrás dokumentáció.
A hiányzó tokenek kezelésére vonatkozó szabály
Ez a szabály azokat a kéréseket célozza meg, amelyek nem tartalmaznak érvényes reCAPTCHA akció tokent. Ha a token hiányzik vagy érvénytelen, egy új fejléc, amely neve reCAPTCHA-Warning
, és értéke MISSING
, hozzáadásra kerül a kéréshez.
Az alacsony reCAPTCHA pontszámok kezelésére vonatkozó szabály
Ez a szabály azokat a kéréseket célozza meg, amelyek reCAPTCHA pontszáma meghaladja a 0.8
-at, ami valós felhasználói interakciókat jelez. Ennek következtében a reCAPTCHA-Warning
fejlec értéke LOW
lesz, ami alacsony bot valószínűséget jelez
Domain ellenőrzése
Ha a domain nem felel meg az elvárt értékeknek, a szabály elutasíthatja vagy átirányíthatja a kérést. Tanácsos az ilyen kívántmintát a reCAPTCHA ellenőrzése előtt elindítani, ezzel kiszűrhetők a nem kívánt kérdések, mielőtt azok átmennek a reCAPTCHA értékelésen. Amint a Google megoldja a integrációs problémát a reCAPTCHA és Cloud Armor között a Domain Verification funkcióhoz kapcsolódóan, célszerű eltávolítani ezt az anti-mintát a szabályok közül.
A kifejezés !request.headers['host'].matches('www.example.com')
a www.example.com domainről nem származó kéréseket figyeli.
Ellenőrzés hozzáadása egy felhasználói interakcióra
Miután végeztünk az infrastruktúrával, készen állunk alkalmazásaink integrálására. Íme egy integrációs példa egy Google által biztosított frontend alkalmazásból.
A reCAPTCHA Enterprise betöltéséhez a weboldalán adja hozzá a JavaScript API-t a pontozás alapú kulcsával a weboldala <head></head>
elem közé.
Annak biztosítása érdekében, hogy a
grecaptcha.enterprise.execute()
fusson, amikor a reCAPTCHA könyvtár betöltődik, használja agrecaptcha.enterprise.ready()
-t.Hívja meg a
grecaptcha.enterprise.execute()
-t minden interakciónál, amelyet a pontozás alapú kulccsal szeretne megvédeni. Adj meg egy jelentős nevet egy felhasználói interakcióhoz azaction
paraméterben. További útmutatóért lásd Akciók.
A grecaptcha.enterprise.execute()
egy tokent generál, ahogyan az alábbi példában látható:
03AGdBq27tvcDrfiRuxQnyKs-SarXVzPODXLlpiwNsLqdm9BSQQRtxhkD-Wv6l2vBSnL_JQd80FZp3IeeF_TxNMrqhyQchk7hmg_ypDctt_F5RTr9zNO9TSDX3Fy0qHQTuaM9E3hrAkA1v1l7D-fCreg7uq8zoudfh1ZRmN49-2iAMAn4E8_ff-nmlLTNGVZmCSyeze-5xM24pM_JhhUVcCMIDKYtDUnr2imxg2ubIqMscCZGUtdXNUO_LRSzuwWDlLyAr3V2nVn29Z48PQa2QzbymEXzO9pCtoGQmY7kiZ8ILfD9DAJSSyUTMwJXVJptUeBmLM341fq_STYZBbPQJ0zYOEDvJoFsIwGMfuphkDet0nK56b0mkzaL8RCRy2oK31Mcx6n3PhGkCnQ6QIhiV5ZVmV1Hz9M3w99zYw6ekc3wPCNMZ6V6x1ApVpIk3reFfByRQ0C0_pRWwbKZHLXQ_oSTI1UI7kyH1VeXngsJAx2l7zcp0hQNipajC4YwL7Jb8X4cCD0NeiaY1YCrI5j87mK5axcMikq460I4niIFeDBlHGF-ndqu3CJstosAur-C_x827f-dPPjA9Vrw8MDb3x4KUb0vbA8xE9mJxPYGY0rPCR27vJ38Voa7DjEBGX9c-iufv5_wfj-yIfIAHy0iijnRLI0CVkWF2-iPdWv7LnkTwL3WKbF_MrEGZXmtyLX9dEZArfxmToeMuSdYkfikkgR2-k4Xzxlz15RbHJuWSAYqEyTTnpUXmOvDuTN92b0kYqbRelcLUI_Shm-8dq9e-L7K6YWQv32gV6NukZKY15dyrJaW10frBgTOGSTTpIyB7MNEL8S27WjWtOb-zWsgimIhoRNfS8BiJWkmK4gTj51m7Wur-qsDbHgV6gXlMvjJs_B7oXX-mKsKhY9ACtwukotBelGYQOvf1RDHjH3Yi1RDfELBY6AkwUK4tq8cACVGpCwa0gKUo-sbORTsGu_r7VTzYo1AaZD5HV4XUm8yoqszel6DmIfkJcI7PfzzvfUJuvMQ1itZSzpzuth3glbKBYsIjbKqG-q8cxtZ7u0l32j46ASo2zlCJWUjwP3W1P7MUenEoIZtjlyTB_tT6Fk8RxGgRv3oLP7NPFJGs9ZGOAl6tBHpZF8Y_FqEOCMKtBl2JYOE5h6_Es3buSdiMm7mtLr64pboGiEColF1vbVvYpyaaqGFPXBM6ekZSXEXLAI0_7rj_fCLgnB21KXfac95vZbM9vyJCASvDcWKwqajQwy5aGMNe9GtbMogYbZfz5UGWAIi24Vd8KSv3qKOOwvzbcw4H0HYdsBXA
A token létrejötte után a reCAPTCHA tokent küldje el a háttér felé, és hozzon létre egy értékelést két percen belül.
Következtetés
Amint a bot tevékenységek egyre kifinomultabbá válnak, a webhely és applikáció tulajdonosoknak mindig egy lépéssel előrébb kell járniuk. Bár az integrációnak ez az útja megmutatta az erősségeit és a javítási lehetőségeket, a fő tanulság a következő: a megfelelő eszközökkel és tájékozott stratégiákkal biztonságosabb, hatékonyabb és felhasználóbarátabb digitális platformokat építhetünk.
Ahogyan a Google folyamatosan finomítja és fejleszti szolgáltatásait, még inkább zökkenőmentes integrációkra és funkciókra számíthatunk. Addig is tegyük a legtöbbet abból, amink van, mindig a felhasználói élmény prioritásként kezelve, miközben biztosítjuk a kiváló szintű biztonságot.
Források
https://cloud.google.com/recaptcha-enterprise
https://cloud.google.com/recaptcha-enterprise/docs/token-attr-ca
https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages#user-action
https://cloud.google.com/recaptcha-enterprise/docs/waf-features#features-overview
https://issuetracker.google.com/issues/281859602
https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/recaptcha_enterprise_key
https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_security_policy
Author: Csaba Ujvári