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

简介: 操作审计(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跟踪投递的操作事件相结合,对安全合规,行为分析,安全分析,资源变更行为追踪和行为合规性审计提供新的分析和构建思路。各位读者可以在上述提供的场景例子为借鉴,进一步引申,将操作审计的业务价值最大化。

相关文章
|
5月前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
213 0
|
7月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
1096 0
|
9月前
|
自然语言处理 监控 安全
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
1290 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
|
8月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4339 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
9月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
966 54
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
445 9
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
942 35
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
|
12月前
|
存储 缓存 关系型数据库
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
675 5
图解MySQL【日志】——Redo Log