Skip to content

A solution designed to protect your website from automated attacks and common vulnerabilities. This project is currently in its very first experimental version and is tailored for Apache servers running PHP.

Notifications You must be signed in to change notification settings

stephanebdc/secu-web

Repository files navigation

Malicious Crawler Attack Management System (everything is in French in this application)

As a hobbyist webmaster, I have always observed that the load caused by malicious robots – which visit a website daily and unnecessarily consume bandwidth, traffic, and resources – keeps increasing. The primary goal of this project is to learn and succeed; perhaps, with a lot of luck and by constantly challenging my approach, I will eventually manage to finalize something usable.

This system is designed to manage and mitigate attacks by malicious crawler robots. It automatically logs 404 errors generated by these crawlers and blocks IP addresses when they attempt to access paths recorded in the blacklist.

Disclaimer: This system is highly experimental and in its alpha version. It may damage your installation, likely contains vulnerabilities, and is intended solely for testing and further development.

This system is currently extremely intrusive and does not sufficiently consider your site's existing configuration. Numerous bugs are highly likely to occur.

The whitelist system has not been created yet, so your site is expected to contain commonly used favicon files, as well as the necessary JSON and other files for PWA conversions. Without them, 404 errors will be generated when your site is accessed by iPhones, iPads, Microsoft tablets, and Android devices.

Overview

The system performs the following functions:

  • Logging: Records 404 errors and access attempts (currently only the index page).
  • Blacklist Management: Maintains a list of URLs/paths. When a request matches a blacklist entry, the source IP is automatically blocked.
  • IP Management: Allows administrators to ban or unban IP addresses.
  • IP Abuse Verification: Checks one or more IP addresses via an API (requires an API key) against the ipabuse list.
  • WordPress Compatibility: Includes a module to handle sites running on WordPress.
  • False Positive Mitigation: During installation, the system scans for blacklist entries in the website directory and offers to remove them to prevent false positives.

Contents of the Archive

  • installation-beta3.php: Main installation script.
  • debut.php and debut404wpclassictheme.php: Entry points for installation, with the latter tailored for WordPress sites.
  • gestion.php (or gestion-template.php): Admin interface for managing the blacklist, IP bans, and IP abuse checks.
  • ifwordpress.php: Checks if the site is running WordPress and applies specific verifications.
  • blacklist.txt: Contains the list of paths to block.
  • blacklistverif.php: Verifies blacklist entries and helps clean up unwanted entries before installation.
  • 404.php: Custom error page for 404 errors.
  • sample_index: Example index file.
  • Other supporting files may be present.

Installation

  1. Upload Files
    Upload all files from the archive to your web server, preferably in the desired web root or subdirectory.

  2. Pre-requisites

    • A web server running PHP (ensure your PHP version is compatible with the scripts).
    • Sufficient write permissions on the server (for example, the installation script must be able to create or modify the pipou.ini file).
  3. User Authentication Setup
    At the very beginning of the installation process, the system will prompt you for a login and password. These credentials will be used to secure the administration interface via a .htpasswd file placed in the root directory of your website. Make sure to remember these credentials as they are required to access the management interface later.

  4. Run the Installer

    • You MUST customize the password in the installation-beta3.php file in line 5
    • Open installation-beta3.php in your web browser, type YOUR password,
    • Follow the on-screen instructions:
      • The installer first prompts for login credentials (used for securing the admin interface).
      • It verifies that all required files are present.
      • It backs up and secures the .htaccess file.
      • If your site is a WordPress installation, the WordPress module (ifwordpress.php) will be activated.
      • The installer scans for any existing blacklist paths in your web directory and offers to remove them to reduce false positives.
      • Finally, the system installs the management module and, if needed, guides you through setting up the IP abuse API key.
  5. API Key Configuration
    If you plan to use the IP abuse verification feature, the installer will prompt you to sign up at AbuseIPDB (free and without commitment) and enter your API key. The key is saved in a pipou.ini file as follows:

---> pipou.ini This file is created automatically by the installation script if it does not exist, to store your API key.

Using the System

  • Logging & Blacklist
    The system logs 404 errors and access attempts. When a visitor triggers a 404 error by accessing a blacklisted path, the system automatically blocks the corresponding IP address.

  • Administration Interface
    The admin interface (accessible via gestion.php or a similar file) allows you to:

  • Update the blacklist.

  • Ban or unban IP addresses.

  • Verify IP addresses against the ipabuse list using the provided API (requires your AbuseIPDB API key).

  • Maintenance
    Regularly update your blacklist and monitor the logs to ensure that legitimate users are not being accidentally blocked. The installation process includes a step to remove any blacklist entries found in your web directory to reduce false positives.

Troubleshooting & Support

  • File Permissions
    Ensure that the server has proper permissions to write files such as pipou.ini and update the .htaccess file.
  • API Key Issues
    If IP verification fails, check that your API key is correct and that your AbuseIPDB account is active.
  • WordPress Sites
    If you encounter issues on WordPress sites, verify that the WordPress-specific module (ifwordpress.php) has been properly activated during the installation.

For further details, consult the inline comments within the PHP files or contact the developer dev@toscan.net for additional support.

FRENCH VERSION

Système de Gestion des Attaques par Crawlers Malveillants

Je développe ce projet parce que, en tant que webmaster, j’ai toujours constaté que la charge engendrée par les robots malveillants – qui visitent quotidiennement un site et consomment inutilement bande passante, trafic et ressources – ne cessait d’augmenter. L’objectif premier de ce projet est d’apprendre et de réussir ; peut-être, avec beaucoup de chance et en remettant constamment en question mon approche, parviendrai-je à finaliser quelque chose d’utilisable.

Ce système est conçu pour gérer et atténuer les attaques menées par des robots crawler malveillants. Il enregistre automatiquement les erreurs 404 générées par ces crawlers et bloque les adresses IP lorsqu'ils tentent d'accéder aux chemins figurant sur la liste noire.

Avertissement : Ce système est hautement expérimental et en version alpha. Il peut endommager votre installation, contient vraisemblablement des vulnérabilités, et est destiné uniquement à des fins de test et de développement ultérieur.

Ce système est actuellement extrêmement intrusif et ne tient pas suffisamment compte de la configuration existante de votre site. De nombreux bugs sont très susceptibles d'apparaître.

Le système de liste blanche n'ayant pas encore été créé, il est attendu que votre site contienne les fichiers favicon couramment utilisés, ainsi que les fichiers JSON et autres nécessaires aux conversions PWA. Sans ceux-ci, des erreurs 404 seront générées lors de l'accès à votre site par des iPhones, iPads, tablettes Microsoft et appareils Android.

Ce système va radicalement ralentir votre site si il génère beaucoup de trafic, ne pas utiliser en production ou sur des sites populaires, ou bien, créer des règles via des services de CDN pour llimiter l'accès en direct.

Aperçu

Le système réalise les fonctions suivantes :

  • Journalisation : Enregistre les erreurs 404 et les tentatives d'accès (actuellement uniquement la page d'accueil).
  • Gestion de la Liste Noire : Maintient une liste d'URL/chemins. Lorsqu'une requête correspond à une entrée de la liste noire, l'IP source est automatiquement bloquée.
  • Gestion des IP : Permet aux administrateurs de bannir ou débannir des adresses IP.
  • Vérification des Abus d'IP : Vérifie une ou plusieurs adresses IP via une API (nécessite une clé API) par rapport à la liste ipabuse.
  • Compatibilité WordPress : Comprend un module pour gérer les sites fonctionnant sous WordPress.
  • Atténuation des Faux Positifs : Lors de l'installation, le système recherche des entrées de la liste noire dans le répertoire du site et propose de les supprimer afin d'éviter les faux positifs, il serait nécessaire de modifier ce système vers un appel d'URL qui simule réellement la visite du site, mais je ne sais pas comment le faire intelligement.

Contenu de l'Archive

  • installation-beta3.php : Script principal d'installation.
  • debut.php et debut404wpclassictheme.php : Points d'entrée pour l'enregistrement de log d'accès, le second étant dédié aux 404 et adapté aux sites WordPress.
  • gestion.php (ou gestion-template.php) : Interface d'administration pour gérer la liste noire, les bannissements d'IP et les vérifications des abus d'IP.
  • ifwordpress.php : Vérifie si le site utilise WordPress et applique des vérifications spécifiques (choix du theme utilisé).
  • blacklist.txt : Contient la liste des chemins à bloquer.
  • blacklistverif.php : Vérifie les entrées de la liste noire et aide à nettoyer les entrées indésirables avant l'installation.
  • 404.php : Page d'erreur personnalisée pour les erreurs 404.
  • sample_index : Fichier d'exemple pour la page d'accueil.
  • D'autres fichiers de support peuvent être présents.

Note : Le répertoire __MACOSX contient des fichiers système générés par macOS et peut être ignoré.

Installation

  1. Téléversement des Fichiers
    Téléversez tous les fichiers de l'archive sur votre serveur web, de préférence dans la racine web désirée ou dans un sous-répertoire.

  2. Prérequis

    • Un serveur web exécutant PHP (vérifiez que votre version de PHP est compatible avec les scripts).
    • Des permissions d'écriture suffisantes sur le serveur (par exemple, le script d'installation doit pouvoir créer ou modifier le fichier pipou.ini).
  3. Configuration de l'Authentification Utilisateur
    Au tout début du processus d'installation, le système vous demandera un identifiant et un mot de passe. Ces identifiants seront utilisés pour sécuriser l'interface d'administration via un fichier .htpasswd placé à la racine de votre site. Assurez-vous de mémoriser ces identifiants car ils seront requis pour accéder ultérieurement à l'interface de gestion.

  4. Exécution de l'Installateur

    • Vous DEVEZ personnaliser le mot de passe dans le fichier installation-beta3.php à la ligne 5.
    • Ouvrez installation-beta3.php dans votre navigateur web, saisissez VOTRE mot de passe,
    • Suivez les instructions à l'écran :
      • L'installateur vous demande d'abord des identifiants de connexion (utilisés pour sécuriser l'interface d'administration).
      • Il vérifie que tous les fichiers requis sont présents.
      • Il effectue une sauvegarde et sécurise le fichier .htaccess.
      • Si votre site est une installation WordPress, le module WordPress (ifwordpress.php) sera activé.
      • L'installateur recherche toute présence d'anciens chemins de la liste noire dans votre répertoire web et propose de les supprimer pour réduire les faux positifs.
      • Enfin, le système installe le module de gestion et, si nécessaire, vous guide pour configurer la clé API de vérification des abus d'IP.
  5. Configuration de la Clé API
    Si vous prévoyez d'utiliser la fonctionnalité de vérification des abus d'IP, l'installateur vous demandera de vous inscrire sur AbuseIPDB (gratuit et sans engagement) et de saisir votre clé API. La clé est enregistrée dans un fichier pipou.ini comme suit :

---> pipou.ini
Ce fichier est créé automatiquement par le script d'installation s'il n'existe pas, afin d'enregistrer votre clé API.

Utilisation du Système

  • Journalisation & Liste Noire
    Le système enregistre les erreurs 404 et les tentatives d'accès. Lorsqu'un visiteur déclenche une erreur 404 en accédant à un chemin présent dans la liste noire, le système bloque automatiquement l'adresse IP correspondante.

  • Interface d'Administration
    L'interface d'administration (accessible via gestion.php ou un fichier similaire) vous permet de :

    • Mettre à jour la liste noire.
    • Bannir ou débannir des adresses IP.
    • Vérifier les adresses IP par rapport à la liste ipabuse en utilisant l'API fournie (nécessite votre clé API AbuseIPDB).
  • Maintenance
    Mettez régulièrement à jour votre liste noire et surveillez les journaux pour vous assurer que des utilisateurs légitimes ne sont pas bloqués par erreur. Le processus d'installation inclut une étape de suppression des anciennes entrées de la liste noire présentes dans votre répertoire web pour réduire les faux positifs.

Dépannage & Support

  • Permissions des Fichiers
    Assurez-vous que le serveur dispose des permissions appropriées pour écrire des fichiers tels que pipou.ini et mettre à jour le fichier .htaccess.
  • Problèmes de Clé API
    Si la vérification des IP échoue, vérifiez que votre clé API est correcte et que votre compte AbuseIPDB est actif.
  • Sites WordPress
    Si vous rencontrez des problèmes sur des sites WordPress, vérifiez que le module spécifique à WordPress (ifwordpress.php) a bien été activé lors de l'installation.

Pour plus de détails, consultez les commentaires intégrés dans les fichiers PHP ou contactez le développeur à l'adresse dev@toscan.net pour un support supplémentaire.

About

A solution designed to protect your website from automated attacks and common vulnerabilities. This project is currently in its very first experimental version and is tailored for Apache servers running PHP.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published