View Issue Details

IDProjectCategoryView StatusLast Update
5079Composrcorepublic2022-11-28 17:26
ReporterPDStig Assigned ToChris Graham  
PrioritynormalSeverityfeature 
Status resolvedResolutionfixed 
Summary5079: Add additional admin session security / confirmation for sensitive member actions
DescriptionThere are a few actions for which I believe should have enhanced security (due to laws governing GDPR, privacy, and data breaches) / require a confirmed admin session regardless of the admin zone settings, namely actions that could either modify or leak potentially sensitive information about members:
* Editing a member's username, password, e-mail, phone number, or credit card information
* Deleting a member
* Deleting lurkers
* Merging a member (which involves deleting a member)
* Exporting members (especially since potentially sensitive information including hashed passwords are / can be included in the export)
* Running the Purge or Download action on privacy
* Any / all screens which display a member's IP address or other identifiable information
TagsRoadmap: v11, Type: Security
Attach Tags
Time estimation (hours)
Sponsorship open

Sponsor

Date Added Member Amount Sponsored

Activities

Chris Graham

2022-11-28 15:05

administrator   ~7751

Patrick and I have discussed, and this basically is happening already in the sense sessions must be confirmed to use the Admin Zone or to edit/delete members. I am going to clean up that code a bit though as it's not formalised enough IMO.
However, through discussion with Patrick some more specific ideas came up, so I'll post these as new issues.

Chris Graham

2022-11-28 17:26

administrator   ~7752

The more I thought about this, the more I realised it is a thorny issue to do anything radical and yet there were some tweaks we could do that got us to a similar place, effectively.

Problems:
1) It would be slavish to forcibly give member detail lookup more security than say, the zone editor, or anything that could cause massive havoc to totally destroy a site.
2) ... so we'd need proper configurability. But trying to implement a way of manually configuring different kind of session confirmation timeouts for different areas would be like creating an entirely new parallel privileges system, a massive effort.
3) It's a lot easier said than done forcing re-login. What if login is automatic via LDAP? What if it is through oAuth? What if login is 2FA (looking ahead here), do we force a full 2FA step to do stuff? Does that become configurable?

So instead, I think it's best to just bolster the existing system of forcing confirmed sessions and applying reasonable privileges.

I made these main changes:
1) Forced "view_any_profile_field" for member export (i.e. on top of normal Admin Zone access)
2) Forced "member_maintenance" for member import (FYI "assume_any_member" was already needed for importing usergroup changes)
3) Adjusted the Setup Wizard's high security profile to timeout sessions in 20 mins, and medium to 1 hour (which is the default pre-Setup Wizard anyway); this reduces the core issue of an admin confirming a session and then leaving their desk long enough for a sneak to mess with their machine
4) Only put password in exported spreadsheet if "assume_any_member" privilege
5) Fix session confirmation requirement for member account editing/deleting (was broken!)
6) Prevent AJAX scripts (etc) from bumping session timeout; we don't want an admin's machine to be left on and the notification poller (for example) to keep the session alive forever
7) Changed viewing member e-mail addresses to use the view_any_profile_field privilege not the member_maintenance privilege (for consistency)

Issue History

Date Modified Username Field Change
2022-11-26 21:56 PDStig New Issue
2022-11-26 21:57 PDStig Description Updated
2022-11-26 21:57 PDStig Description Updated
2022-11-26 21:58 PDStig Description Updated
2022-11-28 01:58 Chris Graham Tag Attached: Roadmap: v11
2022-11-28 01:58 Chris Graham Tag Attached: Type: Security
2022-11-28 01:58 Chris Graham Project Composr alpha bug reports => Composr
2022-11-28 01:58 Chris Graham Category General => core
2022-11-28 15:05 Chris Graham Assigned To => Chris Graham
2022-11-28 15:05 Chris Graham Status Not Assigned => Closed
2022-11-28 15:05 Chris Graham Resolution open => no change required
2022-11-28 15:05 Chris Graham Note Added: 0007751
2022-11-28 17:26 Chris Graham Status Closed => Resolved
2022-11-28 17:26 Chris Graham Resolution no change required => fixed
2022-11-28 17:26 Chris Graham Note Added: 0007752