如何使用KQL在Microsoft Sentinel中查询IP地址活动日志?
在Microsoft Sentinel中搜索IP地址活动日志的KQL查询示例
Microsoft Sentinel中不同类型的活动日志存储在不同表中,以下是几个常用场景的KQL查询,你可以根据实际数据源调整:
1. 查看特定IP的Windows安全事件
适用于Windows主机的登录、网络连接等安全日志,使用SecurityEvent表:
SecurityEvent | where IpAddress == "192.168.1.100" // 替换为目标IP | project TimeGenerated, EventID, Activity, IpAddress, Computer, Account | sort by TimeGenerated desc
该查询会筛选出目标IP相关的安全事件,展示时间、事件ID、活动描述、关联主机和账户信息,并按时间倒序排列。
2. 查询特定IP的Azure AD登录记录
如果要追踪该IP在Azure AD中的登录行为,使用SigninLogs表:
SigninLogs | where IPAddress == "203.0.113.5" // 替换为目标IP | project TimeGenerated, UserPrincipalName, IPAddress, Location, Status, AppDisplayName | sort by TimeGenerated desc
可以看到该IP对应的登录用户、登录地点、登录状态以及使用的应用程序。
3. 搜索网络流量中的IP活动
针对Azure环境的网络流量日志,使用AzureNetworkAnalytics_CL表:
AzureNetworkAnalytics_CL | where SourceIP == "10.0.0.5" or DestinationIP == "10.0.0.5" // 匹配源或目标IP | project TimeGenerated, SourceIP, DestinationIP, SourcePort, DestinationPort, FlowDirection_s | sort by TimeGenerated desc
能查看该IP作为源或目标的网络流量详情,包括端口和流量方向。
4. 跨所有表搜索目标IP(适合不确定日志位置时)
如果不确定目标IP的日志存在哪个表中,可以用跨表查询:
union withsource=TableName * | where * contains "198.51.100.20" // 替换为目标IP | project TimeGenerated, TableName, IpAddress, Computer, Account | sort by TimeGenerated desc
union *会合并所有已连接的日志表,筛选包含目标IP的记录,但注意这种查询可能较慢,确定表后建议用单表查询提升效率。
新手提示
- 所有查询中的IP地址都要替换成你实际要搜索的目标IP
- 可以添加时间范围过滤,比如在
where子句中加入TimeGenerated between (ago(7d) and now())来限制查询最近7天的日志 - 根据你Sentinel中已集成的数据源选择对应表,比如第三方防火墙、VPN的日志会有各自的专属表
内容的提问来源于stack exchange,提问作者Tony Ben
相关产品推荐
相关产品推荐

