meetups

Securing your API - From basics to beyond

Sujets : API, sécurité, OAuth2, OIDC, JWT, OWASP

12/09/2019 - 19h00 - 20h00

Par Alexandre Faria (Décathlon). Merci !

Les API sont partout. Elles sont prises pour cible par les attaquants (dans le top 10 du prochain draft OWASP).

Quels sont les risques ? Vol d’identité, indisponibilité du service, pénalités financières…

Quelques actions basiques à appliquer : HTTPS, headers, véifier le top 10 OWASP (le dernier rapport date de 2017),

Alexandre nous propose un rapide exemple d’injection via une API en JavaScript et en Java.

L’une des premières bonnes pratiques est de mettre en place une brique dédiée pour authentification autorisation avec Identity Provider d’une part et d’autre part une API management.

Brique d’authentification et d’autorisation

Il est nécessaire de bien faire la différence entre authentification et autorisation et accessoirement entre un code HTTP 401 et un code HTTP 403. Il faut utiliser FIDO et 2FA, les captcha…

Mais surtout aujourd’hui les incontournables sont OAuth 2 et Open ID Connect (OIDC) qui est une extension de OAuth2. Ces standards permettent la génération de tokens d’accès. Les grands rôles de OAuth2 sont :

Différents flows possibles selon le cas d’utilisation (SPA, application mobile…). Attention à distinguer symétrique et asymétrique HS vs RSA. Quand il y a un shared secret en symétrique on va pouvoir déchiffrer par brute force Penser à utiliser les states de OAuth2 quel que soit le flow utilisé. Restreindre les scopes (= consentements) stockés dans les tokens. La notion d’audience permet de définir le périmètre d’un token (par exemple à une API A, B ou C).

API management

C’est la première chose à mettre en place en termes de sécurité : on y place les consommateurs et les différentes API. Gravitee.io est un exemple d’API management.

Une API management permet :

Liens proposés par Alexandre :

Liens que j’ajoute en complément :