|
2 | 2 | creation_date = "2025/02/19" |
3 | 3 | integration = ["o365"] |
4 | 4 | maturity = "production" |
5 | | -updated_date = "2025/09/26" |
| 5 | +updated_date = "2025/11/25" |
6 | 6 |
|
7 | 7 | [rule] |
8 | 8 | author = ["Elastic"] |
@@ -83,28 +83,38 @@ type = "esql" |
83 | 83 | query = ''' |
84 | 84 | from logs-o365.audit-* |
85 | 85 | | where |
86 | | - @timestamp > now() - 14d and |
87 | 86 | event.dataset == "o365.audit" and |
88 | 87 | event.provider == "OneDrive" and |
89 | 88 | event.action == "FileDownloaded" and |
90 | 89 | o365.audit.AuthenticationType == "OAuth" and |
91 | 90 | event.outcome == "success" |
92 | | -| eval |
93 | | - Esql.time_window_date_trunc = date_trunc(1 minutes, @timestamp) |
94 | | -| keep |
95 | | - Esql.time_window_date_trunc, |
96 | | - o365.audit.UserId, |
97 | | - file.name, |
98 | | - source.ip |
| 91 | + and (user.id is not null and o365.audit.ApplicationId is not null) |
| 92 | +| eval session.id = coalesce(o365.audit.AppAccessContext.AADSessionId, session.id, null) |
| 93 | +| where session.id is not null |
| 94 | +| eval Esql.time_window_date_trunc = date_trunc(1 minutes, @timestamp) |
99 | 95 | | stats |
| 96 | + Esql.file_directory_values = values(file.directory), |
| 97 | + Esql.file_extension_values = values(file.extension), |
| 98 | + Esql.application_name_values = values(application.name), |
100 | 99 | Esql.file_name_count_distinct = count_distinct(file.name), |
| 100 | + Esql.o365_audit_Site_values = values(o365.audit.Site), |
| 101 | + Esql.o365_audit_SiteUrl_values = values(o365.audit.SiteUrl), |
| 102 | + Esql.user_domain_values = values(user.domain), |
| 103 | + Esql.token_id_values = values(token.id), |
101 | 104 | Esql.event_count = count(*) |
102 | | - by |
| 105 | +by |
103 | 106 | Esql.time_window_date_trunc, |
104 | | - o365.audit.UserId, |
105 | | - source.ip |
106 | | -| where |
107 | | - Esql.file_name_count_distinct >= 25 |
| 107 | + user.id, |
| 108 | + session.id, |
| 109 | + source.ip, |
| 110 | + o365.audit.ApplicationId |
| 111 | +| where Esql.file_name_count_distinct >= 25 |
| 112 | +| keep |
| 113 | + Esql.*, |
| 114 | + user.id, |
| 115 | + source.ip, |
| 116 | + o365.audit.ApplicationId, |
| 117 | + session.id |
108 | 118 | ''' |
109 | 119 |
|
110 | 120 |
|
|
0 commit comments