36
WordPress End-User Security

WordPress End-User Security

Embed Size (px)

DESCRIPTION

WordCamp Phoenix - End-User Security presented by Dre Armeda (@dremeda) and Brad WIlliams (@williamsba).

Citation preview

Page 1: WordPress End-User Security

WordPress End-User Security

Page 2: WordPress End-User Security

@dremeda & @williamsba

Dre Armeda@dremeda

Co-Founder – CubicTwoCo-Founder – Sucuri Security

Brad Williams@williamsba

Co-Founder – WebDevStudiosCo-Author – Professional WordPress Plugin Development http://amzn.to/plugindevbook

Page 3: WordPress End-User Security

It Starts With YouBefore you show the world your awesomeness, think long term.

An integrated approach to security, beginning to end, will help protect your investment, and your visitor safety.

Information security is everyone’s responsibility

Page 4: WordPress End-User Security

Are You Secure Locally?Think of your local environment as if it was a medieval castle and you’re the queen or king. You & your queen/kingdom must be protected.

Your Machine Keep your computer up to date

• Ensure you’re patching or installing updates ASAP

• Automatic updates rock!

Install an anti-virus solution

• Ensure you’re keeping definitions current

• Automatic updates aren’t a bad idea here either!

Yes, personal firewalls still apply!

Page 5: WordPress End-User Security

Where Do You Like To Visit?Just because your website is super ninja like doesn’t mean others are too. Most desktop viruses and malware these days are passed via the internet.

Safe Browsing

• Us NoScript extension for Firefox

• It’s OK to be skeptical. Not sure, ask questions!

• Disable pop-ups

Page 6: WordPress End-User Security

Are you connecting Securely?It’s your information, but who’s watching & listening? You may be a network geek at home, but what happens at Starbucks?

Your Internet ConnectionUse SSL whenever possible, especially on an unverified connection.

• HTTPS is a great way to ensure your transactions & traffic are traveling with security in mind.

Connecting To Your Site(s)

Consider using sFTP or SSH vs. FTP

• Still widely marketed, but did you know your credentials are passed unencrypted when using FTP?

• If unavoidable, do not allow anonymous logins, limit connections, practice least privilege.

• Don’t store your credentials in your FTP client.

Page 7: WordPress End-User Security

Do You use “password” For Your Password?

Passwords are like toothbrushes, you should keep them to yourself. And discard them, and get a new one, if they have been used by others.

Password Management

• Change passwords often

• Don’t share your passwords

• Avoid writing passwords down

• Use a password manager

ZoneAlarm by Check Point

Page 8: WordPress End-User Security

Where Do You Live? Choose Wisely!

At the end of the day, hosting providers market the world. You in turn, should have opportunity to know how they’re going to protect you.

Your Lovely Host

• Cheap doesn’t always mean best, or safe!

• How many sites on their network or blacklisted for malware reasons?

• What version of software to they run and how often do they update?

• How are account credentials stored & who has access?

Page 9: WordPress End-User Security

TOP 10 WORDPRESS SECURITY TIPS

Page 10: WordPress End-User Security

Keep WordPress Updated!

Minor WordPress versions ( ie 3.0.x ) do NOT add new features. They contain bug fixes and security patches

1. Update Update Update

Page 11: WordPress End-User Security

The plugin Changelog tab makes it very easy to view what has changed in a new plugin version

Update Those Plugins!

1 Update Update Update

Page 12: WordPress End-User Security

/** * WordPress Database Table prefix. * * You can have multiple installations in one database if you give each a unique * prefix. Only numbers, letters, and underscores please! */$table_prefix = ‘dreday_';

1. Edit wp-config.php before installing WordPress

All database tables will now have a unique prefix (ie dreday_posts)

2. Change the prefix wp_ to something unique:

2. Change DB Table Prefix

Page 13: WordPress End-User Security

Some secrets should remain secrets

3. Use Secret Keys

Page 14: WordPress End-User Security

Some secrets should remain secrets

define('AUTH_KEY', 'put your unique phrase here');define('SECURE_AUTH_KEY', 'put your unique phrase here');define('LOGGED_IN_KEY', 'put your unique phrase here');define('NONCE_KEY', 'put your unique phrase here');define('AUTH_SALT', 'put your unique phrase here');define('SECURE_AUTH_SALT', 'put your unique phrase here');define('LOGGED_IN_SALT', 'put your unique phrase here');define('NONCE_SALT', 'put your unique phrase here');

1. Edit wp-config.php

A secret key is a hashing salt which makes your site harder to hack by adding random elements to the password.

2. Visit this URL to get your secret keys: https://api.wordpress.org/secret-key/1.1/salt

BEFOREdefine('AUTH_KEY', '*8`:Balq!`,-j.JTl~sP%&>@ON,t(}S6)IG|nG1JIfY(,y=][-3$!N6be]-af|BD');define('SECURE_AUTH_KEY', 'q+i-|3S~d?];6$[$!ZOXbw6c]0 !k/,UxOod>fqV!sWCkvBihF2#hI=CDt_}WaH1');define('LOGGED_IN_KEY', 'D/QoRf{=&OC=CrT/^Zq}M9MPT&49^O}G+m2L{ItpX_jh(-I&-?pkeC_SaF0nw;m+');define('NONCE_KEY', 'oJo8C&sc+ C7Yc,W1v o5}.FR,Zk!J<]vaCa%2D9nj8otj5z8UnJ_q.Q!hgpQ*-H');define('AUTH_SALT', 'r>O/;U|xg~I5v.u(Nq+JMfYHk.*[p8!baAsb1DKa8.0}q/@V5snU1hV2eR!|whmt');define('SECURE_AUTH_SALT', '3s1|cIj d7y<?]Z1n# i1^FQ *L(Kax)Y%r(mp[DUX.1a3!jv(;P_H6Q7|y.!7|-');define('LOGGED_IN_SALT', '`@>+QdZhD!|AKk09*mr~-F]/F39Sxjl31FX8uw+wxUYI;U{NWx|y|+bKJ*4`uF`*');define('NONCE_SALT', 'O+#iqcPw#]O4TcC%Kz_DAf:mK!Zy@Zt*Kmm^C25U|T!|?ldOf/l1TZ6Tw$9y[M/6');

AFTER

3. Use Secret Keys

Page 15: WordPress End-User Security

4. Lock Down WP Login & WP Admin

Yes, it happens. #FAIL

Page 16: WordPress End-User Security

define('FORCE_SSL_LOGIN', true);

Add the code below to wp-config.php to force SSL (https) on login

Add the code below to wp-config.php to force SSL (https) on all admin pages

define('FORCE_SSL_ADMIN', true);

Using SSL (https) on all admin screens in WordPress will encrypt all data transmitted with the same encryption as online shopping

4. Lock Down WP Login & WP Admin

Page 17: WordPress End-User Security

AuthUserFile /dev/nullAuthGroupFile /dev/nullAuthName "Access Control"AuthType Basicorder deny,allowdeny from all#IP address to Whitelistallow from 67.123.83.59allow from 123.123.123.123

1. Create an .htaccess file in your wp-admin directory

Only a user with the IP 67.123.83.59 or 123.123.123.123 can access wp-admin

2. Add the following lines of code:

4. Lock Down WP Login & WP Admin

Page 18: WordPress End-User Security

WordPress features the ability to move the wp-config.phpfile one directory above your WordPress root

This makes it nearly impossible for anyone to access your wp-config.php file from a browser as it now resides outside of your website’s root directory

You can move your wp-config.php file to here

WordPress automatically checks the parent directory if a wp-config.php file is not found in your root directory

public_html/wordpress/wp-config.php

If WordPress is located here:

public_html/wp-config.php

5. Move wp-config.php

Page 19: WordPress End-User Security

Viewing source on most WP sites will reveal the version they are running

This helps hackers find vulnerable WP blogs running older versions

<meta name="generator" content="WordPress 3.0" /> <!-- leave this for stats -->

To remove find the code below in your header.php file of your theme and remove it

<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />

<!-- leave this for stats -->

The wp_head() function also includes the WP version in your header.To remove add this line of code in your themes functions.php file

remove_action( 'wp_head', 'wp_generator' );

6. Disable WP Generator Tag

Page 20: WordPress End-User Security

Themes and plugins might also display versions in your header.

6. Disable WP Generator Tag

Page 21: WordPress End-User Security

WPMU.org reviewed the top 10 results for “free wordpress themes” on Google.

Out of the ten sites reviewed

1. Safe: 12. Iffy: 13. Avoid: 8

7. Use Trusted Sources for Themes & Plugins

Page 22: WordPress End-User Security

The only safe site reviewed was WordPress.org

Most themes included base64() encoded text links to promote various servies

http://wpmu.org/why-you-should-never-search-for-free-wordpress-themes-in-google-or-anywhere-else/

7. Use Trusted Sources for Themes & Plugins

Page 23: WordPress End-User Security

Trusted Sources for Free WordPress Themes

WordPress.org Theme Directory http://wordpress.org/extend/themes/

WooThemes http://www.woothemes.com/themes/free/

Themelab http://www.themelab.com/free-wordpress-themes

Theme Hybrid http://themehybrid.com/

ThemeShaper (Thematic) http://themeshaper.com/

More themes: http://wpmu.org/when-is-a-free-wordpress-theme-really-free-some-thoughts-and-some-places-to-find-them/

7. Use Trusted Sources for Themes & Plugins

Page 24: WordPress End-User Security

Do you Login with username admin?

Page 25: WordPress End-User Security
Page 26: WordPress End-User Security

UPDATE wp_users SET user_login='hulkster' WHERE user_login='admin';

Change the admin username in MySQL:

Or create a new account with administrator privileges.

1. Create a new account. Make the username very unique2. Assign account to Administrator role3. Log out and log back in with new account4. Delete admin account

WordPress will allow you to reassign all content written by admin to an account of your choice.

8. Delete the Admin User

Page 27: WordPress End-User Security

WordPress 3.0 lets you setthe administrator

username during the installation process!

DON'T USE ADMIN!

Page 28: WordPress End-User Security

Knowing your username is half the

battle.

Don't make it easy on the hackers.

Page 29: WordPress End-User Security

9. File / Folder PermissionsWhat folder permissions should you use?

Good Rule of Thumb:

• Files should be set to 644• Folders should be set to 755

Start with the default settings above

If your host requires 777…SWITCH HOSTS!

Page 30: WordPress End-User Security

9. File / Folder Permissions

find [your path here] -type d -exec chmod 755 {} \;find [your path here] -type f -exec chmod 644 {} \;

Or via SSH with the following commands

Page 31: WordPress End-User Security

10. Update Update Update

Page 32: WordPress End-User Security

http://wordpress.org/extend/plugins/wp-time-machine/

WordPress Exploit Scanner - http://wordpress.org/extend/plugins/exploit-scanner/ WordPress File Monitor - http://wordpress.org/extend/plugins/wordpress-file-monitor/ Login Lockdown - http://wordpress.org/extend/plugins/login-lockdown/ AskApache Password Protect - http://wordpress.org/extend/plugins/askapache-password-protect/ BulletProof Security - http://wordpress.org/extend/plugins/bulletproof-security/ Secure WordPress - http://wordpress.org/extend/plugins/secure-wordpress/

Security Plugins

Page 33: WordPress End-User Security

http://wordpress.org/extend/plugins/wp-time-machine/

WP Time Machine - http://wordpress.org/extend/plugins/wp-time-machine/ WP-DB Backup - http://wordpress.org/extend/plugins/wp-db-backup/ Backup Buddy - http://pluginbuddy.com/purchase/backupbuddy/ VaultPress - http://vaultpress.com/

Backup Plugins

Page 34: WordPress End-User Security

Website Scanning Tools

http://wordpress.org/extend/plugins/wp-time-machine/

Website Scanning Tools Sucuri.net - http://sucuri.net Unmask Parasites - http://www.unmaskparasites.com

Malware Removal Sucuri.net - http://sucuri.net VaultPress - http://vaultpress.com

Page 35: WordPress End-User Security

Security Related Codex Articles• http://codex.wordpress.org/Hardening_WordPress• http://codex.wordpress.org/Changing_File_Permissions• http://codex.wordpress.org/Editing_wp-config.php• http://codex.wordpress.org/htaccess_for_subdirectories

Blog Security Articles

• http://www.wpbeginner.com/wp-tutorials/11-vital-tips-and-hacks-to-protect-your-wordpress-admin-area/

• http://blog.sucuri.net/2010/11/yet-another-wordpress-security-post-part-one.html

• http://www.growmap.com/wordpress-exploits/

• http://wpcandy.com/teaches/security-tips

• http://semlabs.co.uk/journal/how-to-stop-your-wordpress-blog-getting-hacked/

• http://www.makeuseof.com/tag/18-useful-plugins-and-hacks-to-protect-your-wordpress-blog/

• http://www.catswhocode.com/blog/10-easy-ways-to-secure-your-wordpress-blog

Resources

Page 36: WordPress End-User Security

@dremeda @williamsba are #WordPress security ninjas

and #WELOVETACOS#WCPHX