Guillaume Ross
Guillaume Ross
According to the FBI, business email compromise (BEC) attacks are increasing in popularity yearly, costing organizations over 43 billion dollars in losses between 2016 and 2021.
As BEC is a form of social engineering, we often think education is the only way to reduce the odds of getting compromised.
Security teams often focus on protecting IT assets only, but what could be more damaging to your company than having its bank account emptied fraudulently?
Since BEC typically targets one straightforward thing, money, there are controls we can implement to reduce the risk significantly. The parameters suggested in this post are those we found the most useful through our research. Unlike previous posts in this series, we cannot be as specific about how to enable them as every bank is different.
While good email hygiene can't stop BEC, it can at least reduce the number of fraudulent emails that make it through and force criminals to work harder.
You can find detailed instructions on configuring Google Workspace in our handbook.
The best email configuration ever is not enough to protect from BEC and other types of social engineering attacks. Something will always slip by, and we must assume that even well-trained employees will fall for a good enough attempt.
If you think you can't fall victim to these emails, you probably have not received one that was sufficiently well-targeted and delivered at precisely the right time.
As defenders, we often say that while we must always be perfect, attackers only need to succeed once. As Joe Slowik explained in this excellent blog post a couple of years ago, that is seldom true. We defenders have the high ground, but we often fail to leverage it.
Since we know the attackers are looking for money, instead of trying to train people to be perfect at spotting scams, which is impossible, let's secure the cash!
If someone can break into your bank accounts directly, they won't need to come up with a convincing email or text message to convince you to move money. It is therefore critical to enable the most advanced security features your bank offers. Unfortunately, in North America, many banks fail to offer any 2FA or only offer SMS-based 2FA, which is the weakest form of 2FA but is still better than nothing.
Some banks allow organizational-level controls, but most do not. You might have to talk to everyone with access to your online banking and check their 2FA configuration, but if you don't have more than a handful, it's worth doing.
Many settings we recommend configuring require high privilege access to online banking. We have to assume that a well-informed attacker would be able to trick someone into changing those.
By enabling dual control, one administrator can make a change, but it will not be active until a second one approves it. This makes it much harder for social engineering attacks to succeed and protects these settings if a single account is compromised.
Alerts are often triggered when something bad has already happened, but sometimes, there might still be time to fix things before they worsen.
Depending on your bank, you might have various alerts you can configure. For example, SVB has security alerts as well as transaction alerts.
If possible, enable at least the following:
Banks typically deliver these alerts via email, which is not ideal for rapid awareness. To improve that, create an email address never used anywhere else specifically for these alerts. You'll then be able to integrate that mailbox to other tools, like Slack, by using a forwarding address. With this configuration, you can deliver these alerts in your administrative or accounting channel, where everyone can see them, create a thread and ask questions.
On top of email alerts, inform your accounting department that they should pay attention to push notifications from your online banking application. If you can keep the amount of "false positives" down and your accounting and finance are all in the same time zone, have a rotation for who will let the app notify them even when in do not disturb mode.
Most business banks allow customers to set thresholds above which the system will require multiple approvals. A threshold of $10,000 before a second approval is needed makes sure that if an attacker compromised a single person, they could only send away money in $10,000 batches. Alerting remains essential as the total cost can grow pretty quickly, but it is much safer than allowing a single person to move millions of dollars.
Consider requiring three approvals for substantial transactions, as long as your team is large enough to accommodate this even when people are on vacation or unavailable for any other reason.
ACH stands for Automated Clearing House, a network used for direct payments, especially in the US. If your company is in the US and deals with US vendors, you probably send most of your payments with ACH.
Many banks offer ACH filters on business accounts. These filters work like many security controls, using one of two main methods:
Allow listing is safer but requires more work to implement. Some banks allow combinations of vendors and amounts, while others only allow lists of vendors.
Before implementing ACH filters, obtain a list of all ACH transfers made in the last 18 months. Identify the vendors you have that are still active, the average amount you pay them, plus a buffer to cover increases, and then provide this list to your bank to enable ACH filtering in allow list mode. Have every other payment generate an exception that will require manual intervention.
That way, it will be much harder for a single person to send a large amount of money to an unauthorized vendor, and accidentally sending large transfers to legit vendors will be blocked.
To protect against BEC, we will always need to train people. No matter what technical controls are in place, by using urgency and well-crafted pretexts, criminals will always find a way to trick people into acting against the company's best interests.
If you require advanced training before implementing these basic controls, you fail your employees by not providing a system and processes with essential protection. Security teams and organizations must design and configure systems where they are reasonably safe before putting the burden of security on the end-users. Of course, security is everyone's responsibility, but how would you feel if your security team reminded you not to type your password on phishing websites before they had implemented 2FA for remote access?
Stay tuned for more articles in this series, where we describe how we secure Fleet. If you have any comments or questions, feel free to post them in the #Fleet channel of the osquery Slack!