Ce este un atac de includere a fișierelor?

Publicat: 2023-03-31

Orice instrument poate fi folosit cu intenții bune sau rele, iar includerea fișierelor nu este diferită. Includerea fișierelor este o metodă de programare care facilitează menținerea codului și extinderea funcțiilor pe întregul site. Un atac de includere de fișiere abuzează de modul în care PHP folosește includerea de fișiere ca metodă validă de unire și executare a codului din mai multe fișiere separate pentru a crea o singură pagină web. Deoarece PHP este un limbaj pe care WordPress îl folosește, WordPress și alte aplicații PHP sunt predispuse la vulnerabilități de includere a fișierelor atunci când măsurile de securitate adecvate sunt rupte, incomplete sau absente.

În acest ghid complet pentru atacurile de includere a fișierelor, vom explora modalitățile prin care hackerii exploatează igienizarea și validarea slabă a utilizatorului pentru a injecta malware și a trimite instrucțiuni proaste pentru a pătrunde în site-urile WordPress.

Veți afla cum se întâmplă atacurile de includere a fișierelor WordPress și ce puteți face pentru a vă proteja site-ul web să nu devină victima acestora.

Atacul de includere a fișierelor

Ce este includerea fișierelor?

Includerea fișierelor este o tehnică de dezvoltare pentru includerea mai multor fișiere într-un singur script sau pagină web pentru a adăuga funcționalitate, a reutiliza un șablon de design sau a partaja o bucată de conținut pe mai multe pagini.

Includerile de fișiere sunt absolut necesare. Dezvoltatorii le folosesc de obicei în următoarele scopuri:

  • Includerea fișierelor antet și subsol comune tuturor paginilor unui site web pentru a asigura coerența în design și funcționalitate.
  • Inclusiv scripturi și biblioteci pentru funcționalitatea cheie pe un site web sau aplicație web.
  • Inclusiv fișierele de configurare care conțin setări pentru aplicație, cum ar fi informații de conectare la baza de date și chei API.
  • Inclusiv conținut, cum ar fi imagini, videoclipuri, text sau alt conținut de pe paginile web.
  • Inclusiv funcționalitate pentru generarea de conținut dinamic pe baza intrărilor utilizatorului transmise ca parametru URL. De exemplu, un utilizator poate trimite un formular pentru a genera anumite rezultate.

Tipuri de includere a fișierelor

Folosind tehnica de includere a fișierelor, dezvoltatorii pot adăuga fișiere și scripturi la o pagină web fie static, fie dinamic.

Folosind includerea fișierelor statice, un dezvoltator poate reutiliza același text sau cod pe mai multe pagini, făcând referire la un URL (Uniform Resource Locator) sau la o cale către un fișier stocat local, adică pe același server. Incluziunile de fișiere statice permit temelor să folosească același antet, subsol sau același cod de meniu de navigare pe multe pagini web.

Incluziunile de fișiere dinamice acceptă introducerea utilizatorului în timpul execuției. Utilizatorul indică rezultatul dorit trecând calea către un anumit fișier. De obicei, intrarea utilizatorului va fi transmisă ca parametru într-o adresă URL sau într-un formular. De exemplu, un utilizator poate selecta „Engleză” dintr-o listă derulantă de selecție de limbi, ceea ce îl duce la o versiune în limba engleză a paginii pe care se află, schimbând adresa URL astfel: /page.php?language=english . Dacă cineva a înlocuit „ english ” cu adresa URL a unui fișier de la distanță, ar putea fi capabil să injecteze un shell web ca ușă în spate și/sau alt malware în site-ul vizat, dacă nu există verificări pentru a preveni acest lucru.

Cum este implementată includerea fișierelor în WordPress?

Toate aplicațiile web dinamice scrise în PHP - cum ar fi WordPress - pot folosi includerea fișierelor în siguranță. În aplicațiile scrise în PHP, dezvoltatorii efectuează includerea fișierelor folosind instrucțiunile include și require . Dezvoltatorii folosesc ambele instrucțiuni pentru a insera conținutul unui script PHP în altul. Acest lucru se întâmplă înainte ca codul să fie executat pe server.

Dacă vă uitați la unele dintre fișierele de bază WordPress, multe dintre ele se referă la alte scripturi de bază. Când toate sunt încărcate împreună, ele construiesc structura site-ului dvs. și generează paginile web individuale solicitate de un vizitator. Principalul index.php face referire la wp-blog-header.php , care încarcă mediul WordPress și șablonul de temă — wp-load.php și, respectiv, template-loader.php .

Fișierul index.php al WordPress folosește includerea fișierelor.

Alături de nucleul WordPress, pluginurile și temele folosesc și includerea fișierelor pentru a efectua sarcinile necesare. Cu toate acestea, cu zeci de mii de plugin-uri WordPress disponibile, nu toate sunt la fel de bine testate precum este de bază WordPress.

Incluziunile de fișiere introduc riscuri serioase de securitate atunci când dezvoltatorii nu le securizează corespunzător. Dacă codul pe care îl utilizați nu validează și nu igienizează intrarea utilizatorului, hackerii îl pot exploata. Îl pot folosi pentru a instala programe malware și pentru a fura informații sensibile – eventual ale tale sau ale clienților tăi!

Ce este un atac de includere a fișierelor?

Sunt posibile două tipuri de atacuri de includere a fișierelor: includerea fișierelor locale (LFI) sau includerea fișierelor la distanță (RFI).

Atacurile cu includere de fișiere fac parte din clasa mai largă de atac de injecție . Acestea includ injecții SQL (SQLi), cross-site scripting (XSS) și atacuri de includere a comenzilor. Hackerii pot exploata vulnerabilitățile de intrare pentru a realiza alte tipuri de atacuri, cum ar fi atacuri de depășire a tamponului.

Atacurile de includere a fișierelor locale și de la distanță

Site-urile web și aplicațiile web care se bazează pe includeri dinamice de fișiere pentru a activa anumite funcții pot fi expuse atât la atacuri de includere de fișiere la distanță, cât și la atacuri locale de includere a fișierelor.

Incluziuni de fișiere locale (LFI)

Un atac local de includere a fișierelor poate injecta un fișier situat pe același server cu site-ul web sau aplicația web vizată. Atacurile LFI pot obține adesea acces la fișiere restricționate în mod normal. Într-un atac LFI, fișierul inclus trebuie să fie deja prezent pe serverul de aplicații local care este vizat. Într-un atac LFI, un actor rău poate citi fișiere importante, poate accesa informații mai sensibile sau poate executa comenzi arbitrare.

Atacurile locale de includere a fișierelor pot permite cuiva să acceseze date sensibile în afara site-ului web vizat. Aceasta include fișierele de configurare a serverului, cum ar fi /etc/passwd sau fișierele de configurare ale unui alt site web, cum ar fi wp-config.php . Este important să rețineți, totuși, că fișierele vizate trebuie să poată fi citite de utilizatorii neprivilegiati - de exemplu, fișierul /etc/passwd de pe sistemele Linux este deținut de root, dar cu permisiunile pentru fișiere setate la 644, toți ceilalți utilizatori de sistem îl pot vizualiza.

Pentru a naviga prin sistemul de fișiere, atacatorii folosesc traversarea directoarelor, o tehnică de accesare a fișierelor din afara directorului de lucru curent prin manipularea secvențelor de traversare a căilor de director, cum ar fi ../../../ .

Incluziuni de fișiere la distanță (RFI)

Atacurile cu includerea fișierelor de la distanță vizează site-uri web și aplicații care apelează la fișiere găzduite pe un alt server. Prin exploatarea includerii fișierelor de la distanță, un atacator poate recurge la cod rău intenționat găzduit în altă parte. Trebuie să existe o vulnerabilitate pe serverul vizat, dar atacatorul o va folosi pentru a executa cod rău intenționat găzduit în altă parte.

În atacurile cu includerea fișierelor la distanță, hackerii profită de comanda „includere fișier dinamic” din aplicațiile web. Hackerii pot exploata aplicații web care acceptă introducerea utilizatorului, cum ar fi adresele URL și valorile parametrilor, și le pot transmite mecanismelor de „includere fișiere” fără o igienizare adecvată. În acest tip de vulnerabilitate, atacatorii pot exploata aplicația web pentru a include fișiere la distanță cu scripturi rău intenționate.

De ce apar atacurile de includere a fișierelor WordPress?

Site-urile WordPress reprezintă 43% din internet, deci sunt o țintă mare pentru atacatori. Raportul nostru anual de vulnerabilitate WordPress din 2022 arată că peste 90% din toate vulnerabilitățile WordPress descoperite anul trecut au fost în pluginuri și teme. De obicei, am văzut cel puțin o nouă eroare de securitate raportată săptămânal în 20 până la 50 de plugin-uri.

Recent, cercetătorii de securitate au descoperit o vulnerabilitate de includere a fișierelor în tema populară OceanWP. OceanWP are peste jumătate de milion de utilizatori activi. (Am raportat acest lucru în raportul nostru săptămânal de vulnerabilitate WordPress.) Chiar dacă OceanWP a corectat rapid vulnerabilitatea, hackerii au avut timp să o exploateze în timp ce milioane de site-uri WordPress încă foloseau codul învechit.

Primiți raportul săptămânal de vulnerabilitate WordPress livrat în căsuța dvs. de e-mail în fiecare miercuri.
Abonează-te acum

Cum să detectați un atac de includere a fișierelor WordPress

Spre deosebire de atacurile de refuzare a serviciului care vă pot încetini în mod semnificativ site-ul web sau de redirecționările rău intenționate care alungă oamenii de pe site-ul dvs. către resurse frauduloase, atacurile de includere a fișierelor sunt greu de detectat. Motivul pentru aceasta este simplu. Hackerii folosesc includerea fișierelor ca punct de intrare pentru a încărca programe malware și pentru a efectua alte atacuri. Includerea fișierului este o cale liniștită către daune mai vizibile. Așadar, atunci când un hacker injectează cod rău intenționat într-un site web sau accesează informații sensibile, există o șansă mare ca cu greu să îl observi.

Acest lucru ne aduce la o concluzie importantă. Securitatea site-ului ar trebui să înceapă prin a micșora suprafața de atac și a o întări. Acest lucru va ajuta la prevenirea hackerilor să exploateze vulnerabilitățile de intrare din care provin atacurile de injecție, cum ar fi atacurile de includere a fișierelor, injecțiile SQL și de comandă și scripturile între site-uri (XSS).

Cum să vă apărați împotriva atacurilor de includere a fișierelor WordPress?

Cu numărul tot mai mare de atacuri cibernetice care vizează WordPress, securitatea site-ului WordPress contează mai mult decât oricând. Apărarea împotriva atacurilor de includere a fișierelor WordPress necesită o abordare cu mai multe fațete care limitează posibilitatea de a exploata vulnerabilitățile de intrare și execuția arbitrară a codului. Puteți face acest lucru dacă adoptați o combinație de măsuri de securitate proactive și reactive.

Iată primele trei recomandări de securitate WordPress pentru a vă proteja site-ul împotriva atacurilor de includere a fișierelor.

Păstrați tot software-ul actualizat

Menținerea întregului software actualizat - inclusiv nucleul WordPress, teme, pluginuri și extensii - este esențială atunci când vine vorba de reducerea suprafeței de atac a site-ului dvs. Pe măsură ce noi vulnerabilități apar în fiecare zi, nu le oferi hackerilor șansa de a le exploata. Instalați corecții de securitate și faceți actualizări de îndată ce sunt disponibile.

Obișnuiește-te să faci singur actualizări regulate sau să activezi actualizările automate pentru a te asigura că site-ul tău nu rulează niciodată cod vulnerabil. iThemes Security Pro se poate ocupa de actualizările de bază, plugin și teme WordPress pentru dvs.

iThemes Security Pro scanează automat noi versiuni ale software-ului pe care îl folosește site-ul tău. Sistemul său de gestionare a versiunilor vă asigură că aveți toate patch-urile și actualizările de securitate instalate imediat ce sunt disponibile. În plus, iThemes vă va avertiza și dacă rulați vreun software învechit în infrastructura serverului dumneavoastră. De exemplu, dacă utilizați o versiune PHP trecută de data de sfârșit de viață sau un server MySQL vulnerabil, iThemes Pro vă va avertiza.

Dacă aveți mai multe site-uri WordPress sub control, iThemes Sync Pro vă oferă o singură interfață pentru a le gestiona pe toate. Sync oferă, de asemenea, monitorizare avansată a timpului de funcționare și feedback SEO.

Dezactivați includerea fișierelor la distanță în PHP

Este posibil ca un site web să facă referire la fișiere de la distanță de la o adresă URL externă dacă opțiunea allow_url_fopen este activată în mediul PHP. Acest lucru poate crește riscul atacurilor de includere a fișierelor de la distanță. Dezactivarea allow_url_fopen elimină efectiv posibilitatea ca cineva să ruleze cod rău intenționat încărcat dintr-o locație de la distanță pe site-ul dvs. WordPress.

Puteți dezactiva allow_url_fopen în configurația globală PHP sau setând allow_url_fopen la 0 într-un fișier local .user.ini sau php.ini creat pentru un folder web individual. Puteți verifica dacă opțiunea este dezactivată în mediul dvs. PHP creând o pagină simplă de informații PHP folosind funcția phpinfo() , așa cum se arată mai jos.

Puteți bloca un atac de includere de fișiere dezactivând allow_furl_open în setările mediului dvs. PHP.

Implementați anteturi de securitate WordPress

Antetele de răspuns HTTP, cum ar fi Politica de securitate a conținutului (CSP) și Set-Cookie, pot adăuga un strat de apărare împotriva includerii fișierelor și a altor atacuri de injectare pe site-ul dvs. WordPress.

Anteturile de securitate WordPress fac posibilă reducerea sau blocarea vectorilor prin care pot avea loc includerea fișierelor de la distanță și atacurile de scriptare încrucișată (XSS) prin realizarea unei liste de surse de încredere, scripturi și alt conținut care poate fi încărcat. Toate celelalte surse vor fi refuzate. În plus, anteturile de răspuns HTTP vă pot ajuta să adăugați protecție împotriva falsificării cererilor pe mai multe site-uri (CSRF) și a clickjacking-ului.

Protejați-vă site-ul WordPress împotriva atacurilor prin injecție cu iThemes Security Pro

Alături de injecțiile SQL și de comandă, atacurile cu includerea fișierelor fac cei mai obișnuiți vectori de atac care vizează securitatea site-urilor WordPress. Deși WordPress dovedește un nivel ridicat de securitate a aplicațiilor, site-urile extrem de personalizate, combinate cu practici de securitate slabe, pot expune un site web WordPress la atacuri de injecție care exploatează vulnerabilitățile de intrare.

În fiecare zi, noi vulnerabilități sunt găsite în populația tot mai mare de pluginuri și teme WordPress. Și, deși de obicei sunt corectate rapid, lipsa actualizărilor în timp util și dependența de software vechi pot face site-ul dvs. WordPress o țintă ușoară pentru hackeri. Astăzi, securitatea site-ului web este mai critică decât oricând. Numărul tot mai mare de atacuri cibernetice înseamnă că chiar și cei mai vigilenți proprietari de site-uri web pot cădea victimele hackerilor dacă nu iau măsuri proactive pentru a-și proteja site-urile.

iThemes Security Pro este o soluție puternică de securitate WordPress care vă permite să adoptați cele mai bune practici de securitate WordPress pentru a vă proteja site-ul împotriva celor mai sofisticate atacuri cibernetice. Cu monitorizarea avansată a integrității fișierelor, scanarea vulnerabilităților și reducerea automată a atacurilor, iThemes Security Pro este o alegere excelentă dacă căutați o modalitate eficientă și fiabilă de a vă proteja site-ul WordPress.