在 SLS 中分析ActionTrail跟踪投递日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
操作审计,不限时长
简介: 操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。阿里云客户在操作审计控制台可以查看近90天的操作日志,但在实际应用中,需要普遍分析基于全Region并且90天以上的操作事件,用于一些复杂的聚合查询分析。

hbbdxien.jpg

前言

操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。阿里云客户在操作审计控制台可以查看近90天的操作日志,但在实际应用中,需要普遍分析基于全Region并且90天以上的操作事件,用于一些复杂的聚合查询分析。此时我们可以在ActionTrail控制台上创建跟踪将操作日志投递到指定日志服务(SLS),利用SLS的实时索引,查询分析数据的能力我们可以对全量的操作事件进行复杂的聚类分析查询。以下列举了一些结合SLS对行为分析,安全合规的一些使用场景。

AK泄漏了怎么办?

问题现状

某企业发现存在一些异常调用,怀疑是由于人事调动导致AK(AccessKey)的泄漏,那么如何去验证猜想?别着急,操作审计(ActionTrail)能够解决你的燃眉之急,在ActionTrail控制台完成投递跟踪到SLS之后,我们就可以借助SLS提供数据分析能力来分析AK的调用轨迹。

分析思路

具体的分析思路是我们可以获取AK调用来源IP的城市,一旦发现当前城市非企业所在地,那么就可以明确当前AK确实存在泄漏,需要通过RAM重新分配调整子账号权限。

查询分析语句

__topic__: actiontrail_audit_event and event.userIdentity.accessKeyId:<YourAccessKeyId> | SELECT count(1) as pv, city FROM (SELECT "event.sourceIpAddress" AS ip, ip_to_city("event.sourceIpAddress") as city FROM log) WHERE ip_to_domain(ip)!='intranet' GROUP BY city ORDER BY pv DESC

以上查询能够获取指定AK所产生调用的来源地址,并且给出具体的调用量,当然直接分析ip地址的网段也可以定位到指定AK是否存在异常调用。

是谁修改了ECS实例?

问题现状

企业上云之后对于内部云设施资源的审计越来越重视,云资源的安全合规操作也是企业上云的必经之路。对于企业内部云上资源的运维调度,以及相关的风险等级较高的资源调配操作,如何去获取指定资源(如ECS)的所有修改者,从中筛选得到非法来源的调用者,并以此进行责任追溯?以下提供了一种查询某段时间内高危操作的执行者。

分析思路

我们可以将关注的云产品以及执行操作按照执行者进行分组,统计每个云产业下任意一个API被谁执行以及执行的次数,从中筛选出一些非法的调用来源,并以此结果进行追责。

查询分析语句

__topic__: actiontrail_audit_event | SELECT serviceName, eventName, userName, count(1) as pv FROM (SELECT  "event.eventName" as eventName, "event.serviceName" as serviceName, "event.userIdentity.userName" as userName FROM log) WHERE (serviceName = <TargetServiceName> and eventName = <TargetEventName>) GROUP BY serviceName, eventName, userName

以上查询统计了对于指定云产品操作执行者列表,我们可以把TargetServiceName和TargetEventName分别指定为Ecs和DeleteInstances,如此一来便可以获取到所以执行Ecs实例的删除的操作者。定位到了Ecs实例的非法操作之后,我们需要获取非法的操作记录,以便于进行状态复原和问题修复:

__topic__: actiontrail_audit_event and event.serviceName:<TargetServiceName> and <TargetResourceId> and event.userIdentity.accessKeyId:<YourAccessKeyId>

自定义数据看板

随着云企业自身业务的快速发展,对于部分核心资源的调用频率周期需要产出完整的数据报表,用以资源容量的预估以及风险的预判。

需求分析

例如企业内部需要生成ECS实例创建近半年来的数据报表,通过分析同比以及环比来预测未来半年内资源扩充以便合理的控制和规划成本开销。

查询分析语句

__topic__: actiontrail_audit_event and event.serviceName:<TargetServiceName> and event.eventName:<TargetEventName> | select t, diff[1] as current, diff[2] as last_month, diff[3] as percentage from(select t, compare( pv , 2592000) as diff from (select count(1) as pv, date_format(from_unixtime(__time__), '%m') as t from log group by t) group by t order by t)

以上分析实现了一个数据报表,我们将TargetServiceName和TargetEventName两个变量分别指定为Ecs和CreateInstance,就能够获取出ECS实例每个月的创建次数,并且展示同比上个月的增长幅度。

可视化呈现

为了更加直观的展示数据变化趋势,可以折线图方式将效果进行呈现。

图1.png


除此之外,我们还可以类似的方式对部分风险等级较高的操作产出数据报表,并且可以从中分析调用规律以及流程高低峰所在时间点,以便于更加合理的规划资源,提升资源的利用率。
异常监控报警
为了对云上设施资源的操作提供更加全局的视角,ActionTrail会自动为投递logstore 创建仪表盘,其中记录了事件的调用量趋势、事件来源分布、事件区域分布、事件来源分布以及事件类型分布等实时数据分析大盘。

图2.png


图3.png

自定义仪表盘

日志服务可以根据仪表盘中的查询图表进行配置监控报警,实现实时服务状态的监控。除此之外我们也可以将自定义的统计图表添加到仪表盘中,以便实现定制化业务的实时监控,假设某企业需要对每个产品的日访问量做统计,当某个产品某日的访问量超过近60天的平均访问量的一定水位时,比如临界阈值到达150%时执行告警。

__topic__: actiontrail_audit_event |select a.serviceName, a.avg_pv, b.today_pv from (select serviceName, avg(pv) as avg_pv from (select "event.serviceName" as serviceName, count(1) as pv, date_format(from_unixtime(__time__), '%m-%d') as day from log group by serviceName, day) group by serviceName) a join (select "event.serviceName" as serviceName, count(1) as today_pv from log where date_format(from_unixtime(__time__), '%Y-%m-%d')=current_date group by serviceName) b on a.serviceName = b.serviceName

以上查询统计出各个云产品在近60天(时间区间可自定义)内的平均流量以及当天的实时的流量,我们可以折线图的方式进行呈现,当然我们可以添加过滤条件来排除不关注的云产品或者相关事件。接下来可以将该图标添加到已有的ActionTrail仪表盘中,并且新增对其的业务报警。

图4.png

设置业务告警

在仪表盘中定位到新增的图标,点击右上角按钮新增告警,配置触发条件以及通知组即可完成,除此之外可以配置报警频率以及通知方式,具体配置可见SLS设置告警。其中$0表示第一条查询语句关联的原始图表数据,即每个云产品的当日访问量以及最近60天的平均访问量,$0.avg_pv即表示云产品最近60天的平均访问量。

图5.png

结束语

本文旨在将SLS提供的实时索引,分析查询的能力与ActionTrail跟踪投递的操作事件相结合,对安全合规,行为分析,安全分析,资源变更行为追踪和行为合规性审计提供新的分析和构建思路。各位读者可以在上述提供的场景例子为借鉴,进一步引申,将操作审计的业务价值最大化。

相关文章
|
10天前
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
|
20天前
|
机器学习/深度学习 人工智能 运维
智能日志分析:用AI点亮运维的未来
智能日志分析:用AI点亮运维的未来
142 15
|
1月前
|
SQL 关系型数据库 MySQL
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
MySQL事务日志-Undo Log工作原理分析
|
2月前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
58 7
|
2月前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
9月前
|
SQL 弹性计算 监控
构建多账号云环境的解决方案|多账号云上操作日志统一审计
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。企业在阿里云采用多账号的资源结构时,如何满对跨账号跨地域的云上操作日志进行统一归集留存和分析,是企业上云管云过程的必备环节。此次分享为您介绍如何使用操作审计产品进行中心化的审计,提升云上多账号操作的可控可见性,及时发现问题、响应问题,规避潜在风险。
372 0
|
9月前
|
存储 分布式计算 监控
操作审计最佳实践:将阿里云操作日志持续投递到您的 SLS/OSS
操作审计(ActionTrail)帮助您监控并记录阿里云账号的活动,包括通过阿里云控制台、OpenAPI、开发者工具对云上产品和服务的访问和使用行为,记录为操作日志。 操作审计支持所有阿里云账号的免开通服务,默认为所有账号记录并存储近 90 天的日志。但在实际应用中,受法律法规和企业审计标准的要求,...
580 0
|
SQL 弹性计算 监控
操作审计日志分析实战一:使用 SQL 分析投递到 OSS 中的操作审计日志
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。 我们推荐您创建跟踪将操作日志投递到日志服务(SLS)和对象存储(OSS)中:在 SLS 中短期存储日志,用于查询分析、配置监控报警;在更低成本的 OSS 中存储更长周期的历史日志。 当您有需求查询分析历史操作日志时,您可能会苦恼于如何对 OSS 中存储的这些历史操作日志进行高效的查询和分析。本文章将引导您通过简单的配置,借助 DLA(数据湖分析)产品,实现通过 SQL 来查询和分析投递到 OSS Bucket 中的操作审计日志。
操作审计日志分析实战一:使用 SQL 分析投递到 OSS 中的操作审计日志
|
存储 监控 对象存储
操作审计最佳实践-跨账号日志收集
此文档为您介绍,当您有多个阿里云账号需要统一审计时,如何将多个账号的操作日志收集到一个账号的对象存储(OSS)或日志服务(SLS)中。
操作审计最佳实践-跨账号日志收集

热门文章

最新文章