informatique:securite:wordfence
Ceci est une ancienne révision du document !
Table des matières
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.
Configuration
Advanced Firewall Options
Immediately block IPs that access these URLs:
/.git/* /.env /wp-config.php /wp-content/debug.log
Activity Report
List of directories to exclude from recently modified file list
wp-content/cache wp-content/wflogs
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
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
Projets:
- Paolo-Monti/Firewall-WAF-Wordfence qui scan la data table de Wordfence et reproduit la liste d'ip bloquées sur iptables. C'est un gain de performance notable.
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.1718001952.txt.gz · Dernière modification : 10/06/2024 08:45 de cyrille