Outils pour utilisateurs

Outils du site


informatique:securite:wordfence

Ceci est une ancienne révision du document !


Wordfence (wordpress 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.

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

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

Projets:

Autour de Wordfence

collection of bad username and file paths for WordFence:

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.1716931809.txt.gz · Dernière modification : 28/05/2024 23:30 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