1、敏感接口定义
凡是可以返回敏感信息或者可能对数据完整性造成威胁的接口,比如我们用户的相关信息,或者判断用户相关状态,或者可以登录修改用户账户的接口
敏感信息定义:包括但不限于和用户个人相关的任何信息 (例如用户的姓名,年龄,身份信息,联系方式,地址,账号,支付账户,银行账号,班级,报名情况,购买课程情况,学科信息,视频图片,排课上课信息,学习情况相关资料如作业试卷,课件录屏),员工及老师的个人信息、工作资料,公司相关的文件及资产信息
用户定义:掌门雇佣或者提供服务的所有人员或机构,比如老师,员工,学生,合作商
开发敏感接口规约
(1)非必要信息不要返回,比如只需要年级信息,如果返回了包括联系方式,地址等一套学生信息,这种情况就属于违法开发红线
(2)敏感信息手机号禁止明文落BU自己的业务库,即使加密落库也要与安全部报备
(2)敏感信息作为输入参数或者输出结果是,参数注意加密
(3)查询信息的接口要防止可以遍历,比如参数加密,加验签
(4)敏感接口一律需报备安全部,并通过安全部测试通过后方可上线
(5)对于存在被刷可能的接口,必须加合适的防刷机制,并在安全部验证防刷有效性后方可上线
敏感接口防刷方案
通用防刷:人机识别手段:WAF数据风控、极验(APP端)、阿里风控SDK(APP端)。
接口防遍历:接口关键字段加密,请求加验签。
监控:配置skywalking异常流量告警
限流:WAF访问控制限流,架构网关熔断限流
黑白名单控制:SLB黑名单,WAF黑名单
业务也可自建防刷控制措施,根据单位时间请求次数,根据agent或者ip等因素
敏感接口被刷定责
(1)如果业务敏感接口上报了,安全没检测出问题,安全承担全责
(2)如果整改方案要求安全和研发一起配置整改的,没整改完成导致发生问题的,安全和研发按照比列来分担责任
整改方案中如涉及到中台部门的,中台部门方案已提供出,对外服务或接口已梳理出且改造完,但因业务端研发未按期完成或未完成的发生的问题,安全和业务端研发按照比例来分担责任(中台研发不承担);(如近期公司推进的用户隔离BU事项,用户中心梳理的接口如下:用户中心加bu接口新老接口)
(3)以下情况开发和相关负责人根据资损负全责:
未报备且未经过安全测试上线的接口,
已报备接口或已修复接口,未经安全测试进行接口变更或回滚导致的接口被刷
测出问题的接口,未加防刷机制坚持上线
安全通知接口有问题,研发在限期不整改的
接口废弃未及时回收
不接受安全建议,业务方愿意承担风险上线的