Ingext
Monthly SOC Report
Most of August's alerts came from detection-test replay data, not from Acme's own people or devices. Acme's real exposure is in its configuration: eight global administrators where two are needed, gaps in email authentication, and a broken audit feed.
Case volume rose 23%, and more than half arrived in one week (24–28 Aug). Only 6 of 240 cases involved Acme's own accounts; the rest were replayed test identities the detections caught correctly.
Test alerts and real alerts share one queue with nothing to tell them apart. 156 cases sit open, and a genuine attack on a staff account would look exactly like them.
Separate replay data from live monitoring, and cut global administrators from eight to two named accounts plus one break-glass account.
Only 6 of August's 240 cases involved Acme's own accounts, and 5 of those were closed as harmless or expected. The other 234 refer to user accounts, guests and computers that do not exist in Acme's directory: they come from the attack-scenario recordings Acme's security team replays into the SIEM to test detections.
The detection rules responded correctly to every replayed scenario, which is good evidence that they work. But replayed alerts and real alerts land in one queue with nothing to tell them apart. That makes the workload figures unreliable, and a genuine attack could sit unnoticed among more than 150 open test cases.
Move replay work to its own tenant, or tag replayed events and cases so they can be filtered out and closed as "test".
Two named administrators plus one emergency (break-glass) account; everyone else moves to narrower roles with just-in-time activation.
Caveat. The conclusion that most cases are replayed data is the analyst's reading. It rests on the accounts being absent from the tenant directory and on the endpoint alerts belonging to lab sites. The platform does not yet label replayed data.
Case volume rose by 23%. More than half of it arrived in a single week, and almost all of it relates to identities outside Acme's directory.
Total 240. 24–28 Aug: 129 cases (54%) in five working days — 24, 30, 32, 24 and 19 per day. Before that, volume held at 0–11 a day.
The surge was mostly newly created replay users on the sim.acme.example domain and partner.com guests signing in for the first time. That burst is consistent with a bulk replay, not organic activity.
| Measure | Aug | Jul | Note |
|---|---|---|---|
| Cases, risk score ≥ 3,000 | 240 | 195 | One tenant |
| Status: new / acknowledged / closed | 156 / 0 / 84 | 150 / 0 / 45 | The "acknowledged" state was never used |
| Flagged as incident | 240 | 195 | Every case carries the flag, so it cannot identify escalations |
| Distinct case shapes (fingerprints) | 42 | 56 | Fewer shapes, more repetition |
| Distinct users and assets | 206 | 130 | +58% |
| Alerts processed vs escalated | — | — | GapRaw alert denominator not exposed to reporting tools |
Acme's Microsoft 365 directory holds 38 user records, 15 of them active licensed staff, all on Acme's own domains. None of the 147 replay users and none of the 81 guests appear in it, and the Ingext AI triage notes on these cases report "user record could not be found". The five endpoint cases carry the site names of two lab sites, not Acme's fleet.
§3| Category | Aug | Change vs Jul | What it means |
|---|---|---|---|
| Identity & access | 199 | MFA method added 110 → 130; new user + sign-in 6 → 23; new user ≤1 → 20 | Almost all volume. It follows the replay pattern: new users register MFA, then sign in. |
| Threat & attack | ≥ 14 | New: mailbox delegation (≥6), inbox-rule changes (1), app registration with a credential (1), admin app consent (2) | Classic email-fraud and persistence steps. The rules fired correctly; all are replayed identities. |
| Endpoint | 5 | None in July | Two management agents flagged at two lab sites (see §8). Likely false positives. |
| Network & perimeter | 0 | Gap | No firewall, VPN or DNS source is connected, so no perimeter activity can be seen. |
| Vulnerability | — | Gap | No scanner is connected. The external-rating source returned no findings, which could mean it is not configured. |
All but one of the repeat actors are replayed identities. The more useful pattern is how the SOC handled them.
No privileged account had two or more cases. The admin lookup succeeded, so this is a real result: the eight global administrators generated one case between them (25 Aug, closed as a false positive).
15 accounts had two or more cases (July: 11). 14 are replay users not in the directory; the 15th, ops-admin, is Acme's own Google Workspace identity.
| Identifier | Aug | Jul | Δ | Why it repeats |
|---|---|---|---|---|
| sim-user-01 | 8 | 8 | 0 | Same MFA, sign-in and new-user bundle on 8 days; none closed |
| sim-user-02 | 5 | 7 | −2 | Includes mailbox delegation on 19 Aug (score 35,600) |
| sim-user-03 | 5 | 6 | −1 | Recurring MFA bundle |
| sim-user-04 | 4 | 6 | −2 | Recurring MFA bundle |
| sim-user-05 | 4 | 6 | −2 | Longest wait for a response: 14 h on 18 Aug |
| sim-user-06 | 3 | 8 | −5 | MFA plus group membership |
| sim-user-07 | 3 | 8 | −5 | MFA bundle; one closed as expected |
| ops-admin (Acme) | 3 | <2 | new | Google Workspace login rule; 2 closed as false positive (alert logic) |
| sim-user-08 | 2 | <2 | new | Highest-scoring case of the month (see §8) |
| sim-user-09 | 2 | <2 | new | Mailbox permission and SendAs |
| sim-user-10 | 2 | <2 | new | Mailbox permission and user update |
| sim-user-11 … 14 | 2 each | <2 | new | New-user bundles; Exchange DLP hits |
Replay users are on sim.acme.example; ops-admin is on acme.example. "<2" in the July column means the account was below the repeat threshold that month.
§5| Theme | Cases | Linked | Evidence | Confidence |
|---|---|---|---|---|
| Replay data in the live queue | 234 | Replay users, guests, lab sites | Identities absent from the directory; the partner.com guest domain; five hosts sharing one timestamp; the 24–28 Aug burst | High |
| Selective closing: guests closed, recurring internal cases left open | 156 open | All repeat offenders | From 1 to 22 Aug, 21 of 84 cases were closed and 16 of those 21 were guests. The recurring MFA cases for the same replay users were never closed. | High |
| Insufficient classification | 48 | Closed cases | 57% of closed cases are Undetermined, and none has a true-positive verdict | High |
| Management software flagged as malware | 5 | Remote-workspace agent; MDM agent | File paths and command lines match known admin tooling (see §8) | Medium |
| Excess standing privilege | — | 8 global administrators | Directory audit shows 8 admins against a baseline of 2 for 19 paid seats | High |
Microsoft 365 and Google Workspace identity data is flowing and fresh. The gaps are one broken audit subscription, no endpoint agent inventory, no perimeter or vulnerability data, and the replay mix-in.
"failed to start subscription: Audit.General" (×9) and no data received. The error and the zero throughput together confirm a real outage.
There is no SentinelOne or CrowdStrike agent index for this tenant, so Acme's own devices are not covered by endpoint detection and response (EDR).
Ingext can see Acronis resources, but no source is configured to collect them.
Sending data (428,646 bytes in 24 h). Its token-refresh warnings are routine. Directory data is fresh: Google Workspace 5 h 51 m, Office 365 1 h 47 m.
Configuration and health data is a live snapshot taken on 27 Sep 2026, not an August history.
| Check | Result | Status | Assessment |
|---|---|---|---|
| Global administrators | 8 | Over | Baseline for 19 paid seats is 2, so there are 6 more than needed. 3 also hold Security, License or Exchange Administrator. |
| Accounts with password policy "None" | 9 | Review | No expiry or complexity enforced. Acceptable only if those accounts are passwordless or use phishing-resistant MFA. |
| Users with third-party OAuth apps | 14 | Review | One account has 37 connected apps and five others have more than 10. Each connection is a token that could be stolen. |
| Weak MFA (SMS or email) | 0 | Good | — |
| Stale sign-in tokens (>365 days) | 0 | Good | — |
| Enterprise applications | 42 | Review | 11 AI applications (including AI assistant add-ins for office apps), 6 security applications, and 104 app relationships flagged for shadow-IT review. |
| Guests / disabled / unlicensed | 7 / 3 / 9 | Good | Guest count in the directory is low. The guest activity in the case data is not from this directory. |
| Device OS currency (Entra) | 7 | Partial | Device records flagged as end-of-life; the device-level list was not reviewed. |
| Domain | Findings | Status | Assessment |
|---|---|---|---|
| acme.example | No MTA-STS or TLS-RPT | Good | Core records (SPF, DKIM, DMARC) are in place |
| acmeinc.example | DMARC monitor-only (p=none); no MTA-STS or TLS-RPT | Fix | Mail that spoofs this domain is still delivered |
| acmeinc.onmicrosoft.com | No DMARC record; no common DKIM selector | Fix | Publish DMARC, or confirm the domain never sends mail |
The case data shows user and guest creation, group changes, an app registration and mailbox delegations — all in replayed identities. There is no change log for Acme's own directory.
No scanner data. The external-rating source returned 0 findings, which cannot be told apart from "not configured".
| Category | Source | What cannot be detected | Implication | Remediation | Risk |
|---|---|---|---|---|---|
| Missing sources | Firewall / VPN / DNS | Remote access; outbound traffic to attacker infrastructure | Data leaving the network would go unseen | Onboard perimeter logs via syslog | R7 |
| Partial coverage | Office365:AcmeEU | General audit events for that Microsoft 365 tenant | Admin changes there go unseen | Re-consent the app and restart the subscription | R4 |
| Technology | Endpoint (own devices) | Malware and hands-on-keyboard activity on staff devices | The only EDR alerts come from lab sites | Connect Acme's own EDR tenant | R5 |
| Architectural | Replay mixed into the live queue | Which alerts are real | A real alert is lost among test alerts | Separate or label replay data | R4 |
| Identity | Admin approval source | Whether admin, MFA or app changes were authorized | An attacker's change looks the same as a routine one | Change tickets or PIM activation logs | R1 |
| Third party | OAuth and AI apps | What connected apps do with the access they were granted | A compromised vendor gets a path into mail and files | App governance review; restrict user consent | R6 |
The three highest-scoring case groups were examined in detail. Each deep dive is followed by what it means for Acme's own environment.
| Sequence (UTC) | 12:06 authenticator app registered from 203.0.113.45 → 19:34–20:08 sign-ins from 198.51.100.14 (a new residential ISP), including two sign-in request types never seen before → 20:10 app "Wiki SSO" created (single-tenant), then updated and given a new certificate or secret. |
|---|---|
| Why it scored high | New ISP, new sign-in request types (high-confidence alerts), a new application, and a credential added to that application. |
| AI triage | Flagged as actionable one hour after the first event. The user record could not be found in the directory. |
| Assessment | Detection worked as intended. In a live tenant this is the setup for persistent access, because an app credential survives a password reset. Here the account does not exist in the directory, so this is replayed scenario data. |
| Sequence (UTC) | 09:38 four inbox rules disabled and one new rule, "CC team lead", created from 203.0.113.139 → 09:48 sign-in from 203.0.113.197. Both addresses are in the same residential ISP range. |
|---|---|
| Correlation | A separate IP-keyed case (203.0.113.139, score 6,200) covers the same five rule events. The two cases are one incident and should be closed together. |
| AI triage | Escalation to tier two recommended about 1 h 40 m after the rule changes. |
| Assessment | Lower risk than the rule names suggest. A single home ISP, a rule named after a colleague and no external forwarding address all point to a user tidying their inbox. The detection logic is sound. |
| What was flagged | A Linux host running /tmp/coder.*/coder agent (a remote-workspace agent), classified by SentinelOne as ransomware with a hash unknown to VirusTotal. A macOS host running a device-management agent's policy executor. Plus three similar agents. |
|---|---|
| Outcome on the endpoint | Every process was killed. Quarantine failed, which is common for management agents that reinstall themselves or run from protected paths. |
| Provenance | All five belong to two lab sites in the replay set. They share an identical timestamp, and this tenant has no SentinelOne agent inventory. |
| Assessment | Probably false positives on legitimate management software. Resolve with the lab owners, not in Acme's production queue. Host names are withheld from this report. |
Any one of eight accounts can take over the tenant. If one of them lacks phishing-resistant MFA, a single successful phish or token theft grants full control, and their connected apps give an attacker ways to stay in after a password reset.
Fraudsters can send convincing mail as Acme to partners and customers — the first step of the invoice-fraud pattern the replay scenarios model.
A genuine inbox-rule or app-consent alert on a staff account would look exactly like the dozens of test cases left open this month.
With that feed down, none of the patterns above could be detected in that tenant.
No rule has an approved MITRE ATT&CK mapping, so no formal technique coverage is claimed.
§9Likelihood × impact on a 1–5 scale. Bands: 1–5 Low · 6–10 Medium · 11–17 High · 18–25 Critical.
| ID | Category | Risk | Evidence | Business impact | L | I | Score | Band |
|---|---|---|---|---|---|---|---|---|
| R4 | Visibility & detection | Real alerts lost in replay data; broken feed | 234 of 240 cases replayed; AcmeEU audit down; 156 open | Missed live intrusion | 4 | 4 | 16 | High |
| R1 | Identity & access | Excess global administrators | 8 admins vs baseline 2 | Full tenant takeover from one account | 3 | 5 | 15 | High |
| R2 | Identity & access | Weak credential policy and token sprawl | 9 accounts with no password policy; 14 users with OAuth apps (up to 37) | Account and token theft | 3 | 4 | 12 | High |
| R3 | Perimeter & exposure | Domain spoofing | DMARC monitor-only or missing on 2 of 3 domains | Invoice fraud against partners; reputational damage | 3 | 4 | 12 | High |
| R5 | Endpoint | No EDR coverage of own devices | No agent inventory; 7 EOL device records | Malware on staff devices unseen | 3 | 4 | 12 | High |
| R6 | Insider & privilege | Unreviewed third-party and AI apps | 11 AI apps; 104 shadow-IT candidates | Data shared with unvetted vendors | 3 | 3 | 9 | Medium |
| R7 | Patch & vulnerability | No vulnerability or perimeter data | No scanner, firewall or VPN feed | Exploited exposure unseen | 3 | 3 | 9 | Medium |
| R8 | Data & continuity | Backups unmonitored | Acronis discovered, not configured | Silent backup failure or tampering | 2 | 4 | 8 | Medium |
Highest residual risk is R4 (16, High). No Critical risks; no confirmed active compromise this period.
Chapter 6 · IT and SOC — How our defences performed §10Detection and automated triage performed well on the replayed scenarios. Human follow-through did not keep up.
The identity rules caught every scenario step in the replay: MFA registration, app creation and credential, mailbox delegation, and inbox-rule changes. AI triage produced a first assessment in 8 to 101 minutes on the cases examined, and recommended escalation where it was warranted. On the endpoint, every flagged process was killed.
The AcmeEU audit feed is down. Acme's own endpoints have no EDR data. Acronis is not connected. No rule has an approved MITRE mapping. The MFA registration rule produces 54% of all cases.
Gap. Agent exclusions, stale agents and integration versions are not exposed to reporting tools.
§11| Metric | Aug median | Aug P90 | Jul median | Jul P90 | Note |
|---|---|---|---|---|---|
| Time to detect | 0 | 0 | 0 | 0 | Zero by design: the case opens at the first event |
| Time to acknowledge | — | — | — | — | GapThe acknowledged state was not used |
| Time to first response | 1 h 00 m | 2 h 55 m | 57 m | 3 h 59 m | Counts the first comment of any kind, including AI triage, so it overstates human response |
| Time to close | 1 h 03 m | 2 h 35 m | 1 h 04 m | 7 h 08 m | Closed cases only. July's tail was skewed by one case left open 27.6 days |
156 cases are open. 27 of them score 10,000 or more, including the three deep dives. The oldest has been open since 3 Aug (55 days at time of writing). Closing slowed badly in the first three weeks: 21 of the 84 cases opened 1–22 Aug were closed (25%), against 63 of 156 for 23–31 Aug (40%).
On a replay-heavy tenant, the right verdict for most of these cases is "test / replay". That verdict does not exist today, which is why analysts fall back on Undetermined. Top noise sources: the MFA registration rule (5 false positives, 20 Undetermined, 105 open), the Google Workspace login rule (3 of 4 false positive due to alert logic), and the new-user rule (12 benign).
Gap. SOC containment actions are not exposed. The only actions on record are process kills by the endpoint agent.
§12AI triage recommended tier-two escalation on the deep-dive 2 inbox-rule cases (user- and IP-keyed) and on the macOS endpoint case. Whether a human acted on those recommendations is not recorded.
Chapter 7 · IT and client — What needs to happen next §13| Action | Owner | Due | Priority | Risk | Evidence |
|---|---|---|---|---|---|
| Separate replay data from live monitoring: a dedicated replay tenant, or a replay tag on events and cases plus a "Test / replay" classification | Apex MSSP + Ingext platform | 2026-10-16 | P1 | R4 | 234 of 240 cases replayed |
| Reduce global administrators from 8 to 2 named accounts plus 1 break-glass; move the others to scoped roles with just-in-time activation | Acme M365 admin | 2026-10-16 | P1 | R1 | Directory audit |
| Restore the Office365:AcmeEU Audit.General subscription | Acme M365 admin + Apex MSSP onboarding | 2026-10-09 | P1 | R4 | 0 bytes, error ×9 |
| Bulk-close August replay cases with a replay note; merge the two deep-dive 2 cases | Apex MSSP SOC | 2026-10-09 | P2 | R4 | 156 open |
| Refer the five endpoint detections to the lab owners as likely false positives (remote-workspace and MDM agents) | Apex MSSP SOC | 2026-10-02 | P2 | R4 | Deep dive 3 |
| Enforce a password policy or confirm passwordless sign-in for the 9 policy-"None" accounts | Acme M365 admin | 2026-10-16 | P2 | R2 | Directory audit |
| Move acmeinc.example DMARC to quarantine; publish DMARC for the onmicrosoft domain; add MTA-STS and TLS-RPT | Acme IT / DNS | 2026-10-30 | P2 | R3 | Email review |
| Review OAuth grants, starting with the account holding 37 apps; restrict user consent; review the 11 AI apps | Acme M365 admin | 2026-10-30 | P2 | R2, R6 | App review |
| Connect Acme's own EDR, Acronis and perimeter logs | Acme IT + Apex MSSP onboarding | 2026-10-30 | P3 | R5, R7, R8 | Source inventory |
| Submit MITRE ATT&CK mappings for the top 10 rules | Detection engineering | 2026-10-30 | P3 | R4 | 0 approved mappings |
Each admin account can take over the whole tenant.
That tenant's audit trail is not reaching the SOC.
Reports and the live queue stay unreliable until this is done.
Stops attackers sending mail as Acme.
None are on file.
What is missing is a clean line between test data and reality. Once replay data is separated and the administrator count is down to two, September's report can describe Acme's real security posture with confidence.
Gap. The SOC change log is not exposed to reporting tools; the items above are derived from metric movement.
§16| Source | Bytes passed | Verdict | Evidence |
|---|---|---|---|
| AzureEventHubs-default | 524,286,070 | OK | 24 h histogram |
| Office365-acme | 428,646 | OK | Token-refresh alert dismissed as noise |
| GSuite-default | 365,622 | OK | 24 h histogram |
| SyslogEndpoint | 124,672 | OK | 24 h histogram |
| FluencyCollector-legacy | 124,672 | OK | 24 h histogram |
| Office365:AcmeEU | 0 | Error | Audit.General subscription failing ×9 |
| GSuite / Office365 / Office365ResourceWatch fetchers | — | OK | Freshness probe: 5 h 51 m / 1 h 47 m / 1 h 47 m |
| Remaining 7 configured sources | — | 5 OK, 2 inactive | Inactive means quiet, not broken |
| Acronis | — | Unconfigured | Discovered, no source |
16 configured sources: 13 OK (5 listed, 3 fetchers, 5 remaining), 1 error, 2 inactive.
This is the first report in this format, so all ten actions in §13 are new and open. No escalation contacts are on file; they are requested in §14.
| Fingerprint | Rules | Aug | Jul |
|---|---|---|---|
| a30f7d57 | AzureAD_User_Add_Authentication_Method | 130 | 110 |
| 0cdc5ae8 | O365_AzureAD_UserLoggedIn, O365_User_Added | 23 | 6 |
| b46e6a17 | O365_User_Added | 20 | ≤1 |
| 61c439af | AzureAD_User_Add_Authentication_Method, O365_AzureAD_UserLoggedIn, O365_User_Added | 11 | 13 |
| e10244f5 | O365_AzureAD_UserLoggedIn, O365_Exchange_Add-MailboxPermission, O365_Exchange_RecipientPermission_SendAs | 4 | ≤1 |
| 09f8c1c0 / 4c48f0cb | SentinelOne Management, ProcessKilled, QuarantineFailed, Threat (+ QuarantineOK) | 3 / 2 | ≤1 |
| 8f5ec2b3 | Auth method added, sign-in, Add application, Update application, Update application credential | 1 | — |
| bcaa9c6f | O365_AzureAD_UserLoggedIn, O365_Exchange_Disable-InboxRule, O365_Exchange_New-InboxRule | 1 | — |
| 2082838a | Group add, sign-in, Add-MailboxPermission, SendAs, GrantSendOnBehalf, auth method added | 1 | — |
None of the rules in the top 25 fingerprints has an approved local mapping, so no technique table is included. Inferred mappings are not formal coverage.
| Case | One user's or asset's alerts on one day, with a risk score of 3,000 or more. |
|---|---|
| Risk score | How likely it is that a case needs review. It is not a severity or a verdict. |
| Fingerprint | The exact set of rules a case triggered. |
| Replay | Recorded or synthetic events sent into a tenant to test detections. |
| Undetermined / Benign positive | Closed without evidence either way / real but expected activity. |
Scope. Tenant acme. Windows (UTC): 1 Aug 00:00 to 31 Aug 23:59:59.999, and the same for July.
Case data. summarize_case_metrics, summarize_case_fingerprints, categorize_repeat_actors, list_cases (all 240 rows), get_case (5 cases).
Posture. evaluate_data_sources, audit_office365_users, summarize_hygiene_posture, summarize_vulnerability_posture, summarize_monitoring_operations, summarize_fingerprint_attack_impact. All read-only; nothing in Ingext was changed.
Caveats. Replay attribution is inferred, not flagged by the platform. Tools disagree on paid seats (19 vs 15 active licensed); this report uses 19 for the admin baseline. Root-cause themes and risk scores are analyst estimates pending platform automation.
Identity. Sanitized sample for external sharing — company, tenant, user, guest, host and domain names are fictional; IP addresses are documentation ranges.