近几年,系统安全方面的体系建设日渐完善。但数据安全方面,并没有看到一个完善的体系出来,更多谈的是数据相关的规章制度。它就是阿喀琉斯的脚后跟,稍微干一下,就跪了。技术能力方面,在数据安全方向似乎是缺位的。系统安全方向的红蓝对抗正在以肉眼可见的速度推动着系统安全体系的完善,但数据安全方面,我们甚至很难定义出一个红蓝对抗的样板出来。
我们的技术在发展,但要应用在数据安全方面,我们的各种技术仿佛是打在了棉花上。
各个公司都会大谈特谈自己如何保护客户数据,用户第一。
但要是撕开为客户负责这样温情的面纱,从公司生存的角度,数据安全最重要最基础的奥义就是合法合规。然后是保密。这里前一个是防止客户数据泄露,一个是防止自己的数据泄露。
无论是欧盟的GDPR,还是国内的网络安全法,都对敏感数据做了定义,对数据泄露事件定义了处罚条款。
拒不履行信息网络安全管理义务,致使用户信息泄露,具有下列情形之一的,应当认定为刑法第二百八十六条之一第一款第二项规定的“造成严重后果”:
(一)致使泄露行踪轨迹信息、通信内容、征信信息、财产信息500条以上的;
(二)致使泄露住宿信息、通信记录、健康生理信息、交易信息等其他可能影响人身、财产安全的用户信息5000条以上的;
(三)致使泄露第一项、第二项规定以外的用户信息50000条以上的;
第二百八十六条之一【拒不履行信息网络安全管理义务罪】网络服务提供者不履行法律、行政法规规定的信息网络安全管理义务,经监管部门责令采取改正措施而拒不改正,有下列情形之一的**,处三年以下有期徒刑、拘役或者管制,并处或者单处罚金:**
(一) 致使违法信息大量传播的;
(二) 致使用户信息泄露,造成严重后果的;
要做到完全消灭掉任何数据安全的潜在威胁,只需要不碰任何敏感数据就行了。但其实这是一个巨扯淡的事情。在大数据时代,数据已经成了基础的生产要素。不做任何数据分析,那广告推荐这类的业务,个性化的业务也就统统无从谈起了。
数据安全归根到底就是在数据的可用性和数据的安全性之间取得一个平衡。
数据生命周期包括收集,传输,存储,使用,共享和销毁。
我们经常遇到以下几种数据泄露场景:
数据采集违反了法律法规,这个最近有很多App被通报。Tiktok还因为访问剪贴板的问题被老美拉出来锤。
数据传输使用http,运营商天生就能拿到这些数据。有的用来弹广告,有的用来搞营销,更有甚者用来搞诈骗。
数据存储在第三方基础设施上,第三方天生可获得这些数据
数据存储存在未授权访问漏洞
数据使用存在漏洞,可绕过鉴权
数据使用者是内鬼
数据共享到第三方,第三方存在以上任意一个问题
数据的存储介质销毁的不彻底
这里我们不谈同态加密,不谈差分隐私这些中小公司很难落地实践的技术。
仅仅谈下针对常见的数据安全威胁场景,我们要建立怎样的技术体系。
我个人认为,Gartner先前提到的针对系统安全方向的自适应安全体系也适用于数据安全。
定好规范,做好教育。做好业务数据的识别,定义好隐私数据
识别数据资产
围绕数据的使用者,使用方式,传输链路构建数据场景,要求覆盖最典型最常见的业务场景。例如,很多公司的客服部门都能访问用户的一些敏感数据,用来帮用户排查遇到的问题。这就是一类典型的场景。还有很多公司的外包员工需要访问代码库以及敏感业务系统,这也是一类典型场景。又或者商业智能团队的大数据分析建模,需要访问大量数据,也是一种典型场景。用户在登录状态下本身就要访问自己的数据,也是一种典型场景。
对数据采集,数据传输,数据存储定义好规范,做好加固,避免通过http传输,避免数据库直接暴露对外。
在构建完数据场景后,对数据访问渠道进行收敛。例如不允许任何员工直接查表,必须通过Web Portal进行访问。
对数据共享定义好资质审核,并做到最小化共享。
数据安全很多公司都定义了非常多的规范。但因为没有技术支撑,导致这些规范难以检查,没法闭环。人人都宣称自己遵从,缺乏技术支撑,只能选择相信他。
如何使用技术检查是否符合数据安全规范?
扫描表结构,识别敏感数据资产
扫描代码,识别敏感数据
通过流量检测系统,被动识别敏感数据传输
通过攻击排查,主动发现敏感数据传输通道和问题
对涉及敏感数据使用的系统进行漏洞排查
对任何使用数据的人员行为进行监控,识别异常
存在鉴权问题的数据库
敏感数据乱存储,在用户电脑,服务器,第三方网盘,github均存储
数据安全问题的响应主要是两个问题:
哪个数据资产,哪个口子出去的?
最有可能是谁把数据搞出去的?
如果我们所有数据的查询都是接口化的,那我们应该是可以讲清楚,最有可能哪几个api泄露了上面的数据。国内目前有不少公司在做api安全的方案。包括全知科技,思睿嘉得等。这确实是一个非常好的切入点。
之后我们就要尝试讲清楚,谁把数据搞出去了。
针对内网敏感系统,截图类的,水印技术已经比较成熟了。可以在图片中内置水印。
直接通过Web Portal上导出敏感文件,也可以通过透明加解密技术,很好的防范。
最头疼的是,复制相应的数据,直接传到第三方平台。
传到第三方平台有几种方式:
内部员工打开浏览器访问第三方平台,然后贴数据。这种通过浏览器插件就可以解决
员工通过编程的方式访问第三方平台传输数据,类似于用curl命令或者python进行http post。这个时候就必须通过主机上的数据防泄漏软件,hook http接口的api来进行检测了。
又或者,直接劫持全部员工的https流量。这个时候,如果遇到HSTS类的网站,可能加载不出来
当然还有个方法,为敏感系统单独建设网络。必须在特定终端上才能访问
员工通过即时通讯软件传输数据。类似于QQ 微信 钉钉。
这个地方则需要对软件进行收敛,限制只能安装特定的软件。当然,总会有一些漏掉的,例如你可以通过学习强国来传数据。
这里我不得不提下,其实钉钉可以考虑,暴露出接口出来,由企业自己定义敏感数据传输策略。例如要求包含某些关键字的,钉钉如果发送给非员工就失败。否则目前企业用了钉钉还是解决不了数据安全的问题。
以上解决方案都是针对数据明文进行检查,一旦员工对数据进行加密,然后传输,所有的检测方案都失效了。
那是不是只要有权限的员工,在获取数据后,对数据进行加密,传输出去,我们就完全没法发现了?
其实这里还是有一些解决方案的。
识别大量的数据访问行为
对数据查询提供可回溯链路。即每个用户访问了哪些数据,通过啥接口访问
对用户访问数据的方式进行识别。
a. 如果用户使用Web Portal获取数据,那么必然要对这些数据进行本地存储后,再进行加密。这个地方需要对保存了敏感数据的文件进行监控,识别操作进程。此处可以通过终端数据防泄漏软件结合EDR进行
b. 如果用户使用非Web Portal获取数据,则直接违规
我们有办法在事情还没发生的时候,就已经知道这个事件有可能正在发生么?
这里需要威胁情报通过对外界公开情报的收集,以及第三方情报的分析和内部的数据安全case,沉淀出针对自己的威胁情报源,从而对数据安全case进行预测