Skip to content

Instantly share code, notes, and snippets.

@mazenovi
Last active December 2, 2017 22:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mazenovi/acf7d298f3feaded9f465b45307b48f8 to your computer and use it in GitHub Desktop.
Save mazenovi/acf7d298f3feaded9f465b45307b48f8 to your computer and use it in GitHub Desktop.
ZZ2 F5 / projet WebSec

thenetwork

le réseau thenetwork regroupe des personnes ayant suivi des formations d'excellence, dispensées par le réseau thenetwork lui-même. thenetwork a ainsi bâti au fil des années un réseau d'experts efficaces et loyaux les uns envers les autres.

thenetwork est un réseau extrêment fermé, qui se préoccupe beaucoup de la confientialité de ses données et de celles de ses utilisateurs. Rien est accessible sans un compte utilisateur hormis la page d'accueil.

thenetwork possède une partie privée permettant à chaque membre

  • de laisser ses contacts
  • d'afficher les formations thenetwork qu'il a suivi
  • de rechercher parmis les autres membres du réseau
  • de se mettre sur liste rouge afin de disparaître complètement du moteur de recherche publique
  • de mettre un ou plusieurs contacts sur liste rouge pour les réserver à la seule équipe du réseau thenetwork

thenetwork possède une interface d'adminstration permettant

  • d'accéder à toutes les fiches des membres
  • de saisir les résultats aux formations

Vous avez été missionné pour effectuer une série de recommandations techniques sur la sécurité du service thenetwork. Ce document est à destination de la direction de thenetwork, et de l'équipe technique qui maintient l'appli.

L'équipe technique a mis à votre disposition

Machine virtuelle

### FYI

  • La VM est en dhcp vous pouvez obtenir son ip avec la commande bash sudo ifconfig
  • Vous pouvez ensuite mettre à jour votre fichier /etc/hosts
  • phpmyadmin est disponible sur la machine (http://hostname/phpmyadmin). le mot de passe de root est "pipo".
  • Vous pouvez vous connecter en SSH à la vm avec l'utilisateur student et le mot de passe student pour explorer le code

Déploiement manuel

Hébergement

  • si vous n'avez pas de plateforme de développement php préférée, sachez que l'équipe de développement utilise de the network XAMPP

  • Téléchargez l'archive

  • Copiez tous les fichiers de l'archive à la racine du serveur (ou d'un vhost que vous créerez)

  • FYI le logout et probablement quelques autres fonctionnalités ne marcheront pas si vous accédez aux fichiers à partir d'un répertoire

Base de données

  • Créez une base de données "thenetwork"
    • via phphmyadmin
    • via la ligne de commande
mysql -u root -e "create database thenetwork"
  • Importez la structure et les données
    • via phphmyadmin en important thenetwork.sql
    • via la ligne de commande
mysql -u root thenetwork < thenetwork.sql
  • Ajustez éventuellement les paramètres bases de données dans _LIB/init.php

Permissions

  • Mettez les permissions sur le répertoire photo
sudo chmod -R 777 PHOTOS

Données

  • Vous êtes en boîte blanche, on vous donne donc le code et 3 comptes valides

    • admin:pipo -> super utilisateur
    • cwally:pipo -> simple utilisateur
    • mwally:pipo -> simple utilisateur

Questions

  1. La première mesure de sécurité qui est demandée est de chiffrer les échanges entre les clients et le serveur. L'équipe de développement, peu sensibilisée à la sécurité et à la configuration de serveur web (apache dans leur cas), réclame:

  2. un scénario d'attaque exploitant le non chiffrement des communications entre clients et serveur, afin de motiver la direction à investir dans ce sens

  3. une procédure claire et des actions à mener pour mettre en place le chiffrement des échanges entre les clients et le serveur.

  4. L'équipe de développement à remarqué des changements intempestifs dans la base, sans qu'ils puissent l'attribuer à un utilisateur connu. Ils soupçonnent donc qu'il est possible d'interagir avec la base sans avoir aucun compte valide. Ils attendent de vous que

  5. vous décriviez le scénario d'attaque qui permet d'effectuer cette action

  6. que vous fassiez des recommandations précises sur les actions curatives à mener sur le code pour corriger cette faille

  7. Plusieurs membres se plaignent régulièrement d'arriver sur des sites de jeu en ligne après avoir consulté une page de thenetwork. L'équipe souhaiterait

  8. vous décriviez le scénario d'attaque qui permet d'effectuer cette action

  9. que vous fassiez des recommandations précises sur les actions curatives à mener sur le code pour corriger cette faille

Vous devez rendre un rapport répondant aux 3 questions ci-dessus

Barême

chaque questions est notée sur 6 points (18 points au total)

  • la compréhension et l'identification de la problématique (2 points)

  • reproductibilité du scénario d'attaque (1 point)

  • pertinence des mesures à prendre (1 point)

  • exhaustivité des mesures à prendre (1 point)

  • reproductibilité des mesures à prendre (1 point)

  • appréciation globals du rapport tant sur le fond que dans la forme (2 points)

FYI

  • les données ont été générées avec faker

Amusez vous bien :-*

P.S. Vous seriez bien aimables de prendre 5 minutes pour évaluer ce cours afin que je puisse l'améliorer au fil des années

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment