
程序员征服安全 OWASP 十大 API 系列-缺乏资源和速率限制
由于缺乏资源和速率限制,API 漏洞的行为几乎完全符合标题的描述。每个 API 的可用资源和计算能力都有限,具体取决于其环境。大多数人还必须回答用户或其他程序的请求,要求其执行所需的功能。当同时传入的请求过多,且 API 没有足够的计算资源来处理这些请求时,就会出现此漏洞。然后,该 API 可能变得不可用或无法响应新请求。
如果 API 的速率或资源限制设置不正确,或者代码中未定义限制,则容易受到此问题的影响。例如,如果企业遇到特别繁忙的时期,则API可能会过载。但这也是一个安全漏洞,因为威胁行为者可以故意使用请求使未受保护的 API 过载,以执行拒绝服务 (DDoS) 攻击。
顺便问一下,到目前为止,你在 API 游戏化挑战中表现如何?如果你想立即尝试处理速率限制漏洞的技能,那就进入竞技场:
现在,让我们更深入地了解一下。
缺乏资源和速率限制 API 漏洞的一些例子有哪些?
此漏洞可以通过两种方式潜入 API。首先是编码人员根本没有定义API的油门速率应该是多少。基础设施中的某个地方可能有默认的油门费率设置,但依赖它并不是一个好政策。相反,每个 API 都应单独设置其费率。尤其如此,因为 API 可能具有截然不同的功能和可用资源。
例如,设计为仅为少数用户服务的内部 API 的油门速率可能非常低并且运行良好。但是,作为实时电子商务网站一部分的面向公众的API很可能需要定义极高的速率来弥补同时用户激增的可能性。在这两种情况下,节流速率都应根据预期需求、潜在用户数量和可用计算能力来定义。
为了最大限度地提高性能,将速率设置为无限可能会很诱人,尤其是在很可能非常繁忙的 API 中。这可以通过一段简单的代码来完成(例如,我们将使用 Python Django REST框架):
“默认节流速率:{
“不知道:没有,
“用户:无
在该示例中,匿名用户和系统已知用户都可以无限次地联系 API,而不考虑一段时间内的请求数量。这是个坏主意,因为无论API有多少可用的计算资源,攻击者都可以部署僵尸网络之类的东西,从而最终减慢其爬行速度,或者可能将其完全下线。发生这种情况时,有效用户将被拒绝访问,攻击将成功。
消除资源短缺和速率限制问题
组织部署的每个 API 都应在其代码中定义其限制率。这可能包括执行超时、最大允许内存、可以返回给用户的每页记录数或在定义的时间范围内允许的进程数量等内容。
从上面的示例中可以看出,与其完全开放限制速率,不如对匿名用户和已知用户使用不同的费率来严格定义节流速率。
“默认节流速率:{
“匿名:配置(“THROTTLE_ANON,默认值 = 200/小时),
“用户:配置(“THROTTLE_USER,默认值 = 5000/小时)
在新示例中,API 将限制匿名用户每小时发出 200 个请求。已通过系统审核的已知用户将获得更大的回旋余地,每小时 5,000 个请求。但是,即使它们也仅限于防止高峰时段意外过载,或者在用户帐户遭到入侵并被用于拒绝服务攻击时进行补偿。
作为最后要考虑的良好做法,最好在用户达到限制时向他们显示通知,并解释何时重置这些限制。这样,有效的用户就会知道应用程序拒绝他们的请求的原因。如果执行经批准的任务的有效用户被拒绝访问 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 漏洞的行为几乎完全符合标题的描述。每个 API 的可用资源和计算能力都有限,具体取决于其环境。大多数人还必须回答用户或其他程序的请求,要求其执行所需的功能。当同时传入的请求过多,且 API 没有足够的计算资源来处理这些请求时,就会出现此漏洞。然后,该 API 可能变得不可用或无法响应新请求。
如果 API 的速率或资源限制设置不正确,或者代码中未定义限制,则容易受到此问题的影响。例如,如果企业遇到特别繁忙的时期,则API可能会过载。但这也是一个安全漏洞,因为威胁行为者可以故意使用请求使未受保护的 API 过载,以执行拒绝服务 (DDoS) 攻击。
顺便问一下,到目前为止,你在 API 游戏化挑战中表现如何?如果你想立即尝试处理速率限制漏洞的技能,那就进入竞技场:
现在,让我们更深入地了解一下。
缺乏资源和速率限制 API 漏洞的一些例子有哪些?
此漏洞可以通过两种方式潜入 API。首先是编码人员根本没有定义API的油门速率应该是多少。基础设施中的某个地方可能有默认的油门费率设置,但依赖它并不是一个好政策。相反,每个 API 都应单独设置其费率。尤其如此,因为 API 可能具有截然不同的功能和可用资源。
例如,设计为仅为少数用户服务的内部 API 的油门速率可能非常低并且运行良好。但是,作为实时电子商务网站一部分的面向公众的API很可能需要定义极高的速率来弥补同时用户激增的可能性。在这两种情况下,节流速率都应根据预期需求、潜在用户数量和可用计算能力来定义。
为了最大限度地提高性能,将速率设置为无限可能会很诱人,尤其是在很可能非常繁忙的 API 中。这可以通过一段简单的代码来完成(例如,我们将使用 Python Django REST框架):
“默认节流速率:{
“不知道:没有,
“用户:无
在该示例中,匿名用户和系统已知用户都可以无限次地联系 API,而不考虑一段时间内的请求数量。这是个坏主意,因为无论API有多少可用的计算资源,攻击者都可以部署僵尸网络之类的东西,从而最终减慢其爬行速度,或者可能将其完全下线。发生这种情况时,有效用户将被拒绝访问,攻击将成功。
消除资源短缺和速率限制问题
组织部署的每个 API 都应在其代码中定义其限制率。这可能包括执行超时、最大允许内存、可以返回给用户的每页记录数或在定义的时间范围内允许的进程数量等内容。
从上面的示例中可以看出,与其完全开放限制速率,不如对匿名用户和已知用户使用不同的费率来严格定义节流速率。
“默认节流速率:{
“匿名:配置(“THROTTLE_ANON,默认值 = 200/小时),
“用户:配置(“THROTTLE_USER,默认值 = 5000/小时)
在新示例中,API 将限制匿名用户每小时发出 200 个请求。已通过系统审核的已知用户将获得更大的回旋余地,每小时 5,000 个请求。但是,即使它们也仅限于防止高峰时段意外过载,或者在用户帐户遭到入侵并被用于拒绝服务攻击时进行补偿。
作为最后要考虑的良好做法,最好在用户达到限制时向他们显示通知,并解释何时重置这些限制。这样,有效的用户就会知道应用程序拒绝他们的请求的原因。如果执行经批准的任务的有效用户被拒绝访问 API,这也会很有用,因为它可以向操作人员发出信号,表明需要加强限制。
来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞的破坏。你也可以 试试演示 Secure Code Warrior 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。

由于缺乏资源和速率限制,API 漏洞的行为几乎完全符合标题的描述。每个 API 的可用资源和计算能力都有限,具体取决于其环境。大多数人还必须回答用户或其他程序的请求,要求其执行所需的功能。当同时传入的请求过多,且 API 没有足够的计算资源来处理这些请求时,就会出现此漏洞。然后,该 API 可能变得不可用或无法响应新请求。
如果 API 的速率或资源限制设置不正确,或者代码中未定义限制,则容易受到此问题的影响。例如,如果企业遇到特别繁忙的时期,则API可能会过载。但这也是一个安全漏洞,因为威胁行为者可以故意使用请求使未受保护的 API 过载,以执行拒绝服务 (DDoS) 攻击。
顺便问一下,到目前为止,你在 API 游戏化挑战中表现如何?如果你想立即尝试处理速率限制漏洞的技能,那就进入竞技场:
现在,让我们更深入地了解一下。
缺乏资源和速率限制 API 漏洞的一些例子有哪些?
此漏洞可以通过两种方式潜入 API。首先是编码人员根本没有定义API的油门速率应该是多少。基础设施中的某个地方可能有默认的油门费率设置,但依赖它并不是一个好政策。相反,每个 API 都应单独设置其费率。尤其如此,因为 API 可能具有截然不同的功能和可用资源。
例如,设计为仅为少数用户服务的内部 API 的油门速率可能非常低并且运行良好。但是,作为实时电子商务网站一部分的面向公众的API很可能需要定义极高的速率来弥补同时用户激增的可能性。在这两种情况下,节流速率都应根据预期需求、潜在用户数量和可用计算能力来定义。
为了最大限度地提高性能,将速率设置为无限可能会很诱人,尤其是在很可能非常繁忙的 API 中。这可以通过一段简单的代码来完成(例如,我们将使用 Python Django REST框架):
“默认节流速率:{
“不知道:没有,
“用户:无
在该示例中,匿名用户和系统已知用户都可以无限次地联系 API,而不考虑一段时间内的请求数量。这是个坏主意,因为无论API有多少可用的计算资源,攻击者都可以部署僵尸网络之类的东西,从而最终减慢其爬行速度,或者可能将其完全下线。发生这种情况时,有效用户将被拒绝访问,攻击将成功。
消除资源短缺和速率限制问题
组织部署的每个 API 都应在其代码中定义其限制率。这可能包括执行超时、最大允许内存、可以返回给用户的每页记录数或在定义的时间范围内允许的进程数量等内容。
从上面的示例中可以看出,与其完全开放限制速率,不如对匿名用户和已知用户使用不同的费率来严格定义节流速率。
“默认节流速率:{
“匿名:配置(“THROTTLE_ANON,默认值 = 200/小时),
“用户:配置(“THROTTLE_USER,默认值 = 5000/小时)
在新示例中,API 将限制匿名用户每小时发出 200 个请求。已通过系统审核的已知用户将获得更大的回旋余地,每小时 5,000 个请求。但是,即使它们也仅限于防止高峰时段意外过载,或者在用户帐户遭到入侵并被用于拒绝服务攻击时进行补偿。
作为最后要考虑的良好做法,最好在用户达到限制时向他们显示通知,并解释何时重置这些限制。这样,有效的用户就会知道应用程序拒绝他们的请求的原因。如果执行经批准的任务的有效用户被拒绝访问 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 漏洞的行为几乎完全符合标题的描述。每个 API 的可用资源和计算能力都有限,具体取决于其环境。大多数人还必须回答用户或其他程序的请求,要求其执行所需的功能。当同时传入的请求过多,且 API 没有足够的计算资源来处理这些请求时,就会出现此漏洞。然后,该 API 可能变得不可用或无法响应新请求。
如果 API 的速率或资源限制设置不正确,或者代码中未定义限制,则容易受到此问题的影响。例如,如果企业遇到特别繁忙的时期,则API可能会过载。但这也是一个安全漏洞,因为威胁行为者可以故意使用请求使未受保护的 API 过载,以执行拒绝服务 (DDoS) 攻击。
顺便问一下,到目前为止,你在 API 游戏化挑战中表现如何?如果你想立即尝试处理速率限制漏洞的技能,那就进入竞技场:
现在,让我们更深入地了解一下。
缺乏资源和速率限制 API 漏洞的一些例子有哪些?
此漏洞可以通过两种方式潜入 API。首先是编码人员根本没有定义API的油门速率应该是多少。基础设施中的某个地方可能有默认的油门费率设置,但依赖它并不是一个好政策。相反,每个 API 都应单独设置其费率。尤其如此,因为 API 可能具有截然不同的功能和可用资源。
例如,设计为仅为少数用户服务的内部 API 的油门速率可能非常低并且运行良好。但是,作为实时电子商务网站一部分的面向公众的API很可能需要定义极高的速率来弥补同时用户激增的可能性。在这两种情况下,节流速率都应根据预期需求、潜在用户数量和可用计算能力来定义。
为了最大限度地提高性能,将速率设置为无限可能会很诱人,尤其是在很可能非常繁忙的 API 中。这可以通过一段简单的代码来完成(例如,我们将使用 Python Django REST框架):
“默认节流速率:{
“不知道:没有,
“用户:无
在该示例中,匿名用户和系统已知用户都可以无限次地联系 API,而不考虑一段时间内的请求数量。这是个坏主意,因为无论API有多少可用的计算资源,攻击者都可以部署僵尸网络之类的东西,从而最终减慢其爬行速度,或者可能将其完全下线。发生这种情况时,有效用户将被拒绝访问,攻击将成功。
消除资源短缺和速率限制问题
组织部署的每个 API 都应在其代码中定义其限制率。这可能包括执行超时、最大允许内存、可以返回给用户的每页记录数或在定义的时间范围内允许的进程数量等内容。
从上面的示例中可以看出,与其完全开放限制速率,不如对匿名用户和已知用户使用不同的费率来严格定义节流速率。
“默认节流速率:{
“匿名:配置(“THROTTLE_ANON,默认值 = 200/小时),
“用户:配置(“THROTTLE_USER,默认值 = 5000/小时)
在新示例中,API 将限制匿名用户每小时发出 200 个请求。已通过系统审核的已知用户将获得更大的回旋余地,每小时 5,000 个请求。但是,即使它们也仅限于防止高峰时段意外过载,或者在用户帐户遭到入侵并被用于拒绝服务攻击时进行补偿。
作为最后要考虑的良好做法,最好在用户达到限制时向他们显示通知,并解释何时重置这些限制。这样,有效的用户就会知道应用程序拒绝他们的请求的原因。如果执行经批准的任务的有效用户被拒绝访问 API,这也会很有用,因为它可以向操作人员发出信号,表明需要加强限制。
来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞的破坏。你也可以 试试演示 Secure Code Warrior 培训平台可让您的所有网络安全技能不断磨练并保持最新状态。
목록
마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

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



%20(1).avif)
.avif)
