个性化阅读
专注于IT技术分析

为什么以及如何保护API端点?

本文概述

你如何保护自己的API?

这是数字经济爆炸的时代, 海量数据负载通过API传递。商业, 游戏, 教育, 科学, 艺术。 。 。顾名思义, 一切都可以在API上运行。对于一个从根本上依赖API的世界来说, 几乎没有人关注安全性。

对于开发人员而言, 其框架的默认设置就足够了。甚至更糟的是, 当不使用任何框架时, 他们认为它们遵循的是安全做法。对于系统管理员来说, 他们所依赖的是基础架构或服务提供商提供的默认安全性。

如果你问我的话, 那可不是什么好看的。

为什么以及如何保护API端点?2

资料来源:developer.ibm.com

毋庸置疑, 这有很多危险, 只有在发生真正可怕的事情时我们才意识到。

但是首先是第一件事。 ????

为什么要保护API端点?

这一定是很容易的, 对吗?我们需要保护端点安全, 因为这正是业务所依赖的。

尽管这本身就是一个足够有力的论据, 但我想稍微扩大一下观点, 并强调其他相关但同样致命的后果。

为什么以及如何保护API端点?4

业务亏损

这是显而易见的。如果有人成功搞乱了你的API端点, 它将使一切陷入停顿。安全漏洞也可能需要很多时间来恢复, 这在业务上转化为自杀。的确, 大多数企业可能不会受到一两个小时停机时间的影响, 但对于某些企业而言, 这是不允许的。

想象一下, 汇率下降了几分钟!

合规问题

根据你要处理的地区或行业, 无法正确保护API可能会给你带来严重的麻烦。例如, 如果你正在为银行业服务(尤其是在欧盟), 那么发现使用不安全的API服务的成本将导致巨大的法律和合规性麻烦。如此之多以至于它甚至可能毁了你的业务。

声誉损失

遭到骇客攻击本身就很痛苦, 但是, 如果新闻在公众面前传播开来, 那么你的品牌形象就会遭受无法挽回的损失。例如, 到目前为止, 索尼已经遭到了几次严重的黑客攻击, 而在安全领域, 该公司却是一大笑柄。

即使没有实际的数据或金钱损失, 也要设法说服你的老客户。 ????

夸大的基础设施账单

当你的API在基础架构上运行时, 它会消耗资源(主要是带宽, CPU和内存)。例如, 如果API没有得到适当的保护, 并且恶意的外部人员可以与之交互, 则他们可能会迫使API继续做很多毫无意义的工作(例如, 运行繁重的数据库查询), 这可能会激增你的帐单是有原因的。

在启用了资源自动缩放的平台上(例如AWS), 结果可能令人震惊(偏离主题, 但是, 如果你在AWS上陷入这样的困境, 他们会非常了解情况并立即放弃虚假账单-至少在撰写时!)。

团队士气

因此, 你可能在想, 让这些妥协发生的团队会因此失去士气吗?好吧, 不完全是。折衷方案可能是由于基础架构安全性薄弱而引起的, 这会打击开发人员, 反之亦然。

如果发生的时间足够长, 你将拥有一种文化, 而后悔让它发展。

竞争对手的收获

假设有违反行为, 但没有实际损失。但是, 你的竞争对手将利用此事件宣传自己的API, 并断言他们的API有多安全(即使不是!)。再一次, 祝你好运试图说服市场。 ????

总而言之, 安全漏洞所带来的后果不只是赔钱。

保护API端点的最佳做法

值得庆幸的是, 你可以将某些易于实现和易于理解的做法应用于你的API端点以保护它们。这是大多数安全专家的建议。

始终使用HTTPS

如果你的API端点允许API使用者通过http或其他非安全协议进行对话, 那么你将面临很大的风险。密码, 秘密密钥和信用卡信息很容易被盗, 因为任何中间人攻击或数据包嗅探器工具都可以将它们读取为纯文本格式。

因此, 始终使https成为唯一可用选项。无论端点看起来多么微不足道, 通过http连接都不是一个选择。 TLS证书的价格不高, 你可以从SSL商店以低至20美元的价格购买。

为什么以及如何保护API端点?6

单向密码哈希

永远不要将密码存储为纯文本格式, 因为一旦发生安全漏洞, 所有用户帐户都将受到威胁。同时, 应严格避免对称加密, 因为任何足够聪明和持久的攻击者都可以破解对称加密。

唯一建议的选项是用于存储密码的非对称(或”单向”)加密算法。这样, 公司中的攻击者, 开发人员或系统管理员都不会读取客户密码。

强大的认证

现在, 几乎每个API都有一种身份验证形式, 但是我认为OAuth2系统运行得最好。与其他身份验证方法不同, 它会将你的帐户划分为资源, 并且仅允许有限地访问auth令牌承载。

同时, 另一种非常好的做法是将令牌设置为每24小时过期一次, 以便需要刷新令牌。这样, 即使你的令牌被泄漏, 也有可能在24小时期限内减少违规的影响。

应用速率限制

除非你有每分钟都有数百万人使用的API, 否则最好限制客户端在给定的时间范围内可以对该API进行多少次调用。

这主要是为了阻止机器人, 机器人可以保持每秒发送数百个并发请求, 并让你的API毫无理由地吞噬系统资源。所有的Web开发框架都带有限速中间件(如果没有, 则很容易通过库添加), 该过程只需一分钟左右的时间即可完成。

验证输入

这听起来很简单, 但是你会惊讶地发现有多少API可以使用。验证输入不仅意味着检查输入的数据格式是否正确, 而且还意味着没有意外的可能。一个简单的示例是SQL注入, 如果你不加检查或不加检查就让查询字符串通过, 它可以清除数据库。

另一个示例是验证POST请求的大小, 并向客户端返回正确的错误代码和消息。尝试接受和分析可笑的大输入只会使API崩溃。

实施IP地址过滤(如果适用)

如果你使用的是B2B服务, 并且你的API已在设置位置被企业使用, 请考虑添加额外的安全层, 以限制可以访问你的API的IP地址。对于每个新位置和新客户端, 都需要根据传入请求检查IP地址。

是的, 它增加了新手的麻烦, 但是最终结果是比其他方式更严格的安全性。

增强API保护的工具

是否有工具可以帮助我们扫描漏洞, 甚至更好, 提供有关保护API的第一道防线?

幸运的是。你可以使用多种工具, 但要注意, 最后没有哪种安全策略是完美的。话虽如此, 这些工具可以将你的API安全性提高很多, 因此建议使用。

为什么以及如何保护API端点?8

Metasploit

Metasploit是一个非常流行的开源框架, 用于对Web应用程序和API进行渗透测试。它可以在几个不同的参数上扫描你的API, 并针对存在的不同级别的漏洞进行详尽的安全审核。

例如, 由Metasploit进行的安全扫描可以告诉你你的API签名是否放弃了底层技术和操作系统;掩盖这一点通常是API安全胜出的一半。

为什么以及如何保护API端点?10

虽然开源核心框架通常就足够了, 但值得一看的是在Metasploit之上构建的优质付费产品。如果你想要高级支持, 那么专业计划是不错的选择, 并且将深入使用该框架, 但是, 如果你的团队有足够的经验, 则通常没有必要。

云耀斑

Cloudflare不仅提供CDN, 还提供许多安全功能, 例如WAF, 速率限制, DDoS保护, 这对于保护API免受在线威胁至关重要。

Netsparker

Netsparker带有USP”基于证明的扫描”。简而言之, 不规则的网络状况或某些鲜为人知的API行为常常被解释为安全漏洞, 后来发现这是错误的。

这会浪费资源, 因为报告的所有漏洞都需要手动进行再次扫描以确认它们不是误报。 Netsparker说, 该工具能够为你提供足够强大的报告概念证明, 从而消除了对发现的薄弱环节的怀疑。

为什么以及如何保护API端点?12

在诸如Sony, Religare, 可口可乐, 华为等公司的客户名单上, 你可以肯定这些人做得正确。 ????顺便说一句, 他们还有一个令人难以置信的Web安全博客, 你应该关注该博客。

SoapUI专业版

SoapUI Pro由SmartBear构建, 是创建API测试并获取准确的, 数据驱动的报告的直观, 简便的方法。它还与你的CI / CD管道巧妙地集成在一起, 确保没有添加新的代码会损害API的安全性。

为什么以及如何保护API端点?14

SoapUI能够与Swagger, OAS和其他流行的API标准一起使用, 从而大大减少了入门时间。对于Microsoft, Cisco, MasterCard, Oracle等客户, 计划每年起价659美元, 这是用于更安全API的有价值的工具。

信任波

Trustwave是一套围绕安全扫描和强化的解决方案套件。此服务的独特之处在于它不仅可以对API进行准确的威胁检测, 还可以帮助你了解如何解决它们。

为什么以及如何保护API端点?16

Trustwave执行所谓的上下文感知扫描, 这意味着一旦检测到底层操作系统或基础结构, 服务就会执行一系列相关检查, 以确保不存在与该平台有关的讨厌的安全漏洞。

他们还拥有一支强大的安全研究人员团队, 他们正在不断更新服务功能。如果你对合规性要求很高, 那么Trustwave是一个很好的解决方案。

如果你以数字为生, 并希望享受诸如威胁回复, 修复后单击鼠标重新运行测试等功能, 那就别无所求!

市场上不乏API安全工具, 无论它是开源的, 免费的还是商业的, 或这些的任意组合。随时探索更多, 如果你发现更好的地方, 请在评论中写出这样的意思, 我很乐意收录! ????

赞(0)
未经允许不得转载:srcmini » 为什么以及如何保护API端点?

评论 抢沙发

评论前必须登录!