软件产品信息安全 - 数据分类
想要做好一个软件产品的信息安全保障,第一步就是了解产品要处理的信息或者数据。在产品开发初期都或多或少有一些需求文档,可以从这些需求当中提炼出软件产品的应用场景以及要处理的客户数据等信息。拿微博做例子,它要处理的客户数据有很多,比如
客户的个人资料
基本信息:姓名,性别,生日,地址等
联系信息:手机,邮箱,QQ,微信等
证件信息:身份证等
职业信息:公司,职位,入职时间等
教育信息:毕业学校,学位等
客户的登陆信息:用户名(邮箱,手机),密码
客户所发的微博:包括文字,图片,评论,转载等等。
客户的微博关系:关注和粉丝
客户的微博等级:贫农,中农,富农,地主,官员等
微博的使用记录:登陆历史,浏览历史,点过的广告
等等
当然,正在开发的软件产品可能只是微博的一小部分功能,只涉及到一部分客户数据。但这个不影响即将提到的数据分类。
这里要讨论的数据分类不是如上面所列的简单地把数据分成个人资料,微博,关系等,而是从信息安全的角度对软件产品要处理的数据(客户或者非客户)进行分类,而分类的标准正是这些数据安全等级。
假设我们用颜色来表示数据的安全等级:红,橙,黄,绿。
红色数据:红色数据代表安全等级最高并且最敏感的数据。如果这类数据暴露了,比如未经授权的人员访问到了这些数据,将直接对公司或者涉及到的客户造成损失,甚至威胁到公司运营本身。继续用微博做例子。客户个人资料里的大部分都应该列为红色数据,比如联系方式和证件,还有微博使用记录里等。假设微博处理不善,成千上万的客户数据遭泄漏,不法分子就可以盗用这些客户数据,直接对客户造成经济损失甚至是人身伤害。而对公司来说,数据的泄漏也暴露了微博的不安全性,会导致用户流失,收入锐减等。因此,红色数据需要最高等级的保护措施,数据的访问只对经过授权的人员或者系统开放,包括内部或者外部。内部的比如某开发或者运营人员,外部的比如第三方应用等。
橙色数据:橙色数据主要用来指代一些内部使用的信息数据,单纯通过这些数据没有办法直接与客户关联上,比如客户微博(文字,图片,评论,转载),微博关系,微博等级,登陆历史,浏览历史,点过的广告等。这类数据的泄漏不会直接对客户或者公司造成损害,但它们的访问必须秉承“need-to-know basis”的原则。
黄色数据:黄色数据代表一些即使泄漏了也不会对公司造成损失的数据,比如说单个客户的个人资料(没错,数据的数量也可以和安全等级挂钩)。
绿色数据:绿色数据一般用来指代公开的数据,比如一些微博自营的企业号或者宣传号相关信息。
以上只是简单的对客户数据进行粗糙的安全等级分类,采用的标准也比较宽泛。实际开发过程中数据分类远要比上述的更细化更深入更复杂。比如,CMU制定的数据分类标准(当然只适用于CMU本身): https://www.cmu.edu/iso/governance/guidelines/data-classification.html。
需要强调的是,数据的安全等级不应该由某个开发团队来确定,而且同一类型数据的安全等级也不会因为开发团队和产品而异。应该从公司层面出发,制定出一个数据的安全等级标准,而这个标准适用于公司内所以的产品。
涉及的数据不单是客户提供的数据,也应该包括公司内部使用的从客户数据衍生出的数据。
数据分类不仅跟公司的运营和利益相关,也跟客户的权利息息相关。在制定数据分类时,需要充分考虑数据泄漏可能对公司和客户造成的潜在影响。
此外,政府制定的标准也需要纳入考虑范围,比如欧洲的GDPR。
为什么要对数据划分安全等级?这在后面的文章里会提到。简单来说,不同等级的数据有不同等级的处理准则和方法。
版权声明: 本文为 InfoQ 作者【Interstate5】的原创文章。
原文链接:【http://xie.infoq.cn/article/6608efa051c35a856015ee178】。未经作者许可,禁止转载。
评论