API网关在安全性中的角色:身份和访问
访问控制是API网关技术的头号安全驱动程序,可作为各种调控器,因此组织可以管理谁可以访问API并建立有关如何处理数据请求的规则。
Cheshire表示,访问控制几乎总是延伸到建立其他策略,包括来自某些来源的API调用的速率限制,甚至是通过API访问所有或某些资源的支付要求。
当所有流量通过网关路由时,IT安全专家会更加确信他们能够了解组织的脉搏。
API网关的访问控制功能通常从身份验证机制开始,以确定任何API调用的实际来源。目前,最受欢迎的网关是OAuth,它充当访问基于Web的资源的中介而不向服务公开密码,基于密钥的身份验证保留用于企业可以承受丢失数据的实例,因为它很难保证密钥完全保密。
消息安全
网关是通过单个通道路由所有API事务以在整个组织中评估,转换和保护消息的好方法。当所有流量通过网关路由时,IT安全专家会更加确信他们能够了解组织的脉搏。

API网关可以在内部服务之间引入消息安全性,使内部服务更加安全,并且消息在加密的服务之间来回传递。
忽略正确的身份验证 - 即使使用传输层加密(TLS) - 也可能导致问题。例如,在API请求中使用有效的移动电话号码,任何人都可以获得个人电子邮件地址和设备标识数据。OAuth / OpenIDConnect等行业标准的强身份验证和授权机制与TLS结合使用至关重要。
威胁防护
如果没有威胁防护,API网关,其API和集成服务器的本机服务基本上是不安全的。这意味着潜在的黑客,恶意软件或任何匿名的局外人都可能轻易地尝试传播一系列攻击,如DDoS或SQL注入。
API是企业与世界数字连接的门户。不幸的是,有些恶意用户通过注入意外的命令或表达来删除,删除,更新甚至创建API可用的任意数据,从而获得对后端系统的访问权限。
例如,2014年10月,Drupal宣布了一个SQL注入漏洞,该漏洞允许攻击者访问数据库,代码和文件目录。攻击非常严重,攻击者可能已将所有数据复制到客户的网站之外。有许多类型的注入威胁,但最常见的是SQL注入,RegExInjection和XML注入。我们不止一次看到API在没有威胁防护的情况下上线 - 这种情况并不少见。
记录
许多API开发人员习惯于在所有成功请求中使用200,对于所有故障使用404,对于某些内部服务器错误使用500,在某些极端情况下,在详细的堆栈跟踪之上,在身体中有200个故障消息。当堆栈跟踪以包名,类名,框架名,版本,服务器名和SQL查询的形式揭示底层设计或体系结构实现时,它可能会成为恶意用户的信息泄露。
返回“平衡”错误对象,使用正确的HTTP状态代码,最少必需的错误消息以及错误条件期间没有堆栈跟踪是一种很好的做法。这将改进错误处理并保护攻击者的API实现细节。
API网关可用于将后端错误消息转换为标准化消息,以便所有错误消息看起来相似; 这也消除了暴露后端代码结构。
白名单和白名单允许的方法
考虑IP地址级别的API流量,应该有已知的设备,服务器,网络和客户端IP地址列表。根据网络的紧张程度,此列表的大小会有所不同。
RESTful服务通常允许多个方法访问该实体上不同操作的给定URL。例如,GET请求可能读取实体,而PUT将更新现有实体,POST将创建新实体,DELETE将删除现有实体。
对于服务来说,正确限制允许的动词非常重要,这样只有允许的动词可以工作,而其他所有动词都会返回正确的响应代码(例如,a403 Forbidden)。
输入验证
利用松散的输入验证,允许黑客找到系统中的空白。使用现有输入,攻击者将探索接受或拒绝的内容,并推动可能的内容,直到他们找到进入API的方式并破坏系统的完整性。
以下是最常见的输入验证。
邮件大小
消息大小限制很好。如果您100%确定您不会收到大邮件(例如,超过2MB),为什么不过滤掉它们?
SQL注入
SQL注入保护允许您阻止可能导致SQL注入攻击的请求。
JSON威胁防护
JavaScript Object Notation(JSON)易受内容级攻击。此类攻击尝试使用巨大的JSON文件来压倒解析器并最终使服务崩溃。
XML威胁防护
对XML应用程序的恶意攻击通常涉及大型递归有效负载,XPath / XSLT或SQL注入,以及CData压倒解析器并最终导致服务崩溃。
限速
要求对所有API用户进行身份验证,并记录所有API调用,允许API提供商限制所有API用户的使用率。许多API网关允许您对可以针对任何单个API资源进行的API调用的数量进行限制,以第二,分钟,日或其他相关约束来规定消耗。
API网关:开源
以下是一些值得一试的产品:
结论
在谈论API安全性时,我们必须明白,安全性是公司,组织,机构和政府机构考虑在其API基础架构中投入更多资源以及正在加大现有工作量的公司的头号关注点。同时,它也是现有API提供商投资API基础设施时最缺乏的领域。许多公司正在自己构建API作为产品,部署Web,移动,物联网和其他应用程序,但很少停止在整个过程中的每个步骤中正确保护事物,但API网关是最受欢迎和最有效的解决方案之一。你将面临许多安全问题。