informatique:securite:wordfence
Table des matières
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
- kadekjayak/notification-wordfence Catch Wordfence email alert and send it to your notification channel (Slack or Telegram)
- SentinalMax/LogFence Wordfence attack log exporting tool
- Paolo-Monti/Firewall-WAF-Wordfence qui scanne la datatable de Wordfence et reproduit la liste d'ip bloquées sur iptables. C'est un gain de performance notable.
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
etblocked:wordfence
sont-ils tous relayés par lesactions
? - 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 (champunixday
) - 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)
etdo503($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)
etprocessBruteForceAttempt($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