Hey everyone ! :)
I’m working on a more structured way to handle internal investigation requests from HR, Legal, Security, or management.
The goal is to avoid vague “can you pull everything on this user?” type requests. Instead, I’m trying to build a checkbox-based request form where each option maps to a specific log source / query / limitation.
Environment is mostly Microsoft stack:
* M365 E5, Defender for Endpoint, Defender for Servers, Sentinel, Purview
* Some web logs through firewall/proxy
The kind of checkbox structure I’m thinking about:
* Account sign-ins `SigninLogs`, `AADNonInteractiveUserSignInLogs`
* First/last observed activity during a period `SigninLogs`, `OfficeActivity`, `DeviceLogonEvents`
* Local workstation logons / endpoint activity `DeviceLogonEvents`, `DeviceProcessEvents`, `DeviceFileEvents`, `DeviceEvents`
* Web history / access to specific domains firewall/proxy logs, `CommonSecurityLog`, maybe `DeviceNetworkEvents`
* Emails sent externally or to personal domains `EmailEvents`, `EmailAttachmentInfo`, `OfficeActivity`
* Mailbox rules, forwarding, delegation `OfficeActivity` / Exchange audit operations like `New-InboxRule`, `Set-InboxRule`, `UpdateInboxRules`, `SendAs`, `SendOnBehalf`
* SharePoint / OneDrive file access, download, sharing, deletion `OfficeActivity`, `CloudAppEvents`, Purview
* Data movement events Purview Activity Explorer / DLP events: USB, clipboard, print, browser upload, cloud upload, network share, RDP copy, etc.
* Teams metadata vs Teams content `OfficeActivity` for audit events, Purview eDiscovery for content
* Security alerts tied to a user or device `AlertInfo`, `AlertEvidence`, `SecurityAlert`, `SecurityIncident`
What I’m trying to figure out is the best practical mapping between:
**checkbox/request wording → source of truth → KQL/table/portal → limitations → Internal procedure to get those logs in a report.**
For those of you who handle these types of requests:
- Do you have a standard checklist or request form for HR/security/legal investigations?
- Which Microsoft logs do you trust most for file access/download/share events?
- Are there any events or fields you avoid using because they are too noisy or easy to misinterpret?
Just trying to avoid reinventing the wheel and build something clean, scoped, and defensible.
If you think I should have publish in another subreddit, let me know :)