DEF CON 33 կոնֆերանսում ներկայացվել է բրաուզերային հավելվածների վրա հարձակման մեթոդ, որը տեղադրում է իր ինտերֆեյսի տարրերը դիտվող էջի վրա: Հարձակումն օգտագործելու դեպքում պահող մենեջերների հավելվածների վրա կարող է հանգեցնել պահվող տվյալների, ինչպիսիք են հեղինակացման պարամետրերը, վարկային քարտերի տվյալները, անձնական տեղեկությունները և երկուսławակի հաճախականության ավտոմատացված գաղտնաբառերի արտահոսքին: Խնդիրը վերաբերում է բոլոր փորձարկված պահող մենեջերներին, այդ թվում՝ 1Password, Bitwarden, LastPass, KeePassXC-Browser, NordPass, ProtonPass և Keeper:
Հարձակման մեթոդը հիմնված է այն բանի վրա, որ բրաուզերային հավելվածները տեղադրում են գաղտնաբառի ավտոմատ լրացման հարցումի դիալոգը անմիջապես ցուցադրվող էջի վրա, ինտեգրելով իրենց տարրերը տվյալ էջի DOM (Document Object Model) կառուցվածքում: Եթե հարձակվողը կարող է իր JavaScript-կոդը իրականացնել էջում, օրինակ, շահարկելով XSS- խոցելիությունը կայքում, ապա նա կարող է մանիպուլացնել DOM-ի բոլոր տարրերով, այդ թվում՝ տեղադրված բրաուզերային հավելվածներով:
Այժմիվու, հնարավոր է դարձնել հաստատման դիալոգը թափանցիկ և տարածականորեն համատեղել այս դիալոգի կոճակը հարձակվողի ստեղծած մշակաչափ դիալոգի կոճակի հետ, որը խթանում է օգտվողին սեղմելու: Թույլատրության բռնեցման, գովազդային բողոքների կամ CAPTCHA ձևերի կեղծ հարցումները կարող են ծառայել որպես նման ենթադրյալ դիալոգներ: Թողնելով կեղծ դիալոգը պահող մենեջերի թափանցիկ դիալոգի տակ և համատեղելով կոճակների տեղերը էկրանին, կարելի է հասնել նրան, որ օգտվողի սեղմումը հայտնվի պահող մենեջերի տեղեկություններն ավանդելու հաստատման կոճակի վրա, այն դեպքում, երբ օգտվողն կարծում է, որ նա սեղմում է այսպիսի բան՝ գովազդային պատուհանի փակման կոճակը:

Հարձակումը բաղկացած է հետևյալ քայլերից՝
- Էջում անհարմար տարր ստեղծելը, որը խթանում է սեղմելու կատարումը:
- Էջում ավելացնել web-ֆորմա մուտք գործելու կամ անձնական տվյալները լրացնելու համար:
- Web-ֆորմայի համար թափանցիկություն սահմանելը (CSS-ում «opacity: 0.001»):
- focus() մեթոդի օգտագործումը մուտքային դաշտում մուտքը ընդգծելու համար, որի արդյունքում փորձում է ակտիվացնել պիտակի ավտոմատ լրացման դիալոգը պահող մենեջերի:
- Փնտրել DOM-ում հայտնված պահող մենեջերի դիալոգը և սահմանել դրա համար թափանցիկություն:
- Սպասել օգտվողի սեղմմանը էջի տեսանելի անհարմար տարրի վրա, որը համապատասխանաբար համատեղելով տեսանելի և ոչ տեսանելի տարրերը կհանգեցնի սեղմմանը թափանցիկ դիալոգի վրա գտնվող կոճակի և բանալիքների լրացման:
- Դպրոցադարձրել լրացված web-ֆորմայի տվյալները և ուղարկել դրանք հարձակվողի սերվեր.
Քանի որ ձեր գաղտնի խոսելաձեռնարկի մուտքի մեզ տրամադրելու տվյալները ավտոմատ ձևով լրացվում են միայն այն կայքերի համար, որտեղ դրանք պահպանվել են, հարձակում կազմակերպելու համար անհրաժեշտ է ունենալ հնարավորություն՝ ձեր JavaScript կոդը գործարկելու թիրախային կայքում կամ ենթաշրջանում: Շարունակաբար, հարձակման համար անհրաժեշտ է կամ ստանալ ենթաշրջան նույն դոմենում, ինչն էլ թիրախային կայքն է, կամ գտնել XSS-խոցելիություն կայքում, որը թույլ կտա ներառել ձեր կոդը վեբ օգտվողների համար մատուցվող բովանդակությունում.
Նշվում է, որ շատ օգտվողներ օգտագործում են մեկ գաղտնի խոսելաձեռնարկ որպես մուտքի տվյալների պահպանման, այնպես էլ երկուֆակտոր մուտքի համար մեկանգամյա գաղտնաբառերի ստեղծման համար, ինչը թույլ է տալիս կիրառել նշված հարձակումների մեթոդը մեկանգամյա գաղտնաբառերի ավտոմատ լրացման ժամանակ: Արժեքի ի ցույց է ուրվագծվում հարձակումը issuetracker.google.com կայքում, որը պարունակում է XSS-խոցելիություն: Մուտքի տվյալներն ու երկուֆակտոր մուտքի համար գաղտնաբառ կոդը ստանալու համար բավական է օգտվողին ուղարկել հղում, որը շահագործում է XSS-խոցելիությունը, իսկ հետո երեք կտտացումները հատկացնել՝ կազմելով անհարկի ծրագրավորված հարցումներ (Cookie-ների մշակելու թույլտվություն, անհատականացման թույլտվություն և գաղտնիության քաղաքականության համաձայնություն).
Բացի XSS-խոցելի կայքերից, հարձակում կարելի է կատարել նաև այն ծառայությունների վրա, որոնք բոլորին տրամադրում են ենթաշրջաններ՝ շատ գաղտնի խոսելաձեռնարկներ ստանդարտ կազմաձևով լրացնում են մուտքի տվյալները ոչ միայն հիմնական դոմենի, այլ նաև ենթաշրջանների համար.
Հարձակումն էլ կարելի է օգտագործել օգտվողի պահպանված անձնական տվյալներն ու վարկային քարտի պայմանները պարզելու համար: Այս դեպքում նման տվյալների արտահոսելու համար JavaScript կոդի աշխատանքը այլ կայքում կատարելու անհրաժեշտություն չկա, և բավական է lure (գայթակղել) զոհին հարձակվողի կայքի էջում — անձնական տվյալների դեպքում վեբ ձևերն ավտոմատ լրացվում են տվյալների տեսակի (հասցե, վարկային քարտի համար, լրիվ անուն) վրա հիմնվելով, առանց կապվածության. դոմեյնինՎարկային քարտերի տվյալների արտահոսումն ամենավտանգելին է, քանի որ գաղտնի խոսելաձեռնարկները գրանցում են ոչ միայն քարտի համարը, այլ նաև գործողության ժամկետը և գրանցման կոդը.
Անհայտված խնդիրը ಪರಿಶ onderzoeken 11 բրաուզերի հավելվածների միջոցով, որոնք պարունակւոմ էին 39.7 միլիոն ակտիվ տեղադրում, և բոլոր նրանք պաշտպանության չէր ապահովում նման տեսակի հարձակումներից: Քիչ արտադրողները թողարկել են թարմացումներ (NordPass 5.13.24, ProtonPass 1.31.6, RoboForm 9.7.6, Dashlane 6.2531.1, Keeper 17.2.0, Enpass 6.11.6, Bitwarden 2025.8.1), որոնցում շուրջը փորձեց խոչընդոտել հարձակումները: Այլ հավելվածները (KeePassXC-Browser, 1Password, iCloud Passwords, Enpass, LastPass, LogMeOnce) դեռևս չունեն ուղղում: Գործիքները տարբեր մուտքի սարքերից որպես հարձակումների թեստային էջեր մուտքագրված են:


1Password-ի մշակողների դիրքորոշումը, ովքեր ուղղումներ չեն թողարկել, այն է, որ խնդիրը հիմնարար է և ուղղակիորեն չի կապված որևէ հատուկ բրաուզերի հավելվածի հետ, որի պատճառով հավելվածից այն դուրս բերելու փորձերը միայն կխոչընդոտեն որոշակի հարձակումներով, սակայն չեն վերացնում ինքնին խնդիրը, որը պետք է լուծվի բրաուզերում կամ վկայի առանձին հաստատմամբ ավտոմատ լրացման դաշտերում: Վկայակոչվում է, որ 1Password-ում արդեն աջակցվում է հաստատման հայտի հայցում բեռնումը ապահովելու գործընթացում, և հաջորդ թողարկմանը կհայտաք նույնպես այնպիսի մի տարբերակ, որը վկայուն ծանուցումներ կառուցի բոլոր ավտոմատ լրացված տվյալների համար (հանդես գալու նվազեցման ընթացքում նման տարբերակը կարգավորելու չեն հնարավոր:
Ուսումնասիրության հեղինակությամբ առաջարկվող պաշտպանության մեթոդներից մեկում հիշվում է ստեղների ձևով փոփոխությունների հետևելը էջում կիրառվող տարրերի միջոցով API MutationObserver-ից, փոփոխությունների արգելափակում քաղաքային օկրուգում «closed» ռեժիմով, տարրերի տեսանելիության պատկերի վրա խումբների ստուգում, API Popover-ը ներգրավելու միջոցով շփման փոխարկման տեսակի երկխոսությունների ուսումնասիրումը, շերտերի ստացումը ստիկելով ստանալով, իսկակ վրա կամ փոխել սարքերի մուտքի նշումներ: հարձակման կարգավորմանը ցանկալի է գործում բրաուզերում առանձնահատուկ API մշակել կրիզ հաշվարկից:
Chromium շարժակազմի վրա հիմնված բրաուզերներում՝ օգտագործողներին խորհուրդ է տրվում միացնել հավելվածի մուտքի հաստատման ռեժիմը դեպի կայք (Հավելվածի կարգավորումներ → «site access» → «on click»), որի դեպքում հավելումը հասանելի է կայքին միայն աղյուսակի աջ կողմի հղման վրա սեղմելուց հետո։ Պաշտպանության այլընտրանքային տարբերակ որպես խնդրվում է ավտոլրացման դաշտերը անջատել և ձեռքով գելտել սրճարաններով, սակայն այս դեպքում կարող է դուրս գալ տվյալների արտահոսք ընդհանուր գրանցարանի միջոցով և վտանգը լինի չհանրային սպանելն:
Ընտանիք: opennet.ru
