Add “Reauthentication After Risk Events” section and cross-links in Authentication, Session Management, and MFA cheat sheets#1709
Conversation
f2caa95 to
3117b65
Compare
…gement & MFA cheat sheets
3117b65 to
48c7647
Compare
|
Just ran into this and thought it would be worth mentioning here as a cautionary tale: https://tailscale.com/blog/frequent-reauth-security?lid=5wso20mx4knj |
szh
left a comment
There was a problem hiding this comment.
Love this work, amazing job. LGTM!
|
Thanks for the suggestion, @kwwall! I’ve added the Tailscale post under Additional Resources. Could you please take another look when you get a chance? @szh can you please review again! Also tagging @mackowski and @jmanico for review. Thanks! |
6c55a29 to
43a1dd3
Compare
|
Hi @mackowski, thanks again for your review! I’ve removed the legacy V1 contributor entry and fixed the cross-sheet link—could you please take another look and re-approve when you have a moment? Also, since @kwwall is on hiatus until the end of June, could someone with admin rights please dismiss the pending review request from @kwwall so we can merge as soon as we have two active approvals? Thanks everyone! 🙏 |
|
Hi all—just to clarify the merge blocker:
Once those are cleared, we’ll have the two active approvals needed and can merge. Thanks! 🙏 |
|
Hi @mackowski – just checking in on the latest changes (removed the V1 entry & fixed the cross-sheet link). Would you mind taking another look and re-approving when you have a moment? Hi @kwwall – The legacy V1 entry has been removed and the cross-sheet link fixed. Could you please take one more look and approve when you have a moment? |
|
@mackowski can you please re-review? |
| #### When to Trigger Reauthentication | ||
|
|
||
| - **Suspicious Account Activity** | ||
| When unusual login patterns, IP address changes, or device enrollments occur |
There was a problem hiding this comment.
That implies keeping a lot of additional metadata about authentication activity. It seems doubtful to me that most applications keep such metadata in sufficient quantity (especially for rarely used accounts) to make meaningful stochastic decisions. That's why most companies instead opt for the much easier "just email the user that their account has been accessed and from where" and consider that to sufficient. While I'm not aware of any off the top of my head (nor did I search for anything), I honestly wonder how useful things this is unless we can at least point to some decent study of a discussion of the pros and cons of what metadata should be collected and and how one determines which changes are significant when. I think this is way more subtle than most of us believe and I'm not even sure we should play the "suspicious account activity" card unless we're at least prepared to give a decent reference or two. If we want to leave this here, as-is, for now, I'm fine with that, but at the same time, an issue should be created that notes that this section needs imnprovement.
| - **Suspicious Account Activity** | ||
| When unusual login patterns, IP address changes, or device enrollments occur | ||
| - **Account Recovery** | ||
| After users reset their passwords or change sensitive account details |
There was a problem hiding this comment.
Also, sometimes "change sensitive account details" IS the suspicious activity. At a minimum, I'd at least want an email notification if my account had any like contact info (including beneficiaries) changed.
| #### Reauthentication Mechanisms | ||
|
|
||
| - **Adaptive Authentication** | ||
| Use risk-based authentication models that adapt to the user's behavior and context |
There was a problem hiding this comment.
Can we reference any such models? It would be nice if we could.
kwwall
left a comment
There was a problem hiding this comment.
LG(enough)TM.
P.S.- St this point, I'll bet you're sorry you asked me for a re-review. But I really should apologize, as much of this I should have mentioned the first time through.
| - **Context-Aware Decisions** | ||
| Make reauthentication decisions based on context (e.g., geolocation, device type, prior patterns) | ||
| - **Secure Session Management** | ||
| Invalidate sessions after reauthentication and rotate tokens—see the [OWASP Session Management Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html) |
There was a problem hiding this comment.
If multiple concurrent logins are allowed for the application, it may be more complicated than this. You may need the equivalent of Single Sign Out to do it correctly.
| @@ -435,6 +435,8 @@ If risk is detected, the system may: | |||
| - Enforce re-authentication | |||
There was a problem hiding this comment.
Maybe not in scope, but elsewhere, it's been spelled "reauthentication", but spelled with a hyphen here. Personally, I prefer it with a hyphen, but even more so, I prefer consistency.
| - Enforce re-authentication | ||
| - Deny access and trigger alerting or account protection flows | ||
|
|
||
| For more details on when to trigger reauthentication after high-risk events—such as account recovery or suspicious activity—see the [Reauthentication After Risk Events](Authentication_Cheat_Sheet.md#reauthentication-after-risk-events) section in the Authentication Cheat Sheet |
There was a problem hiding this comment.
This cross-reference is appropriate, but I still think that section needs a bit of work or some additional supporting external research.
|
|
||
| Web applications should require reauthentication after high-risk events such as: | ||
|
|
||
| - Changes to critical user information (e.g., password, email address) |
There was a problem hiding this comment.
Recommend changing 'email address' to 'contact information', which would include that.
|
|
||
| ### Reauthentication After Risk Events | ||
|
|
||
| Web applications should require reauthentication after high-risk events such as: |
There was a problem hiding this comment.
Sometimes, I probably would argue that just proper notification at an (existing) email address might suffice. If MFA is enabled (:crossed_fingers: ), then reauthentication after a password change makes sense, but if there's no MFA, does it really make sense to make a user re-enter the password that they've just changed after they've gone through the "forgot password" flow and just changed their password because they're working on some old system that users questions/answers? That sort of seems pointless to me. I'm not going to not approve this PR because of this, but it just seems we maybe could do a litter better here.
| Web applications should require reauthentication after high-risk events such as: | ||
|
|
||
| - Changes to critical user information (e.g., password, email address) | ||
| - Login attempts from new or suspicious IP addresses or devices |
There was a problem hiding this comment.
I'd somewhat recommend to change this to state "Failed login attempts from new or suspicious IP addresses or devices". Yes, it makes sense for notifications to occur, but not (IMO), reauthentication (should be hyphenated or I'm going to have to add this to all my damned application dictionaries; sigh) if the initial authentication was successful but the device was new. (Gee, do folks never get new laptops, tablets, phones?)
Summary
This PR introduces a new Reauthentication After Risk Events section in the Authentication Cheat Sheet and adds cross-links to it from two related documents:
Session_Management_Cheat_Sheet.md
Multifactor_Authentication_Cheat_Sheet.md
Authentication_Cheat_Sheet.md
Motivation
Developers often need to know when to require users to reauthenticate following critical security events. By:
we make it easy to discover and implement consistent reauthentication flows across applications.
Changes
Authentication_Cheat_Sheet.md
Session_Management_Cheat_Sheet.md
Multifactor_Authentication_Cheat_Sheet.md
Next Steps
You're A Rockstar
Thank you for submitting a Pull Request (PR) to the Cheat Sheet Series.
Please make sure that for your contribution:
[TEXT](URL)If your PR is related to an issue, please finish your PR text with the following line:
This PR fixes issue #1694 .
Thank you again for your contribution 😃