作者:高尉峰,单位:中移集成智慧城市平台部信息安全团队
随着企业日益依赖API来提供对服务和数据的访问,他们对API安全保护的重视程度也与日俱增。
API很容易受到各种安全风险的影响,从而导致数据泄露、未经授权的访问和其他形式的滥用。具体风险如下:
运营中断:不安全的API是网络攻击的入口。攻击者可以针对API发起多种类型的API攻击(包括拒绝服务(DoS)攻击),以消耗系统资源。这些行为会导致系统运行缓慢或中断,对用户体验造成负面影响,并造成严重安全事故。
财务风险:应对API安全漏洞可能造成高昂的代价,包括纠正安全漏洞、管理公共关系以及数据泄露后的潜在法律成本。
数据泄露风险:API安全风险会威胁到企业的数据完整性、运营连续性和财务稳定性。实施API安全保护策略(包括严格的身份验证和速率限制)对于保护企业资产至关重要。
中移系统集成有限公司智慧城市平台部基于近年来对API治理的系统研究、创新的实战化思想和实践发现,智慧城市平台部构建了云原生API全生命周期管理,将API治理能力融入DevSecOps流程当中。以下将从API设计,API管理,API测试,API监控,API防护的维度介绍云原生API全生命周期管理。
1、API简介
API代表应用程序编程接口,应用程序指的是任何具有独特功能的软件,接口可以看作是两个应用程序之间的服务合约。该合约定义了两者如何使用请求和响应相互通信。下图对API从不同的维度进行了分类。
中移集成智慧城市平台部在大量的实践经验基础上,构建了自己的安全威胁库和漏洞防御库,实现了轻量级威胁建模过程,通过安全评估调查问卷,从系统结构和使用场景去识别将要构建的应用类型,然后匹配对应的威胁库和漏洞防御库,确定安全需求基线,最终得出安全设计方案。
2、API管理
1、Swagger是一款开源的API设计工具,主要用于构建、设计、编写和使用RESTful Web服务。可以帮助开发人员设计和编写API,以及创建出色的API文档。Swagger是一个强大的开源框架,支持API开发全生命周期,包括设计、构建、文档和使用。
2、通过Proxy代理,对流量进行分析也是获取API信息的一种手段。Mitmproxy可以像正常的代理一样转发请求,保障服务端与客户端的通信,也可以通过Mitmproxy查看,篡改数据包。mitmproxy有两个关联组件,一个是mitmdump,它是mitmproxy的命令行接口,利用它我们可以对接Python脚本,用 Python实现监听后的处理逻辑。另一个是mitmweb,它是一个Web程序,通过它我们可以查看或者篡改mitmproxy捕获的请求。
3、使用API网关发布和管理API接口也逐渐成为一种主流趋势。随着微服务概念的兴起,越来越多的企业选择使用微服务的架构方式部署自己的系统。由于微服务使用的增加,原本一个庞大的单体应用,被拆分为多个微服务系统进行独立维护和部署,也就造成微服务系统中存在一定规模的需要被纳管的API接口。这些API接口数量庞大,对接不同的微服务系统,拥有不同的业务需求,造成API管理的难度日益增加,API网关主要实现以下功能:
1)统一管理
API网关可提供全生命周期的API管理,涵盖设计、开发、测试、发布、运维、上架、下架等,实现完整的API解决方案。可轻松管理和部署任意规模的API。
2)轻松控流
API网关提供流量控制功能,可通过多种算法,实现精细化的流控。同时可通过提供灵活自定义的流量控制策略,来保障API服务的稳定和连续。
3)可视化监控
通过API网关可监控API调用性能指标、数据延迟以及错误等信息,识别可能影响业务的潜在风险。
4)多层安全防护
API网关可实现严格的访问控制、IP黑白名单控制、认证鉴权、防重放、防攻击、多种审计等安全措施,全方位保护API安全调用,且能实施灵活而精细的配额管理及流控管理以保护后端服务。
5)灵活路由
API支持配置不同的后端,流量可以基于多种策略匹配转发,轻松解决企业应用的灰度发布,环境管理等难题。
3、API测试
目前安全业界常用的测试方法包括:DAST(渗透测试),SAST(静态代码扫描),IAST(交互式应用程序安全测试),SCA(软件成分分析)。以上四种测试方法已经在中移集成智慧城市平台部落地,通过对接CI/CD实现了安全自动化测试,具体的实践方案如下:
DAST:安全测试人员通过burp suit,appscan,nmap等黑盒扫描工具对系统的接口进行安全测试。
SAST:通过扫描源码中的高中危漏洞,然后在流水线设置质量门禁,保证提交代码的安全性。
IAST:通过引入洞态iast系统,从流量层面和源码层面实现漏洞检测,具有低误报,确认安全问题更方便,自动化程度高的优点,成功弥补了DAST和SAST的缺点。
4、API监控
网络流量数据通过全天候全方位实时地识别,并与威胁情报、行为模型匹配,发现未知威胁、木马通讯、隐蔽信道等异常行为。利用流量可视化能力,看见资产、看清安全洼地、看透安全隐患,为用户构建灵敏的网络威胁感知能力,展示全方位的网络安全态势。
Kubeshark可以实现捕获和监控容器、pod、命名空间、节点和集群的所有 API 流量。支持 REST、GraphQL、gRPC、Redis、Kafka、RabbitMQ (AMQP)、DNS、Websockets、TLS 和 mTLS 。
5、API防护
1)DDOS防护
nginx作为一款高性能的Web代理和负载均衡服务器,我们就可以在Nginx上进行设置,对访问的IP地址和并发数进行相应的限制。
Nginx限制IP的连接和并发分别有两个模块:
limit_req_zone 用来限制单位时间内的请求数,即速率限制。
limit_req_conn 用来限制同一时间连接数,即并发限制。
2)RASP防护
在Java技术栈下,onestone 引擎以 javaagent 的形式实现,并运行在 JVM 之上。在应用服务器启动的时候,onestone 引擎借助 JVM 自身提供的instrumentation 技术,通过替换字节码的方式实现hook关键类的关键方法。
在这些关键函数执行之前添加安全检查,根据上下文和关键函数的参数等信息判断请求是否为恶意请求,并终止或继续执行流。该方法能够准确定位攻击,显示攻击载荷的执行路径。
中移集成智慧城市平台部采用onestone系统实现入侵防御。主要解决以下痛点:
漏洞爆发后的修复时间少则两周,多则数月,存在攻击空窗期,无法实时拦截攻击。
开发人员打安全补丁时无法准确定位问题,导致安全问题未完全修复。
现有waf系统存在误报率高,无法拦截未知威胁,无法感知攻击,无法精准溯源的风险。
6、API治理价值
1、清查服务体量持续加速增长的API
2、形成完整的 API 定义或文档
3、实时更新生产环境 API 服务的变更
4、解决影子API及接口滥用问题
5、检测API存在的未授权访问、敏感数据暴露等各类安全风险,并提供详细的风险分析及安全处置建议。