Mémoire de fin d études : Sécurité des échanges de données Clients - Serveurs



Documents pareils
Présenté par : Mlle A.DIB

Protection exhaustive de réseau corporate, optimisation de trafic Internet, administration flexible

USERGATE PROXY & FIREWALL. Protection exhaustive de réseau corporate, optimisation de trafic Internet, administration flexible

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

NETTOYER ET SECURISER SON PC

THEGREENBOW FIREWALL DISTRIBUE TGB::BOB! Pro. Spécifications techniques

College Du Chinchon. Torniké Sidamonidzé 3C. M. Brulé

CATALOGUE DE FORMATION INTERNET BUREAUTIQUE INFORMATIQUE..::NET-INOV.COM::..

Sécuriser les achats en ligne par Carte d achat

Sécurité des Postes Clients

Guide d'initiation aux. certificats SSL. Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en ligne. Document technique

A. Sécuriser les informations sensibles contre la disparition

NETTOYER ET SECURISER SON PC

Symantec Protection Suite Enterprise Edition Protection éprouvée pour les terminaux, la messagerie et les environnements Web

Glossaire. Acces Denied

SÉCURISATION DES CONNEXIONS À DISTANCE SUR LES RÉSEAUX DE CONTRÔLE

Mobilité, quand tout ordinateur peut devenir cheval de Troie

Vulnérabilités et sécurisation des applications Web

Les risques HERVE SCHAUER HSC

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch

Notions de sécurités en informatique

Les menaces informatiques

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Routeur Chiffrant Navista Version Et le protocole de chiffrement du Réseau Privé Virtuel Navista Tunneling System - NTS Version 3.1.

Proxy et reverse proxy. Serveurs mandataires et relais inverses

État Réalisé En cours Planifié

Les principes de la sécurité

Bibliographie. Gestion des risques

RANGER ET NETTOYER SON ORDINATEUR Mise à jour : Septembre 2013

TUTORIEL RADIUS. I. Qu est-ce que RADIUS? II. Création d un groupe et d utilisateur

Fiche de l'awt La sécurité informatique

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

La haute disponibilité de la CHAINE DE

Mettre en place un accès sécurisé à travers Internet

Fiches micro-informatique SECURITE LOGIQUE LOGIxx

Alexis Lechervy Université de Caen. M1 Informatique. Réseaux. Filtrage. Bureau S3-203

AccessMaster PortalXpert

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Firewall. Souvent les routeurs incluent une fonction firewall qui permet une première sécurité pour le réseau.

Sécurité des réseaux Les attaques

La sécurité informatique d'un centre d imagerie médicale Les conseils de la CNIL. Dr Hervé LECLET. Santopta

Bee Ware. Cible de Sécurité CSPN. Validation Fonctionnelle Validation Fonctionnelle Bon pour application AMOA BEEWARE BEEWARE

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

SERVEUR DE MESSAGERIE

laissez le service en démarrage automatique. Carte de performance WMI Manuel Désactivé Vous pouvez désactiver ce service.

z Fiche d identité produit

Trusteer Pour la prévention de la fraude bancaire en ligne

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Fonctionnement de Iptables. Exercices sécurité. Exercice 1

Assistance à distance sous Windows

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Présentation du Serveur SME 6000

Module 8. Protection des postes de travail Windows 7

Sécurité et protection contre les vulnérabilités dans Google Apps : une étude détaillée. Livre blanc Google - Février 2007

Lexique informatique. De l ordinateur :

Sécurité. Tendance technologique

SÉCURITE INFORMATIQUE

JetClouding Installation

Configuration de Trend Micro Internet Security (PC-cillin version 11)

«ASSISTANT SECURITE RESEAU ET HELP DESK»

Dr.Web Les Fonctionnalités

Sujet 2 : Interconnexion de réseaux IP (routeurs CISCO). Sujet 3 : Implémentation d un serveur VPN avec OpenVPN.

Sage CRM. 7.2 Guide de Portail Client

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

Administration Centrale : Opérations

Annexe 5. Kaspersky Security For SharePoint Servers. Consulting Team

Sécurité informatique

PROCEDURE D INSTALLATION et de CONFIGURATION DU SERVICE PACK2 POUR WINDOWS XP

Le rôle Serveur NPS et Protection d accès réseau

Configurer ma Livebox Pro pour utiliser un serveur VPN

POUR MAC Guide de démarrage rapide. Cliquez ici pour télécharger la version la plus récente de ce document

Linux sécurité des réseaux

Chapitre 2 Rôles et fonctionnalités

[ Sécurisation des canaux de communication

Fiche Technique. Cisco Security Agent

Menaces et sécurité préventive

1. Présentation de WPA et 802.1X

DSI - Pôle Infrastructures

Protection des protocoles

Certificat Informatique et Internet

Rôle des FAI et des Datacenters dans les dispositifs de cyber-sécurité Ou comment tenter de rendre l Internet plus sûr.

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Progressons vers l internet de demain

Internet sans risque surfez tranquillement

DNSSEC. Introduction. les extensions de sécurité du DNS. Les dossiers thématiques de l AFNIC. 1 - Organisation et fonctionnement du DNS

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Découvrez Kaspersky. Small Office Security TPE PME GUIDE DE LA SÉCURITÉ INFORMATIQUE

Charte d installation des réseaux sans-fils à l INSA de Lyon

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Les messages d erreur d'applidis Client

DSCG : UE5 - Management des Systèmes d'information CARTE HEURISTIQUE...1 ARCHITECTURE PHYSIQUE...2

M1101a Cours 4. Réseaux IP, Travail à distance. Département Informatique IUT2, UPMF 2014/2015

Sécurisation du réseau

Transcription:

Mémoire de fin d études : Sécurité des échanges de données Clients - Serveurs Julien Bourianes Cyril Leclerc 5PPA AL Maître de Mémoire : M. DERRIDJ 5PPA AL 1

THÈME : Sécurité des échanges de données clients-serveurs Introduction : De nos jours, de nombreux sites Internet ou applications sont victimes de piratage. Des insuffisances de sécurité sont alors mises en évidence. L information se propage et les usagers se méfient par exemple de l utilisation des paiements en ligne. Les sociétés ont du mal à faire confiance aux SSII qui doivent user de méthodologie et d efficacité pour pouvoir convaincre leurs clients de leur développer leurs applications. Ces dernières doivent pouvoir assurer aux usagers une sécurité sans failles. Pour cela, les entreprises qui développent des applications ou des sites Internet ont chacune leur façon de procéder. Certaines pratiques sont communes ou innovantes, ce qui leur permet de pouvoir se démarquer des autres. Ainsi, il convient de se demander : Comment garantir la sécurité des échanges de données clients-serveurs, en particulier pour les échanges confidentiels (données sensibles, payement bancaire)? En effet, un internaute peut être amené à tout moment à utiliser un service sécurisé en ligne (pour payer des factures, faire des achats, effectuer des réservations, par exemples). Il est alors essentiel que ces services soient sécurisés. Cette étude portera sur la façon de détecter les failles d un site Internet ou d une application et comment les prévenir. Quelles sont les diverses technologies utilisées pour détecter ces failles? Quelles sont les diverses failles existantes? Quels sont les risques et les conséquences pour un site qui présente ces problèmes? Dans un premier temps, nous verrons les définitions de la sécurité informatique, du risque ainsi que d un échange client serveur. Dans un deuxième temps, les différentes façons d empêcher le piratage ainsi que la sécurisation de l existant. Dans un troisième temps, nous aborderons la procédure à suivre en cas de piratage, Nous survolerons également les droits en informatiques ainsi qu un cas concret d intrusion. 5PPA AL 2

1 La Sécurité informatique 1.1 Qu est-ce que la sécurité? : 1.1.1 Définitions Sécurité (général) : Rendre une zone ou un dispositif plus sûr. Sécurité informatique : La sécurité informatique est l'ensemble des techniques qui assurent que les ressources du système d'information (matérielles ou logicielles) d'une organisation sont utilisées uniquement dans le cadre où il est prévu qu'elles le soient. Sécurisation : La sécurisation informatique est un processus, elle commence au moment de définir l architecture et se termine à la déconnexion du serveur du réseau. Elle se met en place avec des méthodes et procédures communes puis d autres spécifiques à chaque entreprise et à chaque application installée. Trois choses importantes pour la mise en place d une sécurisation : Analyse des risques. Politique de sécurité. Techniques de sécurisation. Ces trois parties seront étudiées pendant l analyse des risques. Cryptographie : Technique ayant pour but de chiffrer un message, c'est-à-dire de le rendre inintelligible aux yeux de ceux à qui il n'est pas destiné. 1.1.2 Objectifs de la sécurité informatique Le système d'information est défini par l'ensemble des données et ressources matérielles et logicielles de l'entreprise permettant de les stocker ou de les faire circuler. Le système d'information représente un patrimoine essentiel de l'entreprise, qu'il faut protéger. La sécurité informatique, d'une manière générale, consiste à assurer que les ressources matérielles ou logicielles d'une organisation sont uniquement utilisées dans le cadre prévu. 5PPA AL 3

La sécurité informatique est composée de cinq principaux objectifs : 1 L'intégrité Vérifier l'intégrité des données consiste à déterminer si les données n'ont pas été altérées durant la communication (de manière fortuite ou intentionnelle). 2 La confidentialité La confidentialité consiste à rendre l'information inintelligible à d'autres personnes que les seuls acteurs de la transaction. 3 La disponibilité L'objectif de la disponibilité est de garantir l'accès à un service ou à des ressources. 4 La non-répudiation La non-répudiation de l'information est la garantie qu'aucun des correspondants ne pourra nier la transaction. 5 L'authentification L'authentification consiste à assurer l'identité d'un utilisateur, garantir à chacun des correspondants que son partenaire est bien celui qu'il croit être. Un contrôle d'accès peut permettre (par exemple par le moyen d'un mot de passe qui devra être crypté) l'accès à des ressources uniquement aux personnes autorisées. 1.1.3 Nécessité d'une approche globale La sécurité d'un système informatique fait souvent l'objet d images. En effet, on la compare régulièrement à une chaîne en expliquant que le niveau de sécurité d'un système est caractérisé par le niveau de sécurité du maillon le plus faible. Ainsi, une porte blindée est inutile dans un bâtiment si les fenêtres sont ouvertes sur la rue. Cela signifie que la sécurité doit être abordée dans un contexte global et notamment prendre en compte les aspects suivants : La sensibilisation des utilisateurs aux problèmes de sécurité La sécurité logique, c'est-à-dire la sécurité au niveau des données, notamment les données de l'entreprise, les applications ou encore les systèmes d'exploitation. La sécurité des télécommunications : technologies réseau, serveurs de l'entreprise, réseaux d'accès, etc. La sécurité physique, soit la sécurité au niveau des infrastructures matérielles : salles sécurisées, lieux ouverts au public, espaces communs de l'entreprise, postes de travail des personnels, etc. 5PPA AL 4

1.2 Qu est-ce que le risque? Comme cité précédemment «la sécurisation informatique est un processus, elle commence au moment de définir l architecture et se termine à la déconnexion du serveur du réseau.» Nous allons ainsi voir les 3 choses importantes pour la mise en place d une sécurisation : 1.2.1 Définitions Risque : Le risque en termes de sécurité est généralement caractérisé par l'équation suivante : Menace : La menace représente le type d'action susceptible de nuire dans l'absolu, tandis que la vulnérabilité (appelée parfois faille ou brèche) représente le niveau d'exposition face à la menace dans un contexte particulier. Contre-mesure : La contre-mesure est l'ensemble des actions mises en œuvre en prévention de la menace. Les contre-mesures à mettre en œuvre ne sont pas uniquement des solutions techniques mais également des mesures de formation et de sensibilisation à l'intention des utilisateurs, ainsi qu'un ensemble de règles clairement définies. Afin de pouvoir sécuriser un système, il est nécessaire d'identifier les menaces potentielles, et donc de connaître et de prévoir la façon de procéder de l'ennemi. Le but de ce dossier est ainsi de donner un aperçu des motivations éventuelles des pirates, de catégoriser ces derniers, et enfin de donner une idée de leur façon de procéder afin de mieux comprendre comment il est possible de limiter les risques d'intrusions. 1.2.2 Analyse des risques : Plus aucune entreprise ne peut se passer d informatique, d'où la nécessité d'en assurer la sécurité, et de la protéger contre les risques liés à l'informatique. Or, comme on ne se protège efficacement que contre les risques qu'on connaît, il importe de mesurer ces risques, en fonction de la probabilité ou de la fréquence de leur apparition et de leurs effets possibles. Toutes les entreprises ont intérêt à évaluer, même grossièrement, les risques qu'elle encourt et les protections raisonnables à mettre en œuvre. Les risques et les techniques de sécurisation seront évalués en fonction de leurs coûts respectifs. 1.2.3 Politique de sécurité : Suite aux résultats de l'analyse de risques, la politique de sécurité : 5PPA AL 5

Définit le cadre d'utilisation des ressources du système d'information Identifie les techniques de sécurisation à mettre en œuvre dans les différents services de l'organisation Sensibilise les utilisateurs à la sécurité informatique. Il existe de nombreuses méthodes permettant de mettre au point une politique de sécurité. Voici une liste non exhaustive des principales méthodes : MARION (Méthodologie d'analyse de Risques Informatiques Orientée par Niveaux) https://www.clusif.asso.fr/fr/production/mehari/ MEHARI (MEthode Harmonisée d'analyse de RIsques) https://www.clusif.asso.fr/fr/production/mehari/ EBIOS (Expression des Besoins et Identification des Objectifs de Sécurité http://www.ssi.gouv.fr/fr/confiance/ebios.html La norme ISO 17799. 1.2.4 Techniques de sécurisation : Elles assurent la disponibilité (les services et les informations doivent être accessibles aux personnes autorisées quand elles en ont besoin et dans les délais requis), l'intégrité (les services et les informations ne peuvent être modifiés que par les personnes autorisées), et la confidentialité (l'information est accessible uniquement à ceux qui y ont droit). 1.3 Qu est-ce que la sécurité des échanges de données clients-serveurs? 5PPA AL 6

1.3.1 Les risques serveurs La sécurité du serveur est aussi importante que la sécurité de réseaux vu que les serveurs contiennent souvent une grande partie des informations vitales d'une société. Si un serveur est compromis, tout son contenu peut devenir disponible et un pirate peut facilement le voler ou le manipuler. Les inclusions PHP Une spécificité de PHP est la possibilité d'inclure dynamiquement un script. Lorsque cette inclusion est basée sur une variable que l'utilisateur fourni, il faut veiller à ce qu'il ne puisse pas modifier le chemin de l'inclusion. Dans le cas contraire, un individu malintentionné pourrait inclure un script se trouvant sur un serveur distant et ainsi exécuter du code malveillant. Les injections SQL Imaginons la lecture d'un article dans une table. Pour le sélectionner, on utilisera : «SELECT * FROM article WHERE id='(variable id)'» Maintenant, imaginons que (variable id) soit égal à 4'; «DELETE FROM article WHERE id!='0» et qu'il ne soit pas du tout filtré. Voici ce qu'il pourrait arriver : «SELECT * FROM article WHERE id='4'; DELETE FROM article WHERE id!='0'» On voit que cette méthode est très puissante puisqu'en utilisant des noms génériques, on pourrait supprimer de nombreuses tables. On peut aussi prendre l'exemple d'une authentification : «SELECT * FROM membre WHERE login='(variable login)' AND password='(variable pass)'» Pour un identifiant existant, on pourrait passer ce test grâce à une simple injection : «SELECT * FROM membre WHERE login='mon_identifiant' AND password='x' OR login='mon_identifiant'» Pour résoudre ces problèmes, il faut être particulièrement attentif à ce que les données de l'utilisateur ne contiennent pas d'apostrophe ou de guillemets. Mais pas seulement! Il faut aussi vous assurer de toujours encapsuler les données susceptibles d'émaner de l'utilisateur avec des apostrophes ou des guillemets dans les clauses SQL. 5PPA AL 7

Les injections HTML/JavaScript Cette pratique plus connue sous le nom de Cross Site Scripting (XSS) consiste à afficher sur votre site du code HTML/JavaScript. Cela peut être une redirection JavaScript dans un message au sein d'un forum ou pire, la récupération de la variable de session. Les attaques XSRF Encore plus vicieuses, ces attaques exploitent la connexion d'un administrateur connecté au site pour lui faire faire des actions sur ce dernier (suppression de contenu, la plupart du temps). Le principe est simple, la personne connectée au site est invitée à se rendre sur une page web dans laquelle une image contient le lien direct permettant de supprimer du contenu sur le site. Comme cette dernière envoi son identifiant de session à cause du cookie placé à la connexion, le contenu est supprimé sans souci. S il s'agit d'un forum open-source, vous n'aurez aucune difficulté pour connaître cette fameuse URL. C'est pourquoi, il faut demander confirmation grâce à une seconde requête HTTP (bien-sûr, la page précédente aura délivré un "ticket" attestant de son passage sur cette dernière). De plus, il faut privilégier la méthode POST pour les modifications car l'affichage d'une image dans une page HTML ne peut pas la simuler. Les attaques WebShell Une attaque WebShell est une porte dérobée au sein d'un(e) application/serveur web: Accessible via une URL particulière à connaître Exécutant des actions sous l'identité du serveur Ouvrant une porte sur le réseau interne via HTTP(S) Permettant l'attaque par rebond d'un site tierce Quelques exemples de fonctionnalités: Exécution de commandes systèmes sur le serveur web Interrogation de bases de données Spam Relay Encapsulation de TCP dans http Les attaques ssh En 2005, les attaques en force Bute sur le ssh (Secure Shell) service est devenu assez populaire. Ces attaques sont basées sur une simple idée assez: l'utilisation d'un programme automatisé pour essayer, les uns après les autres, de nombreuses combinaisons de type ou fréquemment utilisés noms de compte et De même mot de passe fréquemment utilisés (par exemple: guest / guest). 5PPA AL 8

Les attaques ftp Il existe plusieurs attaques de types ftp. Dans ce mémoire, nous nous pencherons sur le «Bounce». Le FTP Bounce signifie Rebond FTP. C'est un cas de Spoofing d'adresse IP. Cette technique est ancienne et ne devrait plus être d'actualité. Cette technique est en accord avec les RFC, ce qui fait une cible potentielle de tous les serveurs FTP. Elle est basée sur une utilisation de la commande PORT du protocole FTP lorsque le serveur FTP est en mode actif. En effet, cette commande permet de se connecter à n'importe quel autre serveur distant, et à un port donné. Dans ce cas, il est possible que la sécurité du serveur cible soit compromis, dans le cas ou il effectue une vérification des adresses IP d'origine. En effet, l'adresse IP que le serveur cible verra sera l'adresse IP du serveur FTP, et non de l'adresse IP de l'attaquant. Les attaques dos Les attaques par ' Denial of Service ' (Déni de Service) ont pour but de perturber ou de stopper complètement le fonctionnement d'un site web, d'un réseau, d'un serveur, ou d'autres ressources. Les hackers et auteurs de virus utilisent différentes méthodes d'attaque de DoS. Les attaques de DoS ont pour but de charger les serveurs de requêtes continues jusqu'à ce que le serveur réponde de plus en plus lentement au point que les utilisateurs abandonnent ou bien que les serveurs tombent totalement. 1.3.2 Les risques clients Le navigateur, qui est à la base un outil grand public, et qui a été inventé pour consulter des sites sur Internet est en train de devenir un client d accès pour les applications métiers. Malheureusement, ce client n a jamais été étudié pour être sécurisé pour être utilisé dans un cadre d une entreprise. Cet outil va donc être utilisé par un collaborateur de l entreprise à la fois pour accéder à des informations stratégiques et sensibles, mais également la même personne va s en servir pour consulter sa page «Facebook» et ses applications, ou utiliser des composants faillibles (généralement des composants tiers, type lecteur PDF ou Flash) en consultant une page tierce. Le site web va contaminer le navigateur et rebondir ainsi dans l application métier. Honey pots Le but de ce leurre est de faire croire à l'intrus qu'il peut prendre le contrôle d'une véritable machine de production, ce qui va permettre d'observer les moyens de compromission des pirates, de se prémunir contre de nouvelles attaques et de laisser ainsi un temps supplémentaire de réaction à l administrateur. Une utilisation correcte d un honeypot repose essentiellement sur la résolution et la mise en parallèle de trois problématiques : la surveillance ; la collecte d'information ; l'analyse d'information. 5PPA AL 9

Trojans Un cheval de Troie n est pas un virus informatique, en ce sens qu'il ne se reproduit pas par lui-même, fonction essentielle pour qu un logiciel puisse être considéré comme un virus. Un cheval de Troie est conçu pour être reproduit lors de téléchargements ou de copies par des utilisateurs, attirés par les fonctionnalités du programme. Les chevaux de Troie servent très fréquemment à introduire une porte dérobée sur un ordinateur. L action nuisible à l utilisateur est alors le fait qu un pirate informatique peut à tout moment prendre à distance (par Internet) le contrôle de l ordinateur. Un cheval de Troie se compose de deux parties distinctes : la partie "client" et la partie "serveur". La partie client est le composant envoyé à la victime tandis que la partie serveur reste sur l'ordinateur du pirate. La partie client est envoyée par courriel et se présente sous la forme d'une amélioration d'un logiciel (ex : MSN, Adobe Photoshop, Safari...). Il peut aussi se présenter sous la forme d'un test de QI ou d'un jeu à but lucratif. Bref, les formes sont multiples. Attention, dites-vous bien que jamais une entreprise de micro-informatique ne proposera des améliorations par courriel. Le cheval de Troie se glisse donc dans l'ordinateur et s'installe dans l'éditeur de registre (pour aller le voir tapez "Regedit" dans Exécuter du menu Démarrer, vous comprendrez mieux pourquoi). Le fichier peut également s'infiltrer et s'installer dans l'autoexec de démarrage, afin d'être opérationnel dès le lancement de la machine. Là, il ouvre une porte dérobée (backdoor en anglais), sur le port choisi par le pirate de l ordinateur et établi une connexion avec l'ordinateur pirate. La partie serveur, elle, s'occupe d'envoyer les instructions à la partie client logée dans l'ordinateur de la victime. Le pirate peut alors contrôler la totalité du PC (il peut contrôler la souris, le clavier mais aussi imprimer, initialiser le disque dur, activer une webcam, etc.). Il existe 2 types de chevaux de Troie : Spyware ceux en connexion directe, de moins en moins utilisés, où c'est le pirate qui se connecte à la victime, mais où il faut que le pirate dispose de l'adresse IP de sa victime. ceux en "remote connection" où c'est l'ordinateur victime qui se connecte au pirate. Le pirate, lui, possède une liste où chacune de ses victimes connectées est affichée. Il peut ainsi diffuser son cheval de Troie à grande échelle. Un logiciel espion est un logiciel malveillant qui s'installe dans un ordinateur dans le but de collecter et transférer des informations sur l'environnement dans lequel il s'est installé, très souvent sans que l'utilisateur en ait connaissance. L'essor de ce type de logiciel est associé à celui d'internet qui lui sert de moyen de transmission de données. 5PPA AL 10

Bombe logique Une bombe logique est un morceau de code volontairement inséré dans un logiciel système qui sera mis hors service les fonctions malveillantes lorsque les conditions précisées sont remplies. Par exemple, un programmeur peut en cacher un morceau de code qui commence la suppression de fichiers (comme un salaire de base de données de déclenchement), devraient-ils jamais être résilié par la compagnie. Le logiciel qui est intrinsèquement malveillants, tels que les virus et les vers, contiennent souvent des bombes logiques qui exécutent un certain charge utile à une prédéfini le temps ou quand une autre condition est remplie. Cette technique peut être utilisée par un virus ou un ver à prendre de l'ampleur et la propagation avant d'être remarqué. De nombreux virus d'attaquer leurs systèmes d'accueil à des dates précises, telles que le vendredi 13 ou pour pâques. Les Chevaux de Troie qui activent certaines dates sont souvent appelés «bombes à retardement». Virus Un virus informatique est un logiciel malveillant conçu pour se propager à d'autres ordinateurs en s'insérant dans des programmes légitimes appelés «hôtes». Il peut perturber plus ou moins gravement le fonctionnement de l'ordinateur infecté. Il peut se répandre à travers tout moyen d'échange de données numériques comme les réseaux informatiques et les cédéroms, les clefs USB, etc. Bootstrap Un Bootstrap est un petit programme d'amorçage qui permet d'en lancer un plus gros Phishing L'hameçonnage (ou Phishing, et parfois filoutage), est une technique utilisée par des fraudeurs pour obtenir des renseignements personnels dans le but de perpétrer une usurpation d'identité. La technique consiste à faire croire à la victime qu'elle s'adresse à un tiers de confiance banque, administration, etc. afin de lui soutirer des renseignements personnels : mot de passe, numéro de carte de crédit, date de naissance, etc. C'est une forme d'attaque informatique reposant sur l'ingénierie sociale (sécurité de l'information). L'hameçonnage peut se faire par courrier électronique, par des sites Web falsifiés ou autres moyens électroniques. 1.3.3 Les risques réseaux De mauvaises habitudes lors de la configuration des aspects suivants d'un réseau peuvent augmenter le risque d'attaques. Architectures fragiles : Un réseau mal configuré est un point d'entrée principal pour les utilisateurs non autorisés. Laisser un réseau local ouvert, basé sur la confiance, vulnérable à l'internet très peu sécurisé serait comme laisser sa porte entrouverte dans un 5PPA AL 11

quartier au taux de crime élevé pendant un certain temps, rien ne peut arriver, mais éventuellement quelqu'un profitera de la situation. Réseaux de diffusion : Les administrateurs système oublient souvent l'importance du matériel réseau dans leurs plans de sécurité. Du matériel simple, comme les hubs et les routeurs, dépend du principe de diffusion ou non commuté; en effet, lorsque un nœud transmet des données sur le réseau vers un nœud destination, le hub ou le routeur envoie une diffusion des paquets de données jusqu'a ce que le nœud destination reçoive et traite les données. Cette méthode est la plus vulnérable à l'usurpation d'adresses de protocole de résolution d'adresses (arp) ou de contrôle d'accès au média (MAC) par des intrus externes ainsi que par des utilisateurs non autorisés sur les nœuds locaux. Serveurs centralisés : Un autre piège possible dans les réseaux vient de l'utilisation de l'informatique centralisée. Une mesure courante et économique pour de nombreuses sociétés réside en la consolidation de tous les services en une seule machine puissante. Cela peut être pratique vu la facilité de gestion et la réduction de coûts comparé à des configurations à multiples serveurs. Cependant, un serveur centralisé introduit un seul point d'échec sur le réseau. Si le serveur central est compromis, il peut alors rendre le réseau complètement inutile ou pire, sujet à la manipulation ou au vol de données. Dans ces situations, un serveur central devient une porte ouverte, permettant l'accès sur le réseau entier. 5PPA AL 12

2 Mise en place de la sécurité : La mise en place de la sécurité s effectue en plusieurs étapes, certaines obligatoires, d autres qui dépendent du niveau de criticité des données impliquées. 2.1 Configuration de base La configuration de base est un élément important de la sécurisation d une application, en effet c est cette étape qui déterminera la fiabilité du système. 2.1.1 Sécurisation d un serveur Cette étape est cruciale et obligatoire pour tout type d application ou de site internet même comportant des données non-sensibles, il doit pouvoir garantir l intégrité du serveur et de ses différents accès. Plusieurs types de sécurisation seront expliqués et mis en évidence. Nous parlerons des plus importants en essayant de couvrir toutes les techniques possibles, car il existe une multitude d outils, payants ou non, réputés ou non. Définition : Protocole : méthodologie de communication avec un système informatique. Ce dernier peut-être comparé aux règles de communication pour les humains. En effet plusieurs langues sont disponibles pour communiquer, ensuite pour chaque langue des coutumes ou règles sont alors utilisées. Les anglais par exemple disent leur nom en décrochant le combiné téléphonique, les français diront «allo». Les anglais diront alors ensuite bonjour, alors que les français demanderont s ils parlent bien à la personne souhaitée. Les gens peuvent aussi communiquer par voie orale ou par courrier. Donc le protocole FTP ou bien SSH ou encor http sont donc des manières et méthodologies différentes pour communiquer. 1 Le choix du système d exploitation La sécurisation du serveur commence dès le choix du système d exploitation. Tout le monde sait que les systèmes Windows sont ceux qui sont le plus touchés par les différents type de virus (cf les risques serveurs) par rapport à un autre système, Linux par exemple. Il conviendra alors de choisir ce type de système d exploitation si la configuration de l application le permet (pas de programmation en.net ou liés à Microsoft). Une bonne analyse est alors nécessaire avant toute installation et certaines règles de bon sens sont à appliquer. 2 Le choix des logiciels ou packages installés La sécurisation du serveur passe aussi par l installation des logiciels (Windows) ou des packages (Linux). Il faut que ce soit les versions les plus récentes (proposent des plateformes de support et de fixation de bugs), ainsi ils présentent le moins de 5PPA AL 13

risque et de failles que les anciennes versions (il faut bien sur vérifier les compatibilités entre les différentes versions (cf. mise à jour). 3 Du bon usage de son serveur 90 % des problèmes informatiques relèvent de l utilisateur. C est pourquoi, avant même de penser à sécuriser un serveur, il faut garder en mémoire quelques règles assez logiques : Interdire les utilisateurs sans mot de passe par exemple. Toujours choisir de bons mots de passe : 8 caractères minimum, pas un mot qui se trouve dans le dictionnaire, si possible des chiffres, des majuscules, des symboles... au besoin, un outil comme pwgen vous en génèrera automatiquement des bons (apt-get install pwgen) ; 4 Mise à jour du système Maintenir son système à jour (apt-get update et apt-get upgrade). Il est impératif de garder à jour le système pour la même raison expliquées dans l installation des packages. 5 Connexion sécurisée pour administrer le serveur Toujours utiliser SSH pour l accès à distance (et non TELNET ou des services graphiques, sauf s ils sont en tunnel à travers SSH). 6 Filtrer le trafic via le firewall Le firewall (pare-feu) est l élément indispensable pour sécuriser son serveur. Il va en effet filtrer tout le trafic en n autorisant que les échanges permis par l administrateur (personne qui s occupe de mettre en place la sécurité). Sans firewall correctement réglé, tous les trafics sont plus ou moins permis (c est-à-dire qu un attaquant puisse faire ce qu il veut chez vous) et ce genre de faille est détectable par un simple scan de ports. On peut comparer l utilisation du firewall avec la vie de tous les jours. Une maison avec toutes les portes ouvertes est l égale d un ordinateur dont tous les ports seraient ouverts. En fermant les portes on évite tous les curieux qui se demanderaient «qui a-t-il dans cette maison?et voudraient rentrer pour voir». Le noyau Linux (système d exploitation libre et open source) offre déjà un pare-feu à l utilisateur, qu il est possible de configurer via le logiciel (ou ligne de commande). On pourra donc aisément utiliser ce dernier pour être le système d exploitation du serveur. Technique : Nous allons maintenant détailler le fonctionnement d un firewall qui est relativement simple. Un firewall analyse tout le trafic et vérifie si chaque paquet (information) échangé respecte bien ses règles (critères de filtrage). Donc, il suffit de spécifier de bonnes règles pour interdire tout trafic superflu. 5PPA AL 14

Les critères peuvent être divers (filtrer les ports, les protocoles, les adresses IP, etc.). De base, il faut spécifier des règles sur les ports. Bien entendu, il faut être le plus strict possible quant au choix des règles ; c est pourquoi, par défaut, tout firewall se règle en premier lieu en bloquant tout, absolument tout. Ensuite, nous allons «ouvrir» (autoriser le trafic) certains ports que nous voulons utiliser (par exemple pour un serveur web, nous allons ouvrir le port 80 afin que le site web soit accessible). Par défaut un site web est accessible sur les ports 80 ou 8080 (ce sont ces ports qu utilisent les services web qui permettent la mise en ligne de l application). Pour plus de souplesse, nous allons écrire nos règles sous forme de script BASH. Petite mesure de prudence si vous êtes logué sur votre machine à distance (SSH), soyez bien sûr de ne pas vous bloquer l accès ou - le cas échéant - de pouvoir rebooter la machine. Sinon, récupérer le serveur sera compliqué. 7 Détection d intrusions Le firewall va bloquer toutes tentatives de connexions sur les ports fermés. Mais il reste à sécuriser les ports ouverts (en plus des règles de filtrage). Pour les contrôler, il est conseiller utiliser d autres outils, appelés IDS (Intrusion Détection System) et IPS (Intrusion Prévention System). Ces deux catégories de logiciels vont - comme leur nom l indique - surveiller toute tentative d intrusion sur le serveur. Portsentry (scan de ports) Cet utilitaire permet de bloquer en temps réel la plupart des scans de port connus (même très discrets et échappant aux règles de filtrage du firewall basiques). Je rappelle au passage que scanner les ports signifie tester tous les ports d une machine afin de déterminer ceux qui sont ouverts (les portes d entrées en gros). Cependant, il ne faut pas paniquer si votre serveur est la cible d un simple scan de port, cela sera monnaie courante, et si vous êtes bien protégé, le pirate passera sa route. Fail2ban Les ports ouverts sur la machine sont à priori sans grande protection, et sujet à des attaques simples telles que la tentative de connexion par brute-force ou par dictionnaire (par exemple, tester toutes les combinaisons de mots de passe pour se loguer en ssh), le déni de services (surcharger le serveur de requêtes) ou - plus bêtement - la recherche d utilisateurs sans mots de passe... Si votre machine est infiltrée aussi facilement, l attaquant sera vraiment content. Fail2ban est un petit utilitaire qui se base sur les logs de la machine pour chercher des actions suspectes répétées (par exemple, des erreurs de mots de passe) dans un laps de temps donné. S il en trouve, il bannira l IP de l attaquant via iptables. Ce type de logiciel est indispensable, car, bien que léger, il offre une bonne protection contre les attaques basiques indiquées ci-dessus. Snort (détection d intrusions) 5PPA AL 15

Le problème quand on commence à sécuriser est de savoir s arrêter à un moment donné. Snort est un outil très puissant, pouvant en fait détecter la plupart des attaques qui échapperaient à un utilitaire comme fail2ban. Bien entendu, il ne servira pas dans 90 % des cas et comme ce n est qu un outil de détection, ce sera à vous de rendre les mesures nécessaires s il détecte une intrusion. Enfin, comme il analyse le trafic en temps réel, cela ralentit forcément un peu les flux. L installer n est donc pas indispensable, cela dépend du degré de sécurité recherché! Rkhunter (rootkit et backdoors) Dernier volet de cette section intrusion, les backdoors. Si par malheur un attaquant arrive à prendre possession de votre machine, il y a fort à parier qu il y laisse une backdoor (porte dérobée) qui lui permettrait d en reprendre le contrôle plus tard, ainsi qu un rootkit pour la dissimuler : l attaquant maintient ainsi un accès frauduleux à votre machine. Rkhunter est un utilitaire qui est chargé de détecter d éventuels rootkits sur votre serveur. Il est relativement léger (s exécute une fois par jour par défaut) donc on aurait tort de ne pas l utiliser. 8 Configurer les logiciels Il peut aussi être bon d améliorer un peu la sécurité des logiciels (services/packages) installés sur la machine, car ils seront en première ligne pour traiter les paquets autorisés. En premier lieu, il faut regarder du côté de SSH (protocole SSH), c est un accès direct au serveur. Il faut autoriser seulement les accès à des utilisateurs sans droits spécifiques, une fois connecter, changer la session pour la session administrateur (PermitRootLogin). On pourra aussi changer le port de connexion. Le port par défaut est 22... Tous les pirates le savent. Changer le port force à effectuer un scan (ou équivalent) avant de pouvoir attaquer (attention de bien changer le port dans le firewall). Faire de même avec la connexion ftp (port 21). La connexion ftp sert à télécharger ou déposer des fichiers sur le serveur en utilisant le protocole FTP. Configuration serveur Web La configuration de l environnement web est une des étapes les plus cruciales, l accès http est ouvert à tous, et il n y a donc pas de restriction d accès. Il faut donc être rigoureux dans l installation et le paramétrage de celui-ci Serveur Apache (le plus couramment utilisé) Server token : Permet de ne pas renvoyer l environnement du serveur lors d un envoie de page inaccessible ou autre de type 404 ou 500. En effet il suffit de taper une url inexistante dans un domaine prédéfini pour avoir une réponse du serveur pour nous informer que la page est inexistante lors du renvoi de cette page si le serveur est mal configuré on pourra voir la distribution et la version du serveur web utilisé. Les pirates peuvent se servir de ces informations pour attaquer ledit serveur. 5PPA AL 16

FOLLOWLINKS : cette option permet de déterminer si on peut remonter dans une arborescence. HTACCESS: restriction d accès au fichiers ou répertoire sur le serveur Pour la plupart des logiciels de base, il existe quelques recommandations de prudence : MySQL FTP Mail interdire les accès sans mot de passe (on peut exécuter l utilitaire /usr/bin/mysql_secure_installation fourni avec mysql-server) ne surtout pas créer de FTP anonymes utiliser un anti-spam (spamassassin par exemple) et - si possible - utiliser les connexions sécurisées (SSL ou TLS) offertes par tout serveur de mail qui se respecte Paramétrage de PHP (php.ini) Ce fichier est le fichier de configuration de la version de PHP installée sur le serveur utilisée par apache il faut donc aussi sécuriser ce fichier qui peut être une extension de httpd.conf Mettre la variable register_globals en off Quand register_globals est à on, les variables EGPCS (Environnement, GET, POST, Cookie, Server) sont enregistrées comme des variables globales. Ainsi, une URL contenant une variable, par exemple http://www.site.com/index.php?var=test crée une variable $var sans besoin d'autre code. De manière général, il faut éviter au maximum les variables globales et utiliser des flots de données explicites. Limiter l'accès aux répertoires Le safe mode est le mode de sécurité de PHP. Une fois activé, il empêche un script d'accéder à des fichiers situés en dehors du dossier où se trouve le site. La vérification est faite en vérifiant le nom du propriétaire du fichier et celui du script. Souvent trop restrictive, une vérification sur le nom du groupe peut suffire, en utilisant safe_mod_gid. La variable Open_basedir limite les manipulations aux fichiers situés dans les dossiers spécifiés. Il est également possible de désactiver individuellement des fonctions avec disable_functions. Disable_classes fonctionne de la même manière et permet de désactiver individuellement des classes. display_error=off et log_errors=on Désactiver l'affichage des erreurs pour éviter d'afficher des informations aux utilisateurs en mettant la variable display_error en off. Il vaut mieux les inscrire dans un journal d'erreurs avec log_errors=on. magic_quotes_gpc=on Ce paramètre, lorsqu'il est mis sur on, ajoute le caractère "\" devant les apostrophes, les guillemets et le caractère nul. Il empêche ainsi le système d'interpréter une requête qu'un utilisateur malintentionné aurait saisi dans un formulaire HTML. 5PPA AL 17

Cette variable tend aujourd'hui à ne plus être utilisée, au profit de la fonction addslashes() pour les requêtes SQL. Changer le répertoire temporaire des identifiants de session Les identifiants de session sont enregistrés dans un répertoire temporaire. Par défaut, le paramètre session.save_path vaut /tmp est accessible en lecture à tous. Il est donc plus sécurisé d'indiquer le chemin d'un répertoire situé ailleurs sur le système, et dont les droits auront été limités. De plus, il existe une fonction en PHP pour crypter les mots de passe enregistrés. Cette modification peut aussi se faire à partir du fichier de configuration d'apache, à l'aide de la variable php_value session.save_path. Activer session.use_only_cookies Cette variable indique si les identifiants de session doivent être utilisés seulement avec des cookies. Par défaut, cette variable est à 0, elle est désactivée et autorise d'autres modes de lecture, par exemple avec les éléments GET ou POST des requêtes HTTP. En mettant session.use_only_cookies à 1, le système lit les informations d'identifiant uniquement à partir des cookies. 2.1.2 Sécurisation du client Les utilisateurs lambda doivent aussi être sécurisés, car ils sont susceptibles de se connecter sur des serveurs qui eux-mêmes sont la proie des piratages, et avec une réaction en chaîne, ils peuvent être infectés! 1 L antivirus La seule méthode pour détecter et éliminer les virus est l'utilisation d'un anti-virus. Dans la grosse majorité, c'est un logiciel installé sur chaque PC (station et serveur) qui scanne (analyse) les fichiers transférés à fait. Le logiciel lit les codes et tente de reconnaître la signature des virus qu'il connaît. Définitions : La signature est le code (la programmation) du virus. Comme le nombre de virus devient de plus en plus important et qu'éliminer de la liste les "anciens virus" serait dangereux, le travail de comparaison entre sa liste de virus et le fichier analysé devient de plus en plus lourd. C'est néanmoins la seule solution. 5PPA AL 18

Les virus deviennent "mutants". Pour évitez cette détection, les virus changent de signature en modifiant leur code de programmation en même temps que l'infection. Certains virus actuels se coupent en plusieurs morceaux pour se reconstruire à la moindre occasion. Encore une difficulté de plus pour les anti-virus. La base de données. Pour détecter les nouveau virus, les logiciels anti-virus mettent à jour leur base de données régulièrement. Sans cette mise à jour, l'utilisation de ces programmes est pratiquement inutile. Actuellement, la majorité des mises à jour se font automatiquement lorsque vous connectez votre PC sur INTERNET. Un programme détecte la connexion et se branche automatiquement sur le serveur pour rechercher la dernière mise à jour possible. Trois conditions doivent être rempliées pour cela. Problème : le temps de connexion doit être suffisamment long pour la détection de connexion et le chargement. les délais entre les disponibilités des mises à jour est de 1 semaine environ. l'abonnement doit être à jour. L'abonnement à la mise à jour dure généralement 1 an. Passé ce délai, vous devez soit renouveler votre abonnement via INTERNET (avec payement par carte de crédit), soit acheter la nouvelle version de l'anti-virus qui reconduit votre abonnement d'un an. Le gros problème de cette méthode de protection est qu elle ne peut pas détecter un virus en train de fonctionner, ce qui rend plus difficile la détection de ce dernier. 2 Navigateurs Les navigateurs sont l interface utilisée pour se connecter de façon graphique aux sites internet, ils utilisent donc un protocole (http cf définition) comme tout autre mode en ligne de commande (ssh avec putty).ils ont aussi des failles sécuritaires et doivent être maintenus a jour également. De nos jours des internautes utilisant internet explorer 5 sont plus susceptibles d avoir des problèmes que des internautes à jour avec leurs versions de navigateurs 3 Mise à jours Avoir les bonnes versions des navigateurs ou logicielles n est pas suffisant, il faut les maintenir à jour périodiquement et télécharger les fixations de bug dès quelles sont disponibles. Il en va de même pour les mises à jour sécurité du système d exploitation. 4 Firewall Défini plus haut (cf. mise en place sécurité serveur) il existe 2 types de firewall : Matériel Software 5PPA AL 19

Pour des postes clients types internautes le firewall matériel peut-être votre modem (ou routeur, configuration de règles de filtrage) ou/et un élément supplémentaire entre votre poste et votre modem. Un firewall software va inspecter tous les programmes démarrés qui tentent de se connecter sur INTERNET, et dans le cas général par un port (une sorte de porte spécifique à chaque programme) sur tous réseaux INTERNET. Dans la majorité des cas, ces firewalls vont se configurer automatiquement pour la majorité des programmes. Première erreur. Par exemple, Norton Personnal Firewall va accepter toute les connexions sur le site de Symantec. Jusque là, rien de grave pour les mises à jours automatiques, mais rien ne garantit que des renseignements plus personnels ne sont pas communiqués. De même, le firewall va accepter toutes les connexions vers les mises à jour de Microsoft. Et là, les programmes de Microsoft font également de l'espionnage manifeste. Un exemple de ce type d application est fournit avec les versions de Windows : parefeu en français. Il se configure aisément et est intuitif. On peut y avoir accès depuis le panneau de configuration dans la barre de menu «démarrer» : On peut activer/désactiver le firewall et gérer des exceptions. Par défaut à chaque connexion entrante ou sortante, le firewall demande l autorisation à l utilisateur. C est une bonne façon de filtrer les connexions et apprendre un peu plus sur les interactions de notre ordinateur avec le monde du web. 5 Utilitaires de nettoyage. Des applications existent pour nettoyer l ordinateur. Ainsi des applications du type CCleaner permettent de supprimer tous les fichiers temporaires, les cookies, les historiques internet et de mot de passe les liens vers applications ou fichiers inexistants. Il existe aussi de logiciels (ex :RegCure) pour nettoyer la base des registre (base de donnée Windows contenant toutes les configurations du pc). 5PPA AL 20