Atacul MarioNET permite hackerilor să-și controleze browserul, chiar și după ce părăsiți pagina de atac

Creșterea tehnologiilor web a deschis noi posibilități pe internet. Navigatoarele au devenit mai puternice pe măsură ce noile API-uri au aterizat și a fost introdus suport pentru anumite funcții.

Un nou atac, numit MarioNET de cercetătorii care l-au descoperit, evidențiază faptul că API-urile pot fi abuzate și dacă nu există garanții adecvate (ceea ce este cazul în acest moment).

Atacul se bazează pe API-urile HTML5 existente pe care le acceptă toate browserele web moderne. Nu necesită instalarea software-ului sau a interacțiunii utilizatorului și persistă chiar și după ce utilizatorul părăsește pagina web la care a apărut atacul.

Atacatorul poate abuza de resursele calculatorului pentru tot felul de activități, inclusiv atacuri DDOS, operațiuni de cripto-minare sau fisurarea parolelor.

Actualizare : găsiți o voce critică care se opune scenariului descris în lucrarea de cercetare aici. Principalul punct al criticilor este că metoda de atac se bazează pe o caracteristică numită PeriodicSync și că nu face parte din nicio specificație în acest moment. Sfârșit

MarioNET utilizează Service Workers, scripturi care rulează separat de paginile web vizitate și în fundal, în atac. Ideea principală din spatele Service Workers este de a muta anumite calcule într-un fir separat, astfel încât să nu blocheze sau să încetinească aplicația sau pagina web cu care interacționează utilizatorul.

Ciclul de viață al lucrătorilor de servicii este complet independent de pagina în care au fost creați. Muncitorii de servicii nu au acces la DOM (Model Object Model) al variabilelor și funcțiilor paginii web și ale paginii părinte.

Utilizarea lucrătorilor de serviciu izolează sistemul de site-ul de origine, dă un atac persistent atacatorului și îngreunează utilizatorii să detecteze ce se întâmplă.

În special, sistemul nostru îndeplinește trei obiective importante:

(i) izolarea de site-ul vizitat, permițând controlul fin al resurselor utilizate; (ii) persistență, continuând funcționarea sa neîntreruptă pe fundal, chiar și după închiderea filei părinte; și (iii) evazivitate, evitând detectarea prin extensii de browser care încearcă să monitorizeze activitatea sau comunicarea de ieșire a paginii web.

MarioNET înregistrează un lucrător de serviciu atunci când un utilizator vizitează o pagină web pot avea atacuri. Posibilitățile de a răspândi atacul includ crearea de site-uri web rău intenționate, site-uri de hacking sau utilizarea reclame.

Browserele oferă puține informații utilizatorilor despre lucrătorii de servicii; de fapt, browserele nu evidențiază crearea de noi lucrători de servicii pe site-uri pentru utilizatori. Nu există nici o alertă, nici o solicitare și nici măcar o opțiune de afișare a unei solicitări pentru a solicita permisiunea utilizatorului la crearea lucrătorilor de servicii.

Singura solicitare care dezvăluie existența lucrătorului de serviciu este cererea GET inițială în momentul primei vizite a utilizatorului de pe site-ul web, când lucrătorul de serviciu este înregistrat inițial. Deși în timpul acestei solicitări GET, o extensie de monitorizare poate observa conținutul lucrătorului de serviciu, totuși nu va respecta niciun cod suspect - codul care va efectua sarcinile dăunătoare este livrat Servitorului numai după prima sa comunicare cu Puppeteer și această comunicare este ascunsă de extensiile browserului

Ceea ce face ca MarioNET să devină deosebit de tulburător este faptul că acesta continuă să ruleze în fundal după ce utilizatorul închide site-ul web la care a apărut atacul. Controlul se încheie la închiderea browserului web; cercetătorii au găsit o modalitate de a depăși acest lucru, dar necesită interacțiunea utilizatorilor, deoarece folosește API-ul Web Push pentru a face acest lucru.

Protecţie

Majoritatea browserelor moderne includ opțiuni de afișare a serviciilor de service existente. Utilizatorii Firefox pot încărca despre: serviceworkers sau despre: debugging # lucrători și utilizatorii Chrome pot încărca chrome: // serviceworker-internals / pentru a face acest lucru.

Puteți să vă înregistrați orice Worker Service utilizând funcționalitatea furnizată în aceste pagini. Utilizatorii Firefox pot dezactiva lucrătorii de serviciu în plus.

Rețineți că acest lucru poate afecta funcționalitatea pe site-urile care o folosesc în scopuri legitime. Trebuie să setați preferința dom.serviceWorkers.enabled pe false pe about: config.

Unele extensii de browser, de exemplu, Service Worker Detector pentru Chrome și Firefox, anunță utilizatorii atunci când o pagină web înregistrează un Service Worker.

Acum Tu : Ar trebui ca dezvoltatorii de browser să implementeze garanții suplimentare? (prin ZDNet)