利用编程接口(API)一向是信息安然范畴的热点会商话题,这是有启事的:比来的一些高招名度网站安然泄漏变乱(包含Pinterest和Instagram)都触及API。
在2014年1月,Snapchat数据泄漏变乱导致约460万用户受影响,而该变乱的本源就是不服安的API。当然API其实不是直接报复打击方针,但API承诺报复打击者大年夜范围匹配Snapchat用户的手机号码与用户名。
在本文中,我们将切磋不服安的API若何故及为何会给企业及用户构成重大年夜风险,并诠释安然团队应当如何做来进步人们的安然意识、呵护现有企业软件中的API,和若何安然地利用API数据。
甚么是API?
API是指一组函数或例程,它们用于完成特定任务或供给简单编制来与软件组件进行交互,凡是承诺主动化常见流程,例如与在其他机械上运行的办事器进行交互。
API可所以一个库,此中包含例程、数据布局、对象类和变量的规格,或只是透露给API利用者的长途调用的规格。一些API是基于国际尺度(例如可移植把持系统接口,POSIX),而另外一些则是以开源或供给商文档情势公之于众。例如,微软的Windows API闪开辟人员可以或许为Windows平台成立软件。
为了产生暗藏收人来历和商业机缘,企业正在愈来愈多地经由过程API来交付其营业利用法度和数据。别的,Web 2.0也鞭策了Web API利用量的激增,让用户与法度可以与在线利用法度背后的核心数据进行交互。亚马逊云计较办事就是最好的例子,它利用API来让用户拜候其各类办事,例如EC2。
经由过程公开化API,企业可以进步合作火伴连接性和云集成,并可以或许更好地向客户供给办事。同时,第三方也能够开辟利用法度,为用户供给额外的功能,并帮忙进步企业办事和产品的驰名度和摆设率。
按照Layer 7 Technologies公司的最新研究显示,超越43%的受访者称其企业今朝已摆设了API打算,而27%暗示,在将来一年内将会推出如许的打算。Facebook平台就是API获得成功的一个很好的例子;Facebook供给的API闪开辟人员成立数百利用法度和办事,拜候Facebook及其用户的数据,这无疑较着鞭策了Facebook的成长和成功。
Web API(例如来自Facebook的API)凡是是超文本传输和谈要求动静,返回布局化响应动静,最多见的是可扩大标识表记标帜说话或JavaScript对象符号格局。这类API快速代替了基于简单对象拜候和谈的Web办事和面向办事的架构;因为它们更等闲摆设,并且更合适成立一个开放架构,以在利用法度和用户之间共享内容和数据。
API安然标题问题和若何避免它们
除诸多长处外,利用编程接口也存在安然标题问题,正如比来的安然泄漏变乱所显示的。安然标题问题凡是不在于API背后的概念,而在于它的编码编制。良多利用开辟人员在编写或利用API时没有考虑安然身分,使得利用和数据处于危险当中。当触及API时,糟编写的代码很快就会变成危险代码。
所幸的是,企业及其开辟人员可以采纳一些办法来加强和确保API在企业环境的安然性。
在开辟过程(当然是在发布利用之前)中,安然专家应当手动查抄API代码,以测试它是不是可能被报复打击者滥用或误用。文档记实也很关头,清晰记实的代码让安然人员可以看到API应当和不该该做甚么,并让整合API到利用的人体味若何准确摆设API。
在文档中,开辟人员应当明白若何调用API、哪些数据将被返回和以何种格局,还有可能呈现甚么弊端动静。内部记实还应当指明谁可以拜候API和哪些信息将被记实以肯定哪些资本出于审计目标被谁在甚么时辰拜候。在拜候的话题上,在恰当的时辰,机械ID应弥补身份验证查抄。并且,还应当查抄每个API调用以确保用户或设备有准确的权限来查看、编纂或删除所需信息。但是,在用户身份验证后,良多开辟人员凡是省往了二次拜候节制查抄。
对查抄API若何措置突发性输进和要求,黑盒测试和恍惚测试是关头。一样首要的是,经由过程数据验证例程来避免尺度注进缝隙和跨站要求捏造报复打击,因为调用API可能来自不受信赖的来历。别的,应当在所有类型的端点进行测试,而不只是对web浏览器。经由过程非浏览器利用(例如移动利用)拜候时,良多API未能摆设SSL,所以必然要确保数据始终是加密状况--当没有要求纯文本格局时。渗入测试和缝隙评估也应当侧重于API,因为它们是利用的接进点。
试图操纵第三方的API的企业必需确保其开辟人员完全部会若何安然地摆设它们,并验证所有来自这些API的响应。良多开辟人员(不管是来自第三方仍是内部开辟人员)喜好反复利用互联网发现的代码,出格是触及若何调用特定API时。但是,复制和粘贴代码,而不查抄它是不是合适于特定内容,这是API相干缝隙进进利用的常见环境。
企业必需记住:当然开辟速度可能很首要,但对细节的寄望也很首要。开辟人员必需细心浏览API文档,永久不要依托于互联网上的道听途说。企业的开辟时候表应当给开辟人员足够的时候来体味若何准确地摆设API,和体味API可能带来的暗藏风险—出格是当触及共享用户数据时。糟编写或摆设的API可能引进报复打击向量,并增加了与奥秘性、完全性、可用性和可问责性的风险,因为它们是企业资本的网关。并且,企业应当尽可能地避免没有开放的丰硕文档的API。假定加密密钥被用作调用API的拜候和身份验证机制,它们必需按照政策安然地存储,永久不要硬编码到建设文件或其他脚本。
API的标题问题不太可能会很快消掉;并且API正在成为现代开放企业的基石。鉴于其首要性,API应当获得成立和利用API的人的更多正视。假定安然地摆设,API可让企业充分操纵其本身和其他人的数据,同时确保便当性和安然性。假定摆设不当,API可能被报复打击者操纵来报复打击企业及其用户。