来吧,聊聊API安全
2020-08-13
一、前言
近些年,API安全在安全领域越来越多的被业界和学术界提及和关注。OWASP在2019年将API安全列为未来最受关注的十大安全问题。事实上随着应用程序驱动的普及,API接口已经是Web应用、移动互联网以及SaaS服务等领域的重要组成部分,无论是我们在网上购物,或者是在银行交易,甚至在医院看病挂号都会伴随着对API接口的访问和控制。由于对API接口的访问与控制伴随着数据的传输,其中不乏大量的用户隐私数据以及重要文件数据,因此越来越多的非法黑客将API接口作为攻击的目标,并通过非法控制和使用API接口窃取数据等。所以没有安全的API服务,就会带来生产生活上的巨大不便和潜风险。
所谓API安全防护就是对API的完整性进行有效的保护。目前API安全防护措施主要集中在访问授权认证机制、访问频率与访问量的限制与负载平衡以及数据在网络通信过程中的数据隐私保护。其解决方案主要围绕TLS、SSL以及访问控制等技术手段进行防护。
二、API安全发展趋势
目前随着互联网、物联网等快速发展,越来越多的开发者会使用API接口为客户提供各种微服务并通过云原生应用快速部署容器进行快速迭代开发。因此无论是在互联网访问网络资源或者通过物联网进行系统应用的控制都会利用API接口。由于在API接口既能够起到连接服务的功能,又可以用来传输数据,因此API的安全防护非常重要也非常敏感。目前已经出现了多起因为API被攻击或者存在漏洞而出现的数据泄漏的事故,例如2019年Instagram因API接口漏洞导致用户数据以及照片被泄露。这一类API安全被破坏的情况一旦出现在数据敏感的重要领域,例如金融行业,医疗行业等,就会引发恶劣的社会影响,一旦被泄漏的数据被黑客非法使用都可能带来经济上甚至政治上的不良影响。因此对API安全进行防护,既有利于用户安全使用API所提供的服务,又能够为用户的隐私数据进行保驾护航。
一般而言,我们提到的API安全防护是指Web API安全防护,其中一个主要的关注问题在于经过API接口建立起来的用户和服务之间的通信数据如何防护。目前大部分开放的API接口都属于REST(表述性状态传递)接口或者是SOAP(简单对象访问协议)接口。RESTAPI接口是通过HTTP协议建立连接并使用TLS(传输层安全性)进行加密,确保在服务连接过程中数据被加密并防止数据被篡改。此外RESTAPI也可以利用JSON的数据传输格式进行文件的数据传输。SOAPAPI接口是通过Web服务安全性的内置协议建立服务连接并传输数据,并且支持W3C(万维网联盟)和OASIS(结构化信息标准促进组织)两个标准机构制定的标准。由于内置协议中自定义了加密和身份认证的规则集,因此食用SOAPAPI在安全措施上更受欢迎,但这也意味着使用SOAPAPI会带来更多在身份认证方面的管理和授权。由于RESTAPI不需要存储或者对数据进行重新打包封装,因此RESTAPI的数据传输速度比SOAPAPI会更快。但是对于处理敏感数据比较多的场景下使用SOAPAPI会更加安全。
三、API安全防护措施
为了提高API安全性,根据OWASP提出的API威胁所包含的拒绝服务攻击、窃取隐私数据、未授权访问等类型的攻击威胁,安全厂商可以在以下方面进行应用或者提升,以保障用户的API服务使用体验。
1)使用令牌技术,通过令牌建立API接口的可信身份,然后使用属于可信身份的令牌才能够实现对服务和数据资源等进行访问以及控制。
2)使用加密和签名技术,例如在RESTAPI中使用TLS等加密方式对数据进行加密,保证数据在传输过程中被加密并防止被篡改。使用签名技术可以保证只有拥有数据访问权限的用户才能够对数据进行解密并对数据进行修改。
3)主动识别API中的漏洞。可以使用检测嗅探器对API安全进行检测并检查数据被泄漏的情况,确保在网络环境下API服务的安全性,实时追踪API接口是否被非法黑客进行攻击以及漏洞被利用的情况。
4)使用API安全网关。目前API安全网关已经被作为防护API安全的一个关键技术被使用,由于API安全网关可以用来控制和管理API接口的使用情况,同时也可以对使用API接口和服务的用户进行身份认证,因此在保护数据和API安全性上具备一定优势。
5)通过对API接口的访问频率进行限制。由于业务的不同,API接口被调用的情况也会不同,通过分析和监测API接口被访问和调用的频率来确保API接口未被攻击者攻击以及数据被泄漏。一般来说被攻击的API接口往往会出现被调用次数增多或者频率与正常情况出现较大差异,因此通过限制API接口被访问的情况,进行限流等方式可以防护API出现被攻击者攻击甚至是拒绝服务的情况。
API的安全防护离不开业务层面上对API接口的开发和对API接口的管理。一般来说API接口的安全开发需要开发人员具备API安全开发的知识和意识,并遵循安全开发规范对API接口进行开发和部署,而API接口的管理可以通过管理平台对其进行安全防护,例如使用基础的用户名密码的方式进行身份验证,或者通过API密钥即令牌字符串进行安全防护,或者基于OAuth框架进行用户身份信息的验证以及基本信息的校验。事实上对API的安全防护是一件从开发到应用到运营维护整个阶段都要参与和防护的过程,这一点和传统的Web安全防护有所区别又有相似之处,是一件很有价值和意义的安全防护工作。
现在市场上已经出现了一些API安全防护的产品,例如红帽提供的3scaleAPI管理,能够持续的对API进行管理和防护。它不仅可以管理API、应用和开发者角色的API管理器,也可以执行API管理器策略和流量管理,并支持多身份认证协议的身份提供商中心。在API网关方面,Amazon提供的API网关可以解析到期的时间戳令牌,检查客户端身份是否有效,以及使用公钥来确认签名等。此外,GOKU安全网关也可以实现网关系统的要求并具备一定的定制化特点。在不同API安全网关产品中,安全性、便捷性和个性化是最重要的几个影响因素,网关不仅要求API安全性和可用性有安全保障,也会避免隐私数据在网关传输过程避免被泄漏。Google收购的Apigee能够给客户提供一个跨云的API管理平台,通过主动探测API流量结合上下文进行分析并产生警报,为API服务提供实时上下文监控并快速诊断的能力以及采取补救的措施。
四、API安全未来趋势
目前来看,API安全网关是各个企业保护API安全的有效手段。API安全网关是一种便捷的保护API安全的工具,API安全网关可以利用流量过滤以及监控等方式对入侵进行检测并防止黑客攻击。即使目前市场上已经出现了一些API安全防护产品和解决方案,但是由于在API海量数据中检测威胁并进行防护还是面临着很多挑战,在复杂多样的环境下进行防护是很难做到防护的智能化。此外攻击者的攻击手段日新月异,变化很快,如何设计弹性的管理系统对API服务进行安全监控是未来需要解决的问题。在未来智能API安全解决方案会成为解决API安全问题的一个有效方法,而且已经在业界多次提及。使用人工智能和机器学习技术在海量API流量中进行威胁发现和安全防护,并利用AI模型的学习能力,在不同环境下动态的对API正常行为模式进行学习与积累,将有关行为的前置知识学习出来,然后自适应的在环境下对API异常活动进行识别并阻断,实现API安全的智能安全防护策略。
五、总结
如今API安全已经成为提供API服务的企业之间以及企业内部都需要关注的一个安全问题,一旦没有很好的保护好提供服务的API,不仅会对用户的使用体验以及个人隐私带来威胁和风险,而且可能会使企业面临安全威胁和风险。对于开发人员来说,为了提高API安全性需要在设计和开发阶段,对API的安全性进行良好的构建和设计,此外要遵守API安全开发规范进行实施。对于管理人员来说,应该使用API管理平台对API服务所面临的风险进行检测和防护。
· 参考链接 ·
[1].http://www.usenix.org/conference/usenixsecurity18/presentation/oneill
[2].http://www.ndss-symposium.org/ndss2014/workshop-usable-security-usec-2014-programme/should-i-protect-you-understanding-developers-behavior-privacy-preserving-apis/
[3].http://www.aqniu.com/news-views/37485.html
[4] http://www.redhat.com/
[5].http://smartbear.com/resources/ebooks/the-state-of-api-2019-report/
· 关于天枢实验室 ·
天枢实验室聚焦安全数据、AI攻防等方面研究,以期在“数据智能”领域获得突破。