Lorsque nous visitons un site web, il est courant de pouvoir parcourir différentes pages. Chaque page peut être représentée par un fichier sur le serveur. Afin de déterminer quel fichier fournir, l’application a besoin que le client spécifie le fichier qui l’intéresse. Pour cela, il arrive que la page souhaitée par l’utilisateur soit présente dans un paramètre de la requête.
Face à des attaques de plus en plus nombreuses et élaborées, la sécurité des applications web est un enjeu majeur. En effet, la sécurité revêt aujourd’hui une importance capitale pour rassurer et fidéliser des clients, ou convertir des prospects.
Il existe plusieurs moyens d’évaluer la sécurité d’une application web. Dans cet article, nous vous présentons l’approche « offensive » qui reste, selon nous, la plus efficace : les tests d’intrusion web (ou pentest web). Nous y détaillons les principes et objectifs ainsi que des use cases de tests d’intrusion en boite noire, grise et blanche sur diverses cibles.
Qu’est-ce qu’une vulnérabilité de type Mass Assignment ?
Pour faciliter la tâche aux développeurs, de nombreux frameworks intègrent des fonctionnalités qui associent automatiquement les paramètres d’une requête HTTP à des variables liées à un objet dans le code de l’application.
Une vulnérabilité de type Mass Assignment survient lorsque le serveur ne filtre pas correctement les données transmises par l’utilisateur et les associe directement à un objet sans vérification.
Dans un précédent article, nous avions passé en revue la vulnérabilité la plus critique des applications web selon le Top 10 OWASP : le défaut de contrôle d’accès. Aujourd’hui, nous nous attaquons aux vulnérabilités et exploitations courantes liées au manque ou à l’absence de chiffrement dans les applications.
Récemment, un de nos clients nous a demandé d’examiner son pipeline d’intégration et de déploiement continu (CI/CD), déployé sur une infrastructure AWS.
Dans cet article, nous allons montrer comment un développeur disposant d’un accès limité à GitLab aurait pu élever ses privilèges et accéder à des informations sensibles permettant de prendre le contrôle de l’infrastructure AWS et causer des dommages importants à l’organisation. Nous détaillerons également des bonnes pratiques et mesures à implémenter pour contrer ce type de risques.
Dans un précédent article, nous avons vu pourquoi il était important de stocker les mots de passe en base de données avec des fonctions de hachage robustes telles que Bcrypt et Argon2. Cela permet notamment de rendre totalement ineffectif des attaques brute force ou des attaques par dictionnaire.
Cependant, une problématique est régulièrement relevée sur des applications déjà existantes : comment utiliser les dernières recommandations sur le stockage des mots de passe sur une base de données déjà existante ?
Le contrôle d’accès est un élément central pour garantir la sécurité des applications web. Il doit reposer sur une authentification robuste et une gestion des sessions tenant compte des divers risques sécurité, comme le détournement de session (session hijacking).
Exploitation XSS, fixation de session, absence de chiffrement, contournement de MFA, etc., il existe de nombreuses techniques pour détourner la session d’un utilisateur. Dans cet article, nous présentons les principales attaques et exploitations.
L’OWASP (Open Web Application Security Project) est une communauté qui œuvre à l’amélioration de la sécurité des systèmes d’information.
Cette organisation produit de nombreuses ressources, notamment des guides et normes de sécurité des applications dont l’OWASP Top 10. Elle développe également des outils open source comme ZAP (un proxy d’interception, alternative à BURP), ou Amass (pour cartographier sa surface d’attaque).
Lors d’un test d’intrusion d’application web, nous sommes tombés sur la situation suivante.
L’authentification multifacteur (abrégé MFA pour multifactor authentication) est un mécanisme central qui permet de renforcer la sécurité des comptes et des accès utilisateurs sur un système.
En effet, c’est une méthode d’authentification qui permet de prévenir de nombreuses attaques et exploitations malveillantes visant la compromission de données : brute force, détournement de session, élévation de privilèges, etc.