Phishing campaigns are a common tactic in which cybercriminals impersonate a well-known company, product, or brand to steal account credentials, financial information, or other data from unsuspecting victims. A typical phishing attack convinces the user to directly enter their password and login credentials, which are then captured by the attacker.
But a more specialized type of campaign known as consent phishing aims to grab sensitive data not by snagging your password but by tricking you into giving the necessary permissions to a malicious app. A Microsoft blog post published on Wednesday explains how it works.
SEE: Fighting social media phishing attacks: 10 tips (free PDF) (TechRepublic)
This type of consent phishing relies on the OAuth 2.0 authorization technology. By implementing the OAuth protocol into an app or website, a developer gives a user the ability to grant permission to certain data without having to enter their password or other credentials.
Used by a variety of online companies including Microsoft, Google, and Facebook, OAuth is a way to try to simplify the login and authorization process for apps and websites through a single sign-on mechanism. However, as with many technologies, OAuth can be used for both beneficial and malicious purposes.
Microsoft details the problem step by step in its blog post:
- An attacker registers an app with an OAuth 2.0 provider, such as Azure Active Directory.
- The app is configured in a way that makes it seem trustworthy, such as using the name of a popular product used in the same ecosystem.
- The attacker gets a link in front of users, which may be done through conventional email-based phishing, by compromising a non-malicious website, or through other techniques.
- The user clicks the link and is shown an authentic consent prompt asking them to grant the malicious app permissions to data.
- If a user clicks Accept, they grant the app permissions to access sensitive data.
- The app gets an authorization code, which it redeems for an access token, and potentially a refresh token.
- The access token is used to make API calls on behalf of the user.
- The attacker can then gain access to the user’s mail, forwarding rules, files, contacts, notes, profile, and other sensitive data.
“OAuth has been abused since it was first deployed and its abuse is only accelerating now that it is being widely deployed,” Roger Grimes, data driven defense evangelist at KnowBe4, told TechRepublic. “Overall, it’s just hackers abusing a single point of failure. Whenever users use a single-sign-on technology, attackers are going to abuse it. Now that hundreds of millions of users use it without really knowing what it is, it makes it easier to abuse.”
The exploitation of a technology like OAuth succeeds in large part because of a lack of user knowledge and awareness.
“Part of the problem is that most users don’t understand what is happening,” Grimes said. “They don’t know that a sign-on that they’ve used with Gmail, Facebook, Twitter or some other OAuth provider is now automatically being called and used or abused by another person. They don’t understand the permission prompts either. All they know is they clicked on an email link or an attachment and now their computer system is asking them to confirm some action that they really don’t understand.”
Microsoft touted some of the steps it’s taken to try to prevent this type of malicious behavior. The company said it uses such security tools as identity and access management, device management, threat protection, and cloud security to analyze millions of data points to help detect malicious apps. Further, Microsoft is trying to better secure its application ecosystems by allowing customers to set policies on the types of apps to which users can give certain consent.
Despite the efforts of Microsoft and other companies, these attacks persist as cybercriminals stay one step ahead of the game. To help protect against consent phishing campaigns, Microsoft offers advice for individuals and organizations.
- Check for poor spelling and grammar. If an email message or the application’s consent screen has spelling and grammatical errors, it’s likely to be a suspicious application.
- Keep a watchful eye on app names and domain URLs. Attackers like to spoof app names that make it appear to come from legitimate applications or companies but drive you to consent to a malicious app. Make sure you recognize the app name and domain URL before consenting to an application.
- Understand the data and permissions an application is asking for and understand how permissions and consent work within Microsoft’s platform.
- Ensure administrators know how to manage and evaluate consent requests.
- Audit apps and consented permissions in your organization to ensure that applications being used are accessing only the data they need and adhering to the principles of least privilege.
- Promote the use of applications that have been publisher verified. Publisher verification helps admins and end-users understand the authenticity of application developers. More than 660 applications by 390 publishers have been verified thus far.
- Configure application consent policies by allowing users to consent only to applications you trust, such as applications developed by your organization or from verified publishers.
Microsoft further advised concerned organizations to check its documentation on “Detect and Remediate Illicit Consent Grants” and “Five steps to securing your identity infrastructure.”
Grimes also offered three pieces of advice for app and website developers that use OAuth:
- Make the permission prompts far more understandable to the casual end user. For instance, include a message that says: “If you say okay, you are giving this third party full control over all documents you can see, so make sure you trust the person asking. The request might be malicious.”
- Somehow make the system intelligent enough to make the risk decision on behalf of the user so a user not trained in computer security doesn’t have to make computer security decisions.
- Don’t allow high-risk decisions to be made, especially by default and so easily. The system should default to the least permissive permission and make the user go out of their way to give away the keys to the kingdom.
“If you can’t do one of these three things,” Grimes added, “you’re never going to stop OAuth attacks.”