Në konferencën DEF CON 33 u prezantua një metodë sulmi ndaj shtesave të shfletuesit që fusin elemente të tyre të ndërfaqes në faqen e shikuar. Përdorimi i këtij sulmi ndaj shtesave me menaxherë fjalëkalimesh mund të çojë në rrjedhjen e informacionit të ruajtur në menaxherët e fjalëkalimeve, siç janë parametrat e autentifikimit, informacionet për kartat e kreditit, të dhënat personale dhe fjalëkalimet një herësh për verifikimin me dy faktorë. Problemi prek të gjithë menaxherët e fjalëkalimeve të testuar, përfshirë 1Password, Bitwarden, LastPass, KeePassXC-Browser, NordPass, ProtonPass dhe Keeper.
Metoda e sulmit bazohet në faktin se shtesat e shfletuesit fusin një dialog për kërkesën e autopopullimit të fjalëkalimit drejtpërdrejt në faqen e shfaqur, duke integruar elementet e tyre në DOM (Modeli i Objekteve të Dokumentit) të asaj faqeje. Nëse sulmuesi ka mundësi të ekzekutojë kodin e tij JavaScript në faqe, për shembull, duke shfrytëzuar një dobësi XSS në faqen e internetit, ai mund të manipulojë të gjithë elementet në DOM, përfshirë ato të shtesave të shfletuesit.
Përveç të tjerash, ka mundësi të bëhet dialogu i konfirmimit transparent dhe të përputhen hapësirën e butonit në këtë dialog me butonin e dialogut të rremë, të krijuar nga sulmuesi dhe që nxit përdoruesin të klikojë. Si dialogë të tillë të rremë mund të përdoren kërkesa fiktive për autorizim të punës me Cookie, reklamat ose format me CAPTCHA. Duke vendosur dialogun e rremë nën dialogun transparent të menaxherit të fjalëkalimeve dhe duke përputhur vendndodhjen e butonave në ekran, është e mundur që klikimi i përdoruesit të shkojë në butonin e konfirmimit të plotësimit të parametrave të autentifikimit në dialogun e menaxherit të fjalëkalimeve, ndonëse përdoruesi do të mendojë se ai klikoi, për shembull, butonin e mbylljes së dritares së reklamës.

Sulmi përbëhet nga hapat e mëposhtëm:
- Krijimi i një elementi të ngacmuar në faqe, që nxit veprimin e klikimit.
- Shtimi i një webshtese për hyrje ose përmbushjen e të dhënave personale në faqe.
- Vendosja e transparencës për webshtesën («opacity: 0.001» në CSS).
- Përdorimi i metodës focus() për të vendosur fokusin në fushën e hyrjes në formë, që çon në aktivizimin e dialogut të autopopullimit të menaxherit të fjalëkalimeve.
- Kërkimi i dialogut që shfaqet të menaxherit të fjalëkalimeve në DOM dhe vendosja e transparencës për të.
- Pritja e klikimit të përdoruesit në elementin e dukshëm të ngacmimit në faqe, që me përputhjen e duhur të elementeve të dukshme dhe të padukshme do të çojë në klikimin mbi butonin në dialogun transparent dhe plotësimin e fushave nga menaxheri i fjalëkalimeve.
- Ekstraktimi i të dhënave nga forma e plotësuar dhe dërgimi i tyre në serverin e sulmuesit.
Për shkak se autopopullimi i parametrave të autentifikimit në menaxherin e fjalëkalimeve aktivizohet vetëm për faqet ku këta parametra janë ruajtur, për organizimin e sulmit është e nevojshme të ketë mundësi për të ekzekutuar kodin e tij JavaScript në faqen e synuar ose në një nën domen. Në këtë mënyrë, për sulmin është e nevojshme ose të fitosh një nën domain në të njëjtin domen si faqja e synuar, ose të gjesh një dobësi XSS në faqen e internetit që lejon injektimin e kodit të tij në përmbajtjen e shfaqur përdoruesit.
Vërehet se shumë përdorues përdorin një menaxher fjalëkalimesh për të ruajtur parametrat e hyrjes, si dhe për të gjeneruar fjalëkalime një herë për verifikimin me dy faktorë, e cila i lejon përdorimin e metodës së diskutuar të sulmit gjate autopopullimit të fjalëkalimeve një herë. Si shembull, u demonstruar një sulm ndaj faqes issuetracker.google.com, e cila ka një dobësi XSS. Për të marrë parametrat e hyrjes dhe kodin për verifikim me dy faktorë, mjafton t'i dërgosh përdoruesit një lidhje që shfrytëzon dobësinë XSS dhe të arrihesh tre klikime përmes zëvendësimit të kërkesave të rreme ngacmuese (miratimi i trajtimit të Cookie, miratimi i personalizimit dhe pranimi i politikës së privatësisë).
Përveç faqeve me dobësi XSS, sulmi mund të kryhet edhe ndaj shërbimeve që ofrojnë nën domainet për të gjithë ata që duan — shumica e menaxherëve të fjalëkalimeve në konfigurimin e tyre të paracaktuar kryejnë autopopullimin e parametrave të hyrjes jo vetëm për domenin kryesor, por edhe për nën domainet.
Sulmi gjithashtu mund të aplikohet për të përcaktuar të dhënat personale të ruajtura në menaxherin e fjalëkalimeve të përdoruesit dhe parametrat e kartave të kreditit. Në këtë rast, për rrjedhjen e të dhënave të tilla nuk është e nevojshme ekzekutimi i kodit JavaScript në kontekstin e një faqeje të huaj dhe mjafton të mashtrohet viktima në një faqe në sitin e sulmuesit — në rastin e të dhënave personale, plotësimi i webshtesave bëhet në bazë të llojit të tyre (adresë, numër kartë krediti, emër dhe mbiemër), pa lidhje me domainin. Një nga rreziqet më të mëdha është humbja e parametrave të kartave të kreditit, pasi menaxherët e fjalëkalimeve jo vetëm që vendosin numrin e kartës, por gjithashtu datën e skadimit dhe kodin verifikues.
Kërkuesi që zbuloi problemin testoi 11 shtesa shfletuesi me menaxherë fjalëkalimesh, duke arritur në një total prej 39.7 milion instalimesh aktive, dhe të gjitha ato rezultuan të pambrojtura ndaj këtij lloji sulmi. Disa prodhues lançuan përditësime (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), të cilat përpiqeshin të bllokonin sulmin përmes një rruge alternative. Shtesat e tjera (KeePassXC-Browser, 1Password, iCloud Passwords, Enpass, LastPass, LogMeOnce) ende nuk kanë marrë një zgjidhje. Për të testuar prezencën e vulnerabilitetit në menaxherët e fjalëkalimeve është publikuar një grup faqesh testuese.


Pozita e zhvilluesve të 1Password, që nuk kanë lëshuar një përmirësim, është se vulnerabiliteti është themelor dhe nuk është drejtpërdrejt i lidhur me një shtesë specifike shfletuesi, prandaj përpjekjet për ta zgjidhur atë në anën e shtesës ndihmojnë vetëm për të bllokuar disa vijë sulmi, por nuk e largojnë problemin e vet, i cili duhet të zgjidhet në shfletues ose duke kërkuar një konfirmim të veçantë përpara plotësimit automatik të fushave. Përmendet se në 1Password tashmë mbështetet shfaqja e kërkesës për konfirmim para plotësimit automatik të parametrave të pagesave dhe në lëshimin e ardhshëm do të shtohet opsioni për të shfaqur një kërkesë të tillë për të gjitha llojet e të dhënave që plotësohen automatikisht (për shkak të reduktimit të lehtësisë së përdorimit, një opsion të tillë nuk do ta aktivizojnë si parazgjedhje).
Ndër metodat e mbrojtjes të sugjeruara nga autori i hulumtimit përmendet ndjekja e ndryshimeve të stileve të elementeve të vendosura në faqe me anë të API MutationObserver, bllokimi i ndryshimeve përmes Shadow DOM në modin «closed», monitorimi i transparencës së elementeve, përdorimi i API Popover për të shfaqur dialogët, kontrollimi i mbivendosjes së shtresave, dhe çaktivizimi i përkohshëm i përpunimit të ngjarjeve të treguesit (pointer-events:none) në të gjitha elementet flutuese gjatë shfaqjes së dialogut të menaxherit të fjalëkalimeve. Pavarësisht kësaj, për të bllokuar krejtësisht klasën e përshkruar sulmi rekomandohet që në nivelin e shfletuesit të zbatohet një API e veçantë për mbrojtje ndaj klikdhekingut.
Si një metodë universale mbrojtjeje në shfletuesit e bazuar në motorin Chromium, përdoruesve u rekomandohet të aktivizojnë modin e konfirmimit të aksesit të shtesës në faqe (Cilësimet e shtesës → «akses do të site» → «me klik»), ku shtesa merr akses në faqen vetëm pas një klikimi në ikonën në anën e djathtë të shiritit të adresës. Si një mënyrë alternative mbrojtjeje përmendet gjithashtu çaktivizimi i plotësimit automatik të formave dhe kopjimi manual i fjalëkalimeve përmes tabelës së shpërndarjes, por në këtë rast lind problemi i humbjes së të dhënave nga tabela e përbashkët e shpërndarjes dhe rreziku për të mos vënë re përpjekjet e phishing-ut.
Burimi: opennet.ru
