Télécharger le fichier pdf d’un mémoire de fin d’études
Présentation du projet de développement
Le projet jawdi s’articule autour trois axes :
-1) la possibilité offerte aux entreprises de vendre ses produits en ligne
-2) la possibilité offerte aux entreprises de créer des emplois virtuels
1) la possibilité offerte aux entreprises de vendre ses produits en ligne
C’est un système classique du e-commerce la possibilité d’avoir une boutique en ligne -2) la possibilité offerte aux entreprises de créer des emplois virtuels
C’est un nouveau concept qui permet aux utilisateurs du site jawdi d’être les employés de sociétés affiliées au réseau jawdi. En contrepartie de la vente d’un produit d’une société donnée, les utilisateurs recevront une récompense pour service rendu.
Le marché
Caractéristiques de l’offre
La concurrence, compte tenu de l’implantation géographique et du large rayon d’action envisagé, n’est pas très vive. La société mactima life par le biais de son produit jawdi ne cherche pas à signer des contrats d’exclusivité ; donc tout contrat peut donc être remis en cause à tout moment…
Part du marché
Le marché est très vaste nous espérons tirer un bénéfice considérable dans les transactions commerciales et les participations financières des sponsors.
Le développement des tics au Sénégal permet d’atteindre un public plus large car on assiste aujourd’hui à un fort taux de pénétration d’internet dans les contrées les plus reculées du Sénégal. Les ventes en ligne BtoC ont atteint près de 1 043 milliards de dollars dans le monde en 2012, selon eMarketer.
Le chiffre d’affaires mondial de l’e-commerce BtoC s’est élevé à près de 1 043 milliards de dollars en 2012, en hausse de près de 21,7% par rapport à 2011, selon eMarketer. Il prévoit pour 2014 que les ventes en ligne BtoC dans le monde dépasseront 1 444 milliards de dollars.
La sécurité des applications Web
Une application Web est une application qui n’a besoin que du protocole HTTP ou HTTPS pour être pilotée par un utilisateur. Celle-ci n’a besoin que d’un simple navigateur Web ou d’une application propriétaire utilisant le protocole HTTP/HTTPS.
L’avantage des applications Web est que l’utilisateur peut travailler à distance grâce à internet, si nécessaire au besoin d’un VPN.
Une application Web ne se cantonne plus à être qu’un simple serveur web gérant des pages statiques, elles sont aujourd’hui pour la plupart élaborées dynamiquement “à la demande” et son architecture b est plus complexe, incluant plusieurs machines qui collaborent pour fournir un service.
Remarque : contrairement à une idée reçue très répandue, l’utilisation de SSL ne suffit pas à protéger une application Web. Le chiffrement SSL (sans utilisation de certificats clients X.509) ne concerne que la confidentialité, et ne protège pas des intrusions.
Jugée plus complexe que la sécurité réseau
– Des données hétérogènes
– Des données en provenance de l’utilisateur
– Des standards pas forcément respectés
– Des Framework de développement + ou – évolués
Demande une expertise éparpillée dans l’entreprise
– Système
– Réseau
– Développement
– Sécurité .
Attaque coté serveur
Attaque DDOS
C’est une attaque d’un pirate, sur un serveur informatique, de façon à l’empêcher d’offrir le service pour lequel il est destiné.
Qui, où, support : les victimes du déni de service ne sont pas uniquement celles qui le subissent, les postes compromis (daemons et masters) et les postes clients qui n’arrivent pas à accéder aux services désirés sont également les victimes des pirates qui effectuent le DoS. De nos jours, le piratage peut être acquis aisément, l’attaquant peut donc être un utilisateur lambda tant que son poste est relié au réseau mondial.
Pourquoi (but) : but principal : que l’accès au serveur d’une entreprise devienne impossible aux clients, le but n’étant pas d’altérer les données contenues et échangées ni de voler des informations, mais plutôt de nuire à la réputation de l’entreprise en empêchant l’accès aux divers services fournis aux clients en provoquant un ralentissement significatif ou une saturation du système voire le crash du système. A l’origine, les pirates n’étaient intéressés que par la renommée d’avoir réussi à faire tomber un réseau. Aujourd’hui, la raison de ces attaques est le chantage, en effet ces criminels sont principalement motivés par l’argent.
Deux types de DoS :
Déni de service par saturation : submerger une machine d’un grand nombre de requête afin qu’elle ne soit plus apte à répondre aux demandes des clients.
Déni de service par exploitation de vulnérabilités : exploiter une faille du système dans le but de le rendre inutilisable.
Comment (principe) : envoyer une très grande quantité de paquets, dont la taille est relativement importante, en même temps, voire sur une longue période.
Le principe du Distributed Denial of Service (DDoS) consiste à utiliser une grande quantité de postes « Zombies », préalablement infectées par des « backdoors » ou « troyens », dans l’intention de paralyser la réponse du serveur attaqué. Les maîtres sont eux-mêmes reliés aux postes « daemons ». Le pirate se sert des postes maîtres pour contrôler les postes daemons qui effectueront l’attaque, sans cela, le pirate devrait se connecter lui-même à chaque daemons ce qui serait plus long à mettre en place, et plus facilement repérable.
Pour utiliser les masters et daemons, il est nécessaire d’exploiter des failles connues (FTP…).
Le pirate se connecte aux masters en TCP pour préparer l’attaque, ces derniers envoient les commandes aux daemons en UDP.
Algorithmes d’attaques existants
De très nombreuses méthodes permettent d’arriver à un DoS :
– Le SYN Flood consiste à saturer un serveur en envoyant un grand nombre de paquets TCP avec le flag SYN armé.
– L‟UDP Flood consiste à saturer le trafic réseau en envoyant le plus grand nombre de paquets UDP à une machine.
– Le ping of death utilise aussi une faiblesse de certaines piles TCP/IP lors de la gestion de paquets ICMP trop volumineux.
– Le smurfing est aussi une attaque basée sur le protocole ICMP.
– Les bombes e-mail consistent à envoyer sur le réseau des mails trop volumineux.
L’attaque Heartbleed
Certains sites web nécessitent ou proposent un chiffrement de la navigation. Entrer un mot de passe, effectuer une transaction bancaire, avoir des échanges épistolaires requérant un certain niveau de discrétion : autant d’actions que le serveur va « chiffrer », c’est à dire rendre illisibles pour qui n’a pas la « clef ».
Concrètement, cette sécurisation des communications entre l’internaute et le serveur est généralement symbolisée par un verrou à côté de l’URL.
Logo du bug Heartbleed
OpenSSL est un des services offrant cette protection aux internautes. Qui trouve une faille dans OpenSSL et parvient à obtenir les clefs de chiffrement, peut lire toutes les informations échangées entre l’internaute et le serveur.
C’est ce qui vient de se passer : des experts ont découvert la faille et certains développeurs se disent en mesure de récupérer toutes sortes de données comme des mots de passe Yahoo ou des historiques de recherche sur le moteur de recherche crypté DuckDuckGo.
Comment sécuriser son parc applicatif
Face aux risques liés à la sécurité des applications Web, il est primordial Pour les entreprises de mettre sur place les bonnes pratiques permettant d’obtenir des applications disposant d’un niveau de sécurité suffisant. Ces pratiques doivent être mises en œuvre par les acteurs du projet. La sécurité doit être proactive et non réactive tout au long du cycle de vie du projet et non ajoutée et testée à la fin.
En effet plus la sécurité est Prise en compte en fin de cycle plus le cout de correction des failles est élevé
Il est préférable d’abord pour la mise en place d’un schéma de sécurité :
• Mener des campagnes de sensibilisation à l’endroit des développeurs
Les former sur les techniques de sécurité.
Les inciter à utiliser les Framework.
Utiliser des référentiels (OWASP, SANS TOP 25, etc.)
• Organiser fréquemment des tests d’intrusion et des audits de code
User de techniques à l’instar des hackers pour effectuer les tests.
Se référer aux guides (Testing guide)
• Allier sécurité et gestion de projets
La sécurité constitue une étape dans la gestion de projets.
Élaboration d’une politique de sécurité impliquant les instances de décision.
Audit d’une application web
Un temps de réponse long, des frais de maintenance onéreux, l’application informatique est automatiquement pointée du doigt par ses utilisateurs, et les services d’un auditeur sont dès lors sollicités pour diagnostiquer l’application. Les audits d’application permettent aussi, avant d’acquérir les parts d’une société, d’avoir une idée sur le parc informatique de ladite entreprise et son potentiel. La décision de recourir à un progiciel de gestion intégrée peut résulter de l’audit d’une application jugée archaïque. Sur ce il est primordial de disposer de méthodes structurées permettant de réaliser un audit quantitatif et qualitatif d’une application. Selon Infauditor, évaluer le domaine correspondant à une application passe par les huit critères suivants :
– adéquation aux besoins,
– sécurité logique,
– fiabilité,
– qualité de la documentation,
– cohérence,
– performance,
– maintenabilité,
– rentabilité.
Adéquation aux besoins
Il consiste à vérifier que l’application répond aux besoins réels de ses utilisateurs, qu’elle s’intègre harmonieusement dans les procédures de l’entreprise et qu’elle satisfait ses utilisateurs. L’adéquation aux besoins comprend sept sous-domaines ou critères :
– Le degré de satisfaction, qui peut être mesuré à l’aide d’un questionnaire. Outre l’évaluation de ce degré, la synthèse des réponses au questionnaire permet aussi de cibler les sous-domaines de l’application qui semblent les plus critiques.
– L’atteinte des objectifs : ce sous-domaine peut être audité en rapprochant l’application des différents documents préalables à sa mise en place et à ses éventuelles évolutions, cahier des charges, additifs, etc.
– L’existence de procédures parallèles : il est fréquent que l’insatisfaction des utilisateurs ou leur manque de confiance ou les limites de l’application aient conduit les acteurs à mettre en place des procédures parallèles, par exemple des re-calculs manuels ou sur tableur, des transmissions de bordereaux de confirmation, etc. La détection de ce type de procédure est un élément important de l’évaluation de cette application.
– La documentation : il ne s’agit pas d’évaluer la documentation en générale, mais l’adéquation de la documentation aux besoins des utilisateurs. Est-elle suffisante, claire et d’actualité ?
– La performance du service : là encore, on n’évalue pas la performance de façon absolue, mais le niveau de performance obtenu en regard des attentes de l’utilisateur. Il convient pour cela de mesurer les délais de restitution ou de réponse, mais aussi les délais de mise à jour de l’application au travers, par exemple, du nombre de demandes de modifications en attente de réalisation.
– La convivialité des postes de travail : on mesure l’ergonomie de l’interface, l’agencement aisé et performant des menus et des étapes d’interaction avec l’application.
– Le degré d’obsolescence : permet de vérifier que les fonctionnalités de l’application sont toujours d’actualité.
Sécurité logique
Il existe un grand nombre de techniques de sécurisation des logiciels, en termes de confidentialité par le contrôle des accès en lecture et en termes d’intégrité par le contrôle des accès aux données en écriture. La sécurité logique d’une application peut être divisée en cinq aspects : le contrôle des accès : l’auditeur vérifiera que l’accès à l’application n’est possible qu’aux personnes autorisées et qu’en particulier les procédures d’identification et d’authentification ne sont pas contournées, que les mots de passe sont régulièrement modifiés, etc.
– Le contrôle à la saisie : il permet l’intégrité des données. Il peut être testé par l’auditeur qui tentera d’introduire des données aberrantes et vérifiera qu’elles sont effectivement rejetées, mais aussi que les procédures de contrôle sont efficaces en termes de temps de réponse.
– Le contrôle des traitements : là encore, il s’agit d’intégrité des données. On vérifiera par une série de tests que les calculs sont conformes aux attentes, qu’il n’y a ni problème d’exactitude, ni erreur d’arrondi, ni aucune autre imprécision.
– Le contrôle des résultats : différentes techniques (totalisation, vraisemblance, échantillonnage) sont à combiner pour s’assurer de l’exactitude des résultats produits par l’application.
– La pérennité des données et des traitements : elle est liée à la mise en place de sauvegardes régulières.
Fiabilité
L’audit de la fiabilité d’une application consiste à vérifier qu’il existe des procédures de gestion et de suivi des incidents et d’en mesurer l’efficacité. Cet audit comprend deux éléments principaux :
– Le suivi des incidents : il s’agit de s’assurer de l’existence d’une procédure de suivi des incidents au travers des documents générés lors de son exécution.
– L’évaluation de la fiabilité au travers de grandeurs de référence : les trois grandeurs habituelles sont le délai moyen entre incidents, le délai moyen de service et la durée moyenne des incidents. Ces valeurs sont à rapprocher d’un référentiel interne ou externe.
Qualité de la documentation
Par documentation, on entend les trois manuels nécessaires respectivement à l’utilisation, à l’exploitation et à la maintenance de l’application. Ces trois documentations doivent être disponibles, adaptées et à jour.
Cohérence
La cohérence de l’application peut être mesurée par rapport à un référentiel interne ou externe. Elle consiste à s’assurer que l’application répond aux standards en termes de méthode de conception, de développement et de maintenance.
Performance
L’auditeur est amené à conduire des tests sur l’application pour vérifier que les temps de réponse sont satisfaisants et que l’application n’a pas d’impact négatif sur l’ensemble du système d’information, ce qui peut être le cas par exemple si elle consomme~46 toutes~ les ressources matérielles disponibles.
Maintenabilité
La facilité de maintenance d’une application est évaluée par interview des informaticiens responsables d’effectuer les évolutions logicielles, tant en termes de maintenance corrective que de maintenance évolutive.
|
Table des matières
Introduction Générale
Chapitre 1 : LE PROJET JAWDI
1.1 Présentation du projet
1.2 Problématique
1.3 Présentation détaillée du projet de developpement
1.3.1 Le marché
1.3.1.1 Caractéristiques de l’offre
1.3.1.2 Part du marché
1.3.2 Statistiques au Sénégal
Chapitre 2 : SÉCURITÉ ET AUDIT INFORMATIQUE
2.1 La sécurité des applications Web
2.2 Les principales failles de sécurité applicatives
2.2.1 Les injections
2.2.2 Violation de gestion d’authentification et de session
2.2.3 Cross-Site Scripting (XSS)
2.2.4 Référence directe non sécurisée à un objet
2.2.5 Mauvaise configuration de sécurité
2.2.6 Exposition de données sensibles
2.2.7 Absence de contrôle d’accès aux fonctions
2.2.8 Falsification de requête intersite (CSRF)
2.2.9 Utilisation de composants dont la vulnérabilité est connue
2.2.10 Redirections et renvois non validés
2.3 Attaque coté serveur
A- Attaque DOS(déni de service)
A-1 Algorithmes d’attaques existants
A-2 Quelques méthodes de défense
2.4 L’attaque Heartbleed
2.5 Comment sécuriser son parc applicatif
2.6 Audit
2.6.1 Les domaines d’audit
2.6.2 Audit d’une application
Chapitre 3: PRÉSENTATION DE L’APPLICATION JAWDI
3.1 Plan de l’application
3.1.1 La connexion
3.1.2 Partie utilisateur
3.1.3 Partie entreprise
Chapitre 4: DEVELOPPEMENT ET SÉCURITÉ DE L’APPLICATION JAWDI…
4.1 Les outils de travail et les langages utilisé
4.2 Le développement de l’application
4.2.1 Introduction
4.2.1.1 La méthodologie
4.2.1.1.1 L’analyse UML
A. Le diagramme des Uses Cases
B. Le diagramme de Classes
C. Le diagramme de Séquences
4.3 Comment tester la sécurité de mon site web?
4.3.1 Attaque par exécution d’un script externe:
4.3.2 Attaque par XSS ou Cross Site Scripting:
4.3.3 Faille dans le téléchargement de fichiers:
4.4 Ai-je été piraté?
4.5 HTTPS (HTTPS/SSSL)
4.6 Création d’un fichier .htaccess
4.7 Captcha
Conclusion
Sources documentaires
Télécharger le rapport complet