有一个恶意域/URL的外部列表,我想定期搜索日志,但有一个明显的问题:
let abuse_domain = (externaldata(sentinel_domain: string )
[@"https://managedsentinel.com/downloads/covid19_domains.txt"]
with (format="txt"))
| where sentinel_domain !startswith "#"
| project sentinel_domain;
abuse_domain
| join
(
DeviceNetworkEvents
| where Timestamp > ago(1h)
) on $left.sentinel_domain == $right.RemoteUrl
| project Timestamp,DeviceName,RemoteUrl,DeviceId,ReportId
On子句不起作用,因为这两项永远不会完全匹配。当$left.setinel_domain是$rightRemoteUrl的子字符串时,如何获得匹配?
首先尝试使用parse_url
从RemoteUrl提取域(Host
(。
像这样:
let abuse_domain = (externaldata(sentinel_domain: string )
[@"https://managedsentinel.com/downloads/covid19_domains.txt"]
with (format="txt"))
| where sentinel_domain !startswith "#"
| project sentinel_domain;
abuse_domain
| join
(
DeviceNetworkEvents
| where Timestamp > ago(1h)
| extend Host = tostring(parse_url(RemoteUrl).Host)
) on $left.sentinel_domain == $right.Host
| project Timestamp,DeviceName,RemoteUrl,DeviceId,ReportId