附录 P:时间函数

编辑

时间函数可以检测在一天中或一周中的不寻常时间发生的事件。这些函数可用于查找不寻常的行为模式,通常与可疑的用户活动相关。

机器学习功能包括以下时间函数:

  • 您无法为包含时间函数的异常检测作业创建预测。
  • time_of_day 函数无法识别工作日和周末之间的差异。在对不同日期进行建模时,请使用 time_of_week 函数。通常,time_of_week 函数更适合对人的行为而不是机器的行为进行建模,因为人们的行为会根据一周中的不同日子而有所不同。
  • 当执行 time_of_daytime_of_week 分析时,建议使用较短的存储桶跨度(例如,10 分钟)。所建模事件的时间不受存储桶跨度的影响,但较短的存储桶跨度可以更快地对不寻常事件发出警报。
  • 不寻常事件是根据以前的数据模式标记的,而不是根据我们根据人类经验认为的不寻常事件标记的。因此,如果事件通常发生在凌晨 3 点到 5 点之间,则在下午 3 点发生的事件会被标记为不寻常。
  • 当夏令时开始或停止时,常规事件可能会被标记为异常。发生这种情况的原因是事件的实际时间(根据 UTC 基线测量)已发生变化。这种情况被视为行为的阶跃变化,并且新时间将被快速学习。

Time_of_day

编辑

time_of_day 函数可以检测到发生在正常使用模式之外的事件。例如,它会检测到在午夜发生的异常活动。

该函数期望每日行为相似。如果您预计数据的行为在星期六与星期三有所不同,则 time_of_week 函数更合适。

此函数支持以下属性:

  • by_field_name (可选)
  • over_field_name (可选)
  • partition_field_name (可选)

有关这些属性的更多信息,请参阅创建异常检测作业 API

示例 1:使用 time_of_day 函数分析事件。

{
  "function" : "time_of_day",
  "by_field_name" : "process"
}

如果您在异常检测作业的检测器中使用此 time_of_day 函数,它将为每个进程建模事件在一整天中发生的时间。它会检测到某个进程发生的事件与过去的行为相比,发生在该天不寻常的时间。

Time_of_week

编辑

time_of_week 函数可以检测到发生在正常使用模式之外的事件。例如,它会检测到在周末发生的登录事件。

time_of_week 函数以自 1970 年 1 月 1 日(星期四)以来的纪元秒数对时间进行建模,并以秒为单位计算一周的持续时间。这意味着 typicalactual 值是自 1970 年 1 月 1 日以来的整数周数之后的秒数,以 UTC 为单位,例如,值 475 是 UTC 时间星期四午夜后的 475 秒。

此函数支持以下属性:

  • by_field_name (可选)
  • over_field_name (可选)
  • partition_field_name (可选)

有关这些属性的更多信息,请参阅创建异常检测作业 API

示例 2:使用 time_of_week 函数分析事件。

{
  "function" : "time_of_week",
  "by_field_name" : "eventcode",
  "over_field_name" : "workstation"
}

如果您在异常检测作业的检测器中使用此 time_of_week 函数,它将为每个 eventcode 建模事件在一周中发生的时间。它会检测到工作站事件发生在一周中不寻常的时间,该时间与其他工作站相比,对于该 eventcode 来说是不寻常的。它会检测到特定工作站的事件超出正常使用模式。