方兴(FlashSky) 全知科技CEO
转载请保留个人和公司信息。
被忽视的业务应用层数据安全
当今,数据已经成为非常重要的资源,而且未来随着大数据、人工智能等技术的应用,数据的重要性会越来越高。但无论是在Gartner的数据安全产品体系中,还是国内外的数据安全标准中,对数据安全相关的体系或要求,基本都只是映射到数据存储层或数据外发链路层;很少看见对业务应用层的数据安全的体系或要求,即使有也非常的模糊(唯一看见有比较细致的业务应用层要求的是人行的<网络数据安全指南>里有,为人行点赞)。
在真实的实践中,业务应用层的数据安全风险是非常之高,特别对于业务系统运行在互联网上的企业,来自应用层的数据风险事件可能会占到一大半以上;忽视应用层的数据安全体系的建设,会对企业数据安全带来非常严重的影响。
真实场景中的业务应用层的数据安全风险主要包括如下三类。
(一):互联网上的业务应用层的数据攻防对抗
黑灰产、竞争对手、定向营销广告,商业趋势分析,情报分析、政治倾向分析的形形色色的团体,都在互联网上进行着数据的掘金。
如果企业在互联网上提供相关的业务服务,就会成为这些数据掘金团体针对的对象,通过获取企业在互联网上暴露的数据,来谋取商业的利益。比如客户的交易数据,诈骗分子会用它来实施诈骗,企业的竞争对手会用来分析GMV,一些广告厂商可能会用它针对你的客户进行定向的广告骚扰,剑桥公司则可能会用它来分析你的客户的个人治偏好等等。
这些数据掘金团体,并非像我们认为的技术黑客那样,使用高级的黑客级系统漏洞通过攻击业务系统来获取数据,他们主要获取数据的手段有:
- 数据爬虫获取数据:爬虫主要通过批量访问企业正常提供给客户的功能页面或接口来获取数据的手段。因为搜索引擎也是爬虫方式获取页面,很多企业并没有认识到爬虫获取数据的风险。数据风险由一个重要特性就是数据的关联性推导性,导致很多我们觉得没有风险的数据,却在这些数据掘金团体手上,通过数据的关联与桥接,把这些普通的数据可以分析出具有很高风险敏感数据,下面分享几个真实的案例:
- 追踪用户的ID来推导用户注册时间:用户的ID一般都觉得没啥敏感。但是以前大家习惯用数据库递增字段来生成用户的ID,本质上递增ID是暴露了用户注册时间的,对于社交类的业务应用可能价值不大,但是针对涉及到商业功能性的如电商、金融、出行等业务应用,用户注册时间越新,可能对业务规则和功能的了解越少,针对这类用户实施欺诈的成功概率就越高,所以一些黑灰产会通过爬取最新的ID以及生成时间,来做定向的诈骗,如电商体系里,通过数据识别新商家实施欺诈就是一个发案率很高的场景。
- 获取用户的属性数据来还原用户主体:如果诈骗分子知道了某用户最近与其他用户发生的具体交互行为并有用户的一种联系方式如电话\邮箱、IM,如购买了一张机票,询问过某教育机构孩子上学的事情,就可以伪冒交互对象来欺诈用户。所以涉及交互的行为信息需要透出时,需要做匿名化保护。比如电商业务下,有用户公开评论商家的这一功能,其实就是显性化用户发生了购买商品这种交互行为的信息。如果没有对用户真实ID进行保护,诈骗分子就可以据此实施诈骗,也可以针对这个用户进行很多偏好分析。但即使通过加密ID来做匿名化保护,但还是发现难以阻止外部获取数据的团体关联上真实用户。原因就是之前这些团队已经获取了大量和真实用户关联的属性数据,即使你在评论时做了ID加密保护,但如果还有这些属性数据的透出,如头像数据,通过这些属性数据进行关联分析,又能关联回真实的身份ID。数据掘金团体会爬取一切有数据透出的数据进行大数据关联,不仅仅是保护一些关键数据就足够的。
- 利用统计学抽样分析:专业的大数据分析团队,会构造一些模型,通过抽样数据的获取和分析,就能非常精确的分析出实际业务的商业机密。比如定向爬取一些抽样商家和SKU的交易笔数和商品单价的信息,可以精准推算出电商的GMV,酒店的开房率、航空公司的机票满座率等等。
- 爬虫的对抗也非常激烈,最早的爬虫,是使用多IP的中心化程序,一般可以通过IP过滤反爬,后期爬虫也使用分布式的链路,比如在多个肉鸡上植入VPN代理,这时就需要根据机器行为特征进行检测来反爬,或者通过接口加密客户端解密的方式来反爬,但反爬技术会较大影响性能和客户体验。同时,一些专业爬虫团队,甚至会专门开发一个客户端插件,然后给使用者付费,让这些使用者安装,插件会注入代码到使用者使用的需要爬取数据企业的客户端应用上,伴随使用者的真实正常使用时,来爬取数据。即使你技术检测到了,但如果要封这些真实使用者的账号,可能会引发一波真实用户的投诉引发业务端质疑,让你投鼠忌器。
- 应用客户端木马植入窃取数据:针对有特定应用客户端的企业,比如XX酒店集团的入住系统,XX电商的商家CRM系统,黑灰产团伙会定制开发只针对这个客户端的特定木马,只针对这个客户端应用的模块,进行篡改注入窃取数据的代码,这样在正常用户的工作人员使用时窃取数据。这种木马不修改系统文件,而这些应用客户端也只是特定企业自己的企业应用,很少会有签名机制,因此所有安全厂商的杀毒和木马也无法判断是否被篡改,因此都基本无法检测到。这种木马第一次植入大多是通过人肉的定向方式植入,比如伪冒应聘人员去电商应聘客服人员,去酒店前台聊天,然后植入到工作环境,有了第一台控制肉鸡,之后的版本更新,横向扩展再通过远程控制端来控制。拥有较多分支机构,或者通过生态化运营模式的企业,是最容易遭受这种数据窃取模式攻击的,可是很多这类企业大批量数据丢失后,往往数据丢失的原因都查不到,对这种数据窃取风险基本处于无知状态。
- 数据截留:一类是开发一些附加功能的APP,比如社保查询APP,免费提供给用户使用,来截取数据。高级一点的,开发或将收费的SDK逆向修改成免费的SDK,吸引一些APP开发厂商嵌入到自己APP的里面,通过用户的使用,再从中截留数据。还有一些数据公司,帮助一些有数据的部门提供对外的数据服务,然后截留数据。
- 打入、收买内部员工或窃取员工COOKIE:黑灰产会采用应聘或收买客服、快递员等基层岗位但能接触到数据的打入企业内部来窃取或购买数据。很多基层员工缺乏安全意识和技术能力,有时候黑灰产也会通过金钱、钓鱼方式获取这些人员的登录COOKIE,然后伪冒他们的身份来获取数据。
- 利用生态链获取数据:很多时候,我们需要给合作伙伴提供数据的接口,这些接口可能被生态合作伙伴滥用,而且大多数生态合作伙伴自身的安全能力非常薄弱。因此针对保护的比较完善的企业,黑灰产可能会从生态合作伙伴入手,通过收买和攻击生态合作伙伴来获取数据。另外一个很大的风险是我们开给生态合作伙伴往往只有一个企业账号,但对方会由多个员工来共享这个账号,其中一个员工的离职,一般并不会同时来更新这个共享的账号密码,这个离职员工就成为非常高风险的存在,他可以脱离掉原来我们对合作伙伴的约束继续使用账号获取数据用于其他用途。以前某企业就发生过,离职员工继续使用账号登录第三方收费的征信系统获取个人征信敏感数据,既导致了个人隐私数据泄露的风险,还给某企业带来了很大的财务损失。另外,针对第三方公开使用只有单方面服务协议的数据服务,也需要谨慎对待。使用对方的数据服务,本质也会向对方回流自己的业务数据,比如A企业对外提供一个恶意电话号码识别服务,B企业使用A企业这个服务来验证自己的新注册用户是否是正常用户,但本质上B就向A透露了自己新注册用户的信息,如果没有对等的法律约束,A企业完全可以对B企业进行商业分析,甚至把这些信息售卖给B企业的竞争对手,广告推销商,甚至诈骗团伙。
同时,围绕有数据透出的页面和接口,黑灰产会研究更多的数据攻防手段:
- 伪脱敏识别:很多页面或接口对数据的脱敏,都只是采用前端的JS进行脱敏,识别出来后可以还原回真实的未脱敏数据。还有一些把恢复脱敏数据的接口也直接暴露在外网,获取数据的人通过调用可以恢复回未脱敏数据。
- 关联还原脱敏数据:当前大量的数据脱敏算法,都只是简单的掩码脱敏,真实的保护效果堪忧。比如手机号脱敏大家往往脱敏在139后面的4位,如139XXXX1111,这4位的头2位其实是区域代码,如果业务在其他可以关联用户的地方还透出了客户的区域位置,这个脱敏效果就只等于脱敏了2位。如果还同时透露出头像这样的属性数据,攻击者只需要暴露列举100的可能的手机号,然后进行头像对比,就能精准还原回未脱敏的手机号码。
- API越权攻击:很多针对个人的用户,都可以通过统一的接口查看自己的信息,只是不同用户使用的是自己的用户ID作为参数。但如果没有对水平权限进行控制,就可以通过更改这个ID列举出其他用户的信息,就会导致批量用户信息被爬取。还有有一些接口,通过提供畸形的参数还能导致输出所有的用户信息。
- 撞库:利用已经泄露的第三方的系统的用户名和密码信息,来撞库,撞库成功后,再爬取这个账户的数据和信息,也会使用这些账户,成为他们伪冒身份获取数据或进行黑灰产活动的傀儡账户。比如邮箱系统这类的账户数据泄露,同步撞库多个邮箱系统,撞库成功后拖这个账户的各类网站注册邮件,信用卡账单邮件,就可以形成这个账号的征信画像。
- 这些掘金数据的团体之间,还会相互交换数据,最后会掌握到非常惊人的个人隐私和企业商业数据的数据量。这里的风险在于,即使这个团队利用这些数据只做合法的业务比如为一些研究机构提供数据,为一些商业趋势进行分析判断,但这些团队内部对数据的安全管理基本都是非常混乱的。这些数据很大可能,会被他们的内部员工再次进行窃取售卖,最后落入到电话营销、诈骗,竟对、国外数据掮客之手,造成个人隐私风险、国家安全风险和你自己的商业机密泄露风险。
(二):业务应用层的数据违规操作风险
即使只是供内部合法用户使用的业务应用,也面临着很多数据安全的风险:
- 内部作案
- 数据篡改:一些有经济价值的数据,内部人员可以通过业务违规操作篡改数据,达到牟利的目的。比如改学生考试的学分、消除交通的违规记录等。但大多业务系统的审计,细粒度不够,审计记录对具体的操作数据内容也缺乏,导致这类数据篡改风险事件比较难查处。
- 数据窃取:数据广泛的使用使得很多内部员工因为工作需要可以接触到数据。利用工作之便,一些客服会售卖客户数据给你的竞争对手抢客户(某教育培训企业案例),一些人员可以查看企业客户的交易数据以分析客户商业机密然后在股市上进行非法的证券交易(某能源企业案例),离职员工也很有动力去搞一批数据为自己未来的职业生涯或创业道路奠定基础(如某果的几个起诉自动驾驶技术被离职人员窃取的案例)。这些业务应用层数据的风险广泛存在,而且很难检测和保护(终端或网络层的DLP从技术角度而言是比较容易被攻击者对抗的),而且即使技术上能对抗,但在应用层,有权限的用户对数据是所见即所得了,并不一定需要下载到终端上才能作案,通过拍照,打印,手动记录,小批量但敏感的数据就能绕过目前所有的防御措施。
- 终端使用权不可控:另外就是设备移动化带来的,终端的使用权并不一定时时都控制在员工的手上。比如这个案例:A厂某部门的员工老被竞争对手定向挖角,估计是通讯录被恶意泄露。通过调查发现某员工账号频繁在晚上10点左右访问被挖角部门员工的通讯录,但最后调查发现也不是这个员工作的案,而是他的女友是一个猎头,每天会乘他洗澡时,以玩游戏为名获得他手机的使用权,再以他账号身份在企业内部应用上查阅员工通讯录,拍照后提供给竞争对手的人力部门去挖角。
- 研发人员植入应用层后门窃取数据:在应用层的后门,很难进行代码的REVIEW检查,而窃取数据的商业价值让一些程序员也铤而走险。例如某运营商的研发人员,在应用代码里放置后门直接把用户的交易数据吐到自己控制的服务器上窃取数据进行售卖,某证券交易服务商的开发人员,在应用代码里放置后门,将内部收费的行情和交易数据外发给他外部的一个服务器进行售卖。
- 内部人员利用应用层中转窃取数据:某大厂内部管理很严格,内部员工为了把数据窃取出去,通过WEB应用服务器作为中转来窃取数据,他先把内部搞到的大量敏感数据通过文件上传到有外部访问通道的WEB应用服务器上,因为这个操作都在公司信任环境域内,即使被安全监测机制发现,也会被认为该员工是在运维WEB应用服务器。然后员工在外网,通过WEB应用服务器的URL路径下载这个敏感文件,由于很少有WAF去识别敏感数据内容下载的风险,因此成功绕过了数据保护机制。
(三):业务应用层的数据合规风险
从欧盟GDPR起,国内外对个人数据和重要数据的合规要求也越来越严格,参照相应的规范要求。在业务应用层需要注意如下的数据合规风险:
- 数据采集合规:目前政府在主抓APP的数据采集合规。除此之外,APP把采集到的数据上传到业务应用服务端这一层,也应该有一些相应的合规保护措施,如数据加密传输、数据存储时的脱敏,涉及对生物识别数据的处理等。
- 账户注销后的数据合规:一些法律规定了账户被注销后的数据合规要求,比如通过前端应用应不能再查看到这个注销账号的相关信息等。
- 数据发布时的合规:涉及个人数据和重要数据需要对外发布时,应该有相应的审批机制,保护措施,以及审计日志信息。
- 数据处理活动记录:采集的个人数据,被用于那些用途,具体会被那些系统处理,需要形成数据处理活动记录,用于个人信息安全影响评估。
- 数据共享的审批审计:个人数据和重要数据,需要对第三方共享数据时,应该有相应的审批机制,保护措施,以及审计日志信息,用于个人信息安全影响评估。
- 数据出境的审批审计:个人数据和重要数据,需要出境时,应该有相应的审批机制,保护措施,以及审计日志信息。同时,如果有个人数据和重要数据的页面和URL,被境外IP或账户访问时,应该识别是否有相应权限,并进行完备的审计记录,用于数据出境影响评估。
五:全知应用层数据安全产品
针对应用层的数据风险,全知科技研发了天权应用数据安全系统,通过旁路流量接入,无需用户改造任何现有系统,帮助客户快速低成本的应对应用层的各类复杂的数据风险,核心能力包括:
- 敏感数据暴露页面和接口自动识别:这是实施应用层数据安全工作的基础,可以帮助客户快速自动化的梳理涉敏应用和涉敏页面和接口,在此基础上,可以实施相应的应用层数据安全风险治理的工作,包括:
- 对新增涉敏应用和透出面进行管理:针对新发现的涉敏应用和涉敏数据透出面进行确认,确保敏感数据透出符合业务规范要求。确定许可访问涉敏应用的信任域(比如可以划分为互联网域、生态合作方域,内部域,内部域可以根据部门进一步划分),可以发现异常涉敏应用和涉敏透出面(很可能就是数据窃取后门、未关闭的数据服务调试接口、某员工数据窃取中转下载的URL,传输窃取数据的WEBSHELL),以及业务未经报备向第三方共享敏感数据的风险。
- 对涉敏应用和透出面的变更进行管理:监控涉敏应用和透出面的变化,及时核查和更新相应管理机制。避免相应风险。
- 对失活的涉敏应用和透出面进行管理:如果涉敏应用和涉敏透出面长期没有被访问,应该通知业务方及时下线,避免被黑灰产成为扩大其数据的获取面。
- 脱敏检查:检查涉敏透出面的数据是否应该有脱敏机制,以及脱敏方式和算法强度是否安全,降低数据未脱敏暴露的风险。
- 权限检查:检查涉敏应用和涉敏透出面是否有权限验证,避免产生水平权限问题。
- 数据流向监控:通过数据流向的监控,对以下风险进行控制,包括:
- 非信任域数据流向监控:根据涉敏应用设置的可以流向的信任域,检查数据的流向是否符合约定的信任域,对非约定信任域的数据流向风险进行调查和响应。
- 数据出境出境监控:针对境外主机的数据访问请求,或者标记为出境的涉敏接口的数据访问请求,进行数据出境流向的监控和审计。
- 异常数据流向核查:可以监控异常数据流向,如无出境的涉敏应用有境外的数据流向,无XX省的业务分支机构有XX省的数据流向;以及发现大量敏感数据去向的内部主机,进行安全核查。并针对这些去向主机实施相应策略的安全保护机制,如大量敏感数据会流向某打印机打印,就需要对这台打印机进行相应的保护。
- 对大批量数据访问异常进行监控
- 页面和接口的爬虫识别:防爬技术一般都会对网络性能和用户体验带来较大影响,所以比较经济的方式是针对高危接口和页面进行防爬。应用的页面和接口不断变化,攻击者也可能通过摸索不断发现新的有爬取价值的页面和接口。一般企业的业务量如果比较大,爬虫行为就会隐藏在大批量流量中,从总量上看很难把爬虫的流量给区分出来。通过对涉敏接口的梳理和定向监控分析,就可以发现针对具体页面和接口的爬虫,以及他们获取的敏感数据类型和内容,就能在页面和接口一级,比较有针对性的对抗爬虫,并且通过爬虫获取的数据类型,可以更全面从攻击者视角了解自己透出数据的真实风险来调整自己的数据安全保护策略(比如以前不知道用户ID的透出风险,看见大量爬虫爬取用户ID,就应该知道用户ID也是有较高风险的数据需要保护了)。
- 多账户/多身份访问识别:识别账号共用情况和某人以多身份访问的情况,比如同IP多账号,同账号多IP等,发现高风险账号,进行相关治理。
- 身份攻击:识别撞库等伪冒身份批量获取数据的行为。
- 用户数据行为审计
- 离职数据获取行为审计:针对离职员工,分析其较长时间访问数据的行为和快离职阶段访问数据的行为,以及具体访问的敏感数据内容、量级,分析离职人员离职的数据风险。
- 数据操作行为审计:针对高价值的数据,审计员工对这些数据的操作行为,分析特定人员的数据操作风险。
- 特定规则审计:可以依据行为、操作、账号、数据内容等多个维度自定义审计规则,落地内部审计规范,比如内部人员的业务操作针对亲友的回避制度。
- 数据溯源
- 泄露事件溯源:通过溯源系统,根据已知泄露的数据内容,快速定位到可疑的泄露人员,可疑的泄露应用和接口等信息,快速调查确定数据泄露原因。
- 数据路径追踪溯源:针对较复杂的场景,根据关键的数据内容,聚合和这个数据相关的操作,数据流转的路径,帮助分析整个事件的过程,以进一步改进整个体系。