MFA prompt spamming/ MFA fatigue is a quite new term and seeing more after the LAPSUS$ attack. Currently there are many MFA options including SMS, One Time Passwords (OTP), and push notifications from the Microsoft Authenticator app. And while the intent of these methods is to provide extra protection, attackers use new ways of attacks. Push Notification/ MFA Fatigue/ MFA spamming is a trending topic.

The most common question when discussing MFA prompt spamming; MFA is secure right? Yes – it depends on the type of MFA. Of course, it’s better than no MFA configured.

Blog latest updated; 30-04-2022

MFA fatigue attack introduction

For years ‘MFA prompt spamming’ is a well-known attack vector and used in the real world for 2 years. Since Lapsus$ there is a lot of noise on the internet around MFA Prompt spamming. Let’s start with an introduction.

When the username/password is available, you can just generate an MFA prompt (via push, call, etc). MFA prompt spamming is a well-known attack where the victim is generating MFA prompts and hopes the user/target accepts the MFA request. They keep spamming until they accept the MFA prompt that allows them to get initial access.

Lapsus$ highlighted the weaknesses of certain MFA options. Specifically push approvals. Once they had the victim’s credentials, they would simply spam users with MFA prompts until they got approved.

 A member of Lapsus$ wrote on the group’s official Telegram chat channel. “Call the employee 100 times at 1 am while he is trying to sleep, and he will more than likely accept it. Once the employee accepts the initial call, you can access the MFA enrollment portal and enroll another device.”


Screenshot source: LAPSUS$ Telegram


Screenshot source: LAPSUS$ Telegram

Mandiant created the following report about Russian APTs using the same MFA Prompt spamming technique. Mandiant reports the following:

Mandiant has also observed the threat actor executing multiple authentication attempts in short succession against accounts secured with multi-factor authentication (MFA). In these cases, the threat actor had a valid username and password combination. Many MFA providers allow for users to accept a phone app push notification or to receive a phone call and press a key as a second factor. The threat actor took advantage of this and issued multiple MFA requests to the end user’s legitimate device until the user accepted the authentication, allowing the threat actor to eventually gain access to the account.


What is Push Notification Spamming?

This technique is simple, and only requires the attacker to manually, or automatically, send repeated push notifications while trying to log into the victim’s account. The credentials could be obtained via password reuse, password spraying, or brute-forcing. Once the attacker obtains credentials, they can perform the Push Notification spamming.

Recent investigations have shown a significant increase in the number of attacks that leverage Push Notification Spamming, Many MFA users are not familiar with this type of attack and would not understand the fraudulent MFA request.

When the message below appears during work, what is the chance after multiple MFA valid requests, that the users will accept them?



What can we do to stop this?

There are several important steps that can be configured for the environment. Below are some ideas which can be implemented based on Microsoft technology. Most important is awareness and reporting real attempts.


  • Implement Impossible travel detections
  • Implement advanced authentication features using geography
  • Enable Azure MFA number matching/ MFA codes
  • Implement Azure AD Identity Protection (blog)
  • Track alerts for new MFA and MDM device enrollments
  • Collect AzureAD/ MFA events in Microsoft Sentinel
  • Protect against password spray (blog)

Multifactor authentication (MFA) is one of the primary lines of defense against MFA prompting spamming, there is a huge difference in MFA methods

Some Identity recommendations:


  • Require MFA for all users on all locations
  • Use Microsoft Authentication with number matching enabled or FIDO tokens
  • Start testing password-less
  • Create sign-in risk-based policies that block high impact actions like device enrollment and MFA registration
  • Keep break-glass accounts offline and not part of online password managers
  • Block easily guessed passwords with Azure AD Password Protection

Now some technical explanation of MFA number matching / Geographical context.




Enable Azure MFA number matching

Number matching is currently in private preview. Microsoft gives the following explanations and marks the feature as a key security upgrade to traditional second-factor notifications in the Microsoft Authentication App.

Number matching is a key security upgrade to traditional second-factor notifications in the Microsoft Authenticator app that will be enabled by default for all tenants a few months after general availability (GA). We highly recommend enabling number matching in the near-term for improved sign-in security.

Number matching gives improvements against MFA Prompt spamming and will increase the security posture of MFA Authentication prompts. When a user responds to an MFA push notification using Microsoft Authentication, they will be presented with a number. The user needs to type that number into the app to complete the approval.

Read the Microsoft Docs for ADFS adapter/ NPS extension implementation.

To enable number matching in the Azure AD portal, complete the following steps:


  1. Go to Azure Active Directory -> Security -> Authentication Methods
  2. Within the blade Authentication methods click on Policies and select Microsoft Authenticator


Under Microsoft Authenticator, choose Enable (1) and target all users or selected users (2). Recommended is to start with Select users and configure some test groups. If you select a group so you can pilot this change, the configuration will impact the group and not all users.


The three dots (3) on the right gives more options for the configuration. The default is “Any” which allows the users to configure push MFA or passwordless authentication. Click on configure.


For the Azure AD number matching feature make sure the setting; Require number matching (preview) is enabled. Microsoft Managed means that the feature will be enabled by default for all tenants after the General availability of the feature.


We are now done with the number matching configuration, the user’s next MFA attempt will show a code on the screen and require it to be entered. Make sure the user is added to the configured group for the feature.


Azure MFA experience without number matching



Azure MFA number matching experience

During the sign-in and the following experience is visible. As you can see, this way of MFA is way more secure in comparison with the general MFA accept prompt.





Show additional context in notifications

Another improvement for the security posture is the enablement of the Additional Context in Notifications. Additional Context in Notifications shows the end-user which application is performing the MFA request. For the end-user the app and location ( based on IP) are directly visible from the main screen.

For enabling the new Additional Context in Notifications feature, follow the previous MFA matching steps and enable the following configuration:



Additional context in notifications experience

During the sign-in and the following experience is visible. As you can see, in comparison with only the number matching feature, there is more information visible. ( App name, Location).





Implement Azure AD Identity Protection

Azure AD Identity Protection is important and protects users based on the Microsoft threat signals. Azure AD Identity protection is all about risk, detection, and remediation based on the identity level. Microsoft uses threat intelligence to specify risky detection for all users. MFA prompt spamming can be resolved when the password is safe. Important is to make sure no credentials are leaked or another malicious activity is detected. MFA spamming starts always with leaked credentials of the user.


Azure AD Identity Protection detects for example;


  • Atypical travel
  • Unfamiliar sign-in properties
  • Malicious IP address
  • Password spray
  • Impossible travel
  • New country
  • Leaked credentials

Microsoft explains all the detections for sign-in and user-linked detections.

Previously the following blogs focused on Azure AD Identity Protection are created:





Hunting for data

Log Analytics or Microsoft Sentinel can be used to analyze the queries and create detections. Based on KQL some queries can be created for detecting possible malicious attempts.

SigninLogs contains interesting data for checking the MFA status.

MFA status denied by the user


SigninLogs 
| where ResultType == 500121 
| where Status has "MFA Denied; user declined the authentication" or Status has "MFA denied; Phone App Reported Fraud"

MFA status denied ( user did not respond)


SigninLogs 
| where ResultType == 500121 
| extend AuthResult = tostring(parse_json(AuthenticationDetails)[1].authenticationStepResultDetail)
| where AuthResult in ("MFA denied; user declined the authentication","MFA denied; user did not respond to mobile app notification")


KQL from the community

The community created interesting queries.

Github Reprise99


Check the Reprise99 Github for more identity/ MFA queries that can be used.




Improve awareness of MFA spamming/ social engineering attacks

Social engineering attacks are not new and will increase when more users are protected with MFA. Microsoft recommends raising and improving awareness of social engineering/ MFA spamming and other new tactics to protect your organization.

Train the user that not all MFA requests are correct and how the user can detect malicious attempts. Many MFA users are not familiar with this type of attack and would not understand they are approving a malicious MFA notification. Number matching and additional context improves the MFA security posture.




Conclusion

Hopefully, this blog gives some insights into new attacks like MFA spamming/ MFA fatigue. Of course, above solutions are some preventions that can improve the security posture. There are more preventions and hunting options available.

The new (preview) MFA number matching feature can be effective against this “MFA fatigue/ spamming” tactic because users won’t know 2 digit code presented and can’t accidentally approve a request.




Sources

Microsoft: DEV-0537 criminal actor targeting organizations for data exfiltration and destruction

Mandiant: Suspected Russian Activity Targeting Government and business Entities Around the Globe

Microsoft: Use number matching