Avaluació inicial sense contrasenyes Pressupost abans d’intervenir Un especialista responsable de principi a fi

Persistence Reinfection

El malware de la base de dades reescriu fitxers WordPress

Rastreja codi maliciós emmagatzemat en opcions o taules que un connector legítim o compromès torna a escriure en fitxers.

Neteges un fitxer PHP i reapareix quan es desen els ajustos d’un connector o s’executa una tasca. El payload pot estar emmagatzemat en una opció, plantilla, snippet o taula pròpia mentre el connector escriu aquestes dades en una memòria cau o un fitxer generat.

Netejar només el sistema de fitxers deixa intacta la font. Esborrar files de la base sense identificar-ne la funció pot destruir una configuració legítima.

Construeix una cronologia del desencadenant

Registra quina acció precedeix la reescriptura: desar ajustos, regenerar memòria cau, executar cron, compilar un constructor visual o rebre una visita. Anota la ruta i el hash del fitxer abans i després.

Conserva un bolcat de la base i el directori del connector abans de repetir el desencadenant en una còpia aïllada. No continuïs generant fitxers maliciosos a producció.

Alinea les marques de temps de PHP, la base de dades i els logs d’accés en una mateixa zona horària.

Identifica el component que escriu

Busca el nom i el directori del fitxer generat dins del codi verificat del connector o tema. Determina quin callback l’escriu i quin valor de la base proporciona el contingut.

Connectors legítims de memòria cau o minificació generen derivats PHP o JavaScript, de manera que escriure fitxers no és maliciós per si mateix. Compara el valor emmagatzemat amb els ajustos esperats i investiga com va entrar a la base.

No executis la sortida generada durant l’anàlisi.

Localitza de manera segura la font a la base

Utilitza consultes de només lectura o eines que entenguin WordPress per buscar una cadena distintiva del payload, un domini extern o el nom de l’opció. Evita cerques genèriques que retornin contingut de clients.

Inspecciona opcions, entrades, ginys, blocs reutilitzables, taules de connectors de snippets i arguments d’accions programades. Protegeix els bolcats perquè poden contenir dades personals i credencials.

Exporta la fila concreta abans de canviar-la, conservant la serialització i la codificació.

Determina si l’escriptor està compromès

Compara el connector amb el paquet verificat. Un connector net pot compilar fidelment una plantilla maliciosa desada a la base; un connector modificat pot injectar codi encara que els ajustos emmagatzemats siguin correctes.

Revisa la versió, l’origen de l’actualització, les accions administratives i l’historial de vulnerabilitats. Comprova si el formulari d’ajustos no tenia control de capacitats, nonce o validació d’entrada.

Corregeix tant les dades com la ruta de codi. Eliminar-ne només una part permet que la infecció torni.

Correlaciona escriptures quan hi hagi registres

Els logs d’auditoria gestionats o el registre binari de MySQL poden mostrar quan va canviar un valor i quin usuari de base ho va fer. Consulta el proveïdor abans d’activar traces detallades: poden afectar el rendiment i capturar consultes sensibles.

WordPress sol connectar-se amb un únic usuari d’aplicació, així que aquest nom no identifica necessàriament una persona. Correlaciona l’hora amb els logs web i administratius i amb els callbacks de l’aplicació.

Conserva únicament els esdeveniments rellevants i evita incloure dades de clients a l’informe.

Neteja sense corrompre la configuració

Utilitza el mètode d’ajustos o restabliment admès pel connector quan existeixi. Per modificar un valor concret, treballa amb una còpia prèvia i preserva les estructures serialitzades mitjançant les API de WordPress.

Elimina només camps o files confirmats com a maliciosos. Reconstrueix els fitxers generats a partir de dades revisades o reinstal·la el connector des d’un paquet verificat.

No executis mai un REPLACE SQL massiu sobre opcions serialitzades: canviar la longitud d’una cadena pot impedir-ne la deserialització.

Revisa comptes i altres persistències

Inspecciona administradors, contrasenyes d’aplicació, cron, accés SFTP o al panell i webs veïnes. Una sessió administrativa robada pot tornar a inserir el valor a la base.

Rota les credencials afectades després d’assegurar els dispositius. Revisa els logs per atribuir el canvi d’ajustos i elimina automatitzacions desconegudes.

Comprova usuaris i accés remot de MySQL si és possible un compromís directe de la base.

Verifica el cicle complet

Posa en quarantena el fitxer generat, neteja la font a la base i activa la regeneració legítima en un staging aïllat. Confirma que la sortida coincideix amb el codi esperat i revisat.

Repeteix execucions programades i desaments d’ajustos. Després monitoritza hashes i valors de la base a producció durant més temps que l’antic interval de retorn.

Quan cal ajuda especialitzada

Demana una avaluació quan hi hagi opcions serialitzades, connectors de snippets o PHP generat. Comparteix noms d’opcions o taules i hashes, però censura els valors.

La reparació ha de netejar l’emmagatzematge i l’escriptor, conservar la configuració legítima i demostrar que la regeneració normal ja no pot recrear el malware.

ABANS D’ENVIAR LA SOL·LICITUD

Preguntes freqüents.

Demaneu contrasenyes al formulari?+

No. El formulari públic no demana mai accessos. Les dades segures es demanen només després d’aprovar l’abast i el pressupost.

Qui revisa la incidència?+

La sol·licitud arriba a Jordi Ensenyat, fundador de Code Barcelona i especialista en WordPress amb més de 15 anys d’experiència.

Es canvia res abans del pressupost?+

No. Primer es revisen els símptomes visibles i es defineix l’abast. La intervenció comença després de l’aprovació i amb una via de recuperació preparada.

Treballeu amb webs en anglès i fora d’Espanya?+

Sí. WP Repair atén incidències de WordPress i WooCommerce en català, castellà i anglès mitjançant un servei remot.

Avaluar la meva incidència