Expérimentation Partie ½ [1h30]



Contexte (Travail demandé page 3)

Considérons l’application web “Ropeytasks”: http://192.168.109.53:8080/ropey/ qui est une application web de gestion des tâches. Cette application vulnérable (lire Qu'est-ce qu'une vulnérabilité?) aux attaques (lire Qu'est-ce qu'une vulnérabilité?) SQL injection et Cross site scripting.

Le but de cette expérimentation est de choisir le bon ensemble de patrons de sécurité qui sont des solutions génériques de conception et d’analyse afin de protéger l’application (Lire Qu'est-ce qu'un patron de sécurité ?) afin de protéger l’application contre ces deux attaques et écrire des tests afin de détecter les vulnérabilités et la présence des patrons de sécurité.

Les attaques

Vous pouvez tester les deux attaques étudiées comme suit:

    1. Sql injection:

Écrire dans le champs ‘’Username’’ ( 'or'1=1')

Impacts:

La documentation détaillée à propos de cette attaque est obtenue en suivant le lien :

https://capec.mitre.org/data/definitions/66.html

Remarque : Changer le filtre de présentation en Complete pour les détails









    1. Cross Site scripting

1- Login avec (Username: bob et Password: password),

2- Naviguez vers:

http://192.168.109.53:8080/ropey/task/search?q='OR'1=1'&search=Search

Dans cette exemple, la requête contiens (%27OR%271%3D1%27) ce qui est équivalent à (‘or’1=1’)

Impacts:

La documentation détaillée à propos de cette attaque est obtenue en suivant le lien :

https://capec.mitre.org/data/definitions/244.html



Les éléments importants à tenir en compte pour cette expérimentation dans la documentation des deux attaques :

  1. Attack execution flow : description des étapes de l’attaque ainsi que les contrôles de sécurité à effectuer pour chaque étape

  2. Solutions and mitigations : les contremesures qu’il faut effectuer afin de protéger l’application.

Les patrons de sécurité

Une documentation des patrons de sécurité est obtenue en suivant le lien :

http://hina/~loregain/patterns/

Dans cette expérimentation, les sections importantes sont :

  1. Relationships: Les patrons qui sont liés à ce patron :

La relation entre deux patrons peut être

  1. Intent: l’intention principale derrière l’utilisation d’un patron

  2. Forces: pour quoi ce patron de sécurité

  1. Consequences: comment est l’application avec ce patron de sécurité



Sélénium

Sélénium est une suite d’outils qui permet d’automatiser les tests fonctionnels en navigant dans des pages web comme remplir/vider des champs, cliquer ou naviguer vers des pages.

L’exemple ci-dessous permet de s’authentifier automatiquement sur l’application ‘’Ropeytasks’’

importer le projet : http://hina/~loregain/selenium.zip


voir dans le fichier Documentation plus de détails sur le fonctionnement de selenium

Travail demandé :

On vous demande de donner :

  1. Le choix du bon ensemble des patrons de sécurité afin de protéger l’application contre les attaques SQL injection et Cross site scripting

  1. Lire et comprendre (Qu'est-ce qu'une attaque ?)

  2. Lire et comprendre (Qu'est-ce qu'un patron de sécurité ?)

  3. Choisir l’ensemble de patrons de sécurité liés à chaque attaque en tenant compte de

  1. Noter la durée du choix.

  1. Ecrire des tests sélénium pour les deux attaques SQL injection et Cross site Scripting

  1. Expérimenter les deux attaques depuis navigateur

  2. importer le projet : http://hina/~loregain/selenium.zip

  3. Implémenter des tests sélénium afin de détecter les deux vulnérabilités ainsi que la présence des patrons de sécurité (input/output Guard).

  4. Noter la durée d’écriture des tests

  1. Remplir le questionnaire en suivant le lien :

https://goo.gl/forms/j43innQnZ7tTizpb2





3