为什么实现 API 最佳实践需要重新考虑安全性

news/2024/12/22 13:11:42/

随着应用程序编程接口 (API) 的使用与日俱增,实现和维护有效安全性的挑战从未像现在这样大。 

由于缺乏管理 API 的单一标准,这意味着团队不能仅依靠工具来解决安全问题,因此这一挑战变得更加严峻。没有任何一种产品可以解决 API 环境的每种语言、框架或上下文的所有问题。

为此,企业玩混搭。现代组织专注于使用工具来应对具有挑战性的网络威胁——以至于陷入阻碍进展的狭隘视野。

一份 2022 年的报告显示,大型企业安全团队平均监督 76 种安全工具,那太多了。

对自动化和工具的关注会产生一种错误的安全感,并且无法解决根本原因,因为大多数数据泄露都是由人为错误引起的。

研究发现,开发人员还严重依赖预先存在的代码,例如,近一半的开发人员使用具有固有缺陷的库或框架,因为它们没有经过持续测试或评估。

同时,开发人员假设因为代码存在于库中,所以它是安全的。但情况并非总是如此。

实现最佳实践

是时候按下重置按钮了。我们需要停止不断寻找最新的闪亮对象,而开始更多地关注我们的员工。是的,安全工具已经取得了令人瞩目的进步,并且起到了关键作用。

然而,软件开发团队仍然需要提高他们的安全能力以有效地部署这些解决方案。由此产生的培训和政策实施应侧重于以下最佳实践:

1.分配所有权:

就其本质而言,API 被过度许可以允许应用程序之间进行未经检查的通信。坦率地说,他们“说得太多了”——导致过度分享的状态,从而引发妥协。这就是“TMI 技术”。

TMI 技术持续存在是因为我们很少分配 API 的所有权(无论是分配给开发人员还是分配给他们的应用程序安全团队)。因此,很少对哪个 API 共享什么进行细致的监控。

为了纠正这个问题,管理人员应该将 API 所有权分配给开发团队,并帮助他们认识到广泛开放(和未记录)API 实施的风险。当涵盖了此类责任并建立了上下文行为基线时,关闭这些麻烦的“对话”就容易得多。

2. 像对待人一样对待 API:

为了扩展我们的第一个最佳实践,我们可以通过对 API 应用零信任、最小特权和基于角色的授权来立即改进访问控制,就像我们对人所做的那样。

如果需要 API 来执行特定功能,那么我们将其权限限制为仅用于该功能。同样,我们应该进一步适当地限制 API 花在访问上的时间以及访问的容量。

3. 融入“测试先行”的心态:

开发人员需要了解假设的缺陷——但最好不是困难的方法。因此,开发团队应定期测试 API 以验证它们不可利用(同时仍按预期运行)。

从长远来看,尽早并经常进行测试有助于减少错误、节省时间和额外成本。此外,安全团队将对此表示赞赏。

4. 进行定期模拟:

当出现不同的 API 情况时,模拟可以更好地让开发团队做出反应。它们似乎正是开发人员提高安全编码技能所需要的。

研究发现,每 10 个开发人员中就有超过 9 个承认需要安全框架方面的培训。

近三分之一 (30%) 的受访者表示,他们会从以工作相关的真实案例为特色的实用安全培训课程中受益;几乎同样多的人表示他们将从动手互动中受益——例如他们尝试编写安全代码的练习课。

5. 改变绩效评估指标:

安全发展不能仓促行事。因此,鉴于明显的后果,是时候停止在团队成员评估过程中过分强调功能交付的原始速度了。

否则,性能审查阶段会给开发人员提供一种不正当的动机,如果不牺牲质量,就牺牲安全性)。相反,组织应该奖励那些能够在合理的时间范围内创建高质量、安全代码的人。

网络犯罪分子构成的威胁将在未来数月乃至数年内继续演变和加剧。

通过采用更加以人为本的 API 安全方法,组织可以确保他们最有能力抵御这些威胁并继续发展和繁荣。


http://www.ppmy.cn/news/48287.html

相关文章

GitLab合并操作自动构建Jenkins任务

最终实现当git库 有合并操作自动构建jenkins的指定任务 1、安装Build Authorization Token Root插件 Build Authorization Token Root:使用拥有读取权限的匿名用户访问,配置钩子链接时需要用到,如果不使用,每次访问链接都需要提供认证&#…

【Linux】组管理和权限管理

目录 1 Linux组的基本介绍2 文件/目录所有者2.1 查看文件的所有者2.2 修改文件所有者 3 组的创建3.1 基本指令3.2 应用实例 4 文件/目录 所在组4.1 查看文件/目录所在组4.2修改文件/目录所在的组 5 其他组6 改变用户所在组6.1 改变用户所在的组6.2 应用实例 7 权限介绍8 rwx权限…

【C++类和对象】类和对象(中):拷贝构造函数 {拷贝构造函数的概念及特征,拷贝构造函数不能使用传值传参,编译器自动生成的拷贝构造函数}

四、拷贝构造函数 4.1 概念 在创建对象时,可否创建一个与已存在对象一某一样的新对象呢? 拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器…

确保实时操作系统(RTOS)设备中的数据安全

导读1月28日大家庆祝了数据保护日,这是一项旨在促进保护数据隐私和安全的国际活动。为了提高人们对数据保护的意识,讨论实时操作系统中数据安全的问题势在必行。目前非常规操作系统已被广泛使用,所以了解这一系统非常重要,尤其是涉…

ElasticSearch第十六讲 ES 索引模板Index Template与Dynamic Template

Index Template Index Templates可以帮助你设定Mappings和Settings,并按照一定的规则,自动匹配到 新创建的索引之上。模版仅在一个索引被新创建时,才会产生作用。修改模版不会影响已创建的索引,你可以设定多个索引模版,这些设置会被“merge”在一起,你可以指定“order”…

上岸美团,我的面经!

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 这是阿秀的第「257」篇原创 小伙伴们大家好,我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈,目前已经超过 2200 小伙伴加入!去年认真准备和走下来的基…

JUC-多线程(12. AQS)学习笔记

文章目录 1. 可重入锁1.1. 概述1.2. 可重入锁类型1.3. Synchronized 可重入实现机理 2. LockSupport2.1. LockSupport 是什么2.2. 3种线程等待唤醒的方法2.2.1 Object 的等待与唤醒2.2.2. Condition接口中的等待与唤醒2.2.3. 传统的 synchronized 和 Lock 实现等待唤醒通知的约…

二叉树的堂兄弟节点

目录 一.二叉树的堂兄弟节点 1.题目描述 2.问题分析 3.代码实现 1.BFS解法 2.DFS解法 二.二叉树的堂兄弟节点 II 1.题目描述 2.问题分析 3.代码实现 一.二叉树的堂兄弟节点 1.题目描述 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子…