We're pleased to present the first in a series of practical security posts for our policyholders. Despite an explosion of cybersecurity buzzwords ranging from anomaly detection to next generation anti-virus, our claims data and experience reveal that simple security measures are often the most effective. This week we turn our focus to password security.
Most computer systems rely on passwords, and all the cybersecurity in the world won't help you if someone knows or guesses your password.
As an employee or business owner, you likely use passwords for everything from email to payroll to CRM systems. In many cases, a hacker can ruin your business just by guessing your password to one of these systems and cutting themselves a healthy check or mocking up a fraudulent invoice. Accordingly, it is imperative that you protect the passwords that protect your business.
Fortunately, good password practices are pretty simple:
Don't re-use passwords. Many people use the same password for dozens of services, from their local newspaper subscription to their bank account. Hackers know this, and actively go after easy targets, just to get passwords they can use for higher-value targets. Chances are good that some of your passwords are already floating around the seedy parts of the internet; if in doubt, you can check your email against a large collection of breached records through a service called HaveIBeenPwned ("pwned" is hacker slang for being successfully attacked).
Use strong passwords. It is extremely easy for a hacker to write a program that tries to guess your password 1,000 or even 1,000,000 times per second. That means a hacker can easily try every word in the dictionary, every city, state, person or team name, and every possible birthday or anniversary. You may have been told to use a mix of capital and lower-case letters, numbers and symbols. In practice, most people will change "o"s to "0"s or add a "1" or an "!" to the end of their password. This will not save you; hackers will guess that too. Instead, you should use a randomly generated password or a passphrase, a string of random words like "correcthorsebatterystaple", which would take a hacker roughly 1,000,000,000,000,000,000 tries to guess. Not to mention, passwords like this are a whole lot easier to remember!
Following these rules might sound like a pain, but it can be even easier than remembering your current passwords, thanks to password managers. Password managers are programs that keep track of your different accounts and passwords for you, usually protected by a single, strong password, and only accessible from your computer or your other devices. There are several different kinds of password managers:
Some web browsers, such as Chrome, Firefox and Safari, have built-in password managers which you can sync between devices by signing into your Google, Firefox or iCloud accounts, respectively (although Firefox will not sync with Android phones).
Microsoft Edge and some operating systems let you save passwords on your computer, although they do not sync between devices.
If your users create accounts with you, this opens you up to potentially significant security issues and liability if you do not take precautions against account hijacking.
There are a few principles you should adhere to in order to mitigate the risk of handling and storing passwords:
Never store passwords. One of the bedrocks of modern cybersecurity is password hashing, the use of clever algorithms which create "hashes" from passwords that can be stored and used to verify a user's password, but can't themselves be used to discern the password. A hash is sort of like a fingerprint; if you store someone's fingerprint you can verify their identity by asking for it again, but unless they can manufacture a fake thumb, someone with a copy of their fingerprint can't impersonate them. Hashing passwords means that, even if an attacker gets access to your database of usernames and passwords, they can't just log in as those users. Most modern web frameworks, such as Django or Ruby on Rails, will handle this for you, but it is important to check that your framework supports hashing and that you've enabled it (if applicable).
Require strong passwords. A weak password renders all other protections useless. You should give your users the same advice we've given you when choosing a password. Better yet, you should not allow them to set a weak password. Don't require numbers or special characters; do check their password against lists of common passwords or dictionary words and make sure it's not a simple variant on one. There are several software libraries which will check how strong a password is for you; at Coalition we use DropBox's zxcvbn. Additionally, don't require users to change passwords periodically, since this encourages weak passwords.
Limit log-in attempts. Even with strong password requirements, some guessable passwords will probably fall through the cracks. You can make guessing passwords much less successful by limiting log-in attempts. There are two ways to do this: either limit the number of attempts that can be made per minute/hour/day, or after some number of incorrect attempts, lock the account and tell the user to contact support. The second method offers more protection, but also means that a hacker or prankster can lock anyone out of their account, so the first method is usually preferred.
Taking these basic precautions, or requiring them of your users, requires little effort, but provides enormous returns.
Finally, don't forget that Coalition policyholders can also make use of our Compromised Credentials app to receive alerts when an employee's data and/or password has been compromised in a third-party data breach. Just one more way that Coalition works with its clients to not only insure risk, but proactively mitigate it.