Aller au contenu principal

Travail 3 : sécuriser une application

Nous te fournissons une application C# qui :

  • implante le hachage de mot de passe et l'encryption
  • permet de rentrer ses revenus de l’année
  • permet de calculer des impôts à payer pour chaque année

Toutefois, nous allons voir que c'est fait plus ou moins bien. Ton but va être de corriger:

  • la technique d'encryption
  • le hachage qui a été choisi

Finalement, nous allons voir que l'application est exposée aux injections SQL. Ici aussi tu devras corriger.

Format de remise:

Tu vois avoir un lien GitHub ClassRoom pour remettre ton travail. Tu devras remettre:

  1. un fichier rapport.md où tu expliqueras
  • les différentes attaques
  • les solutions que tu as implantées avec la preuve que l'attaque ne fonctionne plus
  1. une version modifiée et corrigée de l'application (projet avec le code source) qui corrige les failles identifiées
  • IMPORTANT : si tu ne remets pas le projet corrigé, tu auras 0 sur les correctifs.
  • IMPORTANT : si l'application remise n'est plus fonctionnelle, tu auras 0 sur les correctifs.

Vérification post correctifs

Tu dois t'assurer que ton application fonctionne toujours. Tu peux par exemple vérifier la séquence suivante:

  1. te créer un compte
  2. t'ajouter une année de revenu
  3. arrêter l'application
  4. redémarrer l'application
  5. te connecter avec ton compte
  6. regarder tes revenus
  7. vérifier ton profil, tous les champs

La fuite de la base de données

Normalement, l'application utilise un serveur de base de données sécurisé pour stocker les informations.

Cependant, l'application se rabat sur une BD locale si le serveur n'est pas disponible.

Cela va te permettre d'accéder à la base de données et d'essayer d'accéder au maximum d'informations possible.

En utilisant des techniques vues en cours, il faut que

  • tu détermines où le .exe stocke la BD locale
  • tu explores le contenu de la BD locale

Barème

1. Hachage

Retrouve les mots de passe de plusieurs utilisateurs:

Point de départPermisInterdit
BD fuitée après avoir charger les "premiers ministres".Accès la BD fuitée (fichier)
Outils craquage
Code source
consoleApp.exe
Accès BD après exécution

Tu dois ensuite implanter le hachage avec bcrypt et montrer que l'attaque ne fonctionne plus. Vérifie que l'application fonctionne.

2 points pour l'attaque sur les mots de passe dans le rapport avec toutes les étapes et captures d'écran

4 points pour chaque correctif implanté via

  • une modification au code source (commit)
  • une démonstration que l'attaque ne fonctionne plus dans le rapport avec toutes les étapes et captures d'écran

2. Encryption

Actuellement le NAS est «sécurisé» par une méthode d'encryption. Tu dois chercher une méthode pour décrypter les NAS des comptes des premiers ministres.

Point de départPermisInterdit
BD fuitée après avoir charger les "premiers ministres".Accès la BD fuitée (fichier)
Outils craquage
Code source
consoleApp.exe
Accès BD après exécution

Tu devras implanter AES dans l'application et montrer que ton attaque ne fonctionne plus. Vérifie que l'application fonctionne.

2 points pour l'attaque sur l'encryption dans le rapport avec toutes les étapes et captures d'écran

4 points pour le correctif de l'encryption

  • une modification au code source (commit)
  • une démonstration que l'attaque ne fonctionne plus dans le rapport avec toutes les étapes et captures d'écran

3. Injection SQL

L'application a au moins un point de vulnérabilité à une injection SQL.

Point de départPermisInterdit
Accès à consoleApp.exe
Premiers ministres chargés
consoleApp.exeCode source
Accès BD

Tu devras éliminer les points d'injection SQL dans l'application.

1 point Démonstration d'une attaque par injection SQL. Si tu démontres une attaque qui exécute n'importe quelle commande SQL, tu gagnes un point avec les commandes et captures d'écran.

1 point Si tu arrives à changer le mot de passe de Justin Trudeau, tu gagnes un point en plus. Démontre l'attaque en entrant dans le compte de Justin Trudeau via l'application. Commandes et captures d'écran.

4 points pour le correctif de toutes les injections SQL possibles

  • une modification au code source (commit)
  • une démonstration que l'attaque ne fonctionne plus dans le rapport avec toutes les étapes et captures d'écran

Qualité du français (2 points)

Le français est correct (utiliser le correcteur de Word avec Antidote au minimum)

Annexe : Modèle de rapport

# Rapport TP3 de Cybersec NOM PRENOM

## Attaque 1: BD fuitée et mot de passe

1. Etape 1 + capture d'écran
2. Etape 2 + capture d'écran
3. etc.

### Correctif implanté

Description du correctif.

Preuve que l'attaque ne fonctionne plus avec étapes + capture d'écran


## Attaque 2: BD fuitée et encryption

1. Etape 1 + capture d'écran
2. Etape 2 + capture d'écran
3. etc.

### Correctif implanté

Court descriptif du correctif et lien vers le(s) commit(s).

Preuve que l'attaque ne fonctionne plus avec étapes + capture d'écran

## Attaque 3 Injection SQL

1. Etape 1 + capture d'écran
2. Etape 2 + capture d'écran
3. etc.

### Correctif implanté

Description du correctif.

Preuve que l'attaque ne fonctionne plus avec étapes + capture d'écran