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
      • ??? : increasedAttackRate, block
  • 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

  • la table wfblockediplog ne contient que les stats par ip des 30 derniers jours (champ unixday)
  • la table wfhits contient les logs des attaques sur un temps long (exemple champ ctime 2024-04-29 → 2022-03-30)
    • 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', 'autoUpdate', ['version'])
  • do_action('wordfence_security_event', 'wafDeactivated', ['username', 'ip'])
  • do_action('wordfence_security_event', 'wordfenceDeactivated', ['username', 'ip'])
  • do_action('wordfence_security_event', 'block', ['ip', 'reason', 'duration'])
  • do_action('wordfence_security_event', 'throttle', ['ip', 'reason', 'duration'])
  • do_action('wordfence_security_event', 'lostPasswdForm', ['email', 'ip'])
  • do_action('wordfence_security_event', 'loginLockout', ['ip', 'reason', 'duration'])
    • déclenché depuis les fonctions lockOutIP($IP, $reason) et processBruteForceAttempt($authUser, $username, $passwd) ; il s'agit bien de bloquer une IP pour abus sur le login ou lostpassword
  • 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_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.1716930149.txt.gz · Dernière modification : 28/05/2024 23: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