Sécurité web, notre équipe analyse le TOP 10 OWASP
L'IT et le Digital, au cœur de l'activité de la Junior-Entreprise
Dans un monde où le numérique prend de plus en plus d'ampleur, le nombre d'applications web ne cesse d'exploser. Source massive d'informations, parfois critiques et confidentielles, protéger ces sites des attaques est plus qu'une nécessité. C'est dans ce but que l'organisation caritative Open Web Application Security Projet (OWASP) a publié son top 10 des sécurités informatiques pour ces applications en 2017.
Mais qu’est-ce qu’OWASP ?
OWASP est une organisation caritative fondée en 2001 aux
Etats-Unis et reconnue dans le monde entier. Cette association
fonctionne comme une communauté en ligne travaillant sur la
sécurité des applications web. Elle a la particularité d’être
libre et ouverte à tous, tel un Wiki.
Que vous soyez directeur d'une grande entreprise, entrepreneur,
employé ou simple particulier curieux, ce top 10 est l'opportunité
d’en apprendre plus sur les failles les plus utilisées. Bien sûr,
nous n’allons pas toutes les citer car ce serait bien trop long !
Nous allons en sélectionner quelques-unes afin de vous donner
quelques idées de ce top 10.
I) Injections
La plupart des applications web sont reliées à une base de
données. Celle-ci permet de stocker et de retrouver l'intégralité
des données et informations en rapport avec votre application.
Elle peut être localisée sur le même serveur que l'application
ou bien sur un tiers serveur.
Les injections les plus connues sont les injections SQL.
Lorsque vous naviguez sur votre application, vous interagissez
avec la base de données en effectuant des requêtes. Par exemple,
lorsque vous vous connectez à votre compte sur un site web, vous
remplissez votre couple d'identifiants et, en cliquant sur
« Se connecter », vos identifiants vont être comparés à ceux de
la base de données afin de vérifier votre identité. L’exploitation
de ces bases de données utilise un langage informatique appelé SQL.
L'injection SQL consiste à modifier la requête envoyée afin de
contourner la vérification et ainsi récupérer des données, accéder
à des pages normalement inaccessibles depuis l'application ou bien
se connecter à un compte qui ne nous appartient pas.
Pour se protéger de ce genre d’attaque, il faut préparer ses
requêtes en avance. Par exemple, si la requête de connexion ne
contient comme paramètre qu’« identifiant » et « mot de passe »,
il faut empêcher toute modification de la requête qui permettrait
par exemple de renvoyer tous les mots de passe de la base de données.
II) Violation de gestion d'authentification et de session
La portée de ces failles est importante. Contourner
l'authentification d'une application web y donne un accès
quasiment complet aux zones sensibles, aux comptes des
utilisateurs ou même à un compte administrateur. Il s'agit ici
d'un problème complexe à résoudre. Chaque site possédant son
propre système d'authentification, il faudrait les conseiller
spécifiquement sur comment contrer cette faille. Mais il existe
aussi des conseils plus généraux.
Tout d'abord : avoir des mots de passe performants. Vous
pouvez pour cela soit demander à vos utilisateurs de le faire
eux-mêmes, soit tout simplement imposer un mot de passe complexe à
retrouver, ajouter une authentification en amont ou bien un délai
entre chaque requête. Cette dernière méthode est très utilisée pour les
connexions afin d'empêcher ce qu'on appelle une attaque par force brute.
Celle-ci permet de trouver tous les mots de passe en testant toutes les
combinaisons possibles de caractères. Plus la longueur du mot de passe
augmente et plus l'attaque sera complexe et les chances de réussir, nulles !
III) Références directes non sécurisées à un objet
Le principe, pour l'attaquant, est d'avoir accès à des informations
dont il n'est pas censé avoir connaissance comme l’URL de l'espace
administrateur par exemple.
De plus, des outils simples d'accès facilitent ce type d'attaque.
Certains outils écoutent tous les échanges entre l'ordinateur de
l'utilisateur et l'application web, d'autres encore vont jusqu'à
éditer des requêtes avant de les envoyer au serveur. Sans
protection, on peut ainsi accéder à n'importe quelle page d'un site web.
Cette faille, pourtant simple et répandue, reste l'une des
premières testées par les attaquants car les URL sont parfois
faciles à deviner et sans protection (« https://www.monSite.fr/admin »
est simple à rentrer dans sa barre de recherche d’URL).
Comment s'en protéger ? En complexifiant ces URL. Le cas le plus
simple est l’URL qui mène à un compte. Parfois, on remarque dans
l’URL qu'il y a l'ID de notre compte, ce qui est tout de même facile
à retrouver si l'on connait la forme de l’URL. Il ne faut donc pas
utiliser un ID trivial mais plus complexe :
« http://www.monsite.com/account?id=JLEKfeqx42zc73223 »
est préférable à « http://www.monsite.com/account?id=35 »).
IV) Exposition de données sensibles
Ce point touche toutes les données non publiques telles que :
- Les informations confidentielles de la société
- Des informations clients
- Des informations touchant votre réseau interne ou votre organisation
Pourquoi garder les informations clients sur son ordinateur et ne pas les stocker sur un serveur plus sécurisé ?
Gardez en tête la politique de « store only what you need » qui
est plus que vitale. Vous pouvez aussi chiffrer ce qui doit
l'être tels que les mots de passe, les codes de carte bancaire
ou même de simples mails ! Ainsi, même en cas d'injection SQL,
aucune information ne peut être dérobée sans devoir être décryptée
ensuite, ce qui permet de réagir à temps.
Enfin, vous pouvez tout simplement imposer des conditions pour
avoir accès à certains fichiers : mot de passe, droit sur la
session ou encore une clé de déchiffrage.
Alors, que vous soyez un particulier qui souhaite commander une
application web ou une entreprise qui vend ses services de
conception, avec les nouvelles lois en vigueur et le besoin
accru de sécurité, n'hésitez pas à vérifier que ce top 10 soit
respecté. Cela permettra de maximiser la protection et l'intégrité
des données personnelles que vous transmettez ou que vous recevez !
Pour plus d’informations techniques concernant ces failles, nous vous proposons de vous référer directement au site OWASP : Site de l'OWASP