5 juin 2024

Du nettoyage des logiciels malveillants à la sécurité continue avec Web Hash Scanner

Web Hash Scanner : logiciel de surveillance de fichiers Bash Script, qui garantit la sécurité et l'intégrité de votre site Web en détectant toute modification suspecte.

Scanner de hachage Web

À l’ère numérique moderne, où les activités en ligne sont devenues le cœur battant de nombreuses entreprises, la cybersécurité joue un rôle fondamental. C'est l'histoire d'un de nos clients, une entreprise de commerce électronique, qui a vécu un cauchemar récurrent d'infections par des logiciels malveillants sur son site WordPress. Lorsqu'ils ont décidé de passer à nos services, leur système était déjà considérablement compromis par un autre fournisseur, et notre travail consistait non seulement à proposer l'hébergement et l'optimisation, mais également à effectuer un nettoyage complet des logiciels malveillants.

Le drame de l’infection persistante

Tout a commencé par une chaude après-midi d’été, lorsque notre client nous a contacté en panique. Leur site Web, essentiel aux ventes et à la réputation de l'entreprise, avait été compromis par un logiciel malveillant. Ce n’était pas la première fois que cela se produisait, et malgré de nombreuses tentatives de nettoyage et d’amélioration de la sécurité auprès du fournisseur précédent, l’infection réapparaissait sans cesse. Chaque fois qu’ils pensaient avoir résolu le problème, de nouveaux fichiers malveillants surgissaient de nulle part, menaçant la stabilité du système et la confiance de leurs clients.

Les attaques se sont reproduites à une fréquence alarmante, compromettant la confiance des clients et causant d'importantes pertes financières. Malgré la mise en œuvre de diverses mesures de sécurité, le site reste vulnérable. La situation était devenue intenable et le client avait besoin de toute urgence d'une solution permanente.

Le défi de l'intégration

Lorsque le client a décidé de recourir à nos services, nous avons hérité d’un système déjà considérablement compromis. Le premier défi consistait à procéder à un nettoyage complet des logiciels malveillants existants. Le site était infesté de portes dérobées et de vecteurs d'accès qui permettaient aux attaquants de réinfiltrer le système même après un nettoyage approfondi. Ces vecteurs d'entrée impliquaient souvent la création ou la modification de fichiers, des jours ou des semaines après la compromission initiale, ce qui rendait le logiciel malveillant extrêmement difficile à détecter et à supprimer complètement.

La recherche d'une solution

Notre équipe d’experts a immédiatement entamé une analyse approfondie pour identifier la source du problème. Il était clair que la simple suppression du malware ne suffirait pas. Nous avions besoin d'un système capable de surveiller en permanence l'intégrité des fichiers et de détecter toute modification suspecte ou l'introduction de nouveaux fichiers non autorisés. Ainsi est né le projet de développement de « Web Hash Scanner », un logiciel entièrement basé sur Bash Shell et SQLite, conçu pour fournir une solution efficace et automatisée pour surveiller les modifications de fichiers dans une installation Web.

Le développement du scanner de hachage Web

Le processus de développement logiciel s'est déroulé en plusieurs phases, chacune ayant pour objectif de créer une solution robuste et fiable. La première phase consistait à définir les exigences logicielles. Il devait être léger, facile à utiliser et capable de s'exécuter en arrière-plan sans affecter les performances du site. De plus, il devait être capable d'effectuer une analyse complète des fichiers. .js, .css e .php présent dans l'installation Web, enregistrez le chemin absolu du fichier, la date de la dernière modification et le hachage MD5 du contenu du fichier, et comparez les résultats de l'analyse en cours avec ceux d'une analyse précédente.

Mise en œuvre du Code

Nous avons choisi Bash Shell pour sa flexibilité et sa facilité de script, et SQLite comme base de données pour sa légèreté et sa facilité d'intégration.

Voici le code complet du logiciel :

 

#!/bin/bash

# Check if sqlite3 is installed
if ! command -v sqlite3 &> /dev/null; then
echo "sqlite3 is not installed. Please install sqlite3 and try again."
exit 1
fi

# Path of the WordPress installation
DOCROOT_PATH="/home/pathtoyourwebsite/htdocs/"

# Name of the SQLite database
DB_NAME="webhashscan.db"

# Date of the scan
SCAN_DATE=$(date +"%Y-%m-%d %H:%M:%S")

# Create the database and tables if they do not exist
sqlite3 $DB_NAME <<EOF
CREATE TABLE IF NOT EXISTS files (
id INTEGER PRIMARY KEY,
scan_id INTEGER,
file_path TEXT,
file_date TEXT,
file_md5 TEXT,
scan_date TEXT
);
CREATE TABLE IF NOT EXISTS scans (
scan_id INTEGER PRIMARY KEY AUTOINCREMENT,
scan_date TEXT
);
EOF

# Insert a new scan and get the scan ID
SCAN_ID=$(sqlite3 $DB_NAME <<EOF
INSERT INTO scans (scan_date) VALUES ('$SCAN_DATE');
SELECT last_insert_rowid();
EOF
)

# Function to scan files and save data to the database
scan_files() {
local path=$1
find "$path" -type f \( -name "*.php" -o -name "*.js" -o -name "*.css" \) | while read -r file; do
file_date=$(stat -c %y "$file")
file_md5=$(md5sum "$file" | awk '{ print $1 }')
sqlite3 $DB_NAME <<EOF
INSERT INTO files (scan_id, file_path, file_date, file_md5, scan_date)
VALUES ($SCAN_ID, '$file', '$file_date', '$file_md5', '$SCAN_DATE');
EOF
done
}

# Scan files in the WordPress installation
scan_files "$DOCROOT_PATH"

# Compare the current scan with the previous one
compare_scans() {
# Get the ID of the previous scan
PREV_SCAN_ID=$(sqlite3 $DB_NAME <<EOF
SELECT scan_id FROM scans WHERE scan_id < $SCAN_ID ORDER BY scan_id DESC LIMIT 1;
EOF
)

if [ -z "$PREV_SCAN_ID" ]; then
echo "No previous scan found. This is the first scan."
exit 0
fi

# Compare files between the two scans
sqlite3 $DB_NAME <<EOF
.headers on
.mode column
SELECT
f1.file_path AS "File Path",
f1.file_date AS "Current Date",
f2.file_date AS "Previous Date",
f1.file_md5 AS "Current MD5",
f2.file_md5 AS "Previous MD5"
FROM
files f1
LEFT JOIN
files f2
ON
f1.file_path = f2.file_path
AND f2.scan_id = $PREV_SCAN_ID
WHERE
f1.scan_id = $SCAN_ID
AND (f1.file_md5 != f2.file_md5 OR f2.file_md5 IS NULL);
EOF
}

# Perform the scan comparison
compare_scans

echo "Scan completed. Scan ID: $SCAN_ID"

Implémentation dans le cas client

Après avoir développé et testé le logiciel, nous avons implémenté « Web Hash Scanner » dans l'infrastructure du client. La première étape consistait à effectuer un nettoyage en profondeur du système pour supprimer les logiciels malveillants existants. Immédiatement après, nous avons effectué une première analyse avec le logiciel pour créer un instantané de l'état propre du système.

Au cours des jours et semaines suivants, nous avons effectué des analyses périodiques pour surveiller la santé du système. Chaque analyse ultérieure comparait les résultats à l'instantané précédent, nous permettant de détecter immédiatement toute modification suspecte ou l'introduction de nouveaux fichiers.

Un cas de réussite

À une occasion particulière, après une analyse de routine, le logiciel a détecté la présence de nouveaux fichiers .php et des modifications suspectes dans les fichiers existants. Grâce au rapport détaillé généré par « Web Hash Scanner », nous avons pu identifier rapidement les fichiers compromis et prendre des mesures immédiates pour neutraliser la menace. Le client a pu fonctionner avec la certitude que tout changement indésirable serait détecté rapidement, réduisant ainsi le risque de futures infections.

Avantages et résultats

Grâce à « Web Hash Scanner », notre client a pu obtenir de nombreux avantages :

  • Contrôle continu: La possibilité de surveiller en permanence l’intégrité des fichiers a permis de détecter rapidement toute tentative de réinfection.
  • Réduction des délais d'intervention: L'automatisation du processus de surveillance a considérablement réduit le temps nécessaire pour identifier et répondre aux nouvelles menaces.
  • Amélioration de la sécurité: Le client a pu mettre en œuvre des mesures de sécurité plus efficaces et ciblées, améliorant ainsi la protection globale du système.
  • Confiance accrue des clients: La réduction des pannes et l'amélioration de la sécurité ont contribué à restaurer la confiance des clients et à améliorer l'image de l'entreprise.

conclusion

L'histoire de notre client met en évidence l'importance de disposer d'un système robuste et automatisé pour surveiller l'intégrité des fichiers dans une installation Web. « Web Hash Scanner » s'est avéré être un outil indispensable pour garantir la sécurité et l'intégrité du système, permettant de détecter et de contrecarrer rapidement toute tentative d'infection. Si vous êtes également confronté à des défis similaires dans la gestion de la sécurité de votre site Web, contactez-nous pour découvrir comment « Web Hash Scanner » peut vous aider à protéger votre système et à maintenir la confiance de vos clients.

Le code source est disponible sous licence AGPL à l'adresse GitHub suivante : https://github.com/MarcoMarcoaldi/WebHashScanner

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous !

Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

Managed Server Srl est un acteur italien leader dans la fourniture de solutions système GNU/Linux avancées orientées vers la haute performance. Avec un modèle d'abonnement peu coûteux et prévisible, nous garantissons que nos clients ont accès à des technologies avancées en matière d'hébergement, de serveurs dédiés et de services cloud. En plus de cela, nous proposons des conseils système sur les systèmes Linux et une maintenance spécialisée en SGBD, sécurité informatique, Cloud et bien plus encore. Nous nous distinguons par notre expertise dans l'hébergement de CMS Open Source de premier plan tels que WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart et Magento, soutenus par un service d'assistance et de conseil de haut niveau adapté aux administrations publiques, aux PME et à toutes tailles.

Red Hat, Inc. détient les droits de Red Hat®, RHEL®, RedHat Linux® et CentOS® ; AlmaLinux™ est une marque commerciale d'AlmaLinux OS Foundation ; Rocky Linux® est une marque déposée de la Rocky Linux Foundation ; SUSE® est une marque déposée de SUSE LLC ; Canonical Ltd. détient les droits sur Ubuntu® ; Software in the Public Interest, Inc. détient les droits sur Debian® ; Linus Torvalds détient les droits sur Linux® ; FreeBSD® est une marque déposée de The FreeBSD Foundation ; NetBSD® est une marque déposée de la Fondation NetBSD ; OpenBSD® est une marque déposée de Theo de Raadt. Oracle Corporation détient les droits sur Oracle®, MySQL® et MyRocks® ; Percona® est une marque déposée de Percona LLC ; MariaDB® est une marque déposée de MariaDB Corporation Ab ; REDIS® est une marque déposée de Redis Labs Ltd. F5 Networks, Inc. détient les droits sur NGINX® et NGINX Plus® ; Varnish® est une marque déposée de Varnish Software AB. Adobe Inc. détient les droits sur Magento® ; PrestaShop® est une marque déposée de PrestaShop SA ; OpenCart® est une marque déposée d'OpenCart Limited. Automattic Inc. détient les droits sur WordPress®, WooCommerce® et JetPack® ; Open Source Matters, Inc. détient les droits sur Joomla® ; Dries Buytaert détient les droits sur Drupal®. Amazon Web Services, Inc. détient les droits sur AWS® ; Google LLC détient les droits sur Google Cloud™ et Chrome™ ; Microsoft Corporation détient les droits sur Microsoft®, Azure® et Internet Explorer® ; La Fondation Mozilla détient les droits sur Firefox®. Apache® est une marque déposée de The Apache Software Foundation ; PHP® est une marque déposée du groupe PHP. CloudFlare® est une marque déposée de Cloudflare, Inc. ; NETSCOUT® est une marque déposée de NETSCOUT Systems Inc. ; ElasticSearch®, LogStash® et Kibana® sont des marques déposées d'Elastic NV. Hetzner Online GmbH détient les droits sur Hetzner® ; OVHcloud est une marque déposée d'OVH Groupe SAS ; cPanel®, LLC détient les droits sur cPanel® ; Plesk® est une marque déposée de Plesk International GmbH ; Facebook, Inc. détient les droits sur Facebook®. Ce site n'est affilié, sponsorisé ou autrement associé à aucune des entités mentionnées ci-dessus et ne représente en aucune manière aucune de ces entités. Tous les droits sur les marques et noms de produits mentionnés sont la propriété de leurs titulaires respectifs des droits d'auteur. Toutes les autres marques mentionnées appartiennent à leurs titulaires. MANAGED SERVER® est une marque déposée au niveau européen par MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italie.

Retour en haut de page