CriticoFamiglia antivirus

php.bkdr: la backdoor senza altra specificazione

php.bkdr, senza altro suffisso, è la famiglia che l'antivirus lato server usa quando riconosce una backdoor PHP ma non una sua specializzazione: non è un dropper, non è una webshell, non imita un plugin. Nel corpus di misura di WPsec.it dell'agosto 2026 compare su 19 domini e 10 server; nel 64% dei casi il file ha un nome di senso compiuto, e uno su quattro sta dentro le cartelle di WordPress. È il rilevamento che più spesso arriva da solo nell'email dell'hosting, e per questo il più sottovalutato.

Famiglia: Backdoor PHP generica · Anche noto come: bkdr, backdoor · Aggiornato il 1 settembre 2026

Le stringhe esatte

Se hai trovato una di queste stringhe sul tuo sito, sei nella pagina giusta.

  • php.bkdr
  • SMW-INJ-CLOUDAV-php.bkdr
  • SMW-BLKH-SA-CLOUDAV-php.bkdr
  • bkdr

Dove si trova

  • Fuori dalle cartelle di WordPress in tre casi su quattro, dentro wp-content/plugins nel 13%
  • Con un nome che sembra normale: wp-cache, config, functions, class-loader e simili, nel 64% dei rilevamenti
  • Sia con estensione .php sia senza estensione: il 13% dei file non ne ha una

Cosa fa

  • Riceve istruzioni da una richiesta web, di solito con un parametro o un cookie che fa da chiave, ed esegue codice.
  • Non ha una funzione unica: è lo strato base sopra cui l'attaccante carica ciò che gli serve in quel momento.
  • Resta silenziosa per settimane; molti proprietari la scoprono solo dall'email dell'hosting.

Come verificare

Comandi di sola lettura: non modificano nulla. Sostituisci ESEMPIO.it con il tuo dominio ed esegui dalla radice del sito.

  1. Cerca esecuzione dinamica di codice nei file fuori dal core

    grep -rn --include='*.php' -E '(eval|assert|create_function|call_user_func(_array)?)\s*\(\s*(\$|base64_decode|gzinflate|str_rot13)' . | grep -vE 'wp-(admin|includes)/' | head -30
  2. Cerca chi legge parametri o cookie e li passa a funzioni pericolose

    grep -rn --include='*.php' -E '\$_(GET|POST|COOKIE|REQUEST)\[[^]]+\]\s*\)?\s*;?\s*(eval|assert|system|exec|include|require)' . | grep -vE 'wp-(admin|includes)/' | head -20
  3. Confronta core e plugin con le copie ufficiali

    wp core verify-checksums && wp plugin verify-checksums --all

Cosa non basta fare

  • Fermarsi al file segnalato: una firma generica dice che c'è una backdoor, non che sia l'unica.
  • Aggiornare WordPress: l'aggiornamento non tocca un file che non appartiene al core né a un plugin del repository.
  • Ripristinare un backup recente: nel corpus la vita mediana degli artefatti prima del rilevamento era spesso di settimane, quindi il backup è già infetto.

Cosa fare

  • Chiedi all'hosting il percorso completo e la data del primo rilevamento: la data apre la finestra in cui cercare gli altri file.
  • Elenca tutti i file PHP modificati o creati in quella finestra, su tutto l'account e non solo nel sito segnalato.
  • Verifica le somme di controllo del core e dei plugin: distingue in pochi secondi un file legittimo modificato da uno aggiunto.
  • Chiudi il vettore di ingresso e ripeti la scansione dopo qualche giorno.

FAQ

Domande frequenti

  • No. La firma generica dice che il file è una backdoor e che l'antivirus non l'ha ricondotta a una sottofamiglia nota. La gravità è quella di ogni backdoor: accesso al sito che non passa dal login. Se mai, il fatto che sia generica rende più probabile che sia una variante recente.

Se il sito è compromesso

Trovare la firma è il primo passo, chiudere la via di ingresso è quello che conta

Rimuovere l'artefatto senza chiudere il punto da cui è entrato porta alla reinfezione. La scansione gratuita è il modo più rapido per capire cosa è osservabile dall'esterno del tuo sito.

Questa pagina pubblica firme di rilevamento, non codice sfruttabile. I casi citati sono descritti in forma anonima.