Définition du TP2

Transcription

Définition du TP2
420-C32-BB, Automne 2009
Travail pratique numéro 2
Professeurs : Yves Bergeron et Fabrizio Gotti
Objectifs
Le but du TP2 est de vous familiariser avec la gestion des sockets réseaux, l’utilisation des appels
système Linux/Unix et la gestion sécuritaire d’une poste de travail et de son système d’exploitation.
Date de remise
Les 10 questions : Le mardi 17 novembre 2009 avant midi. (PAS DE RETARD)
Les rapports finaux : Le mardi 8 décembre 2009 avant midi.
Programmes à écrire
Vous aurez à écrire deux courts programmes en C/C++ version Linux.
Programme 1 : un serveur botnet qui écoute les ordres de son maître distant
•
Le serveur botnet ouvre un socket réseau dont le numéro de port correspondant à 50000 + les 4
derniers chiffres de votre numéro de DA.
•
À la requête du maître, il exécutera les commandes correspondantes et retournera le résultat à
travers le socket réseau. Six commandes doivent être préparées pour répondre aux requêtes :
hote (hostname), memoire (free), usagers (finger), adresse (ip addr), web (w3m) et exit. Pour l’usage de
ces commandes, utilisez popen. Les requêtes non traitables doivent recevoir la réponse : « Ce
n'est pas une commande acceptée ! »
Programme 2 : un maître client qui envoie des requêtes à travers le socket réseau
•
Le maître établit un lien avec 127.0.0.1 et envoie des requêtes espion pour obtenir des
informations sensibles provenant du système où est logé le serveur pirate. Lorsque la
commande exit est envoyée, la communication se termine.
Analyse à faire et rapport à rédiger
Vous devez constituer un questionnaire de 10 questions au sujet des bonnes pratiques de gestion de
son poste de travail que vous remettrez au prochain cours. PAS DE RETARD !
Ces 10 questions doivent couvrir l’ensemble des thèmes vus dans la partie II des bonnes pratiques.
Ces questions doivent être précises de manière à établir un bilan diagnostic complet de la situation de
sécurité d’un poste. Cela exclut toute question de type oui/non.
Vous utiliserez le document final qu’on vous remettra issu de la synthèse de toutes vos questions pour
analyser la sécurité de votre poste et de celui d’un membre de votre famille ou d’un(e) ami(e).
Ce rapport inclura l’identification des failles et les correctifs à apporter.
Pour ce travail, mettez-vous dans la peau d’un consultant plutôt que dans celle d’un étudiant : rédigez
un travail de professionnel, au contenu complet et clair et à la présentation soignée. Sans faute, bien
sûr ! (La touche F7 est située tout juste au dessus des touches 8 et 9).
À remettre
Veuillez remettre deux rapports :
Le premier
•
Une page de garde
•
Programme et code C/C++
•
Les réponses aux questions suivantes :
1. Y a-t-il un risque d’injection de code en utilisant la fonction popen de façon générale ?
2. Dans le man de signal on peut lire la phrase suivante : « The signals SIGKILL and
SIGSTOP cannot be caught or ignored! ». Pourquoi ?
3. Dans la gestion des fichiers on utilise un tampon d’une certaine dimension pour
optimiser les temps d’écriture et de lecture. En vous référant à la section 2 du
chapitre 13, on constate que l’augmentation de la taille du tampon au-delà de 8K
n’apporte plus d’accélération. Pourquoi ?
4. Quels sont les dangers reliés aux témoins (cookies) utilisés par tous les fureteurs
Internet ?
Le deuxième
•
Votre rapport de calibre professionnel !!!
Liens utiles
http://vidalc.chez.com/lf/socket.html
http://www.bien-programmer.fr/reseaux.php
http://www.linuxhowtos.org/C_C++/socket.htm