Introduction
De nombreux vecteurs d'attaque courants sont utilisés pour exploiter les vulnérabilités des applications logicielles. Dans cet article, nous allons explorer certaines des vulnérabilités les plus courantes et la manière dont nous y remédions dans Workvivo.
Injection SQL
" L'injection SQL est une technique d'injection de code utilisée pour attaquer
les applications pilotées par les données, dans laquelle des instructions SQL malveillantes sont insérées dans un champ de saisie pour être exécutées (par exemple pour transmettre le contenu de la base de données à l'attaquant) " - Wikipedia
Le code source de Workvivo résume complètement toutes les interactions avec la base de données via une bibliothèque Orm (Object Relational Mapper) qui nettoie automatiquement les saisies utilisateur et utilise des requêtes paramétrées pour empêcher toute injection SQL. Il n'y a aucune requête SQL directe dans le code source de Workvivo et nos directives de révision du code stipulent que toutes les interactions avec la base de données doivent passer par l'ORM.
Protection XSS
Les attaques XSS (Cross-Site Scripting) " sont un type d'injection qui
consiste à injecter des scripts malveillants sur des sites web fiables et par ailleurs inoffensifs. Les attaques XSS se produisent lorsqu'un attaquant utilise une application Web pour envoyer du code malveillant, généralement sous la forme d'un script côté navigateur, à un autre utilisateur final. " - Source
Workvivo se protège contre le XSS en désinfectant toutes les entrées utilisateur et en les validant pour s'assurer qu'elles ne contiennent aucun code malveillant. Nous nettoyons et filtrons également toutes les sorties pour nous assurer que si un code malveillant devait être introduit dans la base de données, il ne s'exécuterait pas dans le navigateur.
Protection CSRF
" Cross-Site Request Forgery (CSRF) est une attaque qui oblige un utilisateur final à exécuter des actions indésirables sur une application Web dans laquelle il est actuellement en cours d'authentification, d'autorisation & Sécurité des applications — Authentification hautement confidentielle. Les attaques CSRF ciblent spécifiquement les demandes qui changent d'état, et non le vol de données, car l'attaquant n'a aucun moyen de voir la réponse à une fausse demande. " - Source
Workvivo protège contre le CSRF en générant automatiquement un jeton CSRF pour chaque session utilisateur active gérée par l'application. Ce jeton est ensuite utilisé pour vérifier que c'est bien l'utilisateur authentifié qui fait les demandes à l'application. Nous transmettons ce jeton à chaque demande d'API dans les en-têtes des demandes. Le jeton est mis à jour à chaque demande, et une demande d'API qui ne transmet pas le bon jeton renvoie une réponse d'erreur.
HTTPS
Workvivo ne prend en charge que le protocole HTTPS, ce qui signifie que toutes les communications entre le client et le serveur sont traitées via un canal sécurisé et crypté qui ne peut être ni détecté ni intercepté. Si un utilisateur tente d'accéder à Workvivo via un protocole HTTP non chiffré, il sera automatiquement redirigé vers la version HTTPS de l'URL.
Nous utilisons AWS Certificate Manager pour générer automatiquement de nouveaux certificats TLS lorsque le certificat actuel arrive à expiration. Cela inclut la fourniture de certificats pour des noms de domaine personnalisés. Cette approche garantit qu'aucun scénario d'expiration du certificat TLS ne se produira.
Détection des intrusions
Workvivo inclut un système de détection des intrusions ultramoderne qui enregistre toutes les tentatives d'intrusion dans l'application et prévient activement les tentatives à haut risque en fonction de leur niveau de menace.