83%的组织认为API 集成对其业务战略至关重要,API 是当今几乎所有 Web 应用程序中最不可或缺的部分之一,使组织能够比以往更快地扩展。
但这是有代价的。
91%的开发人员表示 API 是公司最大的安全风险- 事实上,最新的 IMB 报告将三分之二的云漏洞归咎于 API 缺陷。如果没有得到妥善保护,黑客可以利用它们获取敏感数据并对您的组织造成严重破坏。
为了防止这种情况发生在您身上,我们将在本文中探讨保护 API 安全的十个基本做法。
什么是 API 安全?
API 安全是网络安全的一个子集,用于识别和解决 API 网络威胁和漏洞。它使用各种技术和最佳实践来保护敏感信息不被用户(包括组织内部和外部的用户)利用。
由于 API 涉及敏感数据,因此它们经常成为多种类型的网络攻击的对象。
如果无法正确保护或维护您的 API,可能会导致许多严重后果,包括但不限于:
- 客户数据丢失
- 未经授权访问敏感信息
- 欺诈交易
在组织看待 API 的方式方面,API 格局发生了巨大变化。
正如 Achieve Internet 首席技术官 Shawn Smiley 指出的那样,最初,API 仅被开发团队用来促进其内部流程,因此并没有太多考虑这些 API 暴露的后果。
截至 2021 年,由于 API 漏洞和逻辑缺陷,数十亿条 API 记录被盗,其中包括 Venmo、Facebook 和 USPS 等大公司。
随着互联网的发展和各组织找到利用其 API 的新方法,事物变得孤立,为黑客利用漏洞提供了更多机会。
现在,组织变得更加积极主动,试图找到在攻击发生之前阻止攻击的方法。
因此,遵循 API 安全最佳实践对于保护您的公司、客户和底线至关重要。
10 个 API 安全指南和最佳实践
平均而言,API 数据泄露会给公司造成381 万美元的损失,这还不包括 IBM 所认为的“超级泄露”,_这类泄露平均会给公司造成 5000 万美元以上的损失。_
再加上几乎25%的美国人不会与数据泄露的组织做任何生意,您需要了解基本的 API 安全措施,以避免成为统计数据。
以下是每个现代开发人员都应该知道的十个基本 API 安全最佳实践,以确保他们的数据安全。
1. 身份验证和授权协议
API 安全始于身份验证和授权协议。
他们帮助防止 API 用户访问不属于他们的数据或他们无权查看的信息– 属于 OWASP API 安全性 Top 10 列表顶部的漏洞组。
受到推崇的: _OWASP API 安全性十大列表是什么?_
在处理敏感的财务、医疗保健和政府记录时,这一点尤为重要,因为如果没有适当的 API 身份验证和授权协议,黑客可以利用这些数据谋取私利。
身份验证和授权协议的一些示例包括:
2. 传输中、静止时和存储期间的数据加密
尽管身份验证和授权可以说是 API 安全的最重要元素,但数据加密也同样重要。
一旦数据进入 API,使用加密可防止其他用户未经授权访问。
这意味着无论数据状态如何,都要创建数据加密 – 无论是存储、通过网络或互联网传输,还是静止。
静态数据是保存在计算机上的任何 API 数据。您可以使用行业标准的高级加密标准 (AES) 算法(称为 Rijndael 密码)通过 AES 256 位加密来保护它。
您可以同样保护存储的数据,同时使用 2048 位加密通过 SSL/TLS 加密传输数据。
正确加密的数据将防止与敏感数据相关的安全漏洞等。
3. 数据完整性检查
定期的数据完整性检查可确保敏感数据在传输之前、之后或传输过程中不会发生变化。
散列是执行此类检查的最常用方法之一。对数据进行散列后,您可以将散列值与原始值进行比较。
正确执行的数据完整性检查将确保收到的信息与服务器发送的或存储在硬盘上的信息相匹配。
完整性检查可确保 API 请求得到安全处理并根据一组标准化策略进行验证,从而帮助开发人员保护他们的资源。
4. 记录 API 活动以供分析
最好的 API 安全实践之一包括记录可审计事件(例如登录失败或大型交易)以用于分析目的。
日志记录不足在 OWASP 列表中排名第 10,这意味着存在重大安全风险,可能导致您的系统在发生主动攻击时无法触发任何警报。
此外,如果没有任何日志,就很难证明黑客犯了罪,或者在发布后排除任何错误或漏洞。
充分实施的安全日志使您能够密切监视用户和任何可疑活动。
一旦缩小了可疑来源的范围,您就可以构建一些阈值、规则或参数来进一步保护数据。
5. 定期代码审查
代码审查是提高软件质量的一种行之有效的方法。因此,定期进行代码审查可以帮助您在攻击者利用漏洞之前识别出任何 API 漏洞。
您可以通过多种方式定期进行代码审查。例如,您可能希望每月至少安排一次团队会议来讨论所有更改,并确保您的 API 团队审查所有相关的代码更改,尤其是涉及开源工具时。
手动和自动代码审查相结合将使您比网络犯罪分子更具优势。
为了覆盖所有基础,安全专业人员或渗透测试工具应定期分析公共 API,以便在黑客利用漏洞之前识别漏洞。
6. 双因素身份验证
由于基本身份验证实施不力,网站、API 服务和云应用程序经常成为成功的网络攻击的目标。
双因素身份验证,有时也称为多因素身份验证,通过要求两步来访问用户数据,消除了单源登录的弱点。
输入正确的用户名和密码组合将要求用户提交第二个身份验证因素(发送到他们的电子邮件地址或电话的代码),提供第二层保护。
您可以为您的 API 使用的三种基本身份验证类型如下:
- 独特知识(PIN 码)
- 独特物品(一部手机)
- 独特的生物特征(指纹)
实施双重身份验证可阻止黑客的攻击。因此,2FA 被视为基本 API 安全的必备措施也就不足为奇了。
7.使用 API 网关
网关可确保所有请求都得到安全处理并根据一组标准化策略进行验证,从而帮助 API 提供商保护其资源。
有了 API 网关安全保护,您就不必担心直接保护 API 端点。相反,它们提供与防火墙为服务器和网络提供的相同保护层:它们位于客户端和受保护的后端服务之间。
您的 API 网关将审查来自授权用户的任何传入请求,并将其引导通过管理系统进行进一步审核。
网关的主要功能取决于实施目标。大多数网关侧重于以下安全机制:
- 实施安全政策
- 可疑活动警报
- 附加安全协议
8. 实施适当的 API 测试程序
测试软件会检查 API 质量和安全问题方面的所有问题:它可以在错误或故障到达用户群之前识别它们,同时还能加强源代码。
有多种方法可以全面测试您的 API,包括(但不限于):
受到推崇的: _您应该知道的 API 术语完整列表_
这些手动或自动测试中的每一个都可以发现新的安全问题和漏洞,从而使您的 API 暴露给黑客。
当开发人员可以访问完善的 API 文档时,他们可以运行自己的测试以确保他们的 API 按预期工作。
如果您构建了具有公共访问权限的 API 或在开发人员中实现广泛采用,则手动测试是一个不错的选择。
但是,如果只有内部业务部门才能访问您的 API,那么自动化测试是将成本控制在预算限制之内的最佳方法。
9. 使用 API 配额限制请求
如果您想防止 API 基础设施因过多请求而超载(包括 DDoS 和暴力攻击),最好使用某种类型的速率限制来限制 API 请求。
速率限制是 API 安全的重要组成部分,可以保护重要的软件资源。
它们通过限制 API 请求的数量或 API 在给定时间段内可以处理的流量量来工作。
如果应用程序超出速率限制,系统将阻止来自特定用户或 IP 地址的传入流量并生成错误代码。
限制 API 限制是防止 API 滥用的最佳方法之一。这样,您就不会让外部用户以过多的每秒请求数 (RPS) 压垮您的 API,从而给后端资源带来压力,并可能在推送合法流量的同时降低系统性能。
10. 解决过度数据暴露问题
最后要牢记的 API 安全实践是限制不必要的信息传播。无论您的 API 的用途是什么,每次执行 API 请求时,限制向最终用户透露的数据量都至关重要。
在 API 数据管理方面,黄金法则如下:不要让用户发送超出他们需要的信息 – 因为这会产生安全漏洞,使您的 API 面临风险。
如果 API 客户端在其请求中发送了太多不必要的信息,请设置一个 API 端点,返回必要信息并忽略其余信息。
11. 单一事实来源
组织需要将发布 API 文档的方式纳入中央门户,作为其 CI/CD 流程的一部分。这样,就可以从单一来源了解哪些 API 可用、它们位于何处以及谁负责它们。
通常,这包括在 API 层设置治理层,并从后端和前端系统中抽象出 API 基础设施,以便它充当客户端和目标后端系统之间的粘合剂。
这样,您就可以在 API 基础设施或 API 平台层进行集中治理。
这使您能够让开发人员以及内部和外部合作伙伴加入,并为他们提供标准化的入职和 API 文档方法 – 同时版本管理和修订控制使您能够处理 API 定期更改的情况。
12. 优先考虑 API 治理和风险评估
对于许多组织而言,只有在发布 API 后,治理才成为关注的问题。这种方法行不通,因为如果文档不充分,潜在客户就会转向其他地方。
治理需要从一开始就建立起来,并强制执行到开发流程中。采用自下而上的治理方法可以产生主观性,并避免由于只有少数人组成的小组委员会不了解 API 的各个方面而造成的限制。
许多缺乏这种治理的组织都已发布和未发布 API,从而造成了漏洞。这些 API 需要进行审核,以记录每种 API 的风险类型以及如何减轻这些风险。
13. IP白名单
使用 IP 白名单作为安全措施为 API 安全提供了良好的基础,但应辅以其他安全措施。
具有最少 API 的小型组织可能会考虑这种选择,但它仍应包含零信任模型。
他们应该将 IP 白名单与分层安全和地理围栏等其他技术结合起来,以避免过度依赖一种保护形式。
14. 利用 DevOps
API 从根本上改变了代码投入生产的频率。传统的安全测试并不一定能以 DevOps 的速度运行。
因此,自动化流程并融入开发周期的工具和技术可帮助组织不再依赖被动方法来规避攻击。
软件配置分析测试需要纳入流程,以避免安全配置错误。借助 API 管理解决方案,组织可以实现精细控制,以持续监控和降低风险。
通过更好的 API 安全性保护最重要的事物
随着越来越多的应用程序进入市场,API 安全性比以往任何时候都更加重要。
无论你感觉多么无懈可击,事实是,2021 年全年已有数百万次网络攻击获取敏感数据 – 而且这种令人担忧的趋势短期内没有放缓的迹象。
API 使用者依赖提供商来保证其个人数据的安全。当发生数据泄露时,风险可能很高:
- 损失的收入
- 公众尴尬
- 来自监管机构(如 FERC 或 PCI DSS,针对金融机构的情况)的罚款
- 来自用户的永久声誉损害,用户很可能会将业务转移他处。
但事情并不一定非得如此。
文章来源:https://www.explinks.com/blog/10-essential-api-security-best-...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。