For many, our blogs are the lifeline of our passion. We use it to share our life experiences to others, in hopes that it will have a positive impact on their day to day lives. There is nothing more unsettling than when our passion projects are derailed due to a breach.
In my previous post, Why My WordPress Blog Is Being Attacked, I shared how my blog was constantly attacked by threat actors around the world. In sharing that information with some of my closest friends, they were taken back at efforts that others took to gain access. As unsettling as it can be knowing someone out there wants you to fail, I am thankful for the knowledge received by the Information Security Community which has kept my mindset calm, cool and collective.
Due to the overwhelming support received on the previous post, I have decided to list some best practices that can assist you in better securing your WordPress Blogs.
Here are 7 tips to help you better secure your blog on WordPress.
- Enable Privacy Guard on DNS Records
- Use Unique User Names
- Change All Default Passwords
- Enable 2 Factor Authentication
- Install Security Plugins and Maintain
- Keep Routine Backups
- Update WordPress Plugins Regularly
Enable Privacy Guard on DNS Records
Security begins at the registration process of your domain. You may not be aware, but by default your personal information is made readily available to the public when you register your domain. This includes your full name, address, phone number and email address.
Depending on the popularity of your blog, people can use this information to do some heinous things including calling your hosting provider pretending to be you to gain access to your site, create a social engineering profile or worse, use the information to send law enforcement to your home (Swatting).
That last part especially strikes a chord with me as I would never have thought to need to go to such lengths to protect my family. Unfortunately, there are individuals who get a kick out of making others miserable.
To mitigate such risk, I would recommend either opening up a PO BOX with the United States Post Office or enabling the privacy guard when you register your domain. Enabling the privacy guard typically comes with an extra fee but allows your personal information to be hidden from DNS queries. It will also help curb solicitations and SPAM (unwanted emails).
Use Unique User Names
When you set up your initial content management system like WordPress, one of the very first tasks is to select a user name. I would strongly recommend that you use something independent of your site’s content or subject.
One of the things I noticed right off the bat, is that the threat actors were using terms scraped directly from my blog posts including the domain name, designations and even “admin.” Try to use something unique and descriptive when choosing your username. In most instances, you only get one shot at it.
Almost forgot! If the username you select was involved in a prior data breach on another service, don’t use it. There are many password lists available that use compromised usernames and passwords from known breaches.
Change All Default Passwords
Since we are on the subject of passwords, let’s talk about the elephant in the room. If there is a default password to get into your WordPress blog, change it and change it now. As I alluded to in the last section, there are many password lists that consist of usernames and passwords from known breaches, but they also include default passwords like admin, password or password123.
Remember to use best practices when it comes to creating a password. Passwords should be a minimum of 8 characters long with uppercase, lowercase, alphanumeric and symbols. Avoid using personal information in your passwords like the name of your family members or pets.
Enable 2 Factor Authentication (2FA)
And to finish off the login trinity, enable 2-Factor Authentication. This is an added layer of protection in the event your password is compromised. For more information on 2FA, please visit our blog post related to the Nintendo Data Breach last month.
Install Security Plugins and Monitor
WordPress has a great variety of security plug-ins that can help address issues like brute-force and Spam. Unfortunately, the topic is too vast for this blog post but I would recommend looking into the following as they have some of the highest ratings in the marketplace:
- iThemes Security
- Invisible ReCaptcha
- Ninja Firewall
Keep Routine Backups
I always express to my clients that you are only as good as your last backup. Be sure that you have a good backup strategy in place. Most hosting providers will allow you to backup your entire blog at the root or setup level.
This would be ideal since you are creating a separation of exposure. Meaning, that if your WordPress Credentials were ever compromised, assuming they are not the same credential you use to log in with, you would have a valid point of recovery.
WordPress also has a variety of plug-ins that can assist you with recovery including
- WP Time Capsule
- Updraft Plus
Frequency of backups are important and at a later time, I will post about the different types of backups. For now, I would recommend that you consider doing a Full Backup + Incremental strategy. This will allow you to take a full backup of your site (once a week or month) and in-between full backups you only backup the changes (incremental).
This makes the process more efficient and less taxing on the web server, especially if your site has a lot of content. Make sure you configure this to process automatically and choose dates and times that will cause the least amount of impact to your readers (i.e. off peak hours).
Update WordPress Plugins Regularly
Now at this point you may be thinking, what else could go wrong if I addressed the other 6 points on this post. My response, plenty. The single most important failure that contributes to the compromise of WordPress websites is not updating plug-ins.
All software solutions are susceptible to bad coding either initially or through time. This is typically due to the fact that there are more than one way to find a solution to a problem when programming. When someone discovers a flaw or bug in a software solution that can have unintended privacy, availability or security consequences, it is called a vulnerability. When someone uses that vulnerability, it’s called an exploit.
There are many repositories available online that chronicle these types of vulnerabilities and exploits if you are interested in reviewing them, but the important thing is that you have a plan for updating patches (patch management) as they come available.
Note: It is worth noting that it is best practice to backup your site before applying major updates. Some patches may not have been fully tested with your current WordPress or Theme version. Major updates are denoted by the digits before the first period (i.e. XX.xx) while minor updates are denoted by the digits after the first period (i.e.xx.XX).
Although no level of precaution will make you impervious to cyber threats, the goal is to make it as difficult as possible for threat actors to gain access to your blog and more importantly, access to sensitive information that can put you and your family at-risk. Blog responsibility and stay safe.