Académique Documents
Professionnel Documents
Culture Documents
10. Les enjeux de la sécurité des applications Web pour votre entreprise
localhost:8000 1/35
03/05/2019 Book
Qu'est-ce qu'une
application web :
définition
Contrairement aux logiciels, ou applications natives, les applications web ne sont
pas installées sur des ordinateurs mais se trouvent sur des serveurs. Le seul pré-
requis pour les utiliser est d'avoir un navigateur web, logiciel que l'on trouve installé
par défaut avec tous les ordinateurs, tablettes et mobiles.
Les applications web règnent donc en maitre pour les applications grand public
mais aussi pour les applications métiers :
1 synbioz.com
localhost:8000 2/35
03/05/2019 Book
Ces applications web sont appelées PWA, ou progressive web applications, et ont
la possibilité d'être utilisées hors ligne ainsi que d'accéder à plusieurs
fonctionnalités comme la caméra, le stockage, etc. Ce qui n'était pas encore
possible il y a quelques petites années.
2 N° Vert : 0 805 69 35 35
localhost:8000 3/35
03/05/2019 Book
Pas d'installation. Avec des logiciels classiques, vous devez les installer sur chaque
ordinateur de votre parc informatique et espérer que tous les ordinateurs soient
compatibles. Cela se complique encore plus en devant faire la même chose pour les
tablettes et les mobiles à cause, entre autres, de la fragmentation de l'écosystème
Android
Peut être utilisée sur n'importe quel ordinateur, tablette ou mobile. Windows a
été pendant très longtemps un système d'exploitation en position de monopole,
mais ce n'est plus le cas. L'utilisation croissante en entreprise de macOS, iOS et
Android demande un investissement plus important si l'application métier doit être
native.
Les mises à jour se passent sans intervention. Aucune maintenance n'est donc
nécessaire et l'application peut être mise à jour plus régulièrement. De plus, cela
permet de réagir plus rapidement aux bugs et aux évolutions du marché.
Tous ces points sont des bénéfices très importants pour votre entreprise. Le
bénéfice principal qui en résulte est le coût.
De plus des mises à jour régulières vous permettent de bénéficier des dernières
innovations rapidement. Vous n'avez plus à attendre interminablement la nouvelle
version d'un logiciel et vous pouvez mettre à jour vos solutions sur-mesure sans
devoir laborieusement mettre à jour chaque ordinateur.
3 synbioz.com
localhost:8000 4/35
03/05/2019 Book
Par où commencer?
La première des questions à se poser consiste à repartir de l’existant; l’application
web visée est-elle l’amélioration d’une application existante ou bien s’agit-il de
repartir d’une page blanche ? Les problématiques opérationnelles seront tout à fait
différentes selon le cas.
Une fois ce positionnement clair, la seconde étape consiste à définir les fonctions
majeures souhaitées, de définir la roadmap globale de l’application, afin de prendre
les bonnes orientations dès l’initialisation de la plateforme et éclairer les futurs choix
à l’aune de la projection de l’application.
4 N° Vert : 0 805 69 35 35
localhost:8000 5/35
03/05/2019 Book
Qualité de la production
logicielle
L’équipe technique aura à cœur de gérer le cycle de développement de cette
application. L’équipe aura pleinement conscience qu’elle n’est qu’intermédiaire
dans la mise en œuvre, même si la relation avec le commanditaire, vous, est prévue
pour durer. Le processus de mise en œuvre du code de l’application devra prendre
en compte les meilleures pratiques.
Et après?
Nous recommandons l’exécution régulière de tests de performance et de tests de
pénétration; les besoins sur ces dimensions évoluent au fil du temps et de l’usage
de l’application.
5 synbioz.com
localhost:8000 6/35
03/05/2019 Book
Comme évoqué plus haut, une veille particulière doit être mise en place sur les
frameworks et langages utilisés, sur les composants outillant l’infrastructure hôte, sur
la surveillance de la sécurité de l’application, comme le cycle de vie des certificats
par exemple.
6 N° Vert : 0 805 69 35 35
localhost:8000 7/35
03/05/2019 Book
Quelle technologie
favoriser pour son
application web ?
Aussi surprenant que cela puisse paraître, le développement web et même plus
généralement le développement logiciel est un domaine relativement récent et peu
industrialisé. Là où on imagine bien que la fabrication d'une voiture suivra
sensiblement le même processus d'une marque à une autre, ce n'est pas exact
lorsqu'il s'agit de développer une application web.
C'est pour cela que pour choisir les technologies à utiliser pour son application
web, il est recommandé de prendre en compte les critères suivants :
7 synbioz.com
localhost:8000 8/35
03/05/2019 Book
Une fois tous ces critères pris en compte, il ne vous reste plus qu'à les adapter à
votre situation.
Adapter ses outils. Aucune technologie n'est parfaite. Mais le plus important à
l'heure de l'arbitrage est de trouver l'outil le plus à même de résoudre votre
problématique.
Adapter à ses équipes. Si vous décidez de lancer un projet avec des outils que
personne n'a jamais utilisé dans votre équipe de développement, vous courez à
votre propre perte.
Adapter aux risques du projet. Si votre projet est critique pour l'entreprise, limitez
vos risques au maximum. Au contraire, pour un projet de R&D où l'innovation est
importante, prendre plus de risques sur le choix des technologies est possible.
8 N° Vert : 0 805 69 35 35
localhost:8000 9/35
03/05/2019 Book
Avantages et
inconvénients d'une
application web sur
mesure
Si un outil SaaS répond à vos besoins, il ne fait aucun doute que ce sera la solution
à privilégier. Une étude de BetterCloud révèle que désormais plus de la moitié des
entreprises utilisent au moins 80% de SaaS pour leurs besoins métiers.
Néanmoins il y a des cas où une application web sur-mesure sera plus adaptée :
9 synbioz.com
localhost:8000 10/35
03/05/2019 Book
Expérience utilisateur. Les outils SaaS que vous avez essayés ne conviennent peut-
être pas à vos utilisateurs. Par exemple, beaucoup d'éditeurs ne font pas attention
au contraste de la couleur du texte avec celle de son fond et cela est très
problématique pour les personnes avec une déficience visuelle.
Perte de compétitivité. En utilisant les même outils que vos concurrents, il est
possible que vous perdiez en compétitivité et cela peut donc impacter votre
entreprise.
Innovation. Une application web sur-mesure peut vous permettre de vous adapter
aux évolutions de votre métier au plus vite et d'innover.
Bien sûr, avoir une application web sur-mesure n'est pas un long fleuve tranquille. Il
est essentiel d'être conscient des problèmes que l'on peut rencontrer et de les
pondérer par rapport aux avantages d'utiliser une solution existante.
Estimation souvent difficile. Créer une application web sur-mesure n'est pas une
tâche simple à réaliser. Le moindre oubli dans le cahier des charges et le coût peut
être gravement affecté. De plus, il est difficile de trouver de bons développeurs ou
une agence dans laquelle avoir confiance.
Ressources. Une solution existante aura une équipe plus importante que la vôtre ou
n'importe quelle agence, car ils ne s'occupent que d'une seule application web
pour plusieurs clients. Il sera très difficile d'arriver à une qualité aussi bonne que la
leur.
Sécurité. La sécurité est un sujet complexe. Utiliser un outil SaaS vous évitera bien
des soucis, néanmoins il n'est pas exclu qu'une faille de sécurité soit exploitée. Avec
une application web sur-mesure, le risque est plus grand si la qualité n'est pas au
rendez-vous.
10 N° Vert : 0 805 69 35 35
localhost:8000 11/35
03/05/2019 Book
Application web ou
native : quelle solution
choisir pour votre
application métier ?
Il n'y a jamais eu une telle fragmentation dans les appareils électroniques. Alors que
Windows et les PC ont été dans une position de quasi-monopole pendant des
années, les choses ne sont plus ce qu'elles étaient depuis l'arrivée des tablettes,
smartphones, et la croissance du Mac.
11 synbioz.com
localhost:8000 12/35
03/05/2019 Book
12 N° Vert : 0 805 69 35 35
localhost:8000 13/35
03/05/2019 Book
Complexité
La première chose qu'il faut comprendre est la complexité du projet. Toutes les
fonctionnalités ne vont pas forcément tenir dans le budget alloué. De plus, chaque
fonctionnalité a une complexité spécifique particulière. Un formulaire avec quelques
champs est bien plus rapide à développer qu'une fonctionnalité de statistiques avec
un traitement des données particulier.
Le coût humain
La conception d'une application web n'implique pas uniquement des développeurs.
C'est le travail combiné de designers, développeurs, chefs de projets et testeurs
(QA). De plus, l'écart de salaire peut être important en fonction du niveau de
compétence. En France, il y a un écart de 50% ou plus entre un développeur junior
et un sénior.
13 synbioz.com
localhost:8000 14/35
03/05/2019 Book
Bien sûr l'option de choisir une agence dans des pays où les salaires sont moins
importants est tentante. Mais dans les faits beaucoup d'obstacles existent en cas de
problèmes. Vous ne savez absolument pas qui fait quoi et comment. De plus les
problèmes légaux seront plus compliqués à résoudre. www.fiverr.com
De plus, une application n'est jamais terminée. D'un côté, même en passant
beaucoup de temps sur les tests il y aura des bugs que personne n'aura détecté.
C'est une dépense qu'il faut prévoir et qui se situe entre 10% et 25% du budget
initial. Et de l'autre côté, il y a les fonctionnalités qui n'ont pas pu être mises dans le
développement initial pour pouvoir respecter le budget auxquelles il va maintenant
falloir s'atteler.
14 N° Vert : 0 805 69 35 35
localhost:8000 15/35
03/05/2019 Book
Il faut aussi prendre en compte que le projet va évoluer et le cahier des charges va
évoluer avec lui. De ce fait il faut prévoir un coût pour ces évolutions.
15 synbioz.com
localhost:8000 16/35
03/05/2019 Book
Vous pouvez aussi vous apercevoir d'un élément qui n'est pas réalisable. Si c'est
quelque chose d'essentiel utilisé par une majorité d'utilisateurs, cela vient remettre
en cause le projet lui-même.
Avec un bon cahier des charges, les équipes en interne ou les agences avec
lesquelles vous travaillerez pourront avoir une meilleure compréhension de la
structure de l'application web pour arriver à des choix techniques et architecturaux
pertinents. Cela va engendrer moins de va-et-vient et permettre de vous faire
gagner du temps.
Au final, c'est une protection pour vous et l'agence choisie contre la dérive du
périmètre de l'application web ce qui va dramatiquement améliorer les chances de
réussites du projet.
16 N° Vert : 0 805 69 35 35
localhost:8000 17/35
03/05/2019 Book
Architecture des
applications web : les
bonnes pratiques
La complexité des applications web a grandement augmenté ces dernières années.
Avec la croissance du nombre d'utilisateurs d'Internet, les applications web doivent
pouvoir tenir la charge et la multiplication des services externes demande une
architecture claire pour une maintenance et évolution simple et rapide.
17 synbioz.com
localhost:8000 18/35
03/05/2019 Book
Ces trois couches sont séparées mais des dépendances existent toujours qui
rendent la réutilisation et le test du code compliqués. L'étape suivante est donc de
pouvoir avoir une architecture indépendante des frameworks, bases de données et
autres facteurs externes. Cette architecture a comme nom "Clean Architecture".
Malgré cette indépendance, tout le code est au même endroit. Si on change une
ligne de code quelque part, il faut redéployer toute l'application web. Cela peut
poser problème si le travail en cours sur une partie bloque la mise en production de
la correction d'un bug.
18 N° Vert : 0 805 69 35 35
localhost:8000 19/35
03/05/2019 Book
Dans la réalité ces services ne sont que rarement indépendants et cela crée au final
une complexité bien plus importante qu'avec une architecture plus traditionnelle.
Toutefois, il est possible et même recommandé d'adopter une architecture hybride
en extrayant les parties de l'application web réellement indépendantes dans des
microservices si cela permet d'en tirer des bénéfices en termes de performance ou
de coût.
19 synbioz.com
localhost:8000 20/35
03/05/2019 Book
Une récente étude suggère que 90 % des DSI français font des compromis avec la
sécurité informatique, notamment pour éviter d’affecter l’activité de l’entreprise.
Il est vital de se protéger et cela demande une expertise pointue. Voici un aperçu
des solutions à mettre en œuvre pour s'en prémunir.
Les mots de passes doivent être cryptés dans la base de données pour éviter
de les exposer
Il faut interdire aux utilisateurs d'utiliser des mots de passes faibles
Ne pas oublier d'implémenter une fonction de déconnexion
Sessions. Une fois authentifié, une session est créée et permet de revenir sur
l'application web sans se ré-authentifier. Si un individu réussi à voler la session, il
pourra utiliser le compte de la victime.
20 N° Vert : 0 805 69 35 35
localhost:8000 21/35
03/05/2019 Book
Injection. Toutes les applications web permettent à leurs utilisateurs d'entrer des
données et d'uploader des fichiers. Si les données et les fichiers ne sont pas validés
et filtrés, cela créera de nombreuses failles de sécurité et un individu malveillant
pourra injecter du code et manipuler à sa guise la base de données, l'interface
utilisateur et même le serveur.
Transmission des données. Les données transitent entre les serveurs et les
navigateurs web des utilisateurs. Ces transmissions peuvent être interceptées et il
faut donc les sécuriser.
21 synbioz.com
localhost:8000 22/35
03/05/2019 Book
Comme vous pouvez le voir, la sécurité est un sujet compliqué où chaque détail
compte. Avec le RGPD, un vol de données personnelles d'utilisateurs doit être
publiquement révélé dans les 72h sous peine d'une amende très importante. Cela
ajoute encore plus à l'importance de faire très attention à la sécurité de votre
application web.
22 N° Vert : 0 805 69 35 35
localhost:8000 23/35
03/05/2019 Book
Quel hébergement
choisir pour vos
applications web ?
Avec l'arrivée du Cloud, les solutions d'hébergement se sont multipliées et il peut
être complexe de les différencier. Malgré tout, de réelles avancées ont été faites
pour rendre l'hébergement plus facile à configurer et à moindre coût.
23 synbioz.com
localhost:8000 24/35
03/05/2019 Book
IaaS. Avec cette solution, vous n'avez que la base de l'infrastructure, des machines
virtuelles, le réseau, et le stockage. Vous devez configurer et gérer tout
l'environnement pour déployer votre application web.
Exemples : Amazon AWS (EC2), Google Cloud Platform (CE), Microsoft Azure (VM)
CaaS. Cette solution vous offre un moyen standard de joindre le code, les
configurations et les dépendances de votre application dans un seul objet, le
conteneur. Une fois le conteneur défini, le service s'occupera de gérer les machines
virtuelles.
24 N° Vert : 0 805 69 35 35
localhost:8000 25/35
03/05/2019 Book
PaaS. Ici, tout est déjà configuré et les conteneurs sont gérés à votre place. Vous
n'avez plus qu'à déployer votre application web.
Gartner prédit aux services cloud une croissance annuelle de 17,5% dans le monde.
Mais pour le marché français, la croissance ne sera probablement pas aussi
importante.
25 synbioz.com
localhost:8000 26/35
03/05/2019 Book
Le code a été écrit par des développeurs qui ne sont plus présents. L'audit va
vous permettre de comprendre l'état du code, détecter les risques et offrir des
solutions sous formes d'étapes spécifiques
L'application n'a pas été mise à jour depuis longtemps. Elle utilise peut-être
d'anciennes versions de librairies et peut donc être exposée à des failles de
sécurité
L'audit peut révéler des problèmes et des failles de sécurité et offrir des
solutions adaptées pour les résoudre
Il est enfin recommandé d'effectuer un audit technique périodiquement sur
vos applications web pour évaluer sa qualité
26 N° Vert : 0 805 69 35 35
localhost:8000 27/35
03/05/2019 Book
Toutes ces étapes permettent de dresser un audit technique détaillé montrant les
forces et les faiblesses de votre application web. L'audit défini aussi les priorités sur
lesquelles se concentrer pour transformer les faiblesses en force efficacement.
27 synbioz.com
localhost:8000 28/35
03/05/2019 Book
Développement
d'applications web : des
projets à haut risque
Moins d'un tiers des projets d'applications se terminent dans les temps et sans
dépasser le budget. C'est une statistique à laquelle il faut faire face et être réaliste à
son sujet. Ce n'est qu'en étant conscient de cette réalité que l'on va mettre en place
une bonne gestion des risques. Cela va se faire en 4 étapes :
Identifier les risques qui pourraient vous faire manquer les objectifs de votre
projet
Déterminer les risques les plus importants
Prendre en compte les risques les plus dangereux dans la planification
Maintenir le cap du projet et identifier les risques en continu
Périmètre du projet
Il y a plusieurs risques associés au périmètre du projet. Ce dernier peut être mal
spécifié ou alors dériver sans fin pour devenir ingérable, par exemple avec l'ajout de
fonctionnalités qui ne sont pas nécessaires.
Les chefs de projets sont là pour gérer les changements de périmètre. D'un côté
pour éviter qu'il dérive, mais aussi pour ajouter des éléments urgents et nécessaires
ainsi que de le garder pertinent au fur et à mesure de l'avancement du projet.
28 N° Vert : 0 805 69 35 35
localhost:8000 29/35
03/05/2019 Book
Technique
Enfin les risques techniques sont eux aussi à assimiler pour pouvoir les éviter. Les
problèmes de montée de charge et les bugs peuvent apparaître et il est important
de les corriger rapidement pour que les usagers ne perdent pas en productivité.
Avoir un bon système de contrôle de version est essentielle pour éviter les conflits
de code entre plusieurs versions et entre les développeurs. Les tests automatisés
vont aussi avoir un rôle important dans la prévention des bugs et la stabilité de
l'application web. Enfin avoir des rapports de bugs permettra de les corriger de
manière pro-active au lieu d'attendre qu'un utilisateur contacte le support.
29 synbioz.com
localhost:8000 30/35
03/05/2019 Book
Nouvelles applications
web en entreprise : le
rôle de la conduite du
changement
La transformation numérique intervient partout dans les entreprises, et nécessite de
faire appel à de nouveaux outils et applications. Cette transformation est parfois
difficile et il est donc nécessaire d'accompagner ce changement.
Les équipes IT sont nécessaires pour ces projets, mais c'est l'usager qui est la
priorité. Vous devez non seulement accompagner les équipes IT mais aussi les
usagers.
Pour éviter une résistance au changement, il est recommandé de le faire par
l'exemple. Trouver les personnes qui peuvent être les champions du
changement.
En plus des champions, veillez à avoir l'engagement de l'exécutif. Par
exemple, un changement d'application pour la gestion des ressources
humaines sans l'engagement du responsable des ressources humaines est
voué à l'échec.
Il est important d'éviter au périmètre de dériver. Pour cela il est impératif de
communiquer explicitement le but du changement et quels sont les usagers
affectés.
La perte d'information durant le changement est un problème rencontré
régulièrement. Il est donc nécessaire de veiller à la bonne gestion du projet,
du bon planning et de la correcte documentation sur les dessous de la
conversion.
Communiquez régulièrement sur le changement. Des usagers informés seront
confortés dans l'idée que le changement est une bonne chose.
30 N° Vert : 0 805 69 35 35
localhost:8000 31/35
03/05/2019 Book
Comme vous pouvez le comprendre, tous ces points peuvent se résumer à avoir un
bon accompagnement du changement. Cet accompagnement est différent en
fonction du rôle de chaque personne affectée par ce changement. On est tous
différent et pour réussir le changement, il est donc nécessaire de s'adapter à
chacun.
31 synbioz.com
localhost:8000 32/35
03/05/2019 Book
Développement
d'application web :
comment choisir la
bonne agence ?
Choisir la bonne agence pour développer votre application web n'est pas une
chose aisée. Il n'y a pas de méthode précise. La clé est de trouver un partenaire,
et non un exécutant. Voici quelques conseils qui vous aideront dans votre choix :
Préparez votre recherche : quel est votre budget, quelles sont les applications
web similaires que vous aimez et quels sont les éléments qui vous appréciez et
pourquoi, et faire le sommaire de vos objectifs et priorités pour votre
application web
Quand vous cherchez une agence, vous devez non seulement penser à celle
qui réalisera votre application web mais aussi à celle qui sera la mieux à même
de vous conseiller avant le début du projet et vous accompagner après le
lancement
Créer une application web coûte cher. Si vous prenez des raccourcis, vous le
regretterez dans le futur. Ne choisissez pas une agence pour le prix tout en
sachant aussi que les meilleures agences ne sont pas forcément les plus
onéreuses
Choisissez une agence «tout-en-un» pour éviter de démultiplier le nombre de
prestataires (capacité à designer, intégrer, développer, mettre l’application en
conditions opérationnelles, etc)
32 N° Vert : 0 805 69 35 35
localhost:8000 33/35
03/05/2019 Book
Une fois que vous avez réduit votre liste de candidats et que la sélection se
complique, demandez-vous quelle relation vous voulez avoir avec l'agence que
vous allez sélectionner. Choisissez celle qui est la mieux alignée à votre
personnalité, votre disponibilité et avec laquelle vous pourrez travailler dans une
bonne ambiance.
33 synbioz.com
localhost:8000 34/35
03/05/2019 Book
A propos
En 2007 j'ai fait un constat simple : clients et prestataires ne travaille pas assez main
dans la main, et cela se fait au détriment des projets.
Partant de ce postulat j'ai souhaité créer une agence qui vous accompagne en
symbiose, en prenant en charge tous les aspects d'un projet numérique, de la phase
de conseil jusqu'à la mise en production.
Avec mes équipes, et forts de notre expertise technique, nous avons également à
cœur de partager et véhiculer nos connaissances, notre approche des projets et
comment nous nous engageons dans la réussite de nos clients.
34 N° Vert : 0 805 69 35 35
localhost:8000 35/35