AL+

Limba: RO (română) EN (English)

Scrieți-ne: paul@alplustech.com

Fiecare script extern are nevoie de un responsabil în firmă

Incidentul polyfill.io a arătat riscul schimbării proprietarului unui script. Verificați codul extern, fixați fișierele stabile și desemnați responsabili.

Read this article in English

Fiecare script extern de pe site-ul unei firme acordă altui operator o parte din controlul asupra paginii vizitatorului. Permisiunea poate rămâne în vigoare după plecarea persoanei care a adăugat scriptul și după schimbarea companiei furnizoare. Unde este posibil, păstrați dependențele stabile, verificate, în propriul proces de lansare. Pentru fișierele externe folosiți verificarea integrității unde se poate și desemnați un responsabil pentru fiecare excepție rămasă.

Incidentul polyfill.io a făcut problema proprietății concretă. Nu ajungea să vă amintiți că serviciul fusese cândva de încredere. Site-ul continua să ceară cod de la aceeași adresă, deși organizația care controla adresa se schimbase.

Proprietarul s-a schimbat înaintea avertismentului public

Raportul Sansec, publicat pe 25 iunie 2024, descria cod malițios distribuit prin polyfill.io după schimbarea proprietarului. Analiza arăta redirecționări condiționate, inclusiv verificări care puteau ascunde comportamentul la o vizită obișnuită de pe calculator. Raportul include actualizări ulterioare. Data publicării nu trebuie confundată cu începutul activității malițioase.

Răspunsul Cloudflare este datat 26 iunie, la o zi după încheierea săptămânii atribuite articolului. Este o dovadă ulterioară folosită în retrospectivă. Cloudflare descria vânzarea din februarie către Funnull și observații proprii care confirmau comportamentul raportat. Avem astfel un argument despre riscul schimbării controlului, fără să presupunem că au fost furate datele de autentificare ale operatorului inițial.

Privind din noiembrie 2026, acestea sunt relatări istorice despre incident. Nu stabilesc ce livrează astăzi fiecare domeniu menționat. Nici estimarea site-urilor afectate dintr-un titlu nu arată câți vizitatori au suferit efectiv un prejudiciu. Argumentul nu cere un număr exact al victimelor și nici presupunerea că toți vizitatorii au primit același cod.

Scriptul primește încrederea acordată paginii

Un script extern obișnuit se execută în mediul paginii care îl include. În funcție de pagină și de protecțiile ei, poate citi informațiile afișate, modifica formulare sau încărca alt cod. Este riscul permisiunii acordate, nu afirmația că incidentul polyfill a inclus fiecare dintre aceste acțiuni. Explicația MDN despre Subresource Integrity descrie amenințarea înlocuirii unui fișier de către gazda externă.

HTTPS protejează conexiunea cu serverul ales. Nu dovedește că operatorul de astăzi va livra același comportament ca cel de ieri. Un domeniu familiar dintr-un șablon poate rămâne astfel o dependență activă mult după ce echipa a încetat să-l considere o alegere.

Într-un exemplu ilustrativ de site pentru programări, o bibliotecă de formatare și o componentă de rezervări pot veni amândouă prin scripturi, dar consecințele pentru firmă diferă. Biblioteca poate fi eliminată; componenta poate fi esențială pentru rezervări. Ambele cer un responsabil, însă alternativa și planul de eliminare trebuie să reflecte rolul lor real.

Fixați conținutul acceptat, nu doar adresa

Subresource Integrity, prescurtat SRI, permite paginii să declare amprenta criptografică așteptată a unei resurse. Browserul refuză fișierul care nu corespunde. Pentru resurse de la altă origine este necesar și suportul CORS corespunzător. Documentația MDN pentru SRI descrie mecanismul și metadatele integrity.

SRI poate verifica și o adresă numită latest: când conținutul se schimbă, scriptul nu mai este încărcat. O adresă variabilă este deci dificil de gestionat, nu exceptată de la verificare. Un fișier stabil, cu versiune explicită, face mai ușoară actualizarea deliberată și schimbarea amprentei acceptate. Serviciile polyfill care schimbă răspunsul în funcție de browser sau de parametrii cererii cer atenție: aceeași amprentă poate să nu corespundă tuturor răspunsurilor.

Amprenta confirmă însă conținutul, nu calitatea lui. Dacă echipa ia fișierul și amprenta dintr-o sursă deja compromisă, browserul verifică fidel un reper greșit. Evaluați dependența înainte să o acceptați și tratați actualizările ca lansări. SRI aplicat unui script inițial nu verifică automat toate resursele încărcate ulterior de acesta.

Restricționarea încărcării nu înlocuiește evaluarea codului

Content Security Policy poate restricționa sursele scripturilor și încărcarea altor resurse. Ghidul MDN despre CSP explică aceste controale și introducerea lor. O politică care permite o gazdă externă permite în continuare codul acceptat de la acea gazdă. Nu distinge versiunea utilă de o înlocuire malițioasă.

Combinați CSP cu verificarea integrității și reducerea dependențelor. Introduceți schimbările urmărind rapoartele și parcursul real de rezervare sau plată. Blocarea neașteptată a unui script esențial poate întrerupe activitatea firmei. Pentru acest articol nu a fost executată nicio configurație CSP și nicio demonstrație de atac. Recomandările trebuie verificate pe site-ul vizat.

Găzduirea locală poate aduce o bibliotecă stabilă în propriul proces de verificare și lansare. Transferă însă și responsabilitatea actualizărilor. Păstrarea permanentă a unei copii vechi, vulnerabile, nu este un rezultat bun. Unele servicii dinamice cer infrastructura furnizorului și nu au un înlocuitor practic găzduit local.

Începeți cu o verificare pe care o puteți termina

Rezervați inițial o oră pentru inventarierea scripturilor externe directe de pe paginile importante. Este o primă trecere, nu un audit complet de securitate. Includeți instrumentele de gestionare a etichetelor și notați că pot introduce alte dependențe. Examinați ce încarcă efectiv pagina, alături de ce apare în depozitul de cod.

Pentru fiecare intrare notați scopul, organizația care o controlează, mecanismul de actualizare și responsabilul intern. Decideți dacă poate fi eliminată, servită local sau fixată la un conținut verificat. Pentru un serviciu indispensabil care se schimbă dinamic, consemnați motivul păstrării și reacția firmei dacă trebuie dezactivat.

Scripturile operate de furnizori au un argument legitim: unele servicii utile nu pot fi livrate ca fișiere locale statice, iar o firmă mică nu poate construi fiecare integrare. Păstrați excepțiile când valoarea lor justifică dependența. Includeți-le în mentenanța software, astfel încât schimbarea furnizorului, proprietarului sau comportamentului să declanșeze o decizie. Riscul evitabil este permisiunea activă de a controla pagina de care nimeni din firmă nu-și mai amintește că răspunde.