Icônes SCW
héros bg sans séparateur
Blog

程序员征服安全 OWASP 十大 API 系列-缺少功能级别访问控制

Matias Madou, Ph.D.
Publié le 07 octobre 2020
Dernière mise à jour le 9 mars 2026

本系列博客将重点介绍与应用程序编程接口 (API) 有关的一些最严重的漏洞。这些都太糟糕了,以至于他们创建了开放 Web 应用程序安全项目 (OWASP) 主要的 API 漏洞列表。鉴于 API 对现代计算基础架构的重要性,您需要不惜一切代价将这些关键问题排除在应用程序和程序之外。

这个 缺少功能级别访问控制 漏洞允许用户执行应受限制的功能,或者允许他们访问应受保护的资源。通常,函数和资源直接受到代码或配置设置的保护,但要正确执行并不总是那么容易。实施适当的检查可能很困难,因为现代应用程序通常包含多种类型的角色和群组,以及复杂的用户层次结构。

但首先,为什么不跳进来玩我们的游戏化挑战赛,看看你在解决这一类棘手的错误时所处的位置?

让我们更深入地了解一下:

API 特别容易受到此缺陷的影响,因为它们是高度结构化的。了解代码的攻击者可以对如何实现本应限于他们的命令做出有根据的猜测。这是功能/资源级访问控制漏洞进入OWASP前十的主要原因之一。

攻击者如何利用功能级别访问控制漏洞?

怀疑功能或资源未得到适当保护的攻击者必须首先获得对他们想要攻击的系统的访问权限。要利用此漏洞,他们必须有权向端点发送合法的 API 调用。也许有低级别的访客访问功能或某种匿名加入的方式,作为应用程序功能的一部分。一旦建立了访问权限,他们就可以开始更改其合法API调用中的命令。例如,他们可能会将 GET 替换为 PUT,或者将 URL 中的用户字符串更改为 ADMINS。同样,由于 API 是结构化的,因此很容易猜出可能允许使用哪些命令,以及将它们放在字符串中的什么位置。

OWASP 举了一个为允许新用户加入网站而设置的注册流程漏洞的示例。它可能会使用 API GET 调用,如下所示:

GET /api/invites/ {invite_guid}

恶意用户将返回一个 JSON,其中包含有关邀请的详细信息,包括用户的角色和电子邮件。然后,他们可以将 GET 更改为 POST,还可以使用以下 API 调用将邀请从用户提升到管理员:

POST /api/邀请/新增
{“电子邮件”:” shadyguy@targetedsystem.com “,“角色”: “管理员”}

只有管理员才能发送 POST 命令,但如果没有得到适当的保护,API 将接受这些命令为合法命令,并执行攻击者想要的任何命令。在这种情况下,恶意用户将被邀请以新管理员身份加入系统。之后,他们可以看到并做任何合法管理员能做的事情,这不是一件好事。

消除功能级访问控制漏洞

防止这个 API 漏洞尤其重要,因为攻击者不难在结构化 API 中找到不受保护的函数。只要他们能够获得一定程度的API访问权限,他们就可以开始映射代码的结构并创建最终要遵循的调用。

因此,必须使用基于角色的授权方法保护所有业务级功能。大多数框架都提供集中式例程来实现这一目标。如果你选择的框架没有,或者它的例程难以实现,那么有许多外部模块是专门为易于使用而构建的。无论你最终选择什么方法,一定要在服务器上实现授权。切勿尝试从客户端保护功能。

在努力创建功能和资源级别权限时,请记住,只应向用户授予执行所需操作的权限,仅此而已。与编码 API 或其他任何东西一样,练习最低权限方法。它将保护您的环境,并避免将来出现许多与网络安全相关的问题。

来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞的破坏。你也可以 试试演示 Secure Code Warrior 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。

Veuillez consulter les ressources.
Veuillez consulter les ressources.

缺少的功能级别访问控制漏洞允许用户执行应受限制的功能,或者允许他们访问应受保护的资源。

Souhaitez-vous en savoir davantage ?

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

En savoir plus

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.
Partager sur :
marques LinkedInSocialLogo x
Auteur
Matias Madou, Ph.D.
Publié le 07 octobre 2020

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.

Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.

Partager sur :
marques LinkedInSocialLogo x

本系列博客将重点介绍与应用程序编程接口 (API) 有关的一些最严重的漏洞。这些都太糟糕了,以至于他们创建了开放 Web 应用程序安全项目 (OWASP) 主要的 API 漏洞列表。鉴于 API 对现代计算基础架构的重要性,您需要不惜一切代价将这些关键问题排除在应用程序和程序之外。

这个 缺少功能级别访问控制 漏洞允许用户执行应受限制的功能,或者允许他们访问应受保护的资源。通常,函数和资源直接受到代码或配置设置的保护,但要正确执行并不总是那么容易。实施适当的检查可能很困难,因为现代应用程序通常包含多种类型的角色和群组,以及复杂的用户层次结构。

但首先,为什么不跳进来玩我们的游戏化挑战赛,看看你在解决这一类棘手的错误时所处的位置?

让我们更深入地了解一下:

API 特别容易受到此缺陷的影响,因为它们是高度结构化的。了解代码的攻击者可以对如何实现本应限于他们的命令做出有根据的猜测。这是功能/资源级访问控制漏洞进入OWASP前十的主要原因之一。

攻击者如何利用功能级别访问控制漏洞?

怀疑功能或资源未得到适当保护的攻击者必须首先获得对他们想要攻击的系统的访问权限。要利用此漏洞,他们必须有权向端点发送合法的 API 调用。也许有低级别的访客访问功能或某种匿名加入的方式,作为应用程序功能的一部分。一旦建立了访问权限,他们就可以开始更改其合法API调用中的命令。例如,他们可能会将 GET 替换为 PUT,或者将 URL 中的用户字符串更改为 ADMINS。同样,由于 API 是结构化的,因此很容易猜出可能允许使用哪些命令,以及将它们放在字符串中的什么位置。

OWASP 举了一个为允许新用户加入网站而设置的注册流程漏洞的示例。它可能会使用 API GET 调用,如下所示:

GET /api/invites/ {invite_guid}

恶意用户将返回一个 JSON,其中包含有关邀请的详细信息,包括用户的角色和电子邮件。然后,他们可以将 GET 更改为 POST,还可以使用以下 API 调用将邀请从用户提升到管理员:

POST /api/邀请/新增
{“电子邮件”:” shadyguy@targetedsystem.com “,“角色”: “管理员”}

只有管理员才能发送 POST 命令,但如果没有得到适当的保护,API 将接受这些命令为合法命令,并执行攻击者想要的任何命令。在这种情况下,恶意用户将被邀请以新管理员身份加入系统。之后,他们可以看到并做任何合法管理员能做的事情,这不是一件好事。

消除功能级访问控制漏洞

防止这个 API 漏洞尤其重要,因为攻击者不难在结构化 API 中找到不受保护的函数。只要他们能够获得一定程度的API访问权限,他们就可以开始映射代码的结构并创建最终要遵循的调用。

因此,必须使用基于角色的授权方法保护所有业务级功能。大多数框架都提供集中式例程来实现这一目标。如果你选择的框架没有,或者它的例程难以实现,那么有许多外部模块是专门为易于使用而构建的。无论你最终选择什么方法,一定要在服务器上实现授权。切勿尝试从客户端保护功能。

在努力创建功能和资源级别权限时,请记住,只应向用户授予执行所需操作的权限,仅此而已。与编码 API 或其他任何东西一样,练习最低权限方法。它将保护您的环境,并避免将来出现许多与网络安全相关的问题。

来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞的破坏。你也可以 试试演示 Secure Code Warrior 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。

Veuillez consulter les ressources.
Veuillez consulter les ressources.

Veuillez remplir le formulaire ci-dessous pour télécharger le rapport.

Nous souhaiterions obtenir votre autorisation afin de vous envoyer des informations concernant nos produits et/ou des sujets liés à la sécurité informatique. Nous traiterons toujours vos informations personnelles avec la plus grande confidentialité et ne les vendrons jamais à d'autres entreprises à des fins commerciales.

Soumettre
icône de réussite scw
icône d'erreur scw
Pour soumettre le formulaire, veuillez activer les cookies analytiques. Une fois terminé, vous pouvez les désactiver à nouveau si vous le souhaitez.

本系列博客将重点介绍与应用程序编程接口 (API) 有关的一些最严重的漏洞。这些都太糟糕了,以至于他们创建了开放 Web 应用程序安全项目 (OWASP) 主要的 API 漏洞列表。鉴于 API 对现代计算基础架构的重要性,您需要不惜一切代价将这些关键问题排除在应用程序和程序之外。

这个 缺少功能级别访问控制 漏洞允许用户执行应受限制的功能,或者允许他们访问应受保护的资源。通常,函数和资源直接受到代码或配置设置的保护,但要正确执行并不总是那么容易。实施适当的检查可能很困难,因为现代应用程序通常包含多种类型的角色和群组,以及复杂的用户层次结构。

但首先,为什么不跳进来玩我们的游戏化挑战赛,看看你在解决这一类棘手的错误时所处的位置?

让我们更深入地了解一下:

API 特别容易受到此缺陷的影响,因为它们是高度结构化的。了解代码的攻击者可以对如何实现本应限于他们的命令做出有根据的猜测。这是功能/资源级访问控制漏洞进入OWASP前十的主要原因之一。

攻击者如何利用功能级别访问控制漏洞?

怀疑功能或资源未得到适当保护的攻击者必须首先获得对他们想要攻击的系统的访问权限。要利用此漏洞,他们必须有权向端点发送合法的 API 调用。也许有低级别的访客访问功能或某种匿名加入的方式,作为应用程序功能的一部分。一旦建立了访问权限,他们就可以开始更改其合法API调用中的命令。例如,他们可能会将 GET 替换为 PUT,或者将 URL 中的用户字符串更改为 ADMINS。同样,由于 API 是结构化的,因此很容易猜出可能允许使用哪些命令,以及将它们放在字符串中的什么位置。

OWASP 举了一个为允许新用户加入网站而设置的注册流程漏洞的示例。它可能会使用 API GET 调用,如下所示:

GET /api/invites/ {invite_guid}

恶意用户将返回一个 JSON,其中包含有关邀请的详细信息,包括用户的角色和电子邮件。然后,他们可以将 GET 更改为 POST,还可以使用以下 API 调用将邀请从用户提升到管理员:

POST /api/邀请/新增
{“电子邮件”:” shadyguy@targetedsystem.com “,“角色”: “管理员”}

只有管理员才能发送 POST 命令,但如果没有得到适当的保护,API 将接受这些命令为合法命令,并执行攻击者想要的任何命令。在这种情况下,恶意用户将被邀请以新管理员身份加入系统。之后,他们可以看到并做任何合法管理员能做的事情,这不是一件好事。

消除功能级访问控制漏洞

防止这个 API 漏洞尤其重要,因为攻击者不难在结构化 API 中找到不受保护的函数。只要他们能够获得一定程度的API访问权限,他们就可以开始映射代码的结构并创建最终要遵循的调用。

因此,必须使用基于角色的授权方法保护所有业务级功能。大多数框架都提供集中式例程来实现这一目标。如果你选择的框架没有,或者它的例程难以实现,那么有许多外部模块是专门为易于使用而构建的。无论你最终选择什么方法,一定要在服务器上实现授权。切勿尝试从客户端保护功能。

在努力创建功能和资源级别权限时,请记住,只应向用户授予执行所需操作的权限,仅此而已。与编码 API 或其他任何东西一样,练习最低权限方法。它将保护您的环境,并避免将来出现许多与网络安全相关的问题。

来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞的破坏。你也可以 试试演示 Secure Code Warrior 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。

Visionner le webinaire
Commençons.
En savoir plus

Veuillez cliquer sur le lien ci-dessous pour télécharger le PDF de cette ressource.

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez consulter le rapport.Veuillez réserver une démonstration.
Télécharger le PDF
Veuillez consulter les ressources.
Partager sur :
marques LinkedInSocialLogo x
Souhaitez-vous en savoir davantage ?

Partager sur :
marques LinkedInSocialLogo x
Auteur
Matias Madou, Ph.D.
Publié le 07 octobre 2020

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.

Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.

Partager sur :
marques LinkedInSocialLogo x

本系列博客将重点介绍与应用程序编程接口 (API) 有关的一些最严重的漏洞。这些都太糟糕了,以至于他们创建了开放 Web 应用程序安全项目 (OWASP) 主要的 API 漏洞列表。鉴于 API 对现代计算基础架构的重要性,您需要不惜一切代价将这些关键问题排除在应用程序和程序之外。

这个 缺少功能级别访问控制 漏洞允许用户执行应受限制的功能,或者允许他们访问应受保护的资源。通常,函数和资源直接受到代码或配置设置的保护,但要正确执行并不总是那么容易。实施适当的检查可能很困难,因为现代应用程序通常包含多种类型的角色和群组,以及复杂的用户层次结构。

但首先,为什么不跳进来玩我们的游戏化挑战赛,看看你在解决这一类棘手的错误时所处的位置?

让我们更深入地了解一下:

API 特别容易受到此缺陷的影响,因为它们是高度结构化的。了解代码的攻击者可以对如何实现本应限于他们的命令做出有根据的猜测。这是功能/资源级访问控制漏洞进入OWASP前十的主要原因之一。

攻击者如何利用功能级别访问控制漏洞?

怀疑功能或资源未得到适当保护的攻击者必须首先获得对他们想要攻击的系统的访问权限。要利用此漏洞,他们必须有权向端点发送合法的 API 调用。也许有低级别的访客访问功能或某种匿名加入的方式,作为应用程序功能的一部分。一旦建立了访问权限,他们就可以开始更改其合法API调用中的命令。例如,他们可能会将 GET 替换为 PUT,或者将 URL 中的用户字符串更改为 ADMINS。同样,由于 API 是结构化的,因此很容易猜出可能允许使用哪些命令,以及将它们放在字符串中的什么位置。

OWASP 举了一个为允许新用户加入网站而设置的注册流程漏洞的示例。它可能会使用 API GET 调用,如下所示:

GET /api/invites/ {invite_guid}

恶意用户将返回一个 JSON,其中包含有关邀请的详细信息,包括用户的角色和电子邮件。然后,他们可以将 GET 更改为 POST,还可以使用以下 API 调用将邀请从用户提升到管理员:

POST /api/邀请/新增
{“电子邮件”:” shadyguy@targetedsystem.com “,“角色”: “管理员”}

只有管理员才能发送 POST 命令,但如果没有得到适当的保护,API 将接受这些命令为合法命令,并执行攻击者想要的任何命令。在这种情况下,恶意用户将被邀请以新管理员身份加入系统。之后,他们可以看到并做任何合法管理员能做的事情,这不是一件好事。

消除功能级访问控制漏洞

防止这个 API 漏洞尤其重要,因为攻击者不难在结构化 API 中找到不受保护的函数。只要他们能够获得一定程度的API访问权限,他们就可以开始映射代码的结构并创建最终要遵循的调用。

因此,必须使用基于角色的授权方法保护所有业务级功能。大多数框架都提供集中式例程来实现这一目标。如果你选择的框架没有,或者它的例程难以实现,那么有许多外部模块是专门为易于使用而构建的。无论你最终选择什么方法,一定要在服务器上实现授权。切勿尝试从客户端保护功能。

在努力创建功能和资源级别权限时,请记住,只应向用户授予执行所需操作的权限,仅此而已。与编码 API 或其他任何东西一样,练习最低权限方法。它将保护您的环境,并避免将来出现许多与网络安全相关的问题。

来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞的破坏。你也可以 试试演示 Secure Code Warrior 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。

Table des matières

Télécharger le PDF
Veuillez consulter les ressources.
Souhaitez-vous en savoir davantage ?

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

En savoir plus

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.Télécharger
Partager sur :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles