Vous êtes sur la page 1sur 7

INF4420A

Examen final

Automne 2008

1.

Scurit des applications Web [7 sous-questions ; 18 points]

Aprs avoir fini vos tudes Polytechnique, vous dcidez de crer sur le Web une radio de musique alternative en ligne. Pour avoir le contrle complet sur le fonctionnement du site Web, vous dcidez dhberger le site sur votre propre serveur qui se trouve dans une armoire la maison. Vous dcidez dimplanter le site en PHP/MySQL sous Linux avec le serveur de page Web Apache. Comme vous ne pouvez pas tre en ondes tout le temps, vous avez embauch quelques amis en tant qu'animateurs d'mission (des DJ). Vous avez programm une petite application en PHP qui gre le contenu des missions et permet de les modifier. Les DJ prparent le contenu de leurs missions l'avance avec cette application, en accdant au serveur Web partir de chez eux. Pour viter que n'importe qui puisse changer le contenu des missions, vous avez activ les fonctionnalits d'authentification d'usager de Apache et donn chaque animateur son propre nom d'usager et mot de passe. Comme certains des animateurs sont trs comptitifs entre eux, vous avez configur votre application de faon ce que chaque animateur puisse seulement changer le contenu de sa propre mission. a) [3 pts] Apache garde la base de donnes de hachs cryptographiques de mot de passe dans un fichier qui contient le nom d'usager, une indication de la fonction utilise pour calculer le hach cryptographique, et ce hach lui-mme. Voici un exemple d'un fichier de mot de passe o nous avons utilis SHA1 (pour rose, david et jean), MD5 (pour louise) et la fonction crypt (valeur par dfaut, pour charles) pour calculer le hach du mot de passe : charles:dTW.1XbGg34z2 rose:{SHA}+pvrmeQCmtWmYVOZ57uuITVghrM= david:{SHA}O1W3ZXJfh0rFQhJQpxF1Yj7jJfk= louise:$apr1$U/n/a/..$RMVQYo2SnCY0MvpDBG0Ar0 jean:{SHA}+pvrmeQCmtWmYVOZ57uuITVghrM= Vous vous tes tromp dans la configuration d'Apache et le fichier ci-haut est devenu visible tout usager qui arrive se loguer sur le systme avec un compte d'animateur. Est-ce que ceci cause rellement un problme de scurit ? Si oui, dcrivez un scnario et une menace plausible, si non expliquez pourquoi. En tout premier lieu, si les mots de passe ont t mal choisis (mots du dictionnaire), un outil de recherche exhaustive (tel que John the Ripper) pourrait tre utilis pour retrouver ces mots de passe. Deuximement, la fonction crypt n'est pas scuritaire et relativement facile inverser. Donc, le mot de passe de charles pourrait tre facilement dcouvert mme s'il n'est pas "facile". Troisimement, tant donn quApache n'utilise pas de "salt", les hachs de mots de passe identiques sont aussi identiques. C'est le cas des mots de passe de rose et de jean. En regardant ce fichier, jean pourrait se rendre compte de ceci et utiliser ce mme mot de passe pour se loguer comme "rose" et effacer son mission, ou encore pire remplacer ses clips audio par de la musique classique !!! b) [3 pts] Vous tes au courant de la technique dexploitation dinjection SQL (SQL Injection) et pour se protger contre cela, dans le code PHP vous filtrez les donnes entres par les utilisateurs dans la page dauthentification pour ne pas permettre le caractre apostrophe (). Cette mesure est-elle suffisante pour sassurer que votre site nest pas vulnrable linjection SQL? Si oui, pourquoi? Si non, pourquoi et que devriez-vous faire la place? Quoique cette mesure pourrait bloquer certaines attaques dinjection SQL, elle nest pas suffisante parce que : Une attaque dinjection peut toujours tre possible cause des guillemets ("). Dautres pages sur le site, en plus de la page dauthentification, peuvent tre vulnrables. la place, on devrait faire au moins deux des choses suivantes :

Page 1 de 7

INF4420A

Examen final

Automne 2008

Au lieu de filtrer les caractres connus comme problmatiques, accepter seulement les caractres attendus (par exemple, lettre majuscule et minuscule et espace pour le nom dusager et lettre et chiffre pour le mot de passe) sur toutes les pages du site web. Utiliser les SQL Stored Procedures Utiliser les fonctions PHP pour commenter automatiquement les caractres spciaux Vrifier laide des outils automatiss que le site nest pas vulnrable. c) [3 pts] Vous avez dcid de faire affaire avec BigAddy un des plus grands revendeurs de publicit Internet. Vous avez intgr dans votre application du code javascript permettant BigAddy d'afficher des "bannires" publicitaires sur les fureteurs de vos clients. Vous recevez de BigAddy des redevances de quelques sous pour chaque annonce affiche, et mme de quelques dollars pour chaque "click" de l'utilisateur sur une de ces bannires qui l'amne vers le site d'un des clients de BigAddy. Vous prouves des difficults financires et, vous considrez brivement l'option de faire de la fraude publicitaire et de gnrer des faux affichages et des faux "click" pour vous faire payer par BigAddy. Vous mettez, bien sr, cette ide de ct car ceci n'est pas lgal ni thique. Nanmoins, et thoriquement, quelles mthodes auriez-vous pu utiliser pour faire ceci, sachant que BigAddy a quand mme des systmes anti-fraude qui limitent le nombre d'annonces et de clicks crdits attribuables une mme adresse IP (celle du client Web) pour une certaine priode de temps (p.ex. une annonce par seconde et un click par minute) ? La mthode la plus couramment utilise par les criminels pour raliser de la fraude publicitaire est d'utiliser des machines qui ont t infectes et qui font partie d'un botnet. On installe sur ces machines des scripts qui vont automatiser la connexion sur des serveurs Web, de faon imiter des utilisateurs lgitimes, en initiant de fausses sessions HTTP (ce qui va aller chercher des bannires sur le serveur de publicit) et en initiant de fausses sessions HTTP avec les annonceurs, en faisant le fureteur "cliquer" sur ces annonces. Pour viter d'tre dtecte, chaque machine initiera un nombre limit de fausses sessions. Si toutes les machines envoient quelques requtes par minutes, un botnet de quelques dizaines de millier de machines peut gnrer facilement des milliers de dollars par jour... d) [3 pts] Un autre ancien tudiant de Polytechnique, qui est devenu votre ennemi jur lors de vos tudes (aprs que vous ayez eu un diffrent lorsque vous tiez partenaires de laboratoire dans le cours de scurit...), devient trs jaloux de votre succs et dcide de vous nuire. Il construit un "faux" de votre site Web, qui ressemble exactement au vtre, afin de vous voler vos revenus de publicit. Les clients ne s'en rendent mme pas compte car son site est identique et en ralit le systme de facturation de BigAddy n'est pas en mesure de vrifier que les bannires de scurit sont envoyes un faux site. Seul petit problme technique : comment peut-il convaincre les utilisateurs de votre systme (ou leur ordinateurs) d'aller sur son site plutt que sur le vtre ? Dcrivez deux mthodes qu'il pourrait utiliser dans ce contexte. La technique la plus rpandue est probablement le hameonnage par courriel. Dans ce cas, il commencerait une campagne de spam o il inciterait les utilisateurs suivre un lien HTML dans le texte du courriel, dont l'URL pointerait vers son site mais dont le texte affich semblerait indiquer que le lien va vers le vrai site. Pour ce faire, on utilise souvent la cupidit des utilisateurs, p.ex. "Gagnez un voyage en Floride en venant couter de la musique sur notre Site", etc. Une autre possibilit est le "Google hacking", o le pirate arrive djouer les algorithmes de "ranking" de pages Web (ordonnancement) du moteur de recherche en s'arrangeant pour que son site soit list avant le votre lors de la recherche. Pour se faire, il utilise soit des araignes Web (Web crawlers) ou des bots dans un botnet qui vont gnrs pleins de faux liens pointant vers son site lui, ce qui va augmenter son ranking. Il peut aussi utiliser du "DNS cache poisoning" ce qui lui permettrait d'mettre des fausses rponses aux requtes DNS faites sur votre nom de domaine, de faon que ceux qui reoivent ces fausses rponses aillent sur votre site mme s'ils ont utiliss le bon URL. e) [2 pts] Afin de mieux protger les communications entre vos clients et le site Web, vous dcidez de scuriser la connexion avec votre serveur Web en utilisant le protocole scuris de couche application HTTPS. Pour cela, il vous faut obtenir un certificat de cl publique, qui sera envoy au fureteur de ceux qui se connecteront sur votre Page 2 de 7

INF4420A

Examen final

Automne 2008

site. En premier lieu, on vous recommande de faire affaire avec l'autorit de certification MuchoSign, qui, pour la modique somme de 1 500$, vous signe un certificat contenant votre cl publique valable pour un an. Dcrivez en dtails quelles sont les tapes de la vrification de ce certificat lors de ltablissement de la connexion scurise ralise par le fureteur, et ce, jusqu' l'affichage du petit icne de cadenas sur la barre de statut. En particulier, dcrivez les conditions qui permettent que cette vrification soit possible. Lors de l'tablissement de la connexion, le serveur fourni au fureteur une copie du certificat de cl publique, sign par MuchoSign. Comme le fureteur contient dj dans ses fichiers de configuration une copie du certificat auto sign de MuchoSign, il peut en extraire la cl publique pour vrifier la signature du certificat qu'il vient de recevoir, celui-ci contenant toutes les informations ncessaires pour le faire (hach cryptographique sign de la cl publique du serveur, avec indications des fonctions de hachage et de signature utilises). f) [2 pts] Est-ce que l'utilisation de HTTPS rend plus difficile votre ennemi jur de faire passer son "faux" site pour le vtre ? Expliquez votre rponse. En plus de vrifier l'authenticit de la cl publique contenue dans un certificat, le fureteur vrifie galement que le "nom" contenu dans le certificat fourni par le serveur Web correspondant vraiment au nom de domaine du serveur Web. Ceci empche donc un faux site d'utiliser tout btement le certificat cl publique d'un autre site Web (le vrai). D'autre part il ne peut pas utiliser son propre certificat (associ son nom de domaine lui), car mme s'il tait capable de rediriger le trafic de votre site vers le sien (en utilisant une attaque niveau rseau, tel que le DNS cache poisoning ou du session hijacking , voir question 1.d), l'utilisateur serait averti que le nom de domaine "affich" de l'URL ne correspond pas celui du certificat. Ceci dit, pour que cela "marche", il faut que l'utilisateur vrifie le nom de domaine de l'URL. Si non, il suffit de l'envoyer une fausse URL et lui fournir un certificat correspondant cet URL pour que la session HTTPS soit tablie avec le faux site et que le cadenas s'affiche... g) [2 pts] Malheureusement, la compagnie MuchoSign n'a pas une politique de vrification des identits trs pousse, et votre ennemi jur a russi obtenir un certificat sign de MuchoSign qui contient une cl publique qui lui appartient. De plus, et en se faisant passer pour un employ de votre compagnie (vous n'avez mme pas d'employs!!), il a russi faire en sorte que ce certificat soit associ votre nom de domaine. En quoi (dans quel scnario) ceci pourrait constituer une menace pour vous ? part rectifier ses politiques, quelles actions la compagnie MuchoSign devrait-elle prendre pour rectifier son erreur et en mitiger les consquences? Le problme est qu'avec l'accs ce certificat, votre ennemi est en mesure de faire passer son site pour le votre, en autant qu'il soit capable de diriger le trafic de votre site vers le sien (par exemple par une des techniques de la question 1.d). Pour rectifier la situation, MuchoSign peut mettre un certificat de rvocation, sign par eux, dans lequel ils indiquent que le certificat quils avaient pralablement sign (celui de votre ennemi jur), nest plus valide, ni non plus aucune signature mise avec la cl publique correspondante. Ce certificat de rvocation peut alors tre inclus dans la liste de certificat de rvocation (Certificate Revokation List, ou CRL) du fureteur lors de la prochaine mise jour du logiciel du fureteur.

2.

Bastionnage de rseaux [3 sous-questions ; 12 points]

Quelques annes plus tard, votre business de radio en ligne va bon train et sest agrandi. Vous avez maintenant plusieurs employs qui travaillent dans vos nouveaux bureaux dans le Vieux Montral. Certains dentre eux sont des employs administratifs qui grent les comptes avec vos clients, soccupent de vos impts, etc. Ils ont donc besoin daccder lInternet pour envoyer et recevoir des courriels, transiger sur les sites bancaires et du gouvernement, etc. Les DJ, par contre, prparent le contenu des missions qui sont rediffuses partir de votre serveur Web; pour ce faire, ils continuent utiliser votre bonne vieille application Web interne (en PHP) qui roule sur le serveur Apache. Cependant, cette application est accessible seulement via le port 8088 du serveur Web. Le serveur Web se trouve galement dans vos bureaux et il est connect via une connexion de trs haute bande passante Audiotron qui est votre fournisseur de service Internet. Les clients de votre station peuvent accder au contenu audio et HTML via le port HTTP standard (80). Afin de mieux protger vos donnes corporatives, y compris votre base de donnes de fichiers mp3 utilise pour la confection des missions, vous avez dcid de protger votre rseau interne en installant une DMZ entre lInternet et Page 3 de 7

INF4420A

Examen final

Automne 2008

le rseau interne de la compagnie. Au dbut, vous songiez utiliser des adresses prives pour les machines dans la DMZ, mais aprs avoir ngoci avec Audiotron, vous avez russi avoir des adresses IP statiques bon prix dans la plage 123.45.67.*, en assez grand nombre pour chaque machine que vous voulez placer dans la DMZ. Ceci vous simplifie grandement la tche de configuration du rseau, car il ny aura pas de NAT sur le routeur/pare-feu externe, mais seulement sur le routeur/pare-feu interne. Les adresses IP dans la zone interne seront donc dans la plage 192.168.*.*. a) [4 pts] Faites le schma du rseau en y plaant les lments suivants : Les machines des employs ; un serveur de courriel Internet (pour le courrier entrant) ; le serveur de fichiers mp3, le serveur Web pour les pages des missions et la rediffusion, et un serveur mandataire (proxy) pour laccs HTTP sur Internet par les employs. Voici le schma de rseau :
LAN avec adresses 192.168.* Machine employ DMZ avec adresses 123.45.67.* Serveur Web Serveur courriel

Internet
Serveur Proxy

BD Mp3

b) [4 pts] Vous dcidez dappliquer une politique de blocage par dfaut pour le routeur/pare-feu interne sparant votre rseau et la DMZ. Quelles sont les rgles qui devraient tre appliques sur le pare-feu pour que tous les services ncessaires au fonctionnement de lentreprise soient disponibles ? (Pour les connexions TCP, indiquez le sens de la connexion permise). Les rgles suivantes devraient tre actives : Connexion sortante entre machine(s) employ et le serveur proxy sur le port 80 Connexion sortante entre machine employ et le serveur Web sur 8088 Connexion sortante entre machines employ et serveur courriel sur le port POP3 ou IMAP.

c) [4 pts] Aprs un pnible conflit de travail, vous avez accept que les DJ puissent travailler hors du bureau sur leurs missions (par exemple, de la maison ou dun caf Internet, comme dans le bon vieux temps quand vous naviez pas encore de bureau). Pour que cela puisse se faire, vous avez dcid dinstaller un serveur de passerelle VPN dans votre rseau. Pour que le travail distance soit le plus transparent possible pour les DJs, il est dcid que les adresses IP virtuelles attribues aux connections VPN de leurs machines seront dans la mme plage dadresse gnrale comme sils taient au bureau, soit dans 192.168.*.* Cependant, et pour faciliter la tche de configuration du rseau, on place les machines connectes en VPN dans une plage dadresse spciale soit 192.168.99.* Dans ces circonstances, et en tenant compte que le trafic pour ces adresses transigera par le serveur VPN, o devrait-on placer ce serveur VPN selon vous ? tant donn votre choix, sera-t-il ncessaire dajuster les paramtres de routage ou les rgles des routeurs/pare-feu internes et externes? Si oui, quels ajustements devront tre faits ? Si non, expliquez pourquoi. Deux choix sont possibles : 1) Placer le serveur VPN dans la DMZ. Ceci lavantage que la configuration du pare-feu interne na pas besoin dtre ouverte pour que du trafic venant directement de lextrieur (celui diriger vers le serveur VPN) puisse pntrer jusque dans le rseau interne. Cependant, il faut alors sassurer que le trafic entre le serveur VPN et le rseau interne puisse passer travers le pare-feu interne et il faut aussi sassurer que le trafic pour les machines dans le VPN soit rediriger au serveur VPN. Ceci peut tre accompli par les rgles suivantes : Page 4 de 7

INF4420A

Examen final

Automne 2008

Sur le pare-feu interne : laisser passer tout trafic entrant et sortant entre le serveur VPN (e.g. 123.45.67.99) et le rseau interne 192.168.*.* Pour diriger le trafic du VPN vers le serveur VPN : Soit changer manuellement les tables de routages sur tous les serveurs de la DMZ pour router tout le trafic 192.168.99.* vers 123.45.67.99 ; ou Sur le pare-feu interne, changer manuellement la table de routage pour router tout le trafic 192.168.99.* vers 123.45.67.99. (la premire option est plus difficile grer, mais est plus performante)

LAN avec adresses 192.168.* Machine employ Serveur VPN

DMZ avec adresses 123.45.67.* Serveur Web Serveur courriel

Internet
Serveur Proxy

BD Mp3

2) Placer le serveur VPN dans le rseau interne. Ceci lavantage quaucun ajustement besoin dtre fait dans les rgles du pare-feu interne ou dans la DMZ, mais le dsavantage que du trafic non filtr de lInternet peut se diriger vers le rseau interne. Il faut donc ajouter cette rgle sur le pare-feu interne : Laisser passer du trafic VPN entrant et sortant entre ladresse du serveur VPN (p.ex. 192.168.99.1) et lInternet (via la passerelle routeur externe).
DMZ avec adresses 123.45.67.* Serveur Web Serveur courriel

LAN avec adresses 192.168.* Machine employ

Internet
Serveur Proxy Serveur VPN

BD Mp3

3.

Principes de base en scurit [3 sous-questions ; 10 points]

a) [4 pts] Dcrivez dans vos propres mots le principe de dfense en profondeur , tel quil est appliqu en scurit informatique, ainsi que ses avantages principaux. Donnez deux exemples dapplication de ce principe dans le contexte de la scurit des rseaux informatiques en expliquant brivement pour chaque exemple comment son utilisation permet de diminuer le risque. Le principe de dfense en profondeur consiste lapplication de contre-mesures de scurit plusieurs niveaux ou endroits dans un systme informatique, chacune de ces contre-mesures oprant de manire indpendante mais complmentaire. Nous lavons dcrite en cours avec la maxime Mieux vaut neuf murs de un pied, que un mur de neuf pieds (on parle ici dpaisseur du mur, bien sr, et non pas de sa hauteur). Lavantage principal de son utilisation est dun ct la redondance des moyens dploys, mais aussi le fait quil est souvent plus facile dadapter les paramtres des contre-mesures chacun des contextes o elles seront utilises, ce qui permet davoir une gestion plus facile et une performance suprieure de ces contre-mesures (autant en termes de rduction de risque mais aussi en termes dun impact moindre sur la performance des systmes quon vise protger). Voici quelques exemples de dfense en profondeur dans les rseaux : Page 5 de 7

INF4420A

Examen final

Automne 2008

Lutilisation de cryptographie pour assurer la confidentialit des transmissions autant au niveau de la couche 2 (p.ex. WEP et WPA sur le standard sans-fil 802.11), de la couche 3 (p.ex. IPSEC) et de la couche 7 (SSL, SSH, etc.). Comme nous avons vu dans le cours, il faut souvent ajuster les paramtres de chiffrement en fonction du type dinformation transmettre (les caractristiques de la source), afin dassurer la confidentialit contre certains types dattaques cryptanalytiques. Ceci peut seulement tre fait au niveau de la couche application, do la ncessit du chiffrement ce niveau. Dautre part, le chiffrement au niveau des couches infrieures permet de chiffrer certaines des enttes des paquets et protge la confidentialit de la nature du trafic, p.ex. qui parle avec qui (analyse de trafic). Le dploiement de rgles de pare-feu diffrentes pour chacune des passerelles entre les diffrents sousrseaux (et choisies selon le type de trafic quon espre y transigera) en combinaison lutilisation de pare-feu individuel de machines, o les rgles peuvent tre ajusts en fonction des applications installs et de lutilisation espre de cette machine. Dans ce cas, les rgles niveau de la machine peuvent tre plus raffines et adaptes au contexte, car il ny aura pas dimpact sur dautres machines. Cependant, lutilisation de protection et de rgles niveau du rseau protge contre une configuration mauvaise, incomplte ou absente niveau des machines. Un autre exemple similaire est le dploiement de dIDS, ou on peut combiner un dtecteur qui capte tout le trafic dun rseau ou dun sous-rseau et fait lanalyse de ce trafic dans sa globalit (les networkbased ), et des dtecteurs dploys sur les machines qui analyse le trafic dirig particulirement cette machine ( host-based ), et ce en tenant compte du contexte de la machine (quelles applications roulent, quelles sont les tendances dutilisation locale, etc.).

b) [4 pts] Dcrivez le concept de segmentation tel quil est appliqu la scurit informatique en dcrivant ses avantages principaux. Dcrivez un exemple dans le domaine de la cryptographie et un autre dans le domaine de la scurit des systmes dexploitation ou du logiciel en expliquant pourquoi son application permet de diminuer le risque. Le principe de segmentation consiste diviser les biens informatiques en parties, ou en segments , qui seront protges de faon indpendante. Lavantage principal est quainsi si un des moyens de protection est compromis ou est rendu inefficace, seulement une partie des biens est compromise. Il sagit donc ultimement dune stratgie de gestion du risque, qui peut tre traduite par la maxime: on ne met pas tous les ufs dans le mme panier . Dans le domaine de la cryptographie, lexemple principal est le principe de segmentation de cl, o lon utilise diffrentes cls cryptographiques pour protger diffrentes partitions des donnes, par exemple une cl pour chaque jour, ou pour par exemple diffrentes parties dun rseau ou diffrents documents ou types de documents. On peut donc segmenter dans le temps ou dans l espace (rseau, BD de documents, etc.). Lavantage est quainsi si une cl est compromise, seulement les documents du mme type, donnes de ce sousrseau, ou les donnes envoyes cette journe l sont compromis. Voici quelques exemples dans le domaine de la scurit des SE ou du logiciel : La segmentation de lespace mmoire et des ressources dans le SE, entre lespace usager ( user space ) et lespace noyau ( kernel space ). Lattribution de permissions daccs diffrentes sur des rpertoires diffrentes du systme de fichiers dans un SE. La sparation niveau du matriel (diffrentes machines) entre le serveur de page Web, le serveur transactionnel excutant le code de lapplication (PHP, .net, PERL, etc.) et le serveur de base de donnes. Lutilisation de fichiers de mot de hach de mot de passe diffrents pour diffrentes machines.

Dans tous ces cas, la segmentation permet que si quelquun gagne laccs une des composantes (user space, rpertoire non critique, 0wn le serveur de pages Web), les autres composantes critiques du systme ne sont pas compromises. Page 6 de 7

INF4420A

Examen final

Automne 2008

c) [2 pts] Quelle est la relation entre la segmentation et la dfense en profondeur ? Selon vous, existe-t-il une diffrence entre les deux ou sagit-il de la mme chose ? Lun est le prcurseur de lautre. Cest la segmentation du systme qui permet que lon puisse dployer des contre-mesures, potentiellement diffrentes, sur les diffrentes parties du systme. La diffrence est que quoique la segmentation implique une sparation des biens informatiques pour des raisons de scurit, elle nimplique pas ncessairement le dploiement de moyens de scurit diffrents pour chacun des segments, et lorsque oui, en gnral ils sont appliqus de faon homogne (les mmes protections pour chaque segment). Le concept de dfense en profondeur implique en gnral que les moyens dploys sont htrognes, tant adapts ou optimiss pour le contexte (segment) o ils sont dploys.

Page 7 de 7

Vous aimerez peut-être aussi