为什么要进行日志审计?
日志集中审计分析是现代信息安全管理中的关键组成部分,将来自不同地域、不同账号甚至不同云产品来源的日志数据进行集中化处理和分析,能够打破“信息孤岛”,更好地检测和响应安全威胁,实现更全方面、深层次的安全洞察。
法律强制规定
除此之外,企业或组织主动进行日志审计、服务厂商按照相关标准提供日志分析产品也是法律的强制性要求。例如《网络安全法》第二十一条第三小节中明确规定“采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月"。《网络安全法》第二十三条还要求,“网络关键设备和网络安全专用产品应当按照相关国家标准的强制性要求,由具备资格的机构安全认证合格或者安全检测符合要求后,方可销售或者提供”。2023 年 7 月 3 日,国家互联网信息办公室会同工业和信息化部、公安部、国家认证认可监督管理委员会等部门更新了《网络关键设备和网络安全专用产品目录》,已经将日志分析产品列入网络安全专用产品目录。
如何选择日志服务产品?
阿里云SLS 获取网络安全专用产品认证
网安法规不断完善
随着计算机信息安全的不断发展和网络安全法律法规的持续完善,网络安全专用产品认证制度已经取代了计算机信息安全销售许可证制度,日志分析产品也纳入了网络安全专用产品的范畴,其市场准入也接受网络安全法及相关技术标准的强制性监督。
网安认证检索
阿里云简单日志服务(SLS),经由《信息安全技术 网络安全专用产品安全技术要求》(GB 42250-2022)及与之相配套的、针对日志分析产品类别的国家标准《信息安全技术 日志分析产品安全技术要求》(GA/T 911-2019)标准认证和检测,可为用户提供中心化的日志存储及分析能力。SLS 下日志审计应用,提供跨地域、跨账号下日志多中心存储审计功能,可以更高效、合规地满足用户日志采集和分析需求。
下图为 SLS 在网络关键设备和网络安全专用产品安全认证和安全检测结果检索平台获取的检索结果。
日志审计能够解决的客户问题和带来的业务收益
●可拓展性:能够自动化实现多种主流云产品日志的跨账户、跨区域的自动化采集,自动拓展新增账号和新增实例。
●操作效率:通过简单页面配置或几行 API 代码,减少了调试时间和错误率,提高了部署速度。
●高可见性: 通过单一日志审计管理界面,查看部署的采集规则,提供了对日志采集的全面可见性,便于团队之间、跨团队协作。
●可维护性:降低了用户侧维护自定义工具的负担,使团队能够更专注于核心业务,避免繁琐的维护工作。
接下来,我们将开启全新的日志审计之旅,探索如何基于日志审计进行中心化日志管理及安全洞察。
日志审计概览
工作原理
日志采集与发现基于采集规则展开。首先,用户在采集规则中指定需要采集的云产品名称和日志类型,然后审计服务基于资源匹配模式自动发现需要采集的实例,将日志采集到默认的日志库中,最后按照用户的中心化配置和多账号配置进行数据加工汇总。详细工作原理请参见文档。
功能详情
日志审计(新版)基于阿里云简单日志服务平台,除了日志查询、分析、存储、加工、投递、消费、告警、可视化等能力外,还支持以下功能:
- 云产品覆盖范围:覆盖阿里云多种主流云产品及其日志类型接入,例如 OSS、VPC、CLB、RDS、WAF 等。
- 日志自动化采集:支持自动化采集用户云产品日志,包括日志的自动化写入和包括日志采集范围的自动化适配。
- 采集规则可编排:支持三种资源选择模式对云产品资源范围进行采集设定:全部资源、实例模式过滤资源、属性模式过滤资源。
- 数据跨区域汇总:通过数据加工功能实现日志数据的跨地域汇总,从而实现日志集中化统计分析。
- 支持多日志中心:日志只需接入一次,即可根据规则配置,通过数据加工汇总到多个日志库目标。
- 支持资源目录多账号功能:管理员或委派管理员可以通过配置多账号采集,将成员账号的所有日志汇总到管理员或委派管理员下。
VPC 流日志最佳实践
假设我们是一个全球电商团队,我们的多组业务横跨全球多个地域,例如国内如北京、上海等地域,国外如新加坡、马来西亚等地域皆部署相应的业务。这些业务的工作负载部署在对应地域下各个专属的 VPC 中。下面我们将以一个运维人员的身份视角,亲自上手日志审计下 VPC 流日志的采集和应用。
VPC 流日志能够记录进出虚拟私有云(VPC)的网络流量,采集 VPC 流日志:
- 一方面,可以帮助用户了解内网的使用情况,帮助优化网络架构和提高性能,识别流量瓶颈、过度使用的资源或不必要的流量。
- 另一方面,通过详细的流量记录,网络管理员可以快速定位和解决问题,及时发现和响应入侵行为或潜在的安全威胁。
- 最后,采集、存储 VPC 流日志也是国内外许多法律法规(例如网络安全法、GDPR、PCI-DSS 等)的强制要求。
下面我们将以 VPC 流日志的采集和汇总为例,介绍如何基于日志审计(新版),进行快捷、高阶的 VPC 流日志采集和功能管理。
日志接入
VPC 流日志多中心汇总
需求详情
- 自动管理要求: 自动化开启满足相关条件的 VPC 实例的流日志,当 VPC 新增或条件变化时,自动适应。
- 跨境合规要求: 需要将国内的 VPC 流日志采集到上海中心,将国外的 VPC 流日志采集到新加坡中心(跨界合规)。
- 成本优化要求: 出于节省成本的考量,需要仅开启生产业务的 VPC 流日志,测试环境业务无需开启。
操作步骤
- 指定日志类型:本规则采集日志类型为 VPC 流日志
- 限定采集对象:我们将分别创建两个规则,一个规则负责采集国内地域的 VPC 实例,如杭州、上海等,另一个规则负责采集国外地域的 VPC 实例,如新加坡等。同时我们通过属性模式下资源标签的方式限定采集对象为生产环境(env:production)的 VPC。
- 配置中心化目标:按照需求,需要将国内日志采集到上海中心,将国外日志采集到新加坡中心,在对应的规则中分别配置中心化目标即可。
补充说明:除了属性模式(支持按照地域和标签进行过滤)外,日志审计还支持全选模式(即采集账号下全部云产品实例)以及实例模式(用户枚举需要采集的实例),灵活控制云产品日志采集。
VPC 流日志跨账号监控
在一个大型公司中,不同部门或项目可能需要不同账号分别进行资源和权限管理。
- 通过多个账号,可以更好地隔离资源,确保不同团队之间不相互干扰,并且根据需要进行精细的权限管理,防止未经授权的访问。
- 不同的账号可以用来分割和跟踪成本。这样,每个部门或项目可以清楚地了解他们使用了多少云资源,并管理和控制各自的预算。
需求详情
在前文跨地域日志多中心汇总的前提下,安全团队对我们提出了更高阶的日志采集需求:
- RD跨账号汇总需求:安全团队基于 RD 资源目录进行多级账号和资源关系管理,需要将不同团队的日志自动化采集到统一的目标库中。
- 账号粒度筛选需求:具备对账号的筛选能力,例如仅采集线上业务相关的账号下的 VPC 流日志,无需采集不相干业务团队下的 VPC 流日志。
操作步骤
在日志审计应用中,因为日志审计已经完成了 RD 资源目录下可信服务的打通,只需简化为一个多账号配置,开启采集规则下的多账号配置,只需要选择采集的日志账号,点击确定即可将选中账号下的 VPC 流日志采集到相应日志库中。
补充说明:除了支持自定义选择需要采集的账号之外,日志审计还支持采集全部成员账号下的指定云产品日志,如果资源目录下有账号新增或变更,将会自动进行相应的规则创建或更改,从而完成组织账号体系下的日志采集与采集规则的自适应。
网络安全洞察
用户可以直接在日志审计界面查看 VPC 的流量统计或策略统计信息,也可以自定义查询分析制作专属报表。
内置统计
日志审计内置一些基本统计分析报表,用户可以通过这些报表获取基本的 VPC 使用详情。
流量概览
策略概览
自定义分析
用户也可以针对具体的业务场景和挖掘需求,自定义统计分析 VPC 流日志,下面是几个自定义分析的示例。
流入流量来源统计
例如,可以通过流入流量的源和目标地址分布,对 VPC 内部的流量流向获取大致了解,从而可以进一步帮助我们分析哪些业务资源对带宽的占用较多,从而优化资源配置。
(log-status : OK and version : 1) and direction: 'in' | select concat('src: ', srcaddr) as src, concat('dst: ' , dstaddr) as dst, sum(bytes) as total_bytes group by src, dst order by total_bytes desc limit 10
流量来源地理分布
例如,当检测到大量流量流向与正常业务活动无关的国家时,可能表明有未授权的数据传输。通过流量流向的地理分布分析,可以帮助我们确定潜在的威胁源或目标。
(log-status : OK and version : 1 and action: Accept) and direction: "out" | select ip_to_country(srcaddr) as country, count(*) as accept_actions where ip_to_country(srcaddr)!='保留地址' group by country order by accept_actions desc limit 20
流量异常变化趋势
例如,正常业务的流量在相对的时间范围内,往往具有固定的波动模式,假设我们发现某些业务流量突然发生了异常增高,或者某些相似特征的连接请求激增,则有可能表示该 VPC 下的机器或业务遭受了 DDoS 攻击,通过及时发现流量异常,可以帮助我们及时应对潜在威胁,避免网络安全损失。
(log-status : OK and version : 1 and action: ACCEPT) and direction: "in" and dstaddr: "172.16.0.8" | select __time__ - __time__ % 300 as t, srcaddr as ip_addr, count(bytes) as flows where ip_to_domain(srcaddr)='internet' group by t, ip_addr order by t,flows limit 1000000
告警响应
非预期的端口扫描
下面是一个短时间内来自未经授权的IP地址大量请求目标IP的多个端口的告警例子,例如 5 分钟内快速地请求 50 个以上不同的目标端口(如22、23、80、443、3389等)以识别开放的服务,这些请求在短时间内集中发生,可能表明自动化扫描工具的使用,暗示攻击者可能试图发现网络中的开放端口,寻找潜在的攻击向量,因此我们构建端口扫描威胁告警,可以配置如下告警查询语句。
1 (log-status : OK and version : 1) and direction: "in"|select * from (select dstaddr,srcaddr, count(dstport) as dst_port_nums from log where (srcaddr not like '100.127.%' and srcaddr not like '100.100.2.%') group by dstaddr,srcaddr order by dst_port_nums desc) where dst_port_nums >50 limit 10
当查询结果有数据时,即触发告警。
流量异常波动告警
正常业务的流量在相对的时间范围内,往往具有固定的波动模式,每一个异常的流量波动背后可能隐喻着存在的潜在的威胁事件,下面是一个具体的 VPC 流量异常告警案例,其具体统计为:如果当前5分钟 VPC 入流量,高于7天前 5分钟日志流量的最高值的 1.25倍,或低于 7 天前 5 分钟日志流量的最低值的 0.75 倍, 则发出告警。那么可以配置如下查询语句:
(log-status : OK and version : 1) and direction: "in" | WITH latest_5_min AS ( SELECT count(bytes) AS latest_sum FROM log WHERE __time__ > to_unixtime(current_timestamp) - 300 and __time__ < to_unixtime(current_timestamp) ), previous_time_buckets AS ( SELECT count(bytes) AS cnt, __time__ - __time__ % 300 AS t FROM log WHERE __time__ < to_unixtime(current_timestamp) - 300 and __time__ > to_unixtime(current_timestamp) - 7 * 24 * 3600 GROUP BY t ), agg_previous_5_min AS ( SELECT max(cnt) * 1.25 AS max_previous_threshold, min(cnt) * 0.75 AS min_previous_threshold FROM previous_time_buckets ) SELECT latest_sum, max_previous_threshold, min_previous_threshold FROM latest_5_min, agg_previous_5_min
其中告警触发条件为 latest_sum > max_previous_threshold || latest_sum < min_previous_threshold,然后配置具体的告警通知策略即可及时将流量异常通知到对应负责人中。
总结
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。