背景
笔者就职于一家Global公司的通信研究院,负责国内智能家居的IoT业务,每天需要和IoT业务上亿条日志打交道,并且有跨团队数据分享的需求。但传统的数据共享手段均存在一定不足,无法兼顾高效与安全,给笔者的工作带来一定困扰:
(1)截图分享,虽然很容易对敏感字段打上"马赛克",但传递的信息十分有限,对方很难通过一张张图片拼凑出问题的全貌,以至于双方需要通过大量的文字或语音沟通来描述问题现象。
(2)发送原始日志,发送方需要将日志从Server上取下来,仔细检查是否有敏感信息存在,经过脱敏处理之后再发送给协作方。如果网络不给力,日志传输过程也会较长,浪费双方时间。
(3)远程桌面共享,由于双方能同时进行画面共享、语音沟通,信息传递效率很高,但却无可避免地会让敏感数据暴露无疑,非常容易导致信息泄露。
需求分析
公司从2023年开始与观测云进行合作。观测云是一家提供一站式系统可观测性的云服务供应商,其"快照"和分享功能很好地满足了笔者和团队对日志数据进行高效且安全分享的需求:
第一,我们希望拥有分享动态快照的功能,快照能够带上过滤条件和给定时间范围,接收方打开该快照时无需重复进行条件过滤便能获得发送方想要展示的数据。接收方最好还能对"快照"进行下钻分析。总而言之,这个快照要是"活"的,而非静态的一张张图片。
第二,我们希望对快照中的数据进行有效脱敏,无论是日志原文,还是经过日志解析处理之后得到的扩展字段,只要是包含敏感数据,都要经过脱敏之后再分享出去。
第三,在分享快照之前能够进行预览,避免发送出去之后才发现有字段忘记了脱敏,事后难以撤回造成严重的信息安全事件。
使用观测云进行快照分享的操作过程
第一步,采集日志并进行必要的日志解析
笔者公司的IoT业务主要承载在AWS的EC2云主机和EKS容器上。观测云通过统一采集器Datakit实现了日志数据的统一收集,并通过可视化pipeline组件进行日志处理。这里因篇幅所限,不做展开描述。
第二步,正则表达式管理
观测云的"正则表达式"功能包含了"自定义""模板库"两大类别,其中官方模板库包含国内外数据安全法律法规中所定义的敏感数据,分为以下几个小类:
l 网络和信息设备扫描------如IP地址、Mac地址、HTTP URL地址;
l 个人敏感信息------如邮箱地址、境外护照号码、境外社保卡号等;
l 海外信用卡------如运通卡、Master卡、Visa卡等;
l 密钥凭证------如云厂商AK/SK,Google API key等。
这些敏感数据所对应的正则表达式,观测云已经默认提供,需要的话可以直接引用。
如果官方模板库不能满足团队需求,也可以自定义规则库。例如日志中可能存在用户的手机号码,因此可以自定义一个"国内手机号码"的脱敏规则,如下图所示:
css
规则名称:国内手机号码
正则表达式:^1[3456789]\d{9}$
规则库:个人敏感数据(此处默认为空,输入新名称即为新建)
在填写完成后可以通过"预览"功能进行脱敏预览,可以看到输入的11位手机号码被成功脱敏为了***,符合预期。点击"确认"即可保存退出。
第三步,创建快照
下面笔者以一份包含IP的日志为例,演示快照的创建和分享。如下图所示,IP地址直接显示在日志列表中。
如果点开某条日志,可以看到IP地址总共出现3次,分别是在日志原文、host、host_ip中。这时你可能会开始担心是否需要对多个字段进行分别脱敏,毕竟一个不小心少脱敏一个字段,也就意味着信息的泄露。我们先保持悬念,继续进行下一步。
按下键盘组合键Ctrl+K,即可弹出"保存快照"的窗口,在输入自定义的快照名称后,其他选项保持默认即可。
点击确定,观测云会提示"快照保存成功",此时点击"分享快照"。
第四步,分享快照
在"基础配置"配置这里,我们可以选择快照的有效时间,分享方式为公开或加密等多种安全相关的选项。
在"数据脱敏"选项这里,刚才的悬念在这里得以揭晓:观测云支持填入"*",即表示将正则表达式应用于所有字段,这样一来无论是日志原文(message字段),还是扩展字段都可以被成功匹配,用户无需担心漏脱敏某个字段。
下图即表示对日志的所有字段应用"IPv4地址扫描"的规则。
PS:这里支持多选正则表达式,即可以从下拉菜单中勾选多条规则。勾选的方式免除了用户需要每次都手动书写正则表达式的烦恼。
如果再点击"创建分享",就可以获得一个快照链接了,但更建议的操作是先进行"预览快照",点击该按钮即可预览脱敏的效果。
于是,浏览器打开新窗口并展示了这条日志。不出所料,日志的原文、host字段、host_ip字段中的IP都被脱敏为了***,符合笔者预期。
这时可以放心点击"创建分享"获得快照链接了,我们可以关注到在弹窗上方提示了这个快照的筛选条件,这意味着分享刚才的筛选条件将得以在快照中保留,这也是让笔者觉得观测云十分贴心的地方。
成功获得快照链接后,只需要点击"复制链接",即可将URL复制到电脑的剪贴板,就可以直接发送给对方了。
获得该链接的一方只要在浏览器中输入该URL,即可打开分享者的视图,时间段和筛选条件均得以保留,整个日志列表中的IP字段都被完全脱敏。
点开单条日志,原文和扩展字段中的IP地址都被成功脱敏。
如果在观测云接入了比较完整的观测数据,快照中还会关联主机、容器、链路等观测数据。如下图所示,切换到快照中的"Pod"标签即可查看本条日志所在pod在这段时间内的CPU和内存使用率。这意味着用户可以相对自由地在这些视图中进行切换,以便从多个角度全方位地对问题进行分析。
总结
在操作过程中,我们还可以看到快照除了对敏感字段进行脱敏以外,数据的安全性也有足够的保障:
l 快照保存时间可控制------避免快照长时间保存而带来的数据泄露风险
l 分享方式可选择"公开分享""加密分享"------需要输入正确密码才可以打开快照
l 可选择在快照中打水印------确保数据泄露后可溯源
l 支持通过IP白名单进行访问限制------只有从特定IP或IP段才可以访问快照。
以上就是通过观测云的"快照分享"功能实现数据高效、安全共享的一个典型操作。如果你经常有跨团队共享数据的场景,并且对脱敏问题烦恼不已的话,相信该功能可以让你收获惊喜。