本博客地址:https://security.blog.csdn.net/article/details/131274853
一、API管理概述
API是指应用程序编程接口,它的存在主要是为了提高系统各组成单元的内聚性,降低组成单元之间的耦合程度(相互依赖程度),从而提高系统的维护性和扩展性。
API作为数据交互的重要方式,不仅面临着数据安全和业务安全两大风险,同时也在承受监管合规的考验,所以企业实施API安全管理,保护企业的数据安全至关重要。
API在数据对外传输中有两种场景,一种是我方开发的API,供外部方调用,另一种是外部方开发的API,供我方调用。在不同场景下,他们的安全管理措施是不一样的。
二、API安全管理
2.1、我方开发的API
对于我方开发的API,我们在API开发初期就应当做好安全设计,包括四个方面:
● 传输加密:主要是对敏感数据使用安全的加密算法进行加密后再传输;
● 身份认证:主要是通过身份认证,确认API的调用方是可信的;
● 访问控制:主要是设定好相应的权限策略,避免API被误用或滥用;
● 日志记录:主要是对API的调用行为进行日志记录并分析,对异常行为进行处置。
一个良好的安全设计方案可以大大降低后期出现安全事故的概率,同时,相对于上线后修补整改的模式,也能大大降低维护成本。
我方开发的API在上线前,需要进行充分并且严格的安全测试,对于测试出现的问题进行及时修复,在通过安全测试后才能进行上线。
API在上线时,必须通过网关进行封装后才能对外提供,这样做的好处一是不对外暴露具体的后端接口,二是如果后端接口更换可无需客户方配合,内部直接更换后端地址即可,除后端接口本身的鉴权外,网关本身还具备相应的认证(如API-keys和JWT) ,可大大保证对接的安全。
另外,对外提供的接口必须具备加密的能力,主流加密方式为AES加密,且提供的接口均为HTTPS加密协议,其中TLS应当使用安全的版本。
对于接口的管理,可以针对不同的接口进行单独限流配置,最小颗粒度可以具体到秒级。同时,对接口进行首次调用统计、实时调用统计、历史调用统计、单日调用统计等多维度的统计分析,通过这些统计分析,能够对接口调用情况进行实时监控,对于异常访问的接口可根据配置的预警规则进行实时告警。针对异常访问接口可通过网关配置进行熔断操作,从而杜绝异常访问,对于未授权访问的用户,无法调用网关接口。
2.2、对方开发的API
对于对方开发的API,我方在进行调用前应当做好安全评估,主要评估对方是否具备充分的数据安全防护能力。具体的做法有两个:
● 合作方尽调:评估对方的数据安全防护能力,通过问卷形式进行,这里包括安全合规与安全防御部分;
● API自评估:要求对方提交API安全评估报告到我方,我方对API安全评估报告进行分析。
同时,我方也应当对API进行充分且严格的安全测试,在通过安全测试后才能正式接入。
三、API安全监测平台
API监测平台是API自动化与可视化管理的基础,一个API监测平台应当具备以下功能:
● 梳理API资产:统计应用与接口清单,展示接口日志详情(包括request、response等),体现接口生命周期走势情况;
● API脆弱性识别:将API的弱点进行分类管理,主要分为口令认证类、数据暴露类、访问权限类、接口权限类、安全规范类等;
● API风险识别:基于业务场景与风控体系,识别异地登录、下载异常、暴力破解、高频操作等风险;
● API行为审计:基于应用、API、IP、账号等方面进行多维度的行为分析,溯源风险源头。
在搭建好API监测平台后,之后就是对API监测平台进行运营及优化了,运营内容主要有以下:
● 资产运营:基于资产统计结果,将互联网侧API、内网侧API梳理清楚后进行收敛管理。新上线的API接口通过自动化监控及时通知到安全人员进行安全评估。长期无访问流量API接口可督促研发人员确认后下线。
● 脆弱性运营:安全人员负责制定策略、协助研发人员修复脆弱性。研发人员自行认领漏洞,根据漏洞修复时效及时修复API漏洞。
● 机器人告警:机器人告警用于通知安全人员与研发人员,研发人员在看到告警后可自助查看并对漏洞进行修复。
API安全监测平台技术架构图:
四、总结
API监测平台是API自动化与可视化管理的基础,API分为【我方开发的API】与【对方开发的API】,两种场景下的API安全管理方式是不同的。