API Shield - protégez vos endpoints d'API

Démo ProduitPrésentation

Transcription

bonjour antoine solution engineer chez cloudflare dans cette vidéo on va parler du cloudflare api shield donc pour la protection des api vous connaissez sûrement le cloudflare WAF et toute la partie bot management qui propose et permet de protéger vos applications contre les injections contre les requêtes automatisées et malveillantes mais il existe un produit spécifique appelé api shield pour vous aider à protéger vos api alors il y a trois challenges principaux avec la protection des api premièrement les api que l'on ne connaît pas si on ne connaît pas les api ça va être compliqué de les protéger deuxièmement les api les endpoints qui n'ont pas d'authentification alors qu'en fait elles devraient et puis troisième point les dix outils différents ou plus qui nous donnent des infos sur les api enfin tout est un petit peu à différents endroits et c'est compliqué de protéger efficacement si on n'a pas la connaissance si on doit aller dans dix tools différents pour avoir donc cloudflare en fait va aller simplifier la protection de vos api avec premièrement la découverte automatique de vos api donc l'apprentissage par cloudflare de vos schémas l'ordre dans lequel vos endpoints sont appelés par exemple quand on va parler de séquences deuxièmement si la détection des des abus donc qui consiste par exemple à à cloudflare vous proposer des rates limiting à appliquer sur vos endpoints en fonction du trafic que vous recevez et et troisième point donc la protection active de vos api en utilisant le schéma d'api donc soit que vous amenez dans cloudflare ou alors un schéma d'api que cloudflare va va apprendre de lui même et aussi la validation des jwt donc json web token directement sur cloudflare je vous propose de faire une courte démonstration donc ici j'ai un site site web qui a une api derrière donc une single patch application avec des calls en ajax et après avoir reçu un petit peu de trafic voilà ce que j'ai côté cloudflare donc ici sur cet écran on voit que cloudflare a découvert des endpoints d'api donc par lui même en recevant le trafic le trafic passe à travers cloudflare et cloudflare dit ah tiens voilà on a on a tous ces endpoints que je viens de découvrir par exemple slash v1 slash albums slash var donc var c'est une cardinalité donc c'est à dire que c'est il ya quelque chose qui est changeant donc ça peut être sur la place de slash var donc ça peut être par exemple un id ça peut être une chaîne de caractère ce genre ce genre de choses donc là c'est sur la partie discovery et l'idée en fait de de l'outil de dpi security de cloudflare c'est premièrement lorsque on découvre ces endpoints dpi en tant que professionnel de sécurité je veux dire ok maintenant je vois de je joue je connais cette cette end point et je vais le marquer comme comme connu donc maintenant on passe des endpoints qui sont qui ont été dans discovery dans end point connu est ici donc je vais pouvoir si je clique sur les endpoints voir plus de détails sur l'end point on va voir aussi des suggestions de de rate limiting des données sur les erreurs et aussi des labels donc je pouvoir mettre mes propres labels ici on voit banking-api as-variables sont des labels personnalisés et puis après ce ici là on voit avec le petit le petit nuage cf-risk sensitive ce sont des labels que cloudflare a appliqué tout seul à détecter le type de données que renvoie cette end point donc les labels sont très utiles pour identifier quels sont les end points risqués qui demandent un peu plus d'attention de notre côté donc une fois que j'ai ces end points que je peux faire aussi c'est exporter le schéma dpi puisque tout à l'heure je vous ai parlé de schéma et de schema enforcement alors le schéma d'api donc c'est un fichier au format yaml pour la part dans la plupart du temps la plupart des cas qui va en fait définir quels sont nos end points disponibles et ainsi que quelles sont les variables que vont prendre ces end points donc si on compte dans une fonction en fait quels paramètres vont prendre ces end points donc ici si je clique sur schéma je vais pouvoir exporter un schéma dpi que cloudflare a appris par lui même à auto générer donc l'idée c'est de télécharger son schéma de regarder si tout vous semble ok si on a bien détecté à cyclophaire a bien détecté les les bonnes les bonnes valeurs les bons paramètres et c'est le cas on va uploader le voir uploader le schéma qu'on a validé de notre de notre côté on va sélectionner le hostname qui correspond au schéma et on va pouvoir dire lorsque un call dpi s'écarte du schéma donc par exemple quelqu'un fait un call et le paramètre qui est passé ne correspond pas au schéma qu'est ce que je vais faire l'action par défaut log ou bloqué ou alors je ne je ne fais rien et ce qui donne ce résultat donc ici dans mon cas sur une de mes applications j'ai un end point dpi qui prend toujours un une adresse ip v4 j'ai préféré générer un schéma spécifique pour pour cette end point pour cette dpi je l'ai uploader j'ai mis en bloquant en bloquant ici donc est ce qui fait que maintenant quand quelqu'un essaye de par exemple rentrer autre chose qu'une et puis donc ça sort du schéma et ben là en fait on va renvoyer une une 403 et l'outil va être capable de me dire le nombre de requêtes qui sont non compliant donc ils sortent du schéma qui sont des tentatives de faire bugger mon et puis par exemple pour regarder quel genre d'erreur c'est ou de l'exploiter ça ça va remonter voilà ici je vais voir le nombre de requêtes non compliant sur une période de 24 heures je vais avoir aussi dans la partie security analytics que vous connaissez sûrement les blocages et avec les raisons donc ici par exemple j'ai un blocage puisque le paramètre qui a été passé est en dehors du schéma et donc ne correspond pas à mon à mon schéma dpi vu tout à l'heure que cloudflare va pouvoir recommander des règles limite puisque on va voir le trafic vers ces épis par utilisateurs on va vous recommander voilà des rates limiting que vous pouvez appliquer ici un rate limiting de 236 calls pour pour dix minutes maintenant la question c'est pas comment qu'elle comment que la faire calcul et trouve c'est à ces chiffres donc si je clique sur un endpoint je vais voir en fait la recommandation proposée donc ici c'est 200 236 requêtes pour une période de dix minutes et on voit en fait là la distribution donc on voit que cloudflare est très confiant sur le fait que ça soit un bon une un bon taux de rate limiting à appliquer donc c'est extrêmement utile puisque la plupart du temps vos développeurs vous communiquent pas forcément le nombre de requêtes attendus qui sont aussi un pas par une point donc ça ça peut vous donner une bonne idée ensuite on a toute la partie validation des requêtes donc des json web token donc on va pouvoir monitorer et regarder si sur un endpoint on a bien des appels qui sont sécurisés donc avec une authentification ici on a 100% des calls vers cette certain point qui ont une authentification avec jwt et comment en fait on met ça en place on va pouvoir mettre en place des règles de validation jwt dans l'outil on va pouvoir appliquer ça sur des sur des routes dire où se trouve mon jwt ici par exemple dans un header dans cette valeur x tiré et on peut aussi regarder dans un dans un cookie et on va pouvoir la valider dernier point la partie séquence l'idée de la partie séquence c'est de dire que des endpoints dpi doivent être absolument appelés dans un ordre spécifique je donne un exemple par exemple imaginons une application bancaire pour faire un transfert d'argent il faut absolument passer par la partie balance account balance donc pour récupérer le montant qui existe sur le sur le compte donc je peux créer une règle custom une règle de waf custom qui dit voilà voilà le chemin par lequel l'utilisateur doit passer pour que ça soit valide et je peux aussi spécifier un temps minimum s'il est trop rapide à effectuer ce chemin ou alors s'il essaye de sauter une étape alors ça va être invalide et je peux renvoyer une cas de centre j'espère que cette courte démonstration de la partie et puis chez l'explication à vous a été utile si vous avez la même question n'hésitez pas à très bientôt au revoir au revoir