SCW 아이콘
영웅 배경, 구분선 없음
블로그

Les codeurs conquièrent la série des 10 meilleures API de l'OWASP en matière de sécurité : manque de ressources et limitation du débit

마티아스 마두, Ph.
게시일 : 2020.09.30
마지막 업데이트: 2026년 3월 8일

En raison du manque de ressources et de la limitation du débit, la vulnérabilité des API agit presque exactement comme le décrit le titre. Chaque API dispose de ressources et de puissance de calcul limitées en fonction de son environnement. La plupart sont également tenus de répondre aux demandes des utilisateurs ou d'autres programmes leur demandant d'exécuter la fonction souhaitée. Cette vulnérabilité se produit lorsqu'un trop grand nombre de demandes arrivent en même temps et que l'API ne dispose pas de suffisamment de ressources informatiques pour traiter ces demandes. L'API peut alors devenir indisponible ou ne pas répondre aux nouvelles demandes.

Les API deviennent vulnérables à ce problème si leurs limites de débit ou de ressources ne sont pas définies correctement, ou si les limites ne sont pas définies dans le code. Une API peut alors être surchargée si, par exemple, une entreprise connaît une période particulièrement chargée. Mais il s'agit également d'une faille de sécurité, car les acteurs de la menace peuvent délibérément surcharger les API non protégées de requêtes afin de réaliser des attaques par déni de service (DDoS).

D'ailleurs, comment vous en sortez-vous avec les défis gamifiés liés à l'API jusqu'à présent ? Si vous souhaitez tester vos compétences en matière de gestion d'une vulnérabilité limitant le débit dès maintenant, entrez dans l'arène :

Maintenant, allons un peu plus loin.

Quels sont quelques exemples de vulnérabilité liée au manque de ressources et à la limitation du débit des API ?

Cette vulnérabilité peut se faufiler dans une API de deux manières. La première est lorsqu'un codeur ne définit tout simplement pas quels devraient être les taux d'accélération d'une API. Il existe peut-être un paramètre par défaut pour les taux d'accélération quelque part dans l'infrastructure, mais s'y fier n'est pas une bonne politique. Au lieu de cela, chaque API doit avoir ses tarifs définis individuellement. Cela est d'autant plus vrai que les API peuvent avoir des fonctions et des ressources disponibles très différentes.

Par exemple, une API interne conçue pour répondre aux besoins de quelques utilisateurs seulement peut avoir un taux d'accélération très faible et fonctionner parfaitement. Mais une API destinée au public faisant partie d'un site de commerce électronique en direct aurait très probablement besoin d'un taux exceptionnellement élevé défini pour compenser la possibilité d'une augmentation du nombre d'utilisateurs simultanés. Dans les deux cas, les taux d'étranglement doivent être définis en fonction des besoins attendus, du nombre d'utilisateurs potentiels et de la puissance de calcul disponible.

Il peut être tentant, en particulier pour les API qui seront probablement très occupées, de fixer les tarifs à un niveau illimité afin d'essayer de maximiser les performances. Cela pourrait être accompli avec un simple bout de code (à titre d'exemple, nous utiliserons le Framework Python Django REST) :

« DÉBIT_D'ÉTRANGLEMENT PAR DÉFAUT : {
« anon : Aucun,
« utilisateur : Aucun

Dans cet exemple, les utilisateurs anonymes et ceux connus du système peuvent contacter l'API un nombre illimité de fois, quel que soit le nombre de demandes au fil du temps. C'est une mauvaise idée, car quelle que soit la quantité de ressources informatiques dont dispose une API, les attaquants peuvent déployer des éléments tels que des botnets pour éventuellement la ralentir ou la mettre complètement hors ligne. Dans ce cas, les utilisateurs valides se verront refuser l'accès et l'attaque sera couronnée de succès.

Éliminer le manque de ressources et les problèmes de limitation des taux

Chaque API déployée par une organisation doit avoir ses taux d'accélération définis dans son code. Cela peut inclure des éléments tels que les délais d'exécution, la mémoire maximale autorisée, le nombre d'enregistrements par page qui peuvent être renvoyés à un utilisateur ou le nombre de processus autorisés au cours d'une période définie.

À partir de l'exemple ci-dessus, au lieu de laisser les taux de limitation ouverts, ils pourraient être définis de manière précise avec des taux différents pour les utilisateurs anonymes et connus.

« DÉBIT_D'ÉTRANGLEMENT PAR DÉFAUT : {
« anon : config (« THROTTLE_ANON », par défaut = 200 par heure),
« user : config (« THROTTLE_USER », par défaut = 5000/heure)

Dans le nouvel exemple, l'API limiterait les utilisateurs anonymes à 200 requêtes par heure. Les utilisateurs connus qui sont déjà approuvés par le système disposent d'une plus grande marge de manœuvre à raison de 5 000 demandes par heure. Mais elles sont également limitées pour éviter une surcharge accidentelle aux heures de pointe ou pour compenser si un compte utilisateur est compromis et utilisé pour une attaque par déni de service.

En guise de dernière bonne pratique à prendre en compte, il est conseillé d'afficher une notification aux utilisateurs lorsqu'ils ont atteint les limites de limitation, ainsi qu'une explication de la date à laquelle ces limites seront réinitialisées. De cette façon, les utilisateurs valides sauront pourquoi une application rejette leurs demandes. Cela peut également être utile si des utilisateurs valides effectuant des tâches approuvées se voient refuser l'accès à une API, car cela peut signaler au personnel des opérations que la limitation doit être augmentée.

Consultez le Secure Code Warrior pages de blog pour en savoir plus sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients des ravages causés par d'autres failles de sécurité. Vous pouvez également essayez une démo de la plateforme de formation Secure Code Warrior pour maintenir toutes vos compétences en cybersécurité à jour et à jour.

리소스 표시
리소스 표시

Cette vulnérabilité se produit lorsqu'un trop grand nombre de demandes arrivent en même temps et que l'API ne dispose pas de suffisamment de ressources informatiques pour traiter ces demandes. L'API peut alors devenir indisponible ou ne pas répondre aux nouvelles demandes.

더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 주기 전반에 걸쳐 코드를 안전하게 보호하고 사이버보안이 최우선 과제인 문화를 조성하도록 Secure Code Warrior . 애플리케이션 보안 담당자, 개발자, IT 보안 책임자 또는 보안 관련 업무에 종사하는 모든 분들을 위해, 저희는 귀사의 조직이 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기
공유하기:
링크드인 브랜드사회적x 로고
작가
마티아스 마두, Ph.
게시일: 2020년 9월 30일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적x 로고

En raison du manque de ressources et de la limitation du débit, la vulnérabilité des API agit presque exactement comme le décrit le titre. Chaque API dispose de ressources et de puissance de calcul limitées en fonction de son environnement. La plupart sont également tenus de répondre aux demandes des utilisateurs ou d'autres programmes leur demandant d'exécuter la fonction souhaitée. Cette vulnérabilité se produit lorsqu'un trop grand nombre de demandes arrivent en même temps et que l'API ne dispose pas de suffisamment de ressources informatiques pour traiter ces demandes. L'API peut alors devenir indisponible ou ne pas répondre aux nouvelles demandes.

Les API deviennent vulnérables à ce problème si leurs limites de débit ou de ressources ne sont pas définies correctement, ou si les limites ne sont pas définies dans le code. Une API peut alors être surchargée si, par exemple, une entreprise connaît une période particulièrement chargée. Mais il s'agit également d'une faille de sécurité, car les acteurs de la menace peuvent délibérément surcharger les API non protégées de requêtes afin de réaliser des attaques par déni de service (DDoS).

D'ailleurs, comment vous en sortez-vous avec les défis gamifiés liés à l'API jusqu'à présent ? Si vous souhaitez tester vos compétences en matière de gestion d'une vulnérabilité limitant le débit dès maintenant, entrez dans l'arène :

Maintenant, allons un peu plus loin.

Quels sont quelques exemples de vulnérabilité liée au manque de ressources et à la limitation du débit des API ?

Cette vulnérabilité peut se faufiler dans une API de deux manières. La première est lorsqu'un codeur ne définit tout simplement pas quels devraient être les taux d'accélération d'une API. Il existe peut-être un paramètre par défaut pour les taux d'accélération quelque part dans l'infrastructure, mais s'y fier n'est pas une bonne politique. Au lieu de cela, chaque API doit avoir ses tarifs définis individuellement. Cela est d'autant plus vrai que les API peuvent avoir des fonctions et des ressources disponibles très différentes.

Par exemple, une API interne conçue pour répondre aux besoins de quelques utilisateurs seulement peut avoir un taux d'accélération très faible et fonctionner parfaitement. Mais une API destinée au public faisant partie d'un site de commerce électronique en direct aurait très probablement besoin d'un taux exceptionnellement élevé défini pour compenser la possibilité d'une augmentation du nombre d'utilisateurs simultanés. Dans les deux cas, les taux d'étranglement doivent être définis en fonction des besoins attendus, du nombre d'utilisateurs potentiels et de la puissance de calcul disponible.

Il peut être tentant, en particulier pour les API qui seront probablement très occupées, de fixer les tarifs à un niveau illimité afin d'essayer de maximiser les performances. Cela pourrait être accompli avec un simple bout de code (à titre d'exemple, nous utiliserons le Framework Python Django REST) :

« DÉBIT_D'ÉTRANGLEMENT PAR DÉFAUT : {
« anon : Aucun,
« utilisateur : Aucun

Dans cet exemple, les utilisateurs anonymes et ceux connus du système peuvent contacter l'API un nombre illimité de fois, quel que soit le nombre de demandes au fil du temps. C'est une mauvaise idée, car quelle que soit la quantité de ressources informatiques dont dispose une API, les attaquants peuvent déployer des éléments tels que des botnets pour éventuellement la ralentir ou la mettre complètement hors ligne. Dans ce cas, les utilisateurs valides se verront refuser l'accès et l'attaque sera couronnée de succès.

Éliminer le manque de ressources et les problèmes de limitation des taux

Chaque API déployée par une organisation doit avoir ses taux d'accélération définis dans son code. Cela peut inclure des éléments tels que les délais d'exécution, la mémoire maximale autorisée, le nombre d'enregistrements par page qui peuvent être renvoyés à un utilisateur ou le nombre de processus autorisés au cours d'une période définie.

À partir de l'exemple ci-dessus, au lieu de laisser les taux de limitation ouverts, ils pourraient être définis de manière précise avec des taux différents pour les utilisateurs anonymes et connus.

« DÉBIT_D'ÉTRANGLEMENT PAR DÉFAUT : {
« anon : config (« THROTTLE_ANON », par défaut = 200 par heure),
« user : config (« THROTTLE_USER », par défaut = 5000/heure)

Dans le nouvel exemple, l'API limiterait les utilisateurs anonymes à 200 requêtes par heure. Les utilisateurs connus qui sont déjà approuvés par le système disposent d'une plus grande marge de manœuvre à raison de 5 000 demandes par heure. Mais elles sont également limitées pour éviter une surcharge accidentelle aux heures de pointe ou pour compenser si un compte utilisateur est compromis et utilisé pour une attaque par déni de service.

En guise de dernière bonne pratique à prendre en compte, il est conseillé d'afficher une notification aux utilisateurs lorsqu'ils ont atteint les limites de limitation, ainsi qu'une explication de la date à laquelle ces limites seront réinitialisées. De cette façon, les utilisateurs valides sauront pourquoi une application rejette leurs demandes. Cela peut également être utile si des utilisateurs valides effectuant des tâches approuvées se voient refuser l'accès à une API, car cela peut signaler au personnel des opérations que la limitation doit être augmentée.

Consultez le Secure Code Warrior pages de blog pour en savoir plus sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients des ravages causés par d'autres failles de sécurité. Vous pouvez également essayez une démo de la plateforme de formation Secure Code Warrior pour maintenir toutes vos compétences en cybersécurité à jour et à jour.

리소스 표시
리소스 표시

아래 양식을 작성하여 보고서를 다운로드하세요

저희 제품 및/또는 안전한 코딩 관련 주제에 대한 정보를 보내드리는 데 귀하의 허락을 받고자 합니다. 귀하의 개인정보는 항상 최대한 신중하게 처리하며, 마케팅 목적으로 다른 기업에 절대 판매하지 않을 것입니다.

제출하다
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 '분석' 쿠키를 활성화해 주십시오. 완료 후에는 다시 비활성화하셔도 됩니다.

En raison du manque de ressources et de la limitation du débit, la vulnérabilité des API agit presque exactement comme le décrit le titre. Chaque API dispose de ressources et de puissance de calcul limitées en fonction de son environnement. La plupart sont également tenus de répondre aux demandes des utilisateurs ou d'autres programmes leur demandant d'exécuter la fonction souhaitée. Cette vulnérabilité se produit lorsqu'un trop grand nombre de demandes arrivent en même temps et que l'API ne dispose pas de suffisamment de ressources informatiques pour traiter ces demandes. L'API peut alors devenir indisponible ou ne pas répondre aux nouvelles demandes.

Les API deviennent vulnérables à ce problème si leurs limites de débit ou de ressources ne sont pas définies correctement, ou si les limites ne sont pas définies dans le code. Une API peut alors être surchargée si, par exemple, une entreprise connaît une période particulièrement chargée. Mais il s'agit également d'une faille de sécurité, car les acteurs de la menace peuvent délibérément surcharger les API non protégées de requêtes afin de réaliser des attaques par déni de service (DDoS).

D'ailleurs, comment vous en sortez-vous avec les défis gamifiés liés à l'API jusqu'à présent ? Si vous souhaitez tester vos compétences en matière de gestion d'une vulnérabilité limitant le débit dès maintenant, entrez dans l'arène :

Maintenant, allons un peu plus loin.

Quels sont quelques exemples de vulnérabilité liée au manque de ressources et à la limitation du débit des API ?

Cette vulnérabilité peut se faufiler dans une API de deux manières. La première est lorsqu'un codeur ne définit tout simplement pas quels devraient être les taux d'accélération d'une API. Il existe peut-être un paramètre par défaut pour les taux d'accélération quelque part dans l'infrastructure, mais s'y fier n'est pas une bonne politique. Au lieu de cela, chaque API doit avoir ses tarifs définis individuellement. Cela est d'autant plus vrai que les API peuvent avoir des fonctions et des ressources disponibles très différentes.

Par exemple, une API interne conçue pour répondre aux besoins de quelques utilisateurs seulement peut avoir un taux d'accélération très faible et fonctionner parfaitement. Mais une API destinée au public faisant partie d'un site de commerce électronique en direct aurait très probablement besoin d'un taux exceptionnellement élevé défini pour compenser la possibilité d'une augmentation du nombre d'utilisateurs simultanés. Dans les deux cas, les taux d'étranglement doivent être définis en fonction des besoins attendus, du nombre d'utilisateurs potentiels et de la puissance de calcul disponible.

Il peut être tentant, en particulier pour les API qui seront probablement très occupées, de fixer les tarifs à un niveau illimité afin d'essayer de maximiser les performances. Cela pourrait être accompli avec un simple bout de code (à titre d'exemple, nous utiliserons le Framework Python Django REST) :

« DÉBIT_D'ÉTRANGLEMENT PAR DÉFAUT : {
« anon : Aucun,
« utilisateur : Aucun

Dans cet exemple, les utilisateurs anonymes et ceux connus du système peuvent contacter l'API un nombre illimité de fois, quel que soit le nombre de demandes au fil du temps. C'est une mauvaise idée, car quelle que soit la quantité de ressources informatiques dont dispose une API, les attaquants peuvent déployer des éléments tels que des botnets pour éventuellement la ralentir ou la mettre complètement hors ligne. Dans ce cas, les utilisateurs valides se verront refuser l'accès et l'attaque sera couronnée de succès.

Éliminer le manque de ressources et les problèmes de limitation des taux

Chaque API déployée par une organisation doit avoir ses taux d'accélération définis dans son code. Cela peut inclure des éléments tels que les délais d'exécution, la mémoire maximale autorisée, le nombre d'enregistrements par page qui peuvent être renvoyés à un utilisateur ou le nombre de processus autorisés au cours d'une période définie.

À partir de l'exemple ci-dessus, au lieu de laisser les taux de limitation ouverts, ils pourraient être définis de manière précise avec des taux différents pour les utilisateurs anonymes et connus.

« DÉBIT_D'ÉTRANGLEMENT PAR DÉFAUT : {
« anon : config (« THROTTLE_ANON », par défaut = 200 par heure),
« user : config (« THROTTLE_USER », par défaut = 5000/heure)

Dans le nouvel exemple, l'API limiterait les utilisateurs anonymes à 200 requêtes par heure. Les utilisateurs connus qui sont déjà approuvés par le système disposent d'une plus grande marge de manœuvre à raison de 5 000 demandes par heure. Mais elles sont également limitées pour éviter une surcharge accidentelle aux heures de pointe ou pour compenser si un compte utilisateur est compromis et utilisé pour une attaque par déni de service.

En guise de dernière bonne pratique à prendre en compte, il est conseillé d'afficher une notification aux utilisateurs lorsqu'ils ont atteint les limites de limitation, ainsi qu'une explication de la date à laquelle ces limites seront réinitialisées. De cette façon, les utilisateurs valides sauront pourquoi une application rejette leurs demandes. Cela peut également être utile si des utilisateurs valides effectuant des tâches approuvées se voient refuser l'accès à une API, car cela peut signaler au personnel des opérations que la limitation doit être augmentée.

Consultez le Secure Code Warrior pages de blog pour en savoir plus sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients des ravages causés par d'autres failles de sécurité. Vous pouvez également essayez une démo de la plateforme de formation Secure Code Warrior pour maintenir toutes vos compétences en cybersécurité à jour et à jour.

웨비나 보기
시작하세요
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 주기 전반에 걸쳐 코드를 안전하게 보호하고 사이버보안이 최우선 과제인 문화를 조성하도록 Secure Code Warrior . 애플리케이션 보안 담당자, 개발자, IT 보안 책임자 또는 보안 관련 업무에 종사하는 모든 분들을 위해, 저희는 귀사의 조직이 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

보고서 표시데모 예약하기
리소스 표시
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
작가
마티아스 마두, Ph.
게시일: 2020년 9월 30일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적x 로고

En raison du manque de ressources et de la limitation du débit, la vulnérabilité des API agit presque exactement comme le décrit le titre. Chaque API dispose de ressources et de puissance de calcul limitées en fonction de son environnement. La plupart sont également tenus de répondre aux demandes des utilisateurs ou d'autres programmes leur demandant d'exécuter la fonction souhaitée. Cette vulnérabilité se produit lorsqu'un trop grand nombre de demandes arrivent en même temps et que l'API ne dispose pas de suffisamment de ressources informatiques pour traiter ces demandes. L'API peut alors devenir indisponible ou ne pas répondre aux nouvelles demandes.

Les API deviennent vulnérables à ce problème si leurs limites de débit ou de ressources ne sont pas définies correctement, ou si les limites ne sont pas définies dans le code. Une API peut alors être surchargée si, par exemple, une entreprise connaît une période particulièrement chargée. Mais il s'agit également d'une faille de sécurité, car les acteurs de la menace peuvent délibérément surcharger les API non protégées de requêtes afin de réaliser des attaques par déni de service (DDoS).

D'ailleurs, comment vous en sortez-vous avec les défis gamifiés liés à l'API jusqu'à présent ? Si vous souhaitez tester vos compétences en matière de gestion d'une vulnérabilité limitant le débit dès maintenant, entrez dans l'arène :

Maintenant, allons un peu plus loin.

Quels sont quelques exemples de vulnérabilité liée au manque de ressources et à la limitation du débit des API ?

Cette vulnérabilité peut se faufiler dans une API de deux manières. La première est lorsqu'un codeur ne définit tout simplement pas quels devraient être les taux d'accélération d'une API. Il existe peut-être un paramètre par défaut pour les taux d'accélération quelque part dans l'infrastructure, mais s'y fier n'est pas une bonne politique. Au lieu de cela, chaque API doit avoir ses tarifs définis individuellement. Cela est d'autant plus vrai que les API peuvent avoir des fonctions et des ressources disponibles très différentes.

Par exemple, une API interne conçue pour répondre aux besoins de quelques utilisateurs seulement peut avoir un taux d'accélération très faible et fonctionner parfaitement. Mais une API destinée au public faisant partie d'un site de commerce électronique en direct aurait très probablement besoin d'un taux exceptionnellement élevé défini pour compenser la possibilité d'une augmentation du nombre d'utilisateurs simultanés. Dans les deux cas, les taux d'étranglement doivent être définis en fonction des besoins attendus, du nombre d'utilisateurs potentiels et de la puissance de calcul disponible.

Il peut être tentant, en particulier pour les API qui seront probablement très occupées, de fixer les tarifs à un niveau illimité afin d'essayer de maximiser les performances. Cela pourrait être accompli avec un simple bout de code (à titre d'exemple, nous utiliserons le Framework Python Django REST) :

« DÉBIT_D'ÉTRANGLEMENT PAR DÉFAUT : {
« anon : Aucun,
« utilisateur : Aucun

Dans cet exemple, les utilisateurs anonymes et ceux connus du système peuvent contacter l'API un nombre illimité de fois, quel que soit le nombre de demandes au fil du temps. C'est une mauvaise idée, car quelle que soit la quantité de ressources informatiques dont dispose une API, les attaquants peuvent déployer des éléments tels que des botnets pour éventuellement la ralentir ou la mettre complètement hors ligne. Dans ce cas, les utilisateurs valides se verront refuser l'accès et l'attaque sera couronnée de succès.

Éliminer le manque de ressources et les problèmes de limitation des taux

Chaque API déployée par une organisation doit avoir ses taux d'accélération définis dans son code. Cela peut inclure des éléments tels que les délais d'exécution, la mémoire maximale autorisée, le nombre d'enregistrements par page qui peuvent être renvoyés à un utilisateur ou le nombre de processus autorisés au cours d'une période définie.

À partir de l'exemple ci-dessus, au lieu de laisser les taux de limitation ouverts, ils pourraient être définis de manière précise avec des taux différents pour les utilisateurs anonymes et connus.

« DÉBIT_D'ÉTRANGLEMENT PAR DÉFAUT : {
« anon : config (« THROTTLE_ANON », par défaut = 200 par heure),
« user : config (« THROTTLE_USER », par défaut = 5000/heure)

Dans le nouvel exemple, l'API limiterait les utilisateurs anonymes à 200 requêtes par heure. Les utilisateurs connus qui sont déjà approuvés par le système disposent d'une plus grande marge de manœuvre à raison de 5 000 demandes par heure. Mais elles sont également limitées pour éviter une surcharge accidentelle aux heures de pointe ou pour compenser si un compte utilisateur est compromis et utilisé pour une attaque par déni de service.

En guise de dernière bonne pratique à prendre en compte, il est conseillé d'afficher une notification aux utilisateurs lorsqu'ils ont atteint les limites de limitation, ainsi qu'une explication de la date à laquelle ces limites seront réinitialisées. De cette façon, les utilisateurs valides sauront pourquoi une application rejette leurs demandes. Cela peut également être utile si des utilisateurs valides effectuant des tâches approuvées se voient refuser l'accès à une API, car cela peut signaler au personnel des opérations que la limitation doit être augmentée.

Consultez le Secure Code Warrior pages de blog pour en savoir plus sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients des ravages causés par d'autres failles de sécurité. Vous pouvez également essayez une démo de la plateforme de formation Secure Code Warrior pour maintenir toutes vos compétences en cybersécurité à jour et à jour.

목차

PDF 다운로드
리소스 표시
더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 주기 전반에 걸쳐 코드를 안전하게 보호하고 사이버보안이 최우선 과제인 문화를 조성하도록 Secure Code Warrior . 애플리케이션 보안 담당자, 개발자, IT 보안 책임자 또는 보안 관련 업무에 종사하는 모든 분들을 위해, 저희는 귀사의 조직이 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기Télécharger
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물