开放平台:搭建API安全预警平台
编辑导语:现如今互联网普及率很高,大家都会在网上的各种平台进行注册,这时候有一定的信息泄露风险,所以在前期开发时会设置一些防范策略;本文作者分享了关于搭建API安全预警平台的方法,我们一起来看一下。
认证服务应用的越来越广泛,比如:验证码等这些都是通过接口能力服务完成;之前负责过的高安全级别的认证平台在建设的时候,整理了一些安全防范策略。
如下是一些工作的总结:
一般来说,大公司都会有专门负责数据安全的部门或团队对安全问题进行排查,亦或者有经验的研发会在开发时考虑到,然后主动提出并解决。
对于某些风险其风控策略还是需要产品经理提出的。
一、为什么要防范风险?
对于用户:
- 用户频繁骚扰:接口被频繁调用,信息不断下发到用户;比如:短信下发类接口(验证码、营销等)。
- 用户敏感信息被盗:第一种方式:某些数据在未授权的情况下被获取;第二种方式:代码泄露后,敏感信息泄露,个人信息、实名信息、账号密码等。
- 用户无法正常访问:接口被频繁请求,网络请求堵塞。
- 用户访问数据显示异常:接口参数遭攻击者篡改。
对于公司:
- 用户投诉:用户的风险问题很容易导致用户投诉。
- 大量费用:频繁调用接口导致大量接口请求,刷量导致高额的费用,有些接口的调用还是非常昂贵的。
- 公司业务受损:服务器被攻击,客户端会有风险导致瘫痪。
- 服务器资源消耗:大量调用接口及接口传输上限,加大服务器性能消耗。
二、风险防范方式
api安全问题主要有数据的传输安全问题、数据安全问题、服务器安全问题。
1. 传输安全
接口传输风险可能会导致接口被随意调取、传输劫持等。
为应对传输风险,可以做如下防范:
1)授权访问(未授权、越权)
- 平台之间的接口:需要使用一些身份认证机制,比如:APPID或APPKey和APPSecret、token。
- 前后端接口调用:不要全部按前端传入的次数进行处理,要由后端做二次校验,严格对权限进行控制;后端需要自动二次获取用户的相关权限信息。以此减少验证权限环节存在的缺陷。
2)数据截取被黑:
- 在安全的网络环境下进行传输:内网、专线
- HTTPS都懂的。
- 数据加密,比如敏感信息加密脱敏。
3)传输频次(重放攻击)
- 一次性token机制,token使用一次后就失效。
- 对接口调用频率和次数限制:比如验证码60s内只能下发一次。
4)DDOS攻击指:处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。
- 建立IP白名单;
- 流量清洗:将正常流量和恶意流量区分开,正常的流量则回注客户网站。
5)数据篡改:篡改接口报文内容,再次请求接口。
通过签名的方法防治数据篡改:请求/响应报文签名,对应端内进行验签。签名算法有哈希算法、MD5。
2. 数据安全问题
主要是敏感信息泄漏:对于敏感信息需要进行脱敏,且不能依赖前端脱敏,需要由后端对数据进行脱敏。
3. 服务器安全问题:
主要是服务器资源消耗问题:通过接口对大文件处理消耗服务器资源。
- 对上传的文件大小、格式限制。
- 接口频率、次数限制。
- 限制接口响应内容大小。
三、产品经理搭建安全预警平台
为保障平台和终端用户的正常运行,可以通过监控预警平台,对接口管控,防止业务遭受攻击导致平台能力短时间资源消耗过高,导致能力故障。
平台可以通过对如下指标进行监控:接口调用频率、接口调用准确率。
1. 接口调用频率和准确率预警
判断标准假设:
- 假设1:TPS调用频率可取近7天平均的请求的数量作为正常数量的基准线。
- 假设2:接口每天的调用频率都是有规律的,可分为:早中晚,早(0点-8点:低频)、中(8点-18点:高频)、晚(18点-24点:高频)
- 假设3:正确率低于某一值时,可直接识别为高危问题:被攻击,直接将接口停用,对应业务方设为黑名单;正确率在某一区间时,识别为:可能被攻击,则需预警。
通过如上假设,可判断出频率和准确率的数据对应反映的接口调用情况。因此基于如上假设可建设一套预计平台。
核心功能逻辑:
1)后台可配置发生预警的限制:
- TPS按基准线的某些倍数/某一定值,则发生预警/接口调用拉黑,可设置拉黑定时器。(拉黑某一时间段)
- 准确率可设置某一百分百,发送预警/接口调用拉黑,可设置拉黑定时器。(拉黑某一时间段)
2)黑白名单:对于某些业务线放入黑名单,则无法使用接口,放入白名单则可无视预警,正常调用。
3)其他基础数据:
TPS总数、筛选器、可视化插件(饼图/线形图):
2. 通过账号、IP控制频率
通过用户账号、IP控制频率,可以控制每分钟调用次数、每小时调用次数等。根据具体场景确定策略。
本文由 @ liyo龙 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议。
专业,不体系