Vulnérabilités applications web

L'une des missions du CIRT de l'ANTIC est la certification des plates-formes électroniques du cyberespace camerounais. La certification de la plate électronique d'une entreprise permettra de garantir que celle-ci ne présente aucune faille ou danger pour les différents acteurs du cyberespace camerounais. Les ingénieurs experts du CIRT procèdent à des évaluations de la logique applicative et métiers des applications web et mobiles.

Nous présentons dans le tableau ci-dessous, les vulnérabilités les plus rencontrées dans les tests d'évaluations. Nous n'avons pas classé ces vulnérabilités en termes de gravité, d'impact ou de prévalence, car ces vulnérabilités peuvent poser problème à une entreprise en termes de perte de données, de partage d'informations privées ou d'autres domaines pouvant être exploités par les hackers

VulnérabilitéObservationSolutions proposées
1Directory listingCette vulnérabilité peut permettre à un pirate de naviguer sur le système de fichier et d'avoir accès aux fichiers stockés sur le serveur.Ajuster la configuration du serveur apache ou celle du fichier .htaccess en supprimant l'option +Indexes
2Cross site scripting cette vulnérabilité peut permettre à des hackers d'injecter un code malveillant JavaScript dans une application vulnérable, ceci dans le but de modifier le contenu de la page présentée à l'utilisateur ou alors de s'emparer des cookies de session et contrôler ainsi les comptes utilisateurs.Filtrer les meta caractères issus des données entrées par les utilisateurs via une procédure de validation basée sur des expressions régulières.
3DNS zone transferLe serveur DNS distant permet des transferts de zone. Un utilisateur malveillant peut obtenir une copie de la zone DNS entière du domaine minesup.gov.cm, contenant la liste complète de tous les hôtes de ce domaine.Configurer la zone minesup.gov.cm afin de restreindre le transfert de zone aux adresses légitimes à l’aide de la directive « allow-transfer»
4HTML form without CSRF protectionCette vulnérabilité peut permettre à un pirate de faire exécuter des actions malveillantes à un utilisateur légitime à son insu ou de prendre le contrôle de son compte. Ajouter un nonce (grand nombre choisi au hasard) pour chaque transaction.
5SSL Self-Signed CertificateLe certificat utilisé pour les connexions sécurisées sur le serveur est auto signé et n'est pas crédible.Acquérir un certificat auprès d'une autorité de certification
6Clickjacking: X-Frame-Options header missingCette vulnérabilité peut permettre à un pirate de détourner le clic des utilisateurs sur un bouton ou un lien sur une page web, afin de leur faire exécuter des opérations non souhaitées ou de prendre le contrôle de leurs ordinateurs.Configurer le serveur web pour insérer automatiquement les en-têtes X-Frame-Options.
7Session Cookie without HttpOnly flag setCette vulnérabilité peut permettre à un pirate d'obtenir les cookies via des scripts clients malicieux.Insérer le drapeau HttpOnly flag dans la description du cookie.
8Session Cookie without Secure flag setUn cookie de session dépourvu de drapeau sécurisé a été décelé. Quand un cookie est créé avec le drapeau sécurisé, il indique au navigateur que le cookie ne peut être accessible via des canaux sécurisés SSL. Il s'agit d'une protection supplémentaire de sécurité importante pour les cookies de session.Activer le drapeau de sécurité pour les cookies de session.
9Session token in URLDes jetons de session dans les paramètres de requête ont été relevés. Les jetons de session sont des informations sensibles ne devant pas être stockées dans l'URL.Maintenir les sessions en utilisant des cookies sécurisés
10Slow HTTP Denial of Service AttackLe serveur web est vulnérable aux attaques de type Slow HTTP DoS (Deni de service). Ces attaques pourraient ralentir, voire bloquer les réponses des requêtes émises vers le serveur web.Contrôler les requêtes des clients grâce à l'un des modules suivants: • mod_reqtimeout • mod_qos • mod_security
11Basic authentication over HTTPLes informations d'identification des utilisateurs stockées dans le répertoire phpmyadmin sont transmises en clair, ce qui peut permettre à un hacker de les intercepter en sniffant les paquets. Utiliser une connexion HTTPS pour les authentifications.
12Blind SQL InjectionCette vulnérabilité peut permettre à un hacker d'altérer et manipuler les données contenues dans la base de donnéesUtiliser les requêtes SQL paramétrées et traiter les données en entrée avant leur exécution.
13File uploadCette vulnérabilité peut permettre à un pirate d'envoyer des fichiers malveillants sur le serveur, lui permettant ainsi de prendre le contrôle dudit serveur.• Restreindre les extensions des fichiers à envoyer. • Reconfigurer les droits des utilisateurs et des fichiers afin de ne pas permettre l'exécution des fichiers téléchargés
14PHP open_basedir is not setCette vulnérabilité peut permettre à un attaquant distant d'inclure des fichiers sur le site web. La directive de configuration open_basedir limite l'ouverture des fichiers par php.Définir la directive open_basedir dans le fichier fichier php.ini
15PHP code injectionL'injection de code PHP est une vulnérabilité qui permet à un attaquant d'injecter un code personnalisé dans le moteur de script côté serveur. Cette vulnérabilité se produit lorsqu'un attaquant peut contrôler tout ou partie d'une chaîne de caractères passée en paramètre à un appel de fonction Eval. Cette fonction exécutera l'argument en tant que code.Filtrer les métacaractères issus des données entrées par les utilisateurs via une procédure de validation basée sur des expressions régulières.
16URL redirectionUn attaquant distant peut exploiter cette vulnérabilité pour rediriger les utilisateurs de votre site vers un URL spécifié, lui permettant ainsi de mener des attaques de type Phishing, ou une distribution de Malware.Filtrer les métacaractères issus des données entrées par les utilisateurs via une procédure de validation basée sur des expressions régulières.
17Session fixationLe mécanisme de gestion de session sur le site web permet aux utilisateurs de définir à l’avance les identifiant de session, ce qui permettrait à un utilisateur malveillant d’authentifier un utilisateur légitime à l’aide d’un identifiant de session prédéfini, et de s’en servir pour usurper la session établieGénérer un nouveau identifiant de session à chaque authentification d’utilisateur
18SSL 2.0 deprecated protocolLe serveur accepte les connexions chiffrées grâce aux protocoles SSL 2.0 qui souffrent de plusieurs failles de sécurité. Un cyber attaquant pourrait être en mesure d'exploiter ces faiblesses pour intercepter et déchiffrer les communications entre le serveur et les clients.Désactiver les connexions sécurisées via les protocoles SSL 2.0. Utiliser TLS pour les connexions sécurisées
19Insecure transition from HTTP to HTTPS in form postLes données d’un formulaire sont transmises à partir d'une page non sécurisée qui pourrait être détournée à des fins malveillantesServir le formulaire à partir d'une page sécurisée (https).
20.htaccess file readableLe contenu du fichier .htaccess à la racine du site web est accessible aux visiteurs du site. ce fichier expose des informations sensibles sur les configurations effectuées qui pourraient permettre à un utilisateur malveillant de préparer des attaques contre le site web.Restreindre l’accès au fichier .htaccess
21Backup filesLes fichiers de sauvegarde peuvent contenir des scripts, des fichiers de configuration ou d'autres informations sensibles dont peut se servir un utilisateur malveillant pour préparer des attaques.Supprimer ces fichiers s'ils ne sont pas indispensables au site web.