4.3.3 Parade et bonnes pratiques
Concernant les systèmes d'authentification,
l'application ne doit accepter que des mots de passe suffisamment forts pour
éviter d'être devinés rapidement par la force brute. Une
longueur minimale de huit caractères est ce qui recommandé par
l'OWASP pour les applications critiques. De plus il doit comporter au moins un
chiffre, une lettre en minuscule et une lettre en majuscule.
Le message affiché lors d'un problème de
validité de l'identifiant ou du mot de passe doit être
générique et ne doit pas donner d'indice quant à l'origine
de l'erreur.
Pour contrer les attaques de force brute, le compte
ciblé par l'attaque doit être verrouillé après cinq
tentatives consécutives infructueuses de connexion. La procédure
de déverrouillage peut être automatique après un laps de
temps prédéfini ou manuelle par un administrateur de
l'application.
Dans la mesure du possible il est conseillé de ne pas
développer son propre mécanisme d'authentification. Il est
préférable d'utiliser un système existant
éprouvé.
Concernant les identifiants de session, les applications Web
doivent limiter la durée de vie d'une session. Une période
d'inactivité maximale doit être définie. Si l'utilisateur
n'utilise pas l'application pendant ce laps de temps, la session devient
inutilisable et l'utilisateur doit se reconnecter. Une session doit
également avoir une durée de vie maximale au-delà de
laquelle la session expire, même si la période d'inactivité
autorisée n'était pas dépassée. Ces
précautions permettent de limiter le temps d'action d'un attaquant.
Du côté client, du code JavaScript doit fermer la
session lorsque l'utilisateur ferme le navigateur. Cela permet de simuler une
action de l'utilisateur pour se déconnecter de l'application. Pour que
l'utilisateur évite de perdre des saisies non sauvegardée, du
code JavaScript peut prévenir l'utilisateur que sa session va
bientôt expirer.
Pour détecter des attaques de force brute, il faut
régulièrement consulter les journaux d'activité à
la recherche d'évènements inhabituels, comme un nombre important
de requête utilisant des identifiants de sessions invalides.
|