0x00前言
近年来,随着云计算、大数据技术蓬勃发展以及业务的快速创新,数据安全防护工作也呈现出新的特点,其主要特点就是数据流动场景的多样化以及外部监管的不断严格。
数据流动场景的多样化:除了传统的应用对数据的常规使用场景外,不同应用之间数据的调用、数据开放给其他业务部门进行分析使用、外部合作伙伴数据的共享交互等场景也很常见,数据在各个场景中的流通变得越来越开放。
外部监管越来越严格:在中国人民银行发布的《个人金融信息保护技术规范》中委托处理部分明确规定了“应对外部嵌入或接入的自动化工具(如接口等)开展技术检测,确保其个人金融信息收集、使用行为满足约定要求;并对其收集的个人金融信息的行为进行审计。”
除了金融行业,其他行业也纷纷跟进,对于接口和应用的安全监控逐渐成为趋势。
0x01为什么是“接口”?谈到接口,可能大家对接口这种比较抽象的事务比较陌生,但是谈到前段时间某快递公司40万客户信息泄露的事件,想必大家不会陌生。如早前推文《快递信息再遭泄露,我们的个人信息还能安全吗?》所说,本次泄漏事件系该公司内部多名员工将其系统账号以每日元的价格租借给外部“黑产“团伙,导致的40万条泄露。
其实这个事件就是很典型的内部业务系统及接口安全没有做到位导致的。看到这里,很多小伙伴可能会有疑问,为什么对外租借账号会是因为接口安全没做到位导致的呢。因为数据泄露除了通过技术手段直接从数据库中窃取之外,更常见的是通过内部业务账号到业务系统中查询导出。而各式各样的内部业务系统,都是由一个一个接口组成的。比如登录账号会有登录接口,查询和导出数据会有查询接口。接口是连接数据库和业务系统的通道,业务系统正是通过接口来完成对数据库的“合法”读写。
为什么我们在这里特地强调是“合法”读写?因为接口在设计之初,就是为了调取数据库中的数据而存在的,很少会有普通业务人员拥有数据库的账号密码,但基本每一位业务人员都会拥有自己的业务系统账号密码,而接口在开发设计之初就内置了数据库的连接密码,相当于只要掌握了业务系统的账号密码,就可以对数据库进行读写。这样窃取数据的门槛一下子降低了许多,从需要懂数据库操作语句,掌握数据库账号密码,变成了只要有业务系统账号密码就可以。接口在设计时,会同时开发一些业务权限机制,如果权限机制设计的不合理,在“有心人”眼里,只要掌握了业务账号密码,理论上可以对数据库进行任何读写操作。这就是我们经常听到的“越权”“注入”等概念。这样也就不难解释,为什么该快递公司内部员工租出去8个业务账号,就被窃取了40万客户信息了。
0x02企业该如何对接口进行监控?要想对接口监控,首先我们要搞清楚我们对接口进行哪些维度的监控。首先对于接口敏感数据的监控是第一优先级,因为我们的