API安全告警推送最佳实践

我们通常通过配置云监控来推送API安全告警的严重事件,以便及时响应线上风险。然而,API安全事件根据其严重程度被分为低危、中危和高危三个等级。如果您希望接收到API安全检测到的不同等级的攻击事件告警,仅依靠云监控并不能满足这一需求。本文将介绍使用阿里云日志服务(Simple Log Service,简称SLS)创建告警的方法,以解决告警推送不全面的问题。

方法概述

开启API安全的日志投递功能后,所有的API安全事件能够被即时记录和存储。使用SLS的查询统计语句,您可以基于API安全告警的日志数据创建告警规则,并可以通过以下两种通知方案推送告警通知:

推送方案一:使用日志服务自身的通知功能直接推送告警信息。

推送方案二:日志服务搭配云监控,利用云监控的事件订阅功能推送告警信息。

前提条件

  • 您已经开通SLS。

  • 您如果使用云监控推送,请确保已经开通云监控服务。

  • 准备一个用于API安全日志投递的目标日志库(Logstore)

    说明

    日志订阅功能当前不支持选择日志服务自动创建的以及您自定义命名为“waf-logstore”、“wafng-logstore” 和 “wafnew-logstore” 的Logstore作为日志订阅的目标。

步骤一:开启日志投递并创建索引

API安全命中的攻击事件信息投递至您在日志服务控制台创建的指定LogStore中。这使您能够利用阿里云日志服务(SLS)的功能,根据不同攻击事件等级创建告警。

  1. 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。

  2. 在左侧导航栏,选择防护配置 > API安全

  3. API安全页面单击策略配置页签中的日志订阅配置子页签。

  4. 点击攻击事件信息进行配置。

  5. 在配置订阅信息中填写日志投递目标LogStore的地域、Project、日志投递的目标LogStore名称。image

  6. 确认攻击事件信息下的状态栏为开启。

  7. 为了使用日志服务创建告警的时候,能在查询统计SQL中找到攻击事件等级字段(event_level),请先根据提示开通索引,具体操作请参见创建索引。

重要
  • 您在日志服务中创建的云资源与开通索引等操作会产生额外费用,由日志服务产品进行计费,计费项及价格请参见计费概述

  • 创建ProjectLogstore后,未开启日志订阅任务时仍可能会产生费用,当您确保不再使用创建的Logstore时,请及时删除,避免产生额外费用,请参见为什么只创建ProjectLogstore会产生费用?

步骤二:创建SLS告警规则

创建日志告警规则,以监控和处理不同等级的API安全事件。

创建告警规则

  1. 在控制台左侧,单击告警按钮image进入,告警中心页签中点击新建告警,右侧弹出新建告警页面。

  2. 点击查询统计后的添加,进入查询统计页面。image

  3. 查询统计高级配置页面,选择目标日志库image

  4. 插入查询语句,并根据您需要的查询时间范围选择查询区间

    image

    筛选风险等级

    筛选WAF日志投送的内容,输出高危,中危,低危风险等级的结果

    /*筛选风险等级高的数据*/
    select event_level,COUNT(*) AS CNT WHERE event_level='high'
    
    /*筛选风险等级中的数据*/
    select event_level,COUNT(*) AS CNT WHERE event_level='medium'
    
    /*筛选风险等级低的数据*/
    select event_level,COUNT(*) AS CNT WHERE event_level='low'
    该步骤通过自定义查询与分析语句,能筛选各种风险等级的结果。
  5. 填写完查询语句,点击下方的确认,回到新建告警页面,在查询统计选项能看到上一步保存的查询语句。

  6. 选择规则触发的条件和严重度。触发条件中严重度在配置云监控通知时需要,建议依据告警筛选条件的event_level选择严重程度,如event_levelhigh,选择严重程度为高。

    image

    上述教程已经满足本次示例的功能,您可以根据你的业务需求去配置检测频率触发条件分组评估恢复通知添加标签添加标注等,更多信息参见如何创建日志告警监控规则。另外如您使用云监控推送,触发条件中的严重度会对应订阅策略中的事件等级。
  7. 选择输出目标

    先不开启任何输出目标。详见步骤三

    image

  8. 点击确认,在告警规则页面能看到您刚刚新建的规则,整个日志服务的告警规则配置完成。

步骤三:配置告警推送

推送方案一:配置SLS推送

选择该配置方式,说明您将选择使用SLS的告警配合SLS推送通知,进行API安全事件的告警推送。

配置通知对象

创建一个你需要通知的对象

  1. 在当前页面,点击通知对象页签。

  2. 用户管理子页签中,单击创建,弹出添加用户页面。

    image

  3. 在添加用户界面,填写用户信息,保证启用、可收短信、可接电话状态打开。

  4. 确认后刷新页面,确认添加新用户成功。

配置推送模板

如果您想接收到告警触发的实例ID、告警规则的名称、或者是告警的等级等等,那么您可以在推送模板的发送内容自定义。

  1. 告警中心页面,选择通知策略 > 内容模板内容模板页签中,单击创建

  2. 在弹出的内容模板页面中您可以自定义的发送内容。这将是您接收到的推送信息内容格式。

    image

    说明

    该实例仅展示几个模板变量作为参考,根据业务,您可以查看全部内容模板变量了解更多模板变量。

  3. 点击确认后,刷新页面,确认添加内容模板成功。

选择输出目标

  1. 找到您刚刚创建的规则,在操作列下点击编辑。

  2. 滑到页面最下方,输出目标选SLS知,打开开启按钮。

  3. 确认开启SLS通知后,需要选择告警策略。通常情况下,我们只需要在极简模式中,配置好推送渠道,选择静态接收人并添加告警通知人,选择合适的内容模板。如图,在本实例中,选择极简模式,选择接收人与内容模板,完成最基础的告警策略配置。

    说明

    极简模式通过编辑渠道、告警接收人、内容模板、发送时段,达成推送告警。

    普通模式通过选择系统自定义行动策略,或者选择新增自定义行动策略推送告警。

    高级模式通过选择行动策略告警策略执行推送告警。

    image

    重要

    了解SLS支持的通知渠道请查看通知渠道说明。另外当渠道选择短信、语音时会收取额外的费用,计费详情请查看按使用功能计费模式计费项

  4. 点击确认,保存此次编辑。

说明

如果根据您的业务场景有更复杂的配置需求,可以参见输出目标-SLS通知

开启SLS推送

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

  3. 在控制台左侧,单击告警按钮image,单击告警中心页签中的告警规则子页签,确认规则状态为启动中。image

推送方案二:配置云监控推送

选择该配置,说明您将选择使用SLS的告警配合云监控推送通知,进行API安全事件的告警推送。

1.设置日志服务告警的输出目标

  1. 找到您刚刚创建的规则,在操作列下点击编辑。

  2. 划到页面最下方输出目标选择云监控事件中心,点击开启状态。点击确认,保存此次编辑。

image

2.创建报警联系人与创建报警联系人组

云监控只能通过联系人组推送通知,所以需要把要接收通知的联系人加入到您的目标联系人组里。

2.1创建报警联系人
  1. 登录云监控控制台

  2. 在左侧导航栏,选择报警服务 > 报警联系人

  3. 报警联系人页签,单击创建联系人

  4. 设置报警联系人面板,填写报警联系人的姓名、手机号码、邮箱和Webhook地址,其他参数均保持默认值。

  5. 点击确认后返回报警联系人面板,确认创建成功。

2.2创建报警联系人组
  1. 单击报警联系组页签。

  2. 报警联系组页签,单击新建联系人组

  3. 新建联系人组面板,填写报警联系人组的组名,并选择已有报警联系人。

  4. 单击确认

3.创建通知配置

前提条件:请确保您已创建报警联系人和报警联系组。

  1. 返回云监控控制台。

  2. 在左侧导航栏,选择事件中心 > 通知配置

  3. 通知配置页面,单击创建策略面板,填写名称联系组

    image

  4. 单击确定

4.创建事件订阅

  1. 返回云监控控制台

  2. 在左侧导航栏,选择事件中心 > 事件订阅

  3. 订阅策略页签,单击创建订阅策略

  4. 创建订阅策略页面,设置订阅策略的相关参数。

    配置项

    配置项目

    基本信息

    输入订阅策略名称

    报警订阅

    订阅类型选择系统事件

    产品选择日志服务

    事件类型复选(FiringResolve

    说明
    • Firing表示报警处于触发状态,对应事件名称:

      • CRITICAL告警事件

      • INFO告警事件

      • WARN告警事件

    • Resolved表示报警已解决,对应事件名称:

      • 告警恢复事件

    事件名称复选(CRITICAL告警事件INFO告警事件告警恢复事件WARN告警事件

    事件等级选择严重(Critical)

    说明

    由于在步骤二中触发条件选择严重,事件等级选严重(Critical)对应。如果您的触发条件严重度为其他,则也要选择相应的事件等级,对应设置如下:

    • 触发条件为严重、高对应事件等级为严重(Critical)。

    • 触发条件为低、中对应事件等级为告警(Warning)。

    • 触发条件为报告对应事件等级为通知(Info)。

    事件内容填写步骤二:创建SLS告警规则的规则名称

    应用分组事件资源均不设置

    合并降噪

    使用默认值

    通知

    选择您的目标通知配置,自定义通知方式使用默认通知方式

    重要

    云监控提供免费额度仅包含短信告警。如果您对电话的通知方式有需求,请进入云监控控制台,在基础云监控模块中立即开通按量计费服务。计费详情请查看基础云监控按量计费

    推送与集成

    无需配置

    报警订阅配置如图:

    image

    说明

    上述教程仅作为实现推送的一种示例,您可以根据您的业务需求进行配置,参见创建订阅策略

  5. 创建订阅策略页面底部点击提交按钮,自动跳转到事件订阅页面,刚刚提交策略已经创建成功,并且确认状态为启动中。

验证

通过上述步骤您完成了告警信息推送的全部配置。您可以在接收端验证这些告警信息的准确性。

查看云监控的推送信息

  1. 打开云监控控制台在左侧导航栏,选择事件中心 > 通知历史。确认推送的通知信息。

    image

  2. 确认接收端的通知信息。

    短信

    image

    邮件

    image

    电话

    image

查看SLS的推送信息

1.在告警规则子页签中的规则进入告警概览,查看报表统计的历史告警

2.对比控制台与接收端,接收到的信息格式与内容模板一致,信息内容与告警历史的内容一致。

image

image