Outils pour utilisateurs

Outils du site


informatique:securite:wordfence

Wordfence (wordpress WAF plugin)

Pare-feu d'applications Web (WAF) pour Wordpress.

Wordfence plugin & Wordfence Web site

Super plugin que je utilise depuis des années sur de nombreux sites.

Configuration

General Wordfence Options

Cocher “Bypass the LiteSpeed “noabort” check”.

Advanced Firewall Options

Immediately block IPs that access these URLs:

/.git/*
/.env
/wp-config.php
/wp-content/debug.log
/vendor/phpunit/*

Activity Report

List of directories to exclude from recently modified file list

wp-content/cache
wp-content/wflogs
wp-content/et-cache

Autour de Wordfence

collection of bad username and file paths for WordFence:

Wordfence -> firewall

Connecter Wordfence avec un firewall

  • Un plugin Wordpress
    • il ne faut pas donner le droit au php du siteweb de manipuler le firewall !
    • il faudrait donc créer des données à partir des actions appelées par WF et scanner ces données avec un daemon/cron pour alimenter le FW
    • les blocked:wfsn et blocked:wordfence sont-ils tous relayés par les actions ?
    • quelles actions wordfence_security_event traquées ?
      • oui : loginLockout, block
      • ??? : increasedAttackRate
  • Un daemon/cron qui exploite les DB tables de Wordfence pour reproduire les IPs bloquées en règles pour le FW
    • atttention aux évolutions de Wordfence qui pourraient changer le schéma de la DB
  • Ou alors une solution qui reste dans la philosophie de Crowdsec:
    • générer un fichier de log
    • utiliser un scénario pour déclencher les décisions

Les données WF dans la DB

  • en synthèse les données ne sont pas disponibles longtemps
  • la table wfblockediplog ne contient que les stats par ip des 30 derniers jours (champ unixday)
  • la table wfhits contient par défaut 2000 lignes des attaques
    • réglable dans “Tool Options > Live Traffic Options >” avec la combinaison de “Amount of Live Traffic data to store (number of rows)” et “Maximum days to keep Live Traffic data (1-30 days)”
    • les actions:
      • blocked:wfsn : Blocked by Wordfence Security Network
      • blocked:wordfence : Accessed a banned URL, Blocked by login security setting
      • learned:waf : “XSS: Cross Site Scripting”, “Known malicious User-Agents”, “Directory Traversal”, “WPGraphQL ⇐ 0.2.3 - Multiple Vulnerable Actions”, “Related Posts for WordPress ⇐ 2.0.3 - Reflected Cross-Site Scripting”, …
      • lockedOut, loginFailInvalidUsername, loginFailValidUsername, loginOK, logout, lostPassword, scan:detectproxy, user:passwordReset

Tech

WP actions

  • do_action('wordfence_security_event', 'block', ['ip', 'reason', 'duration'])
    • en rapport avec le throttling
    • déclenchée depuis les fonctions takeBlockingAction($configVar, $reason) et do503($secsToGo, $reason, $sendEventToCentral = true)
  • do_action('wordfence_security_event', 'throttle', ['ip', 'reason', 'duration'])
    • déclenchée depuis les fonctions takeBlockingAction($configVar, $reason)
  • do_action('wordfence_security_event', 'lostPasswdForm', ['email', 'ip'])
    • sous certaines conditions peut initier un blocage d'ip via l'appel à 'lockOutIP($IP, $reason)
  • do_action('wordfence_security_event', 'loginLockout', ['ip', 'reason', 'duration'])
    • bloquer une IP pour abus sur le login ou lostpassword
    • déclenchée depuis les fonctions lockOutIP($IP, $reason) et processBruteForceAttempt($authUser, $username, $passwd)
  • do_action('wordfence_security_event', 'NewLocation', ['username', 'ip']) aka 'newDevice'
  • do_action('wordfence_security_event', 'nonAdminLogin', ['username', 'ip'])
  • do_action('wordfence_security_event', 'adminLogin', ['username', 'ip'])
  • do_action('wordfence_security_event', 'breachLogin', ['username', 'resetPasswordURL', 'supportURL', 'ip'])
  • do_action('wordfence_security_event', 'increasedAttackRate', ['attackCount', 'attackTable', 'duration', 'ip'])
  • do_action('wordfence_security_event', 'autoUpdate', ['version'])
  • do_action('wordfence_security_event', 'wafDeactivated', ['username', 'ip'])
  • do_action('wordfence_security_event', 'wordfenceDeactivated', ['username', 'ip'])
  • do_action_ref_array('wp_authenticate', [&$username, &$password])
  • do_action('wfls_xml_rpc_blocked', 2)
  • do_action('wfls_registration_blocked', $endpointType)
  • do_action('wfls_settings_set', $key, $value)
  • do_action('wfls_activation_page_footer')
  • do_action('wfls_activation_page_footer')
  • do_action('wfls_activation_page_header')
informatique/securite/wordfence.txt · Dernière modification : 02/08/2024 12:02 de cyrille

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki