WordPress
Security 101
WordPress Meetup Nairobi
March 2020
! @stkjj
! stefan@adminpress.de
https://profiles.w.org/stk_jj
About Me
• Stefan Kremer
• 14 yrs WordPress experience
• Contributor
• freelance IT Consultant,
mainly WordPress, Mac, CTI
• Owner of AdminPress (de)
and KeDe Digital LLP (ke)
.com or .org?
• wpisnotwp.com
• wordpress.com
• hosted service from Automattic
• Security covered by them
• no influence on the installation
• just a small private blog
• content which doesn't harm anyoine
• even not much outreach
• negligible audience
• no financial interest
Is it about me?
• just a small private blog
• content which doesn't harm anyoine
• even not much outreach
• negligible audience
• no financial interest
Is it about me?
Content is King
• computational power (CPU)
• disk space
• bandwidth
• sendmail for spam
nothing
Y U d0n't want 2 B h4cked
• you lose reputation
• your sales are affected
• you spend money on others behalf
• you just feel bad!
CMS? No prob!
CMS? No prob!
• CVE-Hitlist
CMS? No prob!
• CVE-Hitlist
• (32) Joomla: 382
• (37) WordPress: 342
• (39) Drupal: 300
• no entry ≠ secure, just not yet exposed
WordPress Security
• often referred as "insecure"
• core vs. 3rd party vs. operation
• large community that takes care
• WordPress security team
11%
52%
37%
Core PlugIns Themes
• Brute-Force Attacs
• „default“ usernames
• weak passwords
• XSS - Cross Site Scripting / SQL Injections
• bad coding
• old and outdated installations
Attac Vectors
• »admin« default til v3.0
• part of the domain-name
• common: eMail-address like »info@…«
• best practice: 1 admin-, 1 user-account
• make sure user names are not accessible
User Name
• Anything that can be found in dictionaries
• socialhacking
• keyboard runs and sequences
• recycled passwords
• PW-lists in Word/Excel/Evernote
Password NoGos!
Kopfschmerzen? Finger wund?
➡ Passwortmanager!
Defense Strategy
➡ strong passwords
➡ disable/tweak login messages
➡ lockout after x malicious attempts for time y
➡ IP-blacklisting
➡ disable XML-RPC if not needed
➡ restrict REST-API access
➡ consider geoblocking where feasible
Update, Update, Update!
• autoupdate for minor core updates ✅
• update plugins and themes ASAP ⏰
• critical infrastructure: have a staging system 🎭
• check functionalities after update 🚀
• premium: renew your subscriptions 💸
wp.org Stuff Only!
• use themes and plugins from wp.org repo only
• avoid "premium" plugins and themes
• never ever use doubtful sources
Remove Unused Stuff
• uninstall themes and plugins not actively used
• keep the recent default theme for fallback
• disabled plugins are still accessible
🚫
Monitoring
• server up and running
• malicious login attempts
• 404's
• changed/added/deleted files
• user actions
• malware detection
• changes in UI after updates
Raise the Barrier
• get a free SSL certificate with Let's Encrypt
• Multi-Factor Authentification (MFA)
• very simple via eMail
• more sophsticted: Google Authenticator, Duo,
Rublon
• extra hardware: UbiKey, Fido U2F
Security Foo
• randomize version number
• change db-prefix
• renaming of /wp-content folder
• hide login window
• hide WordPress at all
Security Foo
Let's Get the
Complete Picture
• how secure is your local client?
• keylogger
• Do you still use FTP?
• change to SFTP or FTPS (SSL/TLS)!
• PW submitted via eMail?
• eMail is without encryption = postcard
Backup
• you don't want to have a backup,
➡ you want to have a restore!
• timed & regular, automatic, off-site
• both database and files
• practice restore
🚒
🚨
Recommendations
🔒 harden your installation
✅ update, update, update
ⓦ use themes and plugins from wp.org repo only
🚫 remove unused plugins and themes
🔭 monitor your site(s)
🚨 have a backup
en detail
• Chose the right hoster
• Limit access rights
• Have a SSL Certificate
• Disable FileEditor
various single solutions
or All-in-one Suite ?
• Limit Login Attempts
• Login Lockdown
• 2-Factor Authentification
• Simple Firewall
• Edit Author Slug
• manuell .htaccess entries
• iThemes Security
• Sucuri
• WordFence
• Security Ninja
• Cerber Security
• Bulletproof Security
DEMO
Summary
• Security is not installing a plugin
• Security is a continuous process
• Security should become a habit!
• effort vs. benefits?
• make or buy
Links
https://wpisnotwp.com
https://en.wikipedia.org/wiki/Hacker_ethic
https://wordpress.org/about/security/
http://codex.wordpress.org/WordPress_Versions
https://wordpress.org/about/stats/
http://trends.builtwith.com/cms/WordPress
https://www.cvedetails.com/top-50-vendor-
cvssscore-distribution.php
https://cve.mitre.org/cgi-bin/cvekey.cgi?
keyword=wordpress
http://wpengine.com/unmasked/
https://blog.resellerclub.com/most-common-
wordpress-security-issues-in-2019/
https://ithemes.com/wordpress-security-issues/
https://hackerone.com/hacktivity?
querystring=wordpress
https://sitecheck.sucuri.net
https://onwebchange.com
https://wpscan.org
https://wpvulndb.com
https://letsencrypt.org
https://aws.amazon.com
Links
Login LockDown
https://wordpress.org/plugins/login-lockdown/
Limit Login Attempts
https://de.wordpress.org/plugins/limit-login-attempts-
reloaded/
Two Factor
https://de.wordpress.org/plugins/two-factor/
2-Step-Verification
https://github.com/pluginkollektiv/2-Step-Verification
.htaccess Entries
https://gist.github.com/zottto/608a18d109bd22e76aa4
Edit Author Slug
https://de.wordpress.org/plugins/edit-author-slug/
All In One WP Security & Firewall
https://de.wordpress.org/plugins/all-in-one-wp-
security-and-firewall/
Security Ninja:
https://de.wordpress.org/plugins/security-ninja/
iThemes Security: https://de.wordpress.org/plugins/
better-wp-security/
Sucuri: https://de.wordpress.org/plugins/sucuri-
scanner/
Wordfence: https://de.wordpress.org/plugins/wordfence/
Bulletproof Security
https://wordpress.org/plugins/bulletproof-security/
Cerber Security, Antispam & Malware Scan
https://de.wordpress.org/plugins/wp-cerber/
Shield Security
https://de.wordpress.org/plugins/wp-simple-firewall/
Ninja Firewall
https://de.wordpress.org/plugins/ninjafirewall/
Simple Firewall
http://de.wordpress.org/plugins/wp-simple-firewall/
Q & A
Thank you!

WordPress Security 101 - Meetup Nairobi March 2020