1

当管理员帐户(使用 where 语句找到)在 5 分钟内登录到多个工作站时,我需要提供一个结果列表,这将在 24 小时内发出可疑活动的信号。现在,我只是使用必要的信息记录了每 5 分钟发生一次不同事件的时间。我需要做的就是做到这一点,以便出现的唯一结果是当同一帐户在不同工作站上的最后一次不同活动的 5 分钟内登录到不同工作站时,但我只是不确定如何去吧。

SecurityEvent
| where Account matches regex "*admin*"
    and AccountType == "User"
    and ((EventID == "4625") or (EventID == "4624"))
| project Account, WorkstationName, IpAddress, EventID, TimeGenerated, Computer
| distinct WorkstationName, Account, IpAddress, EventID, TimeGenerated, Computer
| summarize by bin(TimeGenerated, 5m), Account, WorkstationName, IpAddress, EventID, Computer
| sort by Account

示例数据:

let Table = datatable(TimeGenerated:datetime, Account:string, Computer:string, WorkstationName:string, IPAddress:int, EventID:int) 
[
   7/21/2021, 5:15:00.000 PM, "1", "A", "123", 11.63.24.357, 4624
   7/22/2021, 1:20:00.000 PM, "2", "G", "195", 19.26.83.257, 4624
   7/22/2021, 1:25:00.000 PM, "2", "P", "275", 192.64.9.432, 4624
];

由于同一帐户在 5 分钟内登录到另一台计算机,因此预期输出仅为最后 2 条日志。如果可能的话,我也只想生成一个日志作为 count() 记录该帐户登录的次数,以及 5 分钟内有多少台不同的计算机

任何建议都有帮助,谢谢!

4

1 回答 1

0

这是你想要的?

let Table = datatable(TimeGenerated:datetime, Account:string, Computer:string, WorkstationName:string, IPAddress:string, EventID:int) 
[
   datetime(2021-07-21 17:15:00.000), "1", "A", "123", "11.63.24.357", 4624,
   datetime(2021-07-22 13:20:00.000), "2", "G", "195", "19.26.83.257", 4624,
   datetime(2021-07-22 13:24:00.000), "2", "P", "275", "192.64.9.432", 4624
];
Table
| summarize EventCount = count(), DistinctComputers= dcount(Computer) by bin(TimeGenerated, 5m), Account 

结果:

在此处输入图像描述

于 2021-07-23T12:35:43.060 回答