云上数据安全保护:敏感日志扫描与脱敏实践详解

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
性能测试 PTS,5000VUM额度
简介: 随着企业对云服务的广泛应用,数据安全成为重要课题。通过对云上数据进行敏感数据扫描和保护,可以有效提升企业或组织的数据安全。本文主要基于阿里云的数据安全中心数据识别功能进行深入实践探索。通过对商品购买日志的模拟,分析了如何使用阿里云的工具对日志数据进行识别、脱敏(3 种模式)处理和基于 StoreView 的查询脱敏方式,从而在保障数据安全的同时满足业务需求。通过这些实践,企业可以有效降低数据泄漏风险,提升数据治理能力和系统安全性。

作者:羿莉


01 背景


对企业数据进行敏感数据扫描和保护可以提升企业或组织的数据安全。一方面敏感数据可能包括个人身份信息、财务记录、医疗记录等,定期扫描这些数据可以防止未经授权的访问和泄露。另一方面,许多国家和地区都有关于数据保护的法律法规,如 GDPR(通用数据保护条例)和数据安全法等。敏感数据扫描有助于组织遵守这些法规,避免法律处罚。此外,定期进行敏感数据除了可以降低数据泄漏的风险和损失,还有助于数据治理、提升数据质量,改善系统的整体安全性。


02 方案设计


不同的敏感数据扫描工具,都具备最基本的安全能力,即发现敏感数据,进行数据分类。下面我们将基于阿里云数据安全中心[1]的敏感数据扫描功能[2],验证如何进行阿里云上的日志数据分类分级识别,以及如何洞察日志资产中的敏感数据,并如何跨日志库进行数据的分析和处理。

image.png

我们的方案步骤将在下文详细展开。


2.1 接入脱敏方案

接入脱敏方案主要分为两个阶段,一个是接入阶段,一个是迭代优化阶段在接入阶段,我们首先分析采样日志,然后配置 SLS[3]脱敏接入方式,最后通过 DSC[4]的敏感扫描识别结果,验证脱敏效果。在看护优化阶段,我们在 DSC 创建周期性的扫描识别任务,持续优化我们的脱敏配置。

接入阶段

分析采样日志

在进行正式接入之前,我们需要先人工分析日志内容,找到数据中的敏感字段,例如根据不同行业(汽车、互联网、医疗等)定义不同的数据标签、例如个人敏感信息、医疗数据隐私、金融交易记录等。

SLS 脱敏接入

人工识别得到敏感数据后,我们有 3 种采集+脱敏的 Pipeline 的组合流程:

  • Logtail 端侧脱敏(数据流 1):配置 SLS Logtail[5]采集后,在端侧进行处理脱敏,然后写入 SLS 日志库中, 端侧脱敏处理方式也分以下 2 种:
  • 通过配置处理插件(数据脱敏[6]),通过正则匹配完成敏感字段的替换
  • 或通过多级处理语句配置 SPL 解析[7]处理脱敏
  • Logtail + Ingest Processorer 脱敏(数据流 2)组合:对于日志产生速度较高,且需要进行大量正则处理的场景,iLogtail 本身也会占用大量系统资源。为了避免高强度的资源占用严重影响服务器上的其他业务进程,可以在 Logtail 端侧仅配置采集任务,然后通过 Ingest Processorer (写入处理器)配置 SPL 语句在日志服务侧完成脱敏处理。
  • SDK+ Ingest Processorer 脱敏(数据流 3)组合:除了通过 Logtail 采集日志外,我们还可以基于 SDK[8]通过接口调用完成日志写入,通过 Ingest Processorer[9]里设置脱敏语句,脱敏处理在日志服务中完成,不占用端侧资源。

DSC 敏感扫描

进入到数据安全中心控制台,完成 SLS 数据资产[10]授权后,可以在数据洞察[11]中,通过自定义识别任务,选中扫描的资产范围和扫描的时间范围,对 SLS 资产进行敏感扫描采样。扫描完成后可以在资产透视[12]中看到,具体的敏感等级和敏感数据采样结果。

迭代优化

得到敏感数据扫描结果后,我们可以根据扫描结果不断优化和调整脱敏配置,从而减少敏感数据的暴露,以及应对新日志数据类型接入带来的脱敏问题。可以在 DSC 数据洞察中,设置周期性扫描[13]任务,按照每天、每周或每月的频率扫描 sls 资产,运维人员或管理人员定期查看敏感数据风险信息。


2.2 查询脱敏方案

前文介绍的场景,日志在存储日志库之前可以配置脱敏,然而真实的日志落库场景并不总是如此。有些业务日志需要完整地写入日志库中存储,但是又不想将敏感信息暴露给使用人员,有些业务日志需要结合存储在其他 Store 的业务日志一起联合查询,这时候我们可以采用 StoreView 的方式,既可以通过 SPL 语法[14]预定义关联的 Store 实现日志脱敏查询,又可以对不同的 Logstore 进行联合查询从而拓展内容边界。


03 场景详情


3.1 构造数据

我们假设用户是一家全球电子商务公司,该公司收集并存储来自世界各地客户的购买和付款信息。本次数据构造场景发生在公司的某个商品交易团队,会在日志中打印商品交易的信息,例如交易单号、客户名、购买物品、物品数量,以及一些客户的敏感数据例如交易发生的 IP 地址、客户的邮箱和联系方式等信息。如果该公司打印未编辑的敏感信息(例如信用卡号和电子邮件地址)到日志环境中,那么一旦日志数据被泄露,他们可能会面临法律后果,甚至可能违反数据隐私法。本次实践,我们基于 Mockaroo[15]构造商品购买记录日志,日志数据字段包含以下几列内容:


字段名 说明 是否包含敏感
customer_name 客户名
product_name 物品名
quantity 物品数量
price 物品价格
purchase_date 购买日期
shipping_address 邮寄地址
payment_method 付款方式
transaction_id 交易单号
delivery_status 投递状态
email 邮箱
ip_address 下单 IP
creadit_card 信用卡号
phone_number 联系方式


下面是包含敏感数据的模拟日志示例:


{"customer_name":"Clarita Bassick","product_name":"Wine - Rhine Riesling Wolf Blass","quantity":88,"price":865.08,"purchase_date":"11/21/2024","shipping_address":"4 Twin Pines Terrace","payment_method":"PayPal","transaction_id":1,"delivery_status":"In Transit","email":"cbassick0@npr.org","ip_address":"199.224.149.82","creadit_card":"56022548472842990","phone_number":"+27 380 246 6745"}{"customer_name":"Barbie Demaine","product_name":"Juice - Orange, 341 Ml","quantity":56,"price":298.24,"purchase_date":"11/20/2024","shipping_address":"7597 Becker Circle","payment_method":"PayPal","transaction_id":2,"delivery_status":"Pending","email":"bdemaine1@ifeng.com","ip_address":"208.175.140.6","creadit_card":"56022153806547181","phone_number":"+7 131 245 1815"}{"customer_name":"Dotty Ossipenko","product_name":"Beer - Blue Light","quantity":29,"price":884.78,"purchase_date":"11/18/2024","shipping_address":"84 Sachs Street","payment_method":"Credit Card","transaction_id":3,"delivery_status":"In Transit","email":"dossipenko2@omniture.com","ip_address":"130.200.127.172","creadit_card":"560224195737574955","phone_number":"+57 264 240 2814"}


我们可以通过阿里云 logtail[16]Agent 以 json 解析[17]的处理方式解析原始日志,或通过 SDK 调用 api,将数据采集到阿里云 SLS 中的 Project/logstore 下,用于后续存储和查询,模拟日志内容如下:

image.png


04 接入时脱敏


4.1 Logtail 端侧脱敏

脱敏插件方式

下面我们展示如何通过 logtail 插件配置数据脱敏(原生),减少日志中敏感数据的暴露程度,做到在数据采集端侧完成脱敏处理,保护数据安全。


在 Logtail 的处理配置中, 首先 JSON 解析插件展开字段,然后选择数据脱敏插件,依次配置脱敏如下:

image.png

下表是各个字段进行脱敏处理的配置详情:

image.png


下图是日志数据脱敏前后的对比效果,从直观查看的角度,目前的敏感数据在日志中得到很好的隐藏和保护。

image.png

image.png

SPL 处理方式

当然除了在 Logtail 采集配置中使用插件组合配置脱敏,我们还可以使用 SPL 管道语言的处理模式,先通过 parse-json 命令展开字段,然后将各个敏感字段进行正则替换。

image.png

*| parse-json content 
| extend creadit_card=regexp_replace(creadit_card, '\d{12}$','***********')
| extend customer_name=regexp_replace(customer_name, '\S{4}$','******')
| extend phone_number=regexp_replace(phone_number, '\S{3}\s\S{4}$','*** ****')
| extend ip_address=regexp_replace(ip_address, '\d{1,3}.\d{1,3}$','**.**')
| extend email=regexp_replace(email, '\S+@','****@')
| project-away content


处理后的脱敏效果如下:

image.png


4.2 Logtail + Ingest Processorer 脱敏

为了避免高强度的资源占用严重影响服务器上的性能,可以在 Logtail 端侧仅配置采集任务,然后通过 Ingest Processorer (写入处理器)配置 SPL 语句在日志服务侧完成脱敏处理。


首先,创建 logtail 采集配置,此处 logtail 页面无需配置任何处理方式。通过 Logtail 采集配置写入日志后,此时写入的内容为原始的未经处理的文本日志。

image.png

然后我们介绍如何基于Ingest Processorer 处理器在日志服务侧进行日志脱敏处理,下面展开详细的操作步骤。

创建写入处理器(Ingest Processor)

在当前 project 下创建数据处理器,贴入 SPL 处理语句(语句见前文 SPL 处理方式。)

image.png

关联写入处理器

然后我们修改 logstore,将其关联写入处理器。

image.png

这时候再去查看日志,发现日志已经按照期望正确脱敏。

image.png


4.3 SDK + Ingest Processorer 脱敏

SDK 写入日志

除了支持 Agent 采集日志外,SLS 还提供了 OpenAPI[18]支持用户将打印的日志通过接口直接写入日志库中。开发人员可以使用 .NET、.NET Core、Java、Python、PHP、Node.js、C、Go、iOS、Android、C++ 等语言的 SDK 采集、查询和分析日志等。具体的写入步骤,可以直接参阅文档[19]或相关示例[20],本文不做展开。


后续的脱敏工作(创建写入处理器、关联写入处理器流程)和前文(Logtail + Ingest Processorer 脱敏)的步骤流程完全相同,用户可以自行调试优化,也可以达到将日志脱敏的效果。


05 敏感数据扫描


首先我们会介绍如何创建 SLS 日志资产的扫描任务及具体步骤,然后将展开脱敏处理前后,扫描结果的命中详情进行对比,最后我们将创建周期性扫描任务,用于应对未知敏感数据的识别和持续监控。


5.1 创建扫描任务

资产授权

我们进入到数据安全中心控制台[21],授权资产管理 SLS 中的存放敏感数据的 logstore,然后点击一键连接,授予数据安全中心对 SLS 日志资产的管理权限。

image.png

配置识别模板

DSC 内置了一些识别模板用于作为敏感数据分类与分级的依据。一个识别模板是一个或多个识别模型的组合,一个识别模型是一个或多个识别特征的集合。


例如 DSC 根据《阿里巴巴集团数据安全分类分级实践》制定了互联网行业分类分级模板,在互联网行业分类分级模板中,又包含了各类丰富的敏感信息的识别模型,例如密钥敏感信息下的 AccessKeyId 识别模型,在 AccessKeyId 模型中则定义了 AccessKeyId 的基本特征。基于这些特征,辅以模型规则配置和识别阈值配置,DSC 可以从海量数据中识别到与之匹配的 AccessKeyId 数据。

image.png

创建扫描任务

然后我们进入数据洞察界面,基于具体的业务日志详情,配置相应的分级模板,也可以直接使用内置模板,例如互联网行业分类分级模板。

image.png

然后我们在数据洞察中,新建识别任务,选择指定模板,扫描我们的 sls 资产。

image.png

image.png

等待扫描任务启动,扫描状态显示已完成。

image.png


5.2 脱敏前后对比

然后进入到数据安全中心控制台的数据洞察,资产透视界面,选择资产类型 SLS,查询扫描命中结果。

image.png

脱敏处理前

对于未脱敏的 SLS 日志数据,扫描完成后可以查看扫描得到的敏感信息、敏感等级、敏感数据采样等。可以发现,诸如邮箱、IP 地址、电话号码、姓名等敏感信息可被检测识别到。

image.png

image.png

脱敏处理后

按照前文方式配置脱敏后,接下来,我们进入数据安全控制台,重新进行敏感数据扫描,创建扫描识别任务,透视脱敏处理后的 SLS 日志资产。


我们可以看到,经过数据脱敏存储后,此时信用卡号、顾客姓名、邮箱、IP 地址、电话号码均做了脱敏处理,再次运行数据安全的敏感数据扫描,只命中了一个内网 IP 地址(记录日志采集的 ip),此时数据隐私性得到极大改善。

image.png


5.3 周期扫描

当扫描任务完成后,我们可以根据扫描结果不断优化和调整脱敏配置,从而减少敏感数据的暴露,以及应对持续的新日志数据类型接入带来的新的脱敏问题。用户可以在数据安全中心数据洞察中,设置周期性扫描任务,支持按照每天、每周或每月的频率扫描 sls 资产。

image.png


06 查询时脱敏


前文介绍,日志落库之前的脱敏及扫描详情,下面我们介绍如何在日志已经完整落库(含敏感内容)SLS 之后,通过 StoreView 配置 SPL 等方式,实现数据价值的最大化利用。

image.png


6.1 权限隔离

业务日志由不同的应用程序、服务、云产品生成,存储在不同地域的 Project 或同一地域的不同 LogStore 中。对于用户日志数据而言,不同 logstore 本身就处于不同的暴露等级中。最好的日志隔离方式就是对不同暴露级别的数据,配置不同的 logstore 单元的访问权限。针对不同使用角色,建立针对性的 Logstore 资源分级访问控制(RAM )制度可以有效地保护数据安全。例如后台管理人员只可以看到交易记录日志,不能看到广告投放数据。


6.2 StoreView

假设对于运营人员,虽然其掌握了广告投放数据,但是出于精准营销的目的,想要分析广告投放对不同顾客的交易转化提升效率,此时运营人员需要将广告投放日志结合交易记录日志进行综合分析。这时候,运营人员可以通过 SLS 的 StoreView 功能,跨 Store 的去查询交易记录日志。

跨 Store 查询

此时的 StoreView 并非实体资源,而是跨 Store 的虚拟资源,用于保存多个 Store 之间的关联关系。运营人员可以查询指定 StoreView 下的日志数据。

image.png

此时通过保留字段 __tag__:project__ 和 __tag__:__logstore__ 可以查看日志分别来自哪一个 Project/Logstore。

image.png

SPL 脱敏预定义

要注意的是,此时的联合查询,运营人员可以看到完整的用户交易信息,包括用户邮箱、信用卡号、联系方式等个人信息。完整的信息暴露是不安全且不合规的,我们可以修改我们的 StoreView,通过 SPL 实现对数据预脱敏处理,然后交给运营人员查询处理,脱敏处理后的日志库查询,从而有效避免用户信息泄露的风险。


*
| extend creadit_card=regexp_replace(creadit_card, '\d{12}$','***********')
| extend customer_name=regexp_replace(customer_name, '\S{4}$','******')
| extend phone_number=regexp_replace(phone_number, '\S{3}\s\S{4}$','*** ****')
| extend ip_address=regexp_replace(ip_address, '\d{1,3}.\d{1,3}$','**.**')
| extend email=regexp_replace(email, '\S+@','****@')

image.png

此时再去 StoreView 查询结果如下,查询结果已经脱敏,我们可以放心地将 StoreView 的查询结果暴露给运营人员,从而有效保护用户交易隐私。

image.png


07 总结


随着企业对云服务的广泛应用,数据安全成为重要课题。通过对云上数据进行敏感数据扫描和保护,可以有效提升企业或组织的数据安全。本文主要基于阿里云的数据安全中心数据识别功能进行深入实践探索。通过对商品购买日志的模拟,分析了如何使用阿里云的工具对日志数据进行识别、脱敏(3 种模式)处理和基于 StoreView 的查询脱敏方式,从而在保障数据安全的同时满足业务需求。通过这些实践,企业可以有效降低数据泄漏风险,提升数据治理能力和系统安全性。


点击此处,访问可观测中文社区,了解更多技术干货~


相关链接:

[1] 数据安全中心

https://yundun.console.aliyun.com/?spm=a2c6h.12873639.article-detail.7.33c05239LfPs4H&p=sddp#/overview/cn-zhangjiakou

[2] 敏感数据扫描功能

https://help.aliyun.com/zh/dsc/data-security-center/user-guide/manage-identification-tasks

[3] SLS

https://help.aliyun.com/zh/sls/?spm=a2c6h.12873639.article-detail.9.33c05239LfPs4H

[4] DSC

https://help.aliyun.com/zh/dsc/

[5] Logtail

https://help.aliyun.com/zh/sls/user-guide/use-logtail-to-collect-data

[6] 数据脱敏

https://help.aliyun.com/zh/sls/user-guide/desensitization-treatment

[7] SPL 解析

https://help.aliyun.com/zh/sls/user-guide/use-logtail-spl-to-parse-logs

[8] SDK

https://help.aliyun.com/zh/sls/developer-reference/overview-of-log-service-sdk

[9] Ingest Processorer

https://help.aliyun.com/zh/sls/user-guide/overview-of-sls-data-processing

[10] SLS 数据资产

https://help.aliyun.com/zh/dsc/data-security-center/user-guide/unstructured-data-oss-authorization

[11] 数据洞察

https://help.aliyun.com/zh/dsc/data-security-center/user-guide/manage-identification-tasks

[12] 资产透视

https://help.aliyun.com/zh/dsc/data-security-center/user-guide/view-sensitive-data-identification-results

[13] 周期性扫描

https://help.aliyun.com/zh/dsc/data-security-center/user-guide/manage-identification-tasks?spm=a2c6h.12873639.article-detail.19.33c05239LfPs4H#533b0620302dr

[14] SPL 语法

https://help.aliyun.com/zh/sls/user-guide/spl-overview?spm=a2c6h.12873639.article-detail.20.33c05239LfPs4H&scm=20140722.S_help@@%E6%96%87%E6%A1%A3@@2536529.S_BB1@bl+RQW@ag0+BB2@ag0+os0.ID_2536529-RL_spl%E8%AF%AD%E6%B3%95-LOC_search~UND~helpdoc~UND~item-OR_ser-V_4-P0_0#67a977403d4dc

[15] Mockaroo

https://www.mockaroo.com/

[16] 阿里云 logtail

https://help.aliyun.com/zh/sls/user-guide/use-logtail-to-collect-data

[17] json 解析

https://help.aliyun.com/zh/sls/user-guide/json-parsing

[18] OpenAPI

https://help.aliyun.com/zh/sls/developer-reference/api-sls-2020-12-30-putlogs

[19] 文档

https://help.aliyun.com/zh/sls/developer-reference/overview-of-log-service-sdk

[20] 相关示例

https://help.aliyun.com/zh/sls/developer-reference/use-the-java-sdk-to-write-logs

[21] 数据安全中心

https://yundun.console.aliyun.com/?p=sas#/overview/home/cn-hangzhou

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
5天前
|
存储 运维 安全
云上金融量化策略回测方案与最佳实践
2024年11月29日,阿里云在上海举办金融量化策略回测Workshop,汇聚多位行业专家,围绕量化投资的最佳实践、数据隐私安全、量化策略回测方案等议题进行深入探讨。活动特别设计了动手实践环节,帮助参会者亲身体验阿里云产品功能,涵盖EHPC量化回测和Argo Workflows量化回测两大主题,旨在提升量化投研效率与安全性。
云上金融量化策略回测方案与最佳实践
|
7天前
|
人工智能 自然语言处理 前端开发
从0开始打造一款APP:前端+搭建本机服务,定制暖冬卫衣先到先得
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
7907 19
|
11天前
|
Cloud Native Apache 流计算
资料合集|Flink Forward Asia 2024 上海站
Apache Flink 年度技术盛会聚焦“回顾过去,展望未来”,涵盖流式湖仓、流批一体、Data+AI 等八大核心议题,近百家厂商参与,深入探讨前沿技术发展。小松鼠为大家整理了 FFA 2024 演讲 PPT ,可在线阅读和下载。
4308 10
资料合集|Flink Forward Asia 2024 上海站
|
19天前
|
人工智能 自动驾驶 大数据
预告 | 阿里云邀您参加2024中国生成式AI大会上海站,马上报名
大会以“智能跃进 创造无限”为主题,设置主会场峰会、分会场研讨会及展览区,聚焦大模型、AI Infra等热点议题。阿里云智算集群产品解决方案负责人丛培岩将出席并发表《高性能智算集群设计思考与实践》主题演讲。观众报名现已开放。
|
11天前
|
自然语言处理 数据可视化 API
Qwen系列模型+GraphRAG/LightRAG/Kotaemon从0开始构建中医方剂大模型知识图谱问答
本文详细记录了作者在短时间内尝试构建中医药知识图谱的过程,涵盖了GraphRAG、LightRAG和Kotaemon三种图RAG架构的对比与应用。通过实际操作,作者不仅展示了如何利用这些工具构建知识图谱,还指出了每种工具的优势和局限性。尽管初步构建的知识图谱在数据处理、实体识别和关系抽取等方面存在不足,但为后续的优化和改进提供了宝贵的经验和方向。此外,文章强调了知识图谱构建不仅仅是技术问题,还需要深入整合领域知识和满足用户需求,体现了跨学科合作的重要性。
|
7天前
|
人工智能 容器
三句话开发一个刮刮乐小游戏!暖ta一整个冬天!
本文介绍了如何利用千问开发一款情侣刮刮乐小游戏,通过三步简单指令实现从单个功能到整体框架,再到多端优化的过程,旨在为生活增添乐趣,促进情感交流。在线体验地址已提供,鼓励读者动手尝试,探索编程与AI结合的无限可能。
三句话开发一个刮刮乐小游戏!暖ta一整个冬天!
|
1月前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
104579 10
|
7天前
|
消息中间件 人工智能 运维
12月更文特别场——寻找用云高手,分享云&AI实践
我们寻找你,用云高手,欢迎分享你的真知灼见!
619 39
|
4天前
|
弹性计算 运维 监控
阿里云云服务诊断工具:合作伙伴架构师的深度洞察与优化建议
作为阿里云的合作伙伴架构师,我深入体验了其云服务诊断工具,该工具通过实时监控与历史趋势分析,自动化检查并提供详细的诊断报告,极大提升了运维效率和系统稳定性,特别在处理ECS实例资源不可用等问题时表现突出。此外,它支持预防性维护,帮助识别潜在问题,减少业务中断。尽管如此,仍建议增强诊断效能、扩大云产品覆盖范围、提供自定义诊断选项、加强教育与培训资源、集成第三方工具,以进一步提升用户体验。
626 243
|
1天前
|
弹性计算 运维 监控
云服务测评 | 基于云服务诊断全方位监管云产品
本文介绍了阿里云的云服务诊断功能,包括健康状态和诊断两大核心功能。作者通过个人账号体验了该服务,指出其在监控云资源状态和快速排查异常方面的优势,同时也提出了一些改进建议,如增加告警配置入口和扩大诊断范围等。