
程序员征服安全 OWASP 十大 API 系列-缺少功能级别访问控制
本系列博客将重点介绍与应用程序编程接口 (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 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。
마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
데모 예약마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.
Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.
마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.


本系列博客将重点介绍与应用程序编程接口 (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 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。

本系列博客将重点介绍与应用程序编程接口 (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 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.
Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
보고서 보기데모 예약마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.
Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.
마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.
本系列博客将重点介绍与应用程序编程接口 (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 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。
목록
마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
데모 예약다운로드



%20(1).avif)
.avif)
