漫谈:现代API安全简史
    继上一篇API安全之《大话:API的前世今生》之后,我们继续来谈谈API安全,本文从2019年几份API调研报告说起,分析API安全的实际现状、安全问题的成因、API安全问题分类以及API安全的市场前景等。预计阅读时间13分钟。

    人类社会由来就是一个发展与危机并存的世界,在互联网世界里API也是如此。从API开始的那一天起,安全缺陷一直伴随着企业应用的变化而不断变化。前有古老的Windows95 API漏洞,后有各种WEB API的数据泄露问题,它们像病毒之于人类的身体,长时间伴随并共生。

    一、API安全现状smartbear和postman是业界两家知名的做API业务企业,在postman发布的 2019年API调查报告[1]中,数据显示大多数受访者与2018年相比,对API安全更加自信,安全问题关注度低。
    【20200418】API安全之《漫谈:API安全简史》 - 图1
    在smartbear发布的2016年API调查报告[2]中,API安全排到了首位。如下图所示:
    【20200418】API安全之《漫谈:API安全简史》 - 图2
    但在smartbear发布的2019年API现状报告[3]中,关于API未来趋势和挑战有如下描述:标准化是2019年API状况调查中受访者希望在未来几年解决的第一大API技术挑战, 似乎自2016年API状况调查以来,对标准化的需求才有所增加;而安全性是2016年API状况调查中确定的第一大技术挑战,在此处调查中排名第四,但仍被43%的受访者视为主要问题。
    【20200418】API安全之《漫谈:API安全简史》 - 图3
    同样是2019年,postman与smartbear却给出了不同的结论。但基于互联网技术的快速发展,我更倾向与smartbear的调查报告更接近真实情况,只不过是API安全趋势在逐步向好的方向发展。API标准化成为2019年度关注的第一问题,是否也从侧面反映了在API问题(含安全问题)的治理过程中,受访者已意识到仅靠单点的技术改进无法解决问题,从而要依靠标准化来更好的解决?至于API的真实情况到底如何?我们不妨先来看一看最近的几起安全事件,让读者自己判断。今年3月底,多家网络媒体爆料[4],某社交平台数据疑似大规模泄露,涉及5亿多用户。随后平台的安全专员回复是在2018年底,有黑客通过手机通讯录接口,伪造本地通讯录来获得手机号与平台用户的关联,从而“薅走了一些数据”。针对此次API安全问题,平台已及时加强了安全策略,并在不断强化。除了某社交平台之外,很多社交app都有通过通讯录匹配好友的功能。去年11月,Twitter就出现过利用通讯录匹配功能获得百万推特用户账号和手机号的数据泄漏事件,随后 Facebook关闭了这一功能。而到了4月初,某视频会议服务厂商又被爆出发现多项安全漏洞[5],其中包含Facebook Graph API滥用导致隐私数据泄露问题。2019年9月,国内知名网络安全厂商网宿科技在发布的《2019上半年中国互联网安全报告》[6]中首次报告了API安全的现状,文中声称:本期报告首次对API流量安全情况作出分析,报告显示,2019上半年,网宿云安全平台共监测并拦截16.53亿次针对API业务的攻击,1月是API攻击的高发期。从行业分布看,政府机构、交通运输、传媒及资讯、电子商务四个行业的API业务成为攻击者的主要目标,分别占总攻击数的47.00%、35.84%、7.97%、6.21%。基于以上这些信息,我们大致可以判断,API安全问题仍普遍存在,甚至比较严重,但总体趋势是逐步向好。同时,在这篇报告中,也提及了API安全的攻击类型:在针对API业务发起的攻击中,恶意爬虫是最主要的攻击方式,占整体攻击数量的90.6%。恶意爬虫能对企业开放的各类不受保护、有信息价值的API接口进行不断攻击,以达到破坏、牟利、盗取信息等目的。当前业内普遍缺乏对 API 及其安全风险的态势感知,建议各大单位规范各类API接口开发,采用云防护的快速接入和性能优势,结合现网防护的业务贴合度,建立纵深分层的防护体系。那么,出现API安全问题到底有哪些原因呢?

    二、API安全问题的成因
    从攻击视角来看网络安全,恶意攻击者主要是通过渗透业务的暴露面来达成其攻击目的。在当前的互联网技术发展下,越来越的企业使用API对外部开放其业务能力,意图共建生态。面对API这块大蛋糕,企业不会放弃,在黑客的眼里,他们也同样不会放弃这个可攻击的路径。这也是很多互联网安全报告都在说API安全成为新的攻击目标的原因,作为安全厂商,他们是最先“看见”真实情况的那一拨人。针对API的攻击里,导致API出现安全问题的主要原因如下: 未受保护API:在API准入机制里,一般需要对API接入进行监管和审核。未受保护的API一旦被攻破会直接导致对内部应用或内部API二次攻击。比如因REST、SOAP保护机制不全使攻击者透明API访问后端系统、通过逆向工程分析API接口后的恶意爬虫属于此类。弱身份鉴别:当API暴露给公众调用时,为了保障用户的可信性,必须对调用用户进行身份认证。因设计缺陷导致对于用户身份的鉴别和保护机制不全而被攻击,比如弱密码、硬编码、暴露破解等。中间人劫持:因API的通信链路安全机制不全,攻击者通过攻击手段将自己成为API链中的某个受信任链,从而拦截数据以进行数据篡改或加密卸载。此类攻击,通常发生在运营商链路层面。传统攻击:在这里主要是指传统web攻击类型,通过攻击http协议中不同的参数,来达到攻击目的,比如SQL注入、LDAP注入、XXE等。而攻击者在进一步攻击中,会利用权限控制缺失、CSRF进行横向移动,从而获取更大的战果。弱会话控制:有时候API身份鉴别没有问题,但对会话过程安全保护不足,比如会话令牌(cookie,一次性URL,SAML令牌和OAuth令牌)的保护。会话令牌是使API服务器知道谁在调用它的主要(通常是唯一的)方法, 如果令牌遭到破坏、重放或被欺骗,API服务器很难区分是否恶意攻击行为。反向控制:与传统的交互技术不同,API没有严格类似于JSP页面的客户端/服务器端交互的请求响应控制,它像一个粘合层,再通过移动端技术、HTML5技术以及其他技术联结应用程序,这其中就存在服务器将数据推送到客户端的业务场景,而大多数安全协议都是信任服务器并不信任客户端,从而导致此类安全问题的出现。框架攻击:在API安全威胁里,有一些特殊存在的攻击场景,它们或因API规范、架构设计导致的安全问题,这类威胁我们统称为框架攻击。最常见比如:同一API存在不同版本,导致攻击者攻击低版本API漏洞;同一API的不同客户端调用,可能PC端没有问题到移动端存在安全问题等。 以上这些安全问题,我们主要从API层面去分析的。在实践工作中,大多数情况都是综合地去看待安全问题,比如说基于纵深防御的思想,比如说基于PPDR模型去考虑整体的安全性。

    三、OWASP API 安全 Top 10
    在API安全的发展过程中,除了各大安全厂商和头部互联网企业在推波助澜外,还有一家公益性安全组织不得不说,它就是OWASP。OWASP是一个开源的、非盈利的全球性安全组织,其组织主要致力于应用软件的安全研究,其使命是使应用软件更加安全,使企业和组织能够对应用安全风险做出更清晰的决策[7]。它有很多开源项目,其中OWASP Top 10就是非常著名的一个。在此项目2017 RC1版发布的十大安全威胁中,添加了A10:未受有效保护的API ;但不知道什么原因,等到2017 RC2正式发布时,却替换成了XXE和反序列化等。【20200418】API安全之《漫谈:API安全简史》 - 图4看到2017 RC2发布后当时第一感觉是OWASP可能觉得API安全没有像XXE威胁那么严重,但等到了2019年OWASP发布API安全Top 10似乎才恍然大悟,不是API安全不重要,而是选择合适的时机来重点突出。
    在OWASP API安全Top 10中,OWASP延续了WEB安全的传统,收集了公开的有关API安全事件的数据,并结合漏洞猎人赏金平台数据,由安全专家组进行分类,最终列举了十大API安全问题,以警示业界提高对API安全问题的关注。它们分别是:
    API1 - 失效的对象级授权和访问控制:攻击者通过破坏对象级别授权的API,来获得未经授权的或敏感的数据,比如通过可预测订单ID值来查询所有订单信息。API2 - 失效的用户身份认证:开发者对API身份认证机制设计存在缺陷或者无保护设计,导致身份认证机制无效。比如弱密码、无锁定机制而被暴露破解、token未校验、token泄露等。API3 - 不必要的敏感信息泄露:在API响应报文中,未对应答数据做适当的过滤,返回过多的、不必要的敏感信息。比如查询用户信息接口时却返回了身份证号、密码信息;查询订单信息时也返回了付款银行卡号、付款人账号信息等。API4 - 缺乏有效的资源和速率控制:API设计中,未对API做资源和速率限制或保护不足,导致被攻击。比如,用户信息接口未做频次限制,导致所有用户数据被盗;文本翻译接口没有速率限制,导致大量文件上传耗尽翻译服务器资源。API5- 失效的功能级授权和访问控制:与API1类似,只不过此处主要指功能级的控制,比如修改http 方法,从GET改成DELETE便能访问一些非授权的API;比如可以访问api/users的调用,直接修改为api/admins,调用管理类API。API6- 批量赋值:在API的业务对象或数据结构中,通常存在多个属性,攻击者通过篡改属性值的方式,达到攻击目的。比如,通过设置user.is_admin, user.is_vip的值,提升用户等级;比如默认接口提交参数为{“user_name”:”inons”,”age”:24},攻击者提交{“user_name”:”attacker”,”age”:60,”credit_balance”:99999}提高信用额度。API7- 安全配置错误:系统配置错误导致API的不安全,比如传输层没有使用TLS导致中间人劫持;异常堆栈信息未处理直接抛给调用端等。API8– 注入:与OWASP web安全注入类型相似,主要指SQL注入、NoSQL注入、命令行注入、XML注入等。API9- 不当的资产管理:对于API资产的管理不清,比如测试环境的、已过期、低版本的、未升级补丁的API、影子API接口暴露,从管理上没有梳理清楚,导致被黑客攻击。API10- 不足的日志记录和监控:对API缺失有效的监控和日志审计手段,导致被黑客攻击时缺少告警、提醒,未能及时阻断。比如没有统一的API网关、没有SEIM平台。OWASP API安全Top 10的发布,第一次在公众视野里理清了API安全的常见问题类型,同时也从API生命周期管理、纵深防御的安全设计思想上,为API安全的综合治理提供了指导方向。当然,作为API安全的第一个版本,也会有它的不足,比如笔者认为API1与API5在问题成因上的阐述,没有web安全里的水平越权、垂直越权那样清晰,容易导致问题归类划分的混乱。但我们仍有理由相信,OWASP API安全Top 10未来的版本发布值得期待。**四、API 安全市场前景与趋势**我们先来看几则与API安全相关消息:1.4月16日网媒报道findadoctor.com网站因API安全问题,导致美国140万医生信息泄露2.4月9日WordPress插件Rank Math爆出严重API安全漏洞可以直接修改users表信息3.4月2日GitLab API问题导致私有项目的名称空间泄露从上述几则消息时间先后的密集度我们可以猜测,API安全问题仍很普遍;但整个市场规模怎样,客户是否真的重视并为之愿意掏钱买单还是另一码事。我们不妨先从Gartner在2018年发布的《Selecting the Right API Gateway to Protect Your APIs and Microservices》[8]中窥见一斑,概览性了解一下API网关的市场情况。文中列举的API网关产品及厂商有:

    • 1.Amazon API Gateway
      1. Google Apigee Edge and Apigee Edge Microgateway
    • 3.Axway API Gateway
    • 4.CA Technologies API Gateway and Microgateway
    • 5.IBM DataPower Gateway and API Connect Microgateway
    • 6.Kong Enterprise Edition
    • 7.Microsoft Azure API Management
    • 8.Salesforce MuleSoft Mule
    • 9.NGINX Plus
    • 10.Red Hat 3scale APIcast API Gateway
    • 11.Software AG webMethods API Gateway
    • 12.TIBCO API Exchange Gateway, TIBCO Mashery Enterprise
    • 13.WSO2 API Manager, WSO2 API Cloud and WSO2 API Microgateway

    文中从IAM、安全运营(流量监控、威胁防护、数据安全等)、DevSecOps融合、费用许可四个方面对上述产品进行打分,其内容基本包含了当前市场API安全产品的主要功能。同时,从文章中我们也看出参与API安全市场竞争的既有Google、Amazon、Microsoft 、IBM这样的TOP企业产品,也有Kong、NGINX、WSO2 这样小而美的解决方案。公有云厂商建设API网关以自用为主,to B销售才是影响市场的主力军。除了API网关产品外,还有一部分厂商在与API安全相关联的产品,比如上文中提及的postman与smartbear,主要做API测试类工具产品Postman和SoapUI;同时,smartbear在也做OpenAPI的规范。当然,也有一些传统的WAF产品安全厂商转轨进入API安全领域,比如Akamai在2018年就开始在WAF防护能力中谈论API的安全防护,并2020年疫情期间单独做了疫情API安全专题,而WAF大厂Imperva自然也不例外。API安全市场似乎是尚未成型蓝海,但各个大厂已然虎视眈眈,争着要分一杯羹。业界安全专家DJ在《下一座圣杯 - 2019》[9]中关于API安全的前景做了详细的论断和分析,他认为:不同时期不同架构的业务应用中不同的API形态(REST API、WebSockets XML、JSON、Protobuf、RPC等)是API产品需要攻克的难点,当前时间点,境况不佳的API安全初创公司没有拿得出手的API安全产品仍是其他厂商进入API安全市场的好机会。当前的中国正进入全面信息化时代,随着5G、新基建以及人工智能使用场景的不断深入,全面智能化将成为趋势,工业互联网正在成为传统行业企业结构升级的下一步跳板,物联网也将成为基础设施建设,深在其中每一个领域的能力释放都离不开API的广泛使用,这都为API从业者带来广阔的发展前景。
    参考资料:**
    1.postman,《2019年度API调研报告》
    2.smartbear,《2016年度API现状调研报告》
    3.smartbear,《2019年度API现状调研报告》
    4.http://tech.163.com/20/0319/18/F83R4V5S000999LD.html
    5.https://blog.zoom.us/wordpress/2020/04/01/a-message-to-our-users
    6.http://www.techweb.com.cn/internet/2019-09-24/2755787.shtml
    7.OWASP,《owasp api security top 10》
    8.Gartner,《Selecting the Right API Gateway to Protect Your APIs and Microservices》
    9.DJ,API安全《下一座圣杯-2019》