究竟什么是API
常规定义下,API是应用程序接口(Application Programming Interface)的简称,其含义比较宽泛,泛指一组定义、程序及协议的集合。随着技术领域的细分和前后端分离架构模式的推广,App应用、小程序、微服务、云原生等场景的不断演进和普及,API的应用也越来越广泛。
攻击者为什么偏好通过API进行渗透
传统的资产管理和安全防护过程中,由于资产是相对明确的IP、端口等,做安全策略时都有相对成熟的经验。而API作为落到URL级的新型资产,如果还是沿用以前的经验,就存在一定困难和挑战,也往往会导致无法采取相应的监控和防护手段,缺乏API资产的统一管理。这也是通过API进行渗透入侵被发现的概率通常较低的原因之一。
在业务平台建设和升级的同时,API接口版本也在不断升级,但由于考虑系统兼容的需要,许多老旧的API接口仍然活跃在系统中。而这些老旧接口往往存在脆弱性和安全风险,在缺失监控管理的情况下,就很容易被突破,进而造成数据或关键权限丢失,从而引发一点突破、全盘皆输的局面。
此外,API本身就承担着提供数据交互的工作,从API上获取敏感信息再进一步渗透是一种常见的社工方式。
API面临的主要安全威胁
API安全受到当下攻防双方越来越多的关注,除了基于SQL注入、XSS、命令注入等传统攻击方式外,基于权限和行为的API滥用、盗用、权限绕过等手段也成为攻击者的常见操作。总结来说,目前API面临的安全威胁主要分为以下几类:
-
常规Web应用攻击,如SQL注入、XSS、命令注入等,通过攻击获取系统权限;
-
数据窃取,通过编写爬虫等方式高频次数据查询,窃取API接口的数据;
-
权限盗用,如通过系统本身逻辑缺陷、代理、劫持等手段获取调用权限,从而非法获取数据信息;
-
API接口自身的逻辑缺陷导致的安全威胁,如薅羊毛等行为大多是由于API的逻辑控制不足所导致;
-
针对API接口的类DDoS行为,如口令爆破、DDoS攻击等;
-
敏感信息泄漏,数据传输过程中未对敏感信息进行处置,例如电话、联系地址等信息。
针对API安全治理的几点建议
一、获取现有的全量API资产信息。此阶段通常以自动化学习与人工确认相结合的方式进行
二、针对API资产做统一梳理。特别需要针对僵尸API和老旧API资产,制定相应的全生命周期管理策略,避免其带来的安全隐患
三、为API资产定制专项防护策略。除传统的SQL注入、XSS、命令注入等方式外,需要结合业务特征来定制策略,例如针对API滥用和盗用行为,需要结合实际API的调用情况进行细颗粒度的配置
四、可实现快速应急响应处置。在出现API接口异常情况时,能快速进行响应处置,例如对指定API或整个服务进行下线处置,并且整个过程留存API调用相关审计记录。
API安全防护解决方案
通过被动流量分析,对业务流量进行采集、建模和数据分析,全面识别未知API、临时API、历史遗留API等“暗资产”并结合API资产导入,形成完整的API台账;通过对API的调用频率、趋势、请求次数等维度进行资产画像,形成API行为基线;利用安全语义引擎、机器学习引擎、规则检测引擎等核心技术,结合API盗用、滥用、数据脱敏、弱口令等防护策略,对API资产进行全方位的防护;在出现异常情况时,可以提供应急响应策略进行快速处置,构建完整的API资产全生命周期安全防护闭环管理体系。