Vous êtes sur la page 1sur 15

SECURITE DE LA

SOLUTION DE CHAT
Veille Technologique
1)Nous aurons à réaliser une veille sur la sécurité des applications chat dans le but ou l’objectif de
relever :
- les différentes failles existantes,
-analyser les menaces actuelles,
-évaluer la sécurité actuelle,
-définir les bonnes pratiques et se préparer aux menaces futures.
Tout ceci en rapport avec le développement de notre application de chat.
Pour y arriver nous aurons besoins d’information en rapport avec :
-les détails sur la solution de chat,
- les bulletins de sécurité et les mises à jour,
- les rapports de vulnérabilités,
- les normes et règlementations,
- l’analyse des menaces actuelles,
- l’évaluation de la sécurité interne,
- les guides de bonnes pratiques et les conseils d’experts.
Ainsi donc une procédure doit être établir et pour notre veille la procédure est la suivante :
Faire une surveillance des sources d’informations grâce à des outils tels que Google alert et
Talkwalker. Faire une veille sur les actualités de sécurité via LinkedIn, Quora et les Newsletters. La
consultation des documentations techniques grâce à Melwater. Utiliser les outils comme Nessus et
OpenVAS pour faire des évaluations internes. Faire aussi des analyses comparatives grâce au
benchmarking.
2- Présentation des sources d’informations pour réaliser cette veille
Sources d'Informations pour la Veille Technologique
1. Documentation Technique des Frameworks et Librairies
Dans le cadre de notre veille technologique, nous avons plongé dans la documentation technique des outils
essentiels que nous utilisons pour le développement de notre application de chat. La documentation officielle de
React pour le frontend et de Node.js pour le backend nous a fourni des indications précieuses sur les mesures de
sécurité intégrées, ainsi que sur les bonnes pratiques à suivre pour protéger notre application contre des
attaques potentielles.
2. Articles et Blogs Spécialisés en Sécurité Informatique
Pour rester à jour sur les dernières avancées en matière de sécurité des applications de chat, nous avons
consulté des blogs spécialisés et des articles écrits par des experts en sécurité informatique. Des sources telles
que le blog OWASP nous ont fourni des analyses approfondies des vulnérabilités courantes, des exploits récents,
et des recommandations de bonnes pratiques.
3. Forums et Communautés en Ligne
La participation active dans des forums de développeurs, tels que Stack Overflow, et des communautés en ligne
spécialisées dans la sécurité des applications nous a donné un accès direct à l'expérience et aux conseils de
praticiens. Des discussions sur des sujets tels que les attaques de type injection SQL et les contremesures
appropriées ont enrichi notre compréhension pratique de la sécurité des applications de chat.
4. Cours en Ligne et Formations
Nous avons parcourus des cours en ligne dispensés par des plateformes éducatives réputées telles que
OpenClassrooms. Ces cours, souvent créés et enseignés par des experts en sécurité, ont approfondi notre
compréhension des principes fondamentaux de la sécurité des applications, des méthodes de détection des
vulnérabilités, et des stratégies de mitigation.
5. Mises à Jour des Organismes de Sécurité
La surveillance régulière des mises à jour émises par des organismes de sécurité tels que le CERT et le NIST nous a
permis de réagir rapidement aux nouvelles vulnérabilités et aux menaces émergentes. Ces informations ont été
intégrées dans nos processus de développement pour garantir une réactivité appropriée aux risques de sécurité.
Cette diversité de sources d'informations nous a aidé a collecter les informations ci-après:
Lors du développement d'une application avec Node.js et React, il est important de prendre en compte certaines
vulnérabilités courantes et de mettre en place des mesures pour les atténuer. Voici quelques vulnérabilités
fréquemment associées à ces technologies et des suggestions pour les atténuer :
Vulnérabilités liées à Node.js :
1. Injection de code (Code Injection) :
- Utilisez des requêtes paramétrées ou des ORM (Object-Relational Mapping) pour éviter l'injection de code. Évitez
l'évaluation dynamique du code avec la fonction `eval()`.
- Source: Blog https://.stackhawk.com
2. Failles de sécurité au niveau des dépendances :
- Effectuez régulièrement des analyses de sécurité sur vos dépendances à l'aide d'outils comme npm audit. Mettez
à jour vos dépendances de manière proactive.
- Source: https://cours-info.iut-bm.univ-fcomte.fr
3. Fuites d'informations sensibles :
- Gérez les variables d'environnement de manière sécurisée pour stocker des informations sensibles. Évitez de
stocker des données sensibles directement dans le code source.
- Source: https://medium.com, https://.stackhawk.com

Vulnérabilités liées à React :


1. XSS (Cross-Site Scripting) :
- Utilisez des pratiques de codage sécurisé, tels que l'échappement automatique des données avec JSX, et évitez
d'insérer du contenu non filtré dans le DOM.
- Source: https://stackoverflow.com/questions/33644499/what-does-it-mean-when-they-say-react-is-xss-
protected
https://openclassrooms.com/fr/courses/5162996-secure-your-web-application-with-owasp/6122361-stop-cross-
site-scripting-xss
2. CSRF (Cross-Site Request Forgery) :
- Utilisez des tokens anti-CSRF pour chaque requête susceptible de modifier l'état de votre application.
- Source: https://openclassrooms.com/fr/courses/5683681-secure-your-web-application-with-spring-security/
6695846-protect-your-web-app-against-csrf-attacks
3. Contrôle d'accès insuffisant :
- Mettez en place un système robuste de contrôle d'accès côté serveur. N'autorisez que les actions nécessaires
pour chaque utilisateur.
- Source: https://openclassrooms.com/fr/courses/6179306-securisez-vos-applications-web-avec-lowasp/
6520701-empechez-l-exploitation-des-controles-d-acces-defaillants
4. Fuites d'informations client-side :
- Évitez de stocker des informations sensibles côté client. Utilisez des mécanismes de gestion de l'état qui ne
compromettent pas la sécurité.
- Source: https://openclassrooms.com/forum/sujet/reactjs-securite-et-accessibilite-des-donnees
Lors du développement d'une application de chat avec Flutter et Firebase, il est important de prendre en compte
diverses vulnérabilités potentielles et de mettre en place des mesures pour les atténuer. Voici quelques vulnérabilités
courantes et des suggestions pour les atténuer dans le contexte de Flutter et Firebase :
Vulnérabilités liées à Firebase :
1. Accès non autorisé aux données Firebase :
- Configurez correctement les règles de sécurité Firebase pour définir des autorisations d'accès appropriées.
Restreignez l'accès aux données en fonction de l'authentification de l'utilisateur.
- Source: https://support.google.com/firebase/answer/6004245?hl=FR
2. Injection de données non sécurisée :
- Utilisez les requêtes préparées de Firebase pour éviter les injections de données. N'intégrez pas directement les
données utilisateur dans les requêtes sans validation.
- Source: https://cloud.google.com/firestore/docs/security/insecure-rules?hl=fr
3. Faiblesse des identifiants d'authentification :
- Encouragez l'utilisation de méthodes d'authentification robustes, comme la connexion via des fournisseurs tiers
(Google, Apple, etc.). Appliquez des politiques de mot de passe robustes.
- Source: https://blog.back4app.com/fr/quest-ce-que-lauthentification-firebase/
4. Non-validation des entrées utilisateur :
- Validez toutes les entrées utilisateur du côté client et du côté serveur pour éviter les attaques d'injection et d'autres
attaques associées.
- Source:https://cloud.google.com/architecture/authenticating-users-to-firestore-with-identity-platform-and-google-
identities?hl=fr
Vulnérabilités liées à Flutter :
1. Exposition d'informations sensibles :
- Évitez de stocker des informations sensibles directement dans le code source Flutter. Utilisez des mécanismes
sécurisés pour gérer les informations sensibles, comme les clés d'API.
- Source: https://docs.datadoghq.com/fr/logs/guide
2. Utilisation d'API non sécurisée :
- Si votre application communique avec des API, assurez-vous qu'elles utilisent des protocoles sécurisés tels que
HTTPS. Protégez les données sensibles transitant entre l'application et les serveurs.
- Source: https://blog.octo.com/securiser-une-api-rest-tout-ce-quil-faut-savoir
3. Gestion inappropriée des sessions :
- Gérez les sessions de manière sécurisée en utilisant des mécanismes d'authentification appropriés et en
évitant les vulnérabilités telles que la fixation de session.
- Source: https://appwrite.io
Analyse Comparative des Frameworks pour le
Développement Mobile (application mobile de chat)
Vulnérabilité Flutter React
Firebase Node.js

Injections Risques d’accès non autorisé aux Risques d’injections de code


données Firebase

Failles de sécurité au niveau des Risque peu élevé Présente lorsque les mises à jour ne sont
dépendances pas régulières

Fuites d’informations sensibles Risques d’exposition de variables Risques d’exposition de variables


sensibles sensibles
XSS (Cross-Site Scripting) Peu courant Risques d’insertion de contenu non filtré

CSRF (Cross-Site Request Forgery) Peu courant Risque d’injection de données dans les
formulaires

Accès non autorisé Risques de mauvaise gestion des Risque de mauvaise gestion des
autorisations utilisateur autorisation utilisateur

Faiblesse des identifiants Courant Courant


d’authentification

Utilisation d’API non sécurisées Risque d’exploitation des failles de l’API Risques d’exploitation des failles de l’API

Gestion inappropriée des sessions Risques de mauvaise gestion des sessions Risques de mauvaise gestion des sessions
utilisateur utilisateur
Présentez les actions à mettre en place en fonction des résultats de la veille technologique

Nos Choix Définitifs :


1. Sélection des Technologies :
- Nous optons pour l'utilisation spécifique de technologies, telles que Node.js/React et
Flutter/Firebase, en prenant en compte les vulnérabilités identifiées et en adoptant
les mesures d'atténuation nécessaires.
2. Versions à Jour des Frameworks et Bibliothèques :
- Nous privilégions les versions les plus récentes et sécurisées des frameworks (React,
Flutter) ainsi que des bibliothèques associées pour profiter des dernières corrections de
sécurité.
Structuration de Notre Base de Codes :
1. Architecture Sécurisée :
- Nous définissons une architecture de base de codes sécurisée en suivant les meilleures
pratiques recommandées par la documentation technique des frameworks, tout en
tenant compte des vulnérabilités spécifiques à chaque technologie.
2. Séparation des Concerns :
- Nous mettons en œuvre le principe de séparation des préoccupations pour isoler
efficacement les différentes parties de notre application, minimisant ainsi les risques de
vulnérabilités croisées.
Gestion des Bibliothèques et Dépendances :
1. Surveillance Régulière des Dépendances :
- Nous utilisons des outils tels que `npm audit` pour surveiller de près les dépendances, et nous
appliquons proactivement les mises à jour de sécurité dès leur disponibilité.
2. Choix de Bibliothèques Sécurisées :
- Nous favorisons l'utilisation de bibliothèques et de packages réputés et bien entretenus afin de
minimiser les risques de failles de sécurité liées aux dépendances.

Recommandations de Développement :
1. Formation Continue :
- Nous organisons des sessions de formation continue pour notre équipe de développement,
garantissant ainsi que tous les membres sont informés des dernières bonnes pratiques en matière de
sécurité.
2. Revues de Code :
- - Des revues de code régulières, mettant l'accent sur la sécurité, sont mises en place pour assurer la
qualité et la robustesse du code développé.
Bonnes Pratiques à Suivre :
1. Validation des Entrées Utilisateur :
- Nous appliquons la validation des entrées utilisateur des deux côtés, client et serveur, pour
prévenir les attaques d'injection de code.
2. Gestion Sécurisée des Identifiants :
- Nous mettons en place des politiques strictes pour gérer les identifiants, encourageant l'utilisation
de méthodes d'authentification robustes et évitant le stockage direct d'informations sensibles dans
le code source.

Solutions Mises en Place :


1. Contrôles d'Accès Renforcés :
- Nous implémentons des contrôles d'accès côté serveur robustes afin de limiter les actions
autorisées pour chaque utilisateur.
2. Protection Contre les Vulnérabilités Courantes :
- Nous intégrons des mécanismes de protection contre les vulnérabilités courantes telles que les
attaques XSS, CSRF, et les fuites d'informations sensibles.
Mesures de Sécurité Interne :
1. Évaluation Régulière :
- Nous continuons à utiliser des outils d'évaluation interne tels que Nessus et OpenVAS pour réaliser
des analyses régulières de la sécurité interne.
2. Réactivité aux Bulletins de Sécurité :
- Nous maintenons une réactivité élevée aux bulletins de sécurité émis par des organismes tels que
le CERT et le NIST, en intégrant rapidement les correctifs nécessaires.

Préparation aux Menaces Futures :


1. Veille Technologique Continue :
- Nous poursuivons notre veille technologique en explorant de nouvelles sources d'information, en
participant à des forums, et en suivant les évolutions des frameworks et des bonnes pratiques en
matière de sécurité.
2. Simulation de Menaces :
- Des simulations de menaces régulières sont organisées pour tester la résilience de notre
application face à des scénarios d'attaques potentiels.
Mesures de Sécurité Interne :
1. Évaluation Régulière :
- Nous continuons à utiliser des outils d'évaluation interne tels que Nessus et OpenVAS
pour réaliser des analyses régulières de la sécurité interne.
2. Réactivité aux Bulletins de Sécurité :
- Nous maintenons une réactivité élevée aux bulletins de sécurité émis par des
organismes tels que le CERT et le NIST, en intégrant rapidement les correctifs
nécessaires.

Préparation aux Menaces Futures :


1. Veille Technologique Continue :
- Nous poursuivons notre veille technologique en explorant de nouvelles sources
d'information, en participant à des forums, et en suivant les évolutions des frameworks
et des bonnes pratiques en matière de sécurité.
2. Simulation de Menaces :
- Des simulations de menaces régulières sont organisées pour tester la résilience
de notre application face à des scénarios d'attaques potentiels.
Communication et Documentation :
1. Communication Interne :
- Nous assurons une communication claire au sein de notre équipe de développement
concernant nos choix définitifs, les nouvelles pratiques à suivre, et les mesures de
sécurité mises en place.
2. Documentation Détaillée :
- Nous élaborons une documentation détaillée sur la sécurité de notre application, y
compris les bonnes pratiques, les mesures spécifiques mises en œuvre, et les procédures
à suivre en cas d'incident.

Ces actions sont conçues pour renforcer la sécurité de notre application de chat,
garantissant une réactivité optimale aux menaces actuelles et futures.

Vous aimerez peut-être aussi