前言
大约是一年多前想往数据安全方面做些了解,后来也参加了DSMM四期的培训。算是对数据安全有了一个概览,不过依旧缺乏很多对细节的掌控。当然这里就不得不说阿里内部对此类学习培训提供的丰富资源和支持力度。虽然经历过培训,但之后的工作中其实关于数据安全部分参于的并不多(即便数据安全本身可以散在各个环节去做)。总之,现在有幸做了些微的数据安全工作,也想谈谈自己的想法/看法。
当然写这篇文章之前又再次看了几遍美团的这篇文章——互联网企业数据安全体系建设, 这篇文章给了我很多的视角。不过也可能下次请教作者的时候,作者又会说这是很久之前的了,现在已经改变了很多。可谓难以望其项背。
数据安全
数据安全的管控极为依赖管理层的支撑。常见的策略一些有三权分立,文档审计,双因子认证,访问控制等,在策略层确定后,落实就要靠制度了。形成明文规章,针对具体的细节都列在制度里(或者说是标准文档里),同时形成有效的审批流,依托工具做管控,人来做审批。另外需要注意的是隐私保护和数据安全的差异。隐私保护是实现数据安全的一部分,但更多的是以合规的形式出现的。和实际落地的“数据安全”还是有差异的。以下根据常见的划分方式,从采集到销毁浅谈一二。每个小节都可以通过全生命周期来考虑。
采集
未有数据的采集,从外到内,以业务为主据为己有。已有数据的采集,主机层信息,中间件日志等以基础设施为主采集。
- 设备唯一标识
无论是浏览器指纹,还是设备指纹,都是用各种算法去计算同样的用户行为,都是为了发现唯一。一种是自己能控制的环境,一种是自己无法控制的环境。比如浏览器指纹受限于浏览器引擎,难以读到更多的硬件信息。一种是可以通过植入的SDK读取硬件信息。 究其根本,也是从变中寻找不变呢。同个主机里的哪些信息是不变的,从软件到硬件,采集到信息,做出算法计算或摘要可以用来标识唯一设备。之外还有跨浏览器指纹,通过在不同浏览器上计算webgl的图形绘制,可谓在变中(浏览器)求不变(图形计算能力)。不过跨浏览器指纹不是很好用。反过来,为了计算设备唯一标识需要采集的数据需要注意隐私保护和合规问题。
- 账号安全
对于初创企业,薅一次羊毛,羊可能就死了。账号作为用户的登录凭证,黑灰产通过控制大量僵尸账号批量进行同种业务操作,将对业务造成非常大的损失. 如何识别风险行为和风险账号,是账号安全极为重要的一环,同时需要注意的是,任何一项数据安全的考虑,都可以重新从整个数据生命周期进行考虑。例如拿账号来说,是几级账号(vip,普通,svip),注册时采集了哪些信息,信息的等级分类,是否需要合规说明,怎么传输,怎么存储,数据是否要加密,如何提供删除和销毁接口,是软删除还是物理销毁,是否经过审批流等。
- IAM
账号是入门的凭证,权限就是打开保险箱的钥匙。 权限管理十分重要,主要针对的是内部系统及基础设施的管控。用户,权限,角色一一映射。同时认证方式,认证协议,开放端口无不需要考虑,以及权限的审批流和审计管理等等。同样,权限管理可以说是零信任的重中之重。让我们再试一次之前提到的全生命周期的思考方式,做IAM,IAM的数据有哪些?级别呢?怎么传输?怎么存储?提供认证的时候防火墙规则怎么设置?使用SSO还是LDAP,Corp和Site是不是要分开,数据又要怎么同步呢?是不是有统一的ACL系统?
- 可信计算
这里讲的应该算是可信计算的应用。基础安全构成可信计算环境,尤其是密码学相关。对于办公终端,设备和证书绑定。所以即便当你取得员工用户名密码也是无法登陆的,只有在预置证书的终端才能进行访问。移动终端的话同样做类似限制。方便移动办公的话,可以采用通用的虚拟入口,大部分只有只读策略。同样,常见的大厂都会在员工的终端预置大量的安全防护软件去构建可信环境。AV,DLP,EDR等。当然不清楚对于业务用户侧的反调试,防逆向算不算是可信环境,同样也会有一机一证书。或者我的理解有偏差,可信计算是不是为了得到可信环境。
- 反爬
无论是黑灰产,还是竞对、监管,获取一手数据都有着不可言喻的价值。如何防止通过公共接口,批量快速的获取数据是非常关键的一环。全链路反爬非常困难,通过端上的可信SDK采集相关信息,得到唯一标示,网络层代理识别,指标统计分析,同时结合威胁情报以及账号安全去做,同时贴合具体场景做rate limiter, captcha, deny 等,以及后续怎么做到平台化,粒度如何控制到api级别等等都是逐渐发展的。对比之前的工作经验,一个明显的区别就是之前是针对具体业务做反爬时才会去收集其对应的业务需求,开启相应的防御规则,灰度上线。而现在则将动作前置,在应用上线前,就让业务给出预期的rate limiter threshold,并针对具体api配置好策略,并开启观察模式。也可参考之前总结走出反爬困境
传输
- 全站TLS
包括对内对外系统的加密通讯,不仅是业务还有管理平台,审计系统,以及业务系统间调用的加密。例如grpc的调用采用tls协议。但同时还有两点需要注意的是,一个是注意TLS版本的漏洞问题,不要选择错了。二是证书的选择(算法支持,服务端又支持哪些tls suite?),生成,分发,存储。更新机制等等。当然甚至需要构建offline CA,RA以及内部构建多个中级子CA,或者换而言之是issuer CA. 对于istio这种内部系统做mtls的,不必要集成整个RA API,而使其作为单独的子CA,其他可参考之前的总结CA/RA的一点收益
- Keyless CDN
解决了无需私钥即可实现回源加密的问题。
- DAL
数据库访问层,基础功能是能够针对DB访问做到API服务化,同时针对数据库的查询操作进行审计。以及屏蔽应用对数据库的依赖。一般大型企业会自研该产品。回到上一条,还需要注意应用对db的访问是需要支持tls的。
存储
落盘数据均应加密,所以需要注意的就是怎么对数据做等级分类。完全公开的数据是不需要做存储加密的。 存储加密又分为卷加密,即文件系统加密。其次是文件加密,卷上落的文件,pdf,音视频文件等敏感数据都需要加密,同时,更通用的就是针对数据进行加密,例如账户信息,用户信息,log等。当然,除此之外,物理上的存储安全也需要重点关注。
- 文件系统加密
硬盘空卷加密,文件系统加密,见到的多是fuse的加密,例如ceph现在支持自动的落盘加密,但还是实验性质。k8s里用的pvc直接挂载ceph,能否单卷单密钥。办公系统的电脑开启加密,例如mac开启file vault.
- 文件加密
单文件加密,尤其是照片,或者活体认证的视屏都需要针对文件本身进行加密,但是文件类型不同,加密的方式也有所不同。PDF,Word都有自己的加密方式,mp4,avi也有对应的加密方式。需要注意的就是加密和编码解码是两回事。哈希算法是为了做摘要,并不是加密算法。加密也分对称和非对称。非对称的密钥一般以证书形式签发出来,除此之外 pgp 和 pki体系是有区别的。不同应用场景也有不同。主机文件,网络文件,谈到这里又不得不提针对上传文件做统一的防病毒网关。网络层和主机层均做检测。那么是batch加密还是实时加密呢?
- 密钥
密钥是一切加密的基础,真随机数的生成的原理不太懂,所以应用时根密钥还是主要是以HSM为主,分层密钥给到不同业务,制定统一的算法使用标准,包含强度,算法类型。加上考虑国内对算法的要求,尤其是国密算法在金融业的整改计划,当然密钥数据的同步和备份都应该着重关注。同时KMS做密钥管理,提供统一的api接口,最好KMS能直接对接到HSM上,当然国内的厂商套装产品仍待发力,用户体验较差。国外的产品又不适合国情。详细可以参考之前的记录KMS/HSM的一点收益
- 保险箱
保险箱和机房安全都属于物理安全部分,根密钥的备份数据存在哪里至关重要,一般来说密钥需要三人持有三段,合而为一。保险箱一般是钥匙加密码或者指纹加密码。如果极为重要的,保存单个片段的保险箱也应该有两个人管理。所以物理安全的访问除此之外,监控,录像,制度更是至关重要。但是切要注意,不要出现监控无用的情况。
交换
数据交换步骤一般是最容易出现泄漏的环节。由于场景较多,仅大体分为对内和对外。
对内
- 堡垒机
堡垒机毋庸置疑是访问server的关键,账户应该能够和域账号集成,至于是LDAP还是SSO则视堡垒机而定。当然根据前面的来看,还要看你有几个AD域。同时,针对数仓和运维的应该分开。在生产上ACL也要讲数仓所在的server和正常业务的server划开在不同网段。比如是在hrz, hrz_db, hrz_dw。
- 研发/运维分离
互联网企业似乎没有一个明文规定要这么做,但是在传统银行业十分常见。甚至一些银行会设置专门的HVR,部署相应的监控和录像设备对需要访问生产网的研发进行监控。而正常情况,研发的数据均通过运维部署上线。但在互联网行业,迭代较快,同时所谓扁平化,也会造成一定的情绪影响。
对外
简单来分为授权,未授权,无需授权。正常来说,针对开放平台、合作伙伴之间的。对于重要的合作伙伴,需要走专线,前置机。特定的人拿到特定的证书或密钥。开放平台则是最容易出现问题的地方,开放平台的账号治理和反爬也是非常重要。 至于防止下游缓存,这一点之前倒是没有想到。根据之前学到的经验是使不标准环境标准化,强制接入sdk,迁入统一环境。
内外之间
主要关注三块,一是合规,数据能否透出去?是否遵循隐私声明,是否授权审核? 二是技术层面,如果不允许,是不是做了DLP,DLP失效后,是不是有明暗水印可以追踪。常见的数据是不是已经做了脱敏,这样即使传输出去影响也会减小,怎么样脱敏,怎么样匿名化?又有哪些需要?
销毁
软件擦除和物理粉碎。同样满足销毁条件之后,在安全环境内,一般指在HVR,多人在监控等手段进行操作,一般是进行物理粉碎。当然数据全盘加密销毁密钥也是一个很好的方法。
其他
有些人出书却是一套一套的。真是自信就好? 著书立说可不是糊弄。
在引用之前资料的时候,发现似乎很多的图片都不能加载,我一般是用gist做图床的,应该都被block了。网络“正常”才能显示的出来。
无论是从基础安全角度看架构,还是看数据安全架构。数据安全绝非孤立基础安全之外,基础安全也包含着数据安全部分。说着都很简单,其实你能理解两三分已经不错了。真正去做的时候更全是细节。可别说看懂了,再说看懂了可就是骂人了
种地人有种地人的苦,读书人有读书人的苦。脾气和心态很重要。脾气要小,心态要好。