Thanks-to: Victoria
This commit is contained in:
parent
2c0c7e2416
commit
79a527bb03
@ -6,7 +6,7 @@ weight: 8
|
|||||||
|
|
||||||
Vous trouverez dans cette section des propositions d'exercices individuels.
|
Vous trouverez dans cette section des propositions d'exercices individuels.
|
||||||
|
|
||||||
Durant votre 1er semestre de SRS, vous allez concevoir des défis selon une thématique qui vous intéresse. Vous pouvez utiliser directement une proposition d'exercice pour la concrétiser (penser à la réservée pour ne pas qu'une autre équipe fasse le même exercice que vous).
|
Durant votre 1er semestre de SRS, vous allez concevoir des défis selon une thématique qui vous intéresse. Vous pouvez utiliser directement une proposition d'exercice pour la concrétiser (penser à la réserver pour ne pas qu'une autre équipe fasse le même exercice que vous).
|
||||||
|
|
||||||
Lorsque vous serez plus à l'aise avec les attentes du challenge, nous vous encourageons à imaginer vos propres défis et à nous les soumettre en soutenance.
|
Lorsque vous serez plus à l'aise avec les attentes du challenge, nous vous encourageons à imaginer vos propres défis et à nous les soumettre en soutenance.
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ date: 2023-03-24T13:34:21+01:00
|
|||||||
title: Boing Boing SSH
|
title: Boing Boing SSH
|
||||||
---
|
---
|
||||||
|
|
||||||
L'usage d'un agent SSH et des fonctionnalités de *forwarding* sont très puissantes, mais peuvent se révéler désastreuses dans le cadre d'une infrastructure de production pas toujours au fait de l'état de l'art.
|
L'usage d'un agent SSH et des fonctionnalités de *forwarding* sont très puissants, mais peuvent se révéler désastreux dans le cadre d'une infrastructure de production pas toujours au fait de l'état de l'art.
|
||||||
|
|
||||||
À partir d'une application vulnérable, cet exercice consiste à se latéraliser sur d'autres serveurs de production, en profitant de l'agent SSH transmis par un développeur pour `pull` un dépôt.
|
À partir d'une application vulnérable, cet exercice consiste à se latéraliser sur d'autres serveurs de production, en profitant de l'agent SSH transmis par un développeur pour `pull` un dépôt.
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ L'usage d'un agent SSH et des fonctionnalités de *forwarding* sont très puissa
|
|||||||
Contexte du défi
|
Contexte du défi
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
C'est la panique chez TechTon'Eak, après avoir fait face la semaine dernière au défacement de leur site principal par le groupe d'hacktivistes TechWave, aujourd'hui tout leur système d'information tourne au ralenti : la quasi-totalité des serveurs de production exécutent un cryptominer.
|
C'est la panique chez TechTon'Eak, après avoir fait face la semaine dernière au défacement de leur site principal par le groupe d'hacktivistes TechWave. Aujourd'hui tout leur système d'information tourne au ralenti : la quasi-totalité des serveurs de production exécutent un cryptominer.
|
||||||
|
|
||||||
Peut-être reste-il des indices dans les journaux du système ?
|
Peut-être reste-il des indices dans les journaux du système ?
|
||||||
|
|
||||||
@ -26,9 +26,9 @@ Infrastructure à mettre en place
|
|||||||
Seront nécessaires dans l'infrastructure :
|
Seront nécessaires dans l'infrastructure :
|
||||||
- 1 routeur (non concerné par les traces, c'est « l'hébergeur » qui le gère) ;
|
- 1 routeur (non concerné par les traces, c'est « l'hébergeur » qui le gère) ;
|
||||||
- 3 serveurs/VM (sous Rocky Linux par exemple) ;
|
- 3 serveurs/VM (sous Rocky Linux par exemple) ;
|
||||||
- 2 postes clients (peu importe le système, non concerné par les traces).
|
- 2 postes clients (peu importe le système, non concernés par les traces).
|
||||||
|
|
||||||
Les serveurs sont utilisés :
|
Les serveurs utilisés :
|
||||||
- 1 serveur web/vitrine/PHP (exposé sur internet)
|
- 1 serveur web/vitrine/PHP (exposé sur internet)
|
||||||
- 1 serveur web interne (CRM, facturation, Point Of Sales, ...)
|
- 1 serveur web interne (CRM, facturation, Point Of Sales, ...)
|
||||||
- 1 serveur base de données (utilisé par les deux serveurs)
|
- 1 serveur base de données (utilisé par les deux serveurs)
|
||||||
@ -79,7 +79,7 @@ Questions à poser :
|
|||||||
- Type de fichier (agent SSH)
|
- Type de fichier (agent SSH)
|
||||||
|
|
||||||
Autres questions possibles :
|
Autres questions possibles :
|
||||||
- Liste des éléments de persistences (crontab, timers, service systemd, ...) mise en place par le `curl | sh`.
|
- Liste des éléments de persistances (crontab, timers, service systemd, ...) mis en place par le `curl | sh`.
|
||||||
- Option du serveur à changer
|
- Option du serveur à changer
|
||||||
|
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ Pour le bon usage et la bonne configuration de vos dépôts sur GitLab, veuillez
|
|||||||
N'ajoutez pas inutilement de dossiers ou fichiers vides. Ceux-ci doivent sans doute être optionnels et risquent de vous/nous induire en erreur lors de nos vérifications.
|
N'ajoutez pas inutilement de dossiers ou fichiers vides. Ceux-ci doivent sans doute être optionnels et risquent de vous/nous induire en erreur lors de nos vérifications.
|
||||||
{{% /notice %}}
|
{{% /notice %}}
|
||||||
|
|
||||||
Utilisez le binaire [repochecker](https://srs.nemunai.re/repochecker) (amd64/linux) pour vous assurer de votre arbrescence et de la validité du contenu des fichiers :
|
Utilisez le binaire [repochecker](https://srs.nemunai.re/repochecker) (amd64/linux) pour vous assurer de votre arborescence et de la validité du contenu des fichiers :
|
||||||
|
|
||||||
cd /mnt/fic/MyTheme
|
cd /mnt/fic/MyTheme
|
||||||
repochecker .
|
repochecker .
|
||||||
|
@ -4,7 +4,7 @@ title: AUTHORS.txt
|
|||||||
weight: 10
|
weight: 10
|
||||||
---
|
---
|
||||||
|
|
||||||
Le fichier `AUTHORS.txt`, à la racine de chaque dossier de scénario, contient vos noms, tels qu'ils apparraîtront sur la plate-forme.
|
Le fichier `AUTHORS.txt`, à la racine de chaque dossier de scénario, contient vos noms, tels qu'ils apparaîtront sur la plate-forme.
|
||||||
|
|
||||||
## Format du fichier
|
## Format du fichier
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ Chaque ligne contient le nom qui apparaîtra sur le site, suivi, éventuellement
|
|||||||
|
|
||||||
|
|
||||||
{{% notice warning %}}
|
{{% notice warning %}}
|
||||||
Attention : après le FIC, vos challenges seront publiés et accessible **publiquement** aux côtés [des challenges des années précédentes](https://fic.srs.epita.fr/).
|
Attention : après le FIC, vos challenges seront publiés et accessibles **publiquement** aux côtés [des challenges des années précédentes](https://fic.srs.epita.fr/).
|
||||||
Cela signifie que l'identité que vous indiquez dans ce fichier sera publique et indexée par les moteurs de recherche.
|
Cela signifie que l'identité que vous indiquez dans ce fichier sera publique et indexée par les moteurs de recherche.
|
||||||
Nous vous recommandons de ne garder que l'initiale de votre prénom ou de votre nom, afin qu'une recherche ciblant votre identité n'aboutisse pas sur ce site.
|
Nous vous recommandons de ne garder que l'initiale de votre prénom ou de votre nom, afin qu'une recherche ciblant votre identité n'aboutisse pas sur ce site.
|
||||||
{{% /notice %}}
|
{{% /notice %}}
|
||||||
|
@ -51,7 +51,7 @@ Cela débloque automatiquement l'étape suivante.
|
|||||||
|
|
||||||
Les tags représentent les points d'intérêt de votre étape.
|
Les tags représentent les points d'intérêt de votre étape.
|
||||||
|
|
||||||
C'est utile aux participants pour essayer de filtrer les scénarios qu'ils souhaientent faire en fonction de leurs compétences.
|
C'est utile aux participants pour essayer de filtrer les scénarios qu'ils souhaient faire en fonction de leurs compétences.
|
||||||
|
|
||||||
|
|
||||||
## Les dépendances
|
## Les dépendances
|
||||||
@ -87,9 +87,9 @@ Voici un aperçu des propriétés disponibles :
|
|||||||
* `id = 42` : (facultatif) identifiant du flag au sein de l'étape, pour définir des dépendances ;
|
* `id = 42` : (facultatif) identifiant du flag au sein de l'étape, pour définir des dépendances ;
|
||||||
* `label = "Intitulé"` : (facultatif, par défaut : `Flag`) intitulé du drapeau ;
|
* `label = "Intitulé"` : (facultatif, par défaut : `Flag`) intitulé du drapeau ;
|
||||||
* `raw = 'MieH2athxuPhai6u'` ou `raw = ['part1', 'part2']` : drapeau(x) exact(s) à trouver ; sous forme de tableau, le participant n'aura pas connaissaance du nombre d'éléments (à moins de définir l'attribut `showlines`) ;
|
* `raw = 'MieH2athxuPhai6u'` ou `raw = ['part1', 'part2']` : drapeau(x) exact(s) à trouver ; sous forme de tableau, le participant n'aura pas connaissaance du nombre d'éléments (à moins de définir l'attribut `showlines`) ;
|
||||||
* `showlines = false` : (facultatif, par défaut : `false`) lorsque le drapeau est un tableau et que `showlines` est vrai, le nombre d'éléments du tableau sera donné au participant, sinon il devra déterminer lui-même le nombre d'éléments à trouver (pour l'instant cette option est limitée à un tableau de 9 éléments maximum, c'est normal si ça bug au delà, demandez-moi si vous avez besoin de plus) ;
|
* `showlines = false` : (facultatif, par défaut : `false`) lorsque le drapeau est un tableau et que `showlines` est vrai, le nombre d'éléments du tableau sera donné au participant, sinon il devra déterminer lui-même le nombre d'éléments à trouver (pour l'instant cette option est limitée à un tableau de 9 éléments maximum, c'est normal si ça bug au-delà, demandez-moi si vous avez besoin de plus) ;
|
||||||
* `bonus_gain = 33` : (facultatif) donne des points supplémentaire si complété ;
|
* `bonus_gain = 33` : (facultatif) donne des points supplémentaires si complété ;
|
||||||
* `ordered = false` : (facultatif, par défaut : `false`) ignore l'ordre dans lequels les éléments du tableau sont passés ;
|
* `ordered = false` : (facultatif, par défaut : `false`) ignore l'ordre dans lequel les éléments du tableau sont passés ;
|
||||||
* `capture_regexp = "^(?:sudo +)?(.*)$"` : (facultatif) expression rationnelle dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ;
|
* `capture_regexp = "^(?:sudo +)?(.*)$"` : (facultatif) expression rationnelle dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ;
|
||||||
* `casesensitive = true` : (facultatif, par défaut : `false`) prend en compte la casse de ce drapeau ;
|
* `casesensitive = true` : (facultatif, par défaut : `false`) prend en compte la casse de ce drapeau ;
|
||||||
* `placeholder = "dd/mm/yyyy"` : (facultatif) chaîne de caractères initiale placée dans le champ du formulaire, idéale pour donner une indication de format ;
|
* `placeholder = "dd/mm/yyyy"` : (facultatif) chaîne de caractères initiale placée dans le champ du formulaire, idéale pour donner une indication de format ;
|
||||||
@ -175,7 +175,7 @@ hidden = true
|
|||||||
|
|
||||||
[[flag]]
|
[[flag]]
|
||||||
label = "Date d'exfiltration"
|
label = "Date d'exfiltration"
|
||||||
help= "yyyy-mm"
|
placeholder "yyyy-mm"
|
||||||
raw = '2015-12'
|
raw = '2015-12'
|
||||||
|
|
||||||
[[flag]]
|
[[flag]]
|
||||||
|
@ -32,7 +32,7 @@ Chaque fichier doit avoir une entrée correspondante dans le fichier [`DIGESTS.t
|
|||||||
|
|
||||||
Le fichier `DIGESTS.txt` se trouve dans le répertoire `files/` de chaque étape. Il contient les condensats des fichiers se trouvant dans le dossier respectif.
|
Le fichier `DIGESTS.txt` se trouve dans le répertoire `files/` de chaque étape. Il contient les condensats des fichiers se trouvant dans le dossier respectif.
|
||||||
|
|
||||||
On le génére avec la commande suivante :
|
On le génère avec la commande suivante :
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
b2sum * > DIGESTS.txt
|
b2sum * > DIGESTS.txt
|
||||||
@ -54,7 +54,7 @@ L'algorithme [blake2b](https://blake2.net/) est utilisé à la place d'un SHA-1
|
|||||||
|
|
||||||
### Cas des fichiers en plusieurs parties
|
### Cas des fichiers en plusieurs parties
|
||||||
|
|
||||||
Dans le cas où vous êtes contraint de découper vos fichiers avant de les uploader, seule la somme de contrôle du fichier entier, avant découpage, est nécessaire.
|
Dans le cas où vous êtes contraints de découper vos fichiers avant de les uploader, seule la somme de contrôle du fichier entier, avant découpage, est nécessaire.
|
||||||
|
|
||||||
|
|
||||||
### Cas des fichiers compressés (`gzip`és)
|
### Cas des fichiers compressés (`gzip`és)
|
||||||
@ -79,7 +79,7 @@ Si vous avez `gzip`é votre fichier pour qu'il soit distribué décompressé, in
|
|||||||
Dans certaines situations, un fichier peut être optionnel pour valider le défi, mais celui-ci peut donner un avantage certain à l'équipe qui le récupère.
|
Dans certaines situations, un fichier peut être optionnel pour valider le défi, mais celui-ci peut donner un avantage certain à l'équipe qui le récupère.
|
||||||
Par exemple, fournir le profile Volatility d'un Linux peut faire gagner beaucoup de temps, ou encore, lorsque l'on n'est pas en mesure de déchiffrer un binaire à analyser, on peut envisager de fournir le binaire déchiffré ou dépacké, ... Mais pas automatiquement !
|
Par exemple, fournir le profile Volatility d'un Linux peut faire gagner beaucoup de temps, ou encore, lorsque l'on n'est pas en mesure de déchiffrer un binaire à analyser, on peut envisager de fournir le binaire déchiffré ou dépacké, ... Mais pas automatiquement !
|
||||||
|
|
||||||
Dans ce cas on parle de fichiers « indices ». C'est-à-dire qu'ils seront distribués comme des indices et pourront coûter un certain nombre de points aux équipes qui les téléchargent.
|
Dans ce cas on parle de fichiers « indices », c'est-à-dire qu'ils seront distribués comme des indices et pourront coûter un certain nombre de points aux équipes qui les téléchargent.
|
||||||
|
|
||||||
Dans le fichier `challenge.txt`, il vous faudra y faire référence dans une section `[[hint]]` :
|
Dans le fichier `challenge.txt`, il vous faudra y faire référence dans une section `[[hint]]` :
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ Il est possible de faire en sorte qu'un fichier ne soit débloqué qu'après la
|
|||||||
|
|
||||||
## Ne pas distribuer un fichier avant l'archivage du site
|
## Ne pas distribuer un fichier avant l'archivage du site
|
||||||
|
|
||||||
Si votre défi dépend de ressources en ligne, qui peuvent ne pas être accessible le jour du challenge, ou qui ne seront plus accessible une fois la compétition passée, nous devez inclure une archive avec ces ressources. Il peut s'agir de captures d'écran, d'une version aspirée du site, ...
|
Si votre défi dépend de ressources en ligne, qui peuvent ne pas être accessibles le jour du challenge, ou qui ne seront plus accessibles une fois la compétition passée, vous devez inclure une archive avec ces ressources. Il peut s'agir de captures d'écran, d'une version aspirée du site, ...
|
||||||
|
|
||||||
Il faudra alors faire figurer dans [le `challenge.txt`]({{< relref "challenge.md" >}}#les-fichiers) une référence au fichier, avec un attribut `hidden` :
|
Il faudra alors faire figurer dans [le `challenge.txt`]({{< relref "challenge.md" >}}#les-fichiers) une référence au fichier, avec un attribut `hidden` :
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ filename = 'rnicrosoft.io.tar.xz'
|
|||||||
hidden = true
|
hidden = true
|
||||||
```
|
```
|
||||||
|
|
||||||
L'archive du site rnicrosoft.io ne sera dévoilé que sur la version archivée du site, ou pendant la compétition par une intervention manuelle de l'équipe serveur, si jamais il y avait un soucis de connectivité.
|
L'archive du site rnicrosoft.io ne sera dévoilée que sur la version archivée du site ou pendant la compétition par une intervention manuelle de l'équipe serveur, si jamais il y avait un soucis de connectivité.
|
||||||
|
|
||||||
|
|
||||||
## D'autres attributs ?
|
## D'autres attributs ?
|
||||||
|
@ -54,7 +54,7 @@ Git est un gestionnaire de version qui gère particulièrement bien les fichiers
|
|||||||
Lorsqu'il est confronté à des fichiers binaires, Git perd toute son utilité car il est incapable de voir les différences entre ces fichiers.
|
Lorsqu'il est confronté à des fichiers binaires, Git perd toute son utilité car il est incapable de voir les différences entre ces fichiers.
|
||||||
Il en résulte qu'en cas de modification d'une image, d'un PCAP ou similaire, l'historique du dépôt est pollué par des gros bouts d'octets sans intérêt.
|
Il en résulte qu'en cas de modification d'une image, d'un PCAP ou similaire, l'historique du dépôt est pollué par des gros bouts d'octets sans intérêt.
|
||||||
|
|
||||||
Pour ne pas dégrader les performances de vos dépôts sur GitLab, vous DEVEZ utiliser LFS pour stocker vos fichiers binaires. De cette manière, ces fichiers, seront gérés par un processus de stockage différent (ils seront stockés sur S3 qui est capable de gérer une grosse quantité de gros fichiers, contrairement le volume RBD des dépôts Git).
|
Pour ne pas dégrader les performances de vos dépôts sur GitLab, vous DEVEZ utiliser LFS pour stocker vos fichiers binaires. De cette manière, ces fichiers, seront gérés par un processus de stockage différent (ils seront stockés sur S3 qui est capable de gérer une grosse quantité de gros fichiers, contrairement au volume RBD des dépôts Git).
|
||||||
|
|
||||||
Si vous pushez par mégarde un binaire sur vos dépôts, vous devrez sans doute le recréer de zéro. Donc faites attention.
|
Si vous pushez par mégarde un binaire sur vos dépôts, vous devrez sans doute le recréer de zéro. Donc faites attention.
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ weight: 15
|
|||||||
---
|
---
|
||||||
|
|
||||||
Il s'agit d'une image/photo représentative de votre scénario.
|
Il s'agit d'une image/photo représentative de votre scénario.
|
||||||
Elle est affichée sur la page d'accueil dans une boîte montrant votre scénario parmis les autres ; et elle est aussi affichée dans le fond de la page lorsque l'on consulte les pages de votre scénario.
|
Elle est affichée sur la page d'accueil dans une boîte montrant votre scénario parmi les autres ; et elle est aussi affichée dans le fond de la page lorsque l'on consulte les pages de votre scénario.
|
||||||
|
|
||||||
{{% notice info %}}
|
{{% notice info %}}
|
||||||
Attention aux licences et contraintes (notamment l'obligation de citer la source ou le photographe). Celles-ci ne sont pas optionnelles étant donné que l'on veut diffuser nos challenges au public.
|
Attention aux licences et contraintes (notamment l'obligation de citer la source ou le photographe). Celles-ci ne sont pas optionnelles étant donné que l'on veut diffuser nos challenges au public.
|
||||||
|
@ -6,7 +6,7 @@ weight: 12
|
|||||||
|
|
||||||
Le fichier `overview.md` (ou `overview.txt`) est une présentation du contexte diffusée publiquement, qui doit être compréhensible par un décideur.
|
Le fichier `overview.md` (ou `overview.txt`) est une présentation du contexte diffusée publiquement, qui doit être compréhensible par un décideur.
|
||||||
|
|
||||||
Il existe 1 fichier par scénario ainsi qu'1 fichier par étape. Pour le scénario, il s'agit de présenter le contexte du scénario, tandis que pour l'étape, il s'agit de présenter le contexte général de l'étape, qu'est-ce qui va se passer. Le tout, sans jamais dévoiler ou donner d'indices sur des éléments d'une autre étape (puisque les `overview` sont publiques et accessibles de tous).
|
Il existe 1 fichier par scénario ainsi qu'1 fichier par étape. Pour le scénario, il s'agit de présenter le contexte du scénario, tandis que pour l'étape, il s'agit de présenter le contexte général de l'étape, ce qui va se passer. Le tout, sans jamais dévoiler ou donner d'indices sur des éléments d'une autre étape (puisque les `overview` sont publiques et accessibles de tous).
|
||||||
|
|
||||||
|
|
||||||
## Scénario
|
## Scénario
|
||||||
|
@ -7,7 +7,7 @@ weight: 16
|
|||||||
Dans le fichier `repochecker-ack.txt` se trouvant à la racine de votre scénario, vous pourrez indiquer les faux-positifs retournés par `repochecker`.
|
Dans le fichier `repochecker-ack.txt` se trouvant à la racine de votre scénario, vous pourrez indiquer les faux-positifs retournés par `repochecker`.
|
||||||
|
|
||||||
{{% notice info %}}
|
{{% notice info %}}
|
||||||
À l'heure actuelle, seul les erreurs de grammaire et d'orthographe bénéficient d'un système d'acquitement des faux-positifs.\
|
À l'heure actuelle, seules les erreurs de grammaire et d'orthographe bénéficient d'un système d'acquitement des faux-positifs.\
|
||||||
Les autres tests doivent être pris au sérieux.
|
Les autres tests doivent être pris au sérieux.
|
||||||
{{% /notice %}}
|
{{% /notice %}}
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ Grammalecte détaille ensuite la faute avec un message explicite. La ligne se te
|
|||||||
|
|
||||||
## Traiter les faux positifs grammaticaux
|
## Traiter les faux positifs grammaticaux
|
||||||
|
|
||||||
Il arrive parfois que Grammaticaux se trompe sur une correction grammaticale.
|
Il arrive parfois que Grammalecte se trompe sur une correction grammaticale.
|
||||||
|
|
||||||
Par exemple :
|
Par exemple :
|
||||||
|
|
||||||
@ -45,9 +45,9 @@ Pour ignorer cette erreur, on indique dans le fichier `repochecker-ack.txt` :
|
|||||||
step-path/filename.md:paragraph-id:rule-id
|
step-path/filename.md:paragraph-id:rule-id
|
||||||
```
|
```
|
||||||
|
|
||||||
Avec `step-path/` l'éventuel chemin pour atteindre le fichier concerné, `filename.md` le nom du fichier dans lequel se trouve l'erreur, `paragraph-id` le numéro de paragraph dans le fichier (commençant à 1) et `rule-id` l'identifiant de la règle Grammalecte que l'on souhaite ignorer. L'identifiant entre parenthèse à la fin de la première ligne renseigne sur le `paragraph-id:rule-id`
|
Avec `step-path/` l'éventuel chemin pour atteindre le fichier concerné, `filename.md` le nom du fichier dans lequel se trouve l'erreur, `paragraph-id` le numéro de paragraphe dans le fichier (commençant à 1) et `rule-id` l'identifiant de la règle Grammalecte que l'on souhaite ignorer. L'identifiant entre parenthèse à la fin de la première ligne renseigne sur le `paragraph-id:rule-id`
|
||||||
|
|
||||||
Dans notre exemple, cela connerait :
|
Dans notre exemple, cela donnerait :
|
||||||
|
|
||||||
```
|
```
|
||||||
3-L'ascension de skyhacker/challenge.txt:1:typo_espace_manquant_après3
|
3-L'ascension de skyhacker/challenge.txt:1:typo_espace_manquant_après3
|
||||||
|
@ -4,20 +4,20 @@ title: resolution.mp4
|
|||||||
weight: 25
|
weight: 25
|
||||||
---
|
---
|
||||||
|
|
||||||
Ce fichier doit contenir la vidéo permettant la résolution de l'étape et suivant
|
Ce fichier doit contenir la vidéo permettant la résolution du défi,
|
||||||
étape par étape les étapes expliquées. Si vous pensez qu'un article est plus
|
étape par étape, chaque partie devant être accompagnée d’explications.
|
||||||
approprié, vous pouvez remplacer ce fichier par [`resolution.md`]({{<relref
|
Si vous pensez qu'un article est plus approprié, vous pouvez remplacer
|
||||||
"write-up">}})
|
ce fichier par [`resolution.md`]({{<relref "write-up">}})
|
||||||
|
|
||||||
Ce fichier doit contenir la vidéo de résolution, montée selon ces caractéristiques :
|
Ce fichier doit contenir la vidéo de résolution, montée selon ces caractéristiques :
|
||||||
|
|
||||||
- format MP4 :
|
- format MP4 :
|
||||||
- codec vidéo H.264,
|
- codec vidéo H.264,
|
||||||
- codec audio AAC (factultatif, uniquement si vous avez de l'audio),
|
- codec audio AAC (factultatif, uniquement si vous avez de l'audio),
|
||||||
- piste de sous-titre 3GPP Timed Text (**NE PAS incruster les sous-titres** à la piste vidéo, les sous-titre **DOIVENT** être sur une piste séparée) ;
|
- piste de sous-titre 3GPP Timed Text (**NE PAS incruster les sous-titres** à la piste vidéo, les sous-titres **DOIVENT** être sur une piste séparée) ;
|
||||||
- utiliser les sous-titres pour commenter les étapes ; pas de commentaires audio
|
- utiliser les sous-titres pour commenter les étapes ; pas de commentaires audio
|
||||||
- environ 2' par vidéo : maxi 1'30" pour les challenges simples, 3-4' maxi
|
- environ 2' par vidéo : maxi 1'30" pour les challenges simples, 3-4' maxi
|
||||||
- résolution 1080p maximum (il faut faire en sorte que la solution soit lisible sur des écrans relativements petits, n'hésitez pas à aggrandir la police de vos terminaux et applications)
|
- résolution 1080p maximum (il faut faire en sorte que la solution soit lisible sur des écrans relativements petits, n'hésitez pas à agrandir la police de vos terminaux et applications)
|
||||||
|
|
||||||
## Exemple de logiciel de capture d'écran
|
## Exemple de logiciel de capture d'écran
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ Section contribuée par Mahé Charpy.
|
|||||||
|
|
||||||
Pour filmer la résolution, OBS est pas mal. Les autres solutions proposées au-dessus fonctionneront également
|
Pour filmer la résolution, OBS est pas mal. Les autres solutions proposées au-dessus fonctionneront également
|
||||||
|
|
||||||
N'hésitez pas a retirer du cadre les informations non essentielles (`i3-nagbar` par exemple)
|
N'hésitez pas à retirer du cadre les informations non essentielles (`i3-nagbar` par exemple)
|
||||||
|
|
||||||
N'hésitez pas à faire cette résolution dans votre `/tmp` afin que les chemins de fichiers ne présentent que les informations nécessaires
|
N'hésitez pas à faire cette résolution dans votre `/tmp` afin que les chemins de fichiers ne présentent que les informations nécessaires
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ Placer vos vidéos sur la barre de montage
|
|||||||
|
|
||||||
Vous pouvez maintenant découper et réorganiser la vidéo comme vous le souhaitez.
|
Vous pouvez maintenant découper et réorganiser la vidéo comme vous le souhaitez.
|
||||||
|
|
||||||
Pensez à enregistrer régulièrement (ctrl + s) car openshot demande pas mal de RAM et il arrive que le noyau passe pas l'OOM killer (#virli) pour récupérer cette RAM
|
Pensez à enregistrer régulièrement (ctrl + s) car openshot demande pas mal de RAM et il arrive que le noyau passe par l'OOM killer (#virli) pour récupérer cette RAM
|
||||||
|
|
||||||
Une fois le montage fait, exporter la vidéo (ctrl + e)
|
Une fois le montage fait, exporter la vidéo (ctrl + e)
|
||||||
|
|
||||||
@ -110,24 +110,24 @@ Explication des commandes :
|
|||||||
- `:%s/^1\n --> 00:00:00,0000/1\r00:00:00,0000 -> 00:00:00,0000` Ajoute un timestamp de debut a la première entrée
|
- `:%s/^1\n --> 00:00:00,0000/1\r00:00:00,0000 -> 00:00:00,0000` Ajoute un timestamp de debut a la première entrée
|
||||||
|
|
||||||
|
|
||||||
Vous devriez maintenant avoir un fichier (presque) au format d'un fichier de sous titres avec 100 entrées
|
Vous devriez maintenant avoir un fichier (presque) au format d'un fichier de sous-titres avec 100 entrées
|
||||||
|
|
||||||
![Le fichier obtenu par les commandes précédentes](sous_titres_debut.png)
|
![Le fichier obtenu par les commandes précédentes](sous_titres_debut.png)
|
||||||
|
|
||||||
|
|
||||||
Ce fichier n'a pas le format d'un fichier de sous titre car les lignes de timestamp n'ont pas de timestamp de début. Nous l'ajouterons à la fin, une fois que tous les timestamps de fin auront été définis.
|
Ce fichier n'a pas le format d'un fichier de sous-titre car les lignes de timestamp n'ont pas de timestamp de début. Nous l'ajouterons à la fin, une fois que tous les timestamps de fin auront été définis.
|
||||||
|
|
||||||
Remplir le fichier de sous-titres en définissant bien les timestamps de fin d'apparition du sous titre
|
Remplir le fichier de sous-titres en définissant bien les timestamps de fin d'apparition du sous-titre
|
||||||
|
|
||||||
![Les possibilités de sous-titres et timestamps](sous_titres_exemple.png)
|
![Les possibilités de sous-titres et timestamps](sous_titres_exemple.png)
|
||||||
|
|
||||||
Une fois les sous titres finis, supprimer les entrées non complétées restantes et utiliser la commande vim suivante
|
Une fois les sous-titres finis, supprimer les entrées non complétées restantes et utiliser la commande vim suivante
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
:%s/-> \([0-9:,]*\)0\n\(\_.\{-}\)\n -/-> \10\r\2\r\11 -/g
|
:%s/-> \([0-9:,]*\)0\n\(\_.\{-}\)\n -/-> \10\r\2\r\11 -/g
|
||||||
```
|
```
|
||||||
|
|
||||||
Cette commande a pour effet d'ajouter les timestamps de début de sous titre. Pour cela, on récupère le timestamp de fin du sous-titre précédent et on y ajoute 1 milliseconde afin que les sous-titres ne se chevauchent pas
|
Cette commande a pour effet d'ajouter les timestamps de début de sous-titre. Pour cela, on récupère le timestamp de fin du sous-titre précédent et on y ajoute 1 milliseconde afin que les sous-titres ne se chevauchent pas
|
||||||
|
|
||||||
Attention, il faut que les timestamps soient tous à un nombre de millisecondes multiple de 10
|
Attention, il faut que les timestamps soient tous à un nombre de millisecondes multiple de 10
|
||||||
|
|
||||||
@ -135,11 +135,11 @@ On obtient un fichier avec cette forme
|
|||||||
|
|
||||||
![Résultat de la commande](sous-titres_final.png)
|
![Résultat de la commande](sous-titres_final.png)
|
||||||
|
|
||||||
Vous pouvez vérifier que les sous titres vous conviennent en ouvrant la vidéo dans VLC et en y ajoutant les sous-titres
|
Vous pouvez vérifier que les sous-titres vous conviennent en ouvrant la vidéo dans VLC et en y ajoutant les sous-titres
|
||||||
|
|
||||||
![Afficher des sous-titres sur vlc](vlc_sous_titres.png)
|
![Afficher des sous-titres sur VLC](vlc_sous_titres.png)
|
||||||
|
|
||||||
Une fois que vous êtes content de vos sous titres, ajouter les sous-titres directement en tant que piste de sous-titre dans la video avec la commande suivante :
|
Une fois que vous êtes contents de vos sous-titres, ajouter les sous-titres directement en tant que piste de sous-titre dans la video avec la commande suivante :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ffmpeg -i votre_video.mp4 -i sous_titres.srt -c copy -c:s mov_text resolution_subtitled.mp4
|
ffmpeg -i votre_video.mp4 -i sous_titres.srt -c copy -c:s mov_text resolution_subtitled.mp4
|
||||||
|
@ -4,8 +4,8 @@ title: resources/
|
|||||||
weight: 40
|
weight: 40
|
||||||
---
|
---
|
||||||
|
|
||||||
Rangez dans ce dossier toutes les ressources et scripts que vous avez réalisés l'étape : pour sa construction ou sa résolution, les schémas du SI au premier étape concerné.
|
Rangez dans ce dossier toutes les ressources et scripts que vous avez utilisé pour réaliser l'étape : pour sa construction ou sa résolution, les schémas du SI au premier étape concerné.
|
||||||
|
|
||||||
Ajoutez éventuellement un `README.txt` avec les liens des outils externes.
|
Ajoutez éventuellement un `README.txt` avec les liens des outils externes.
|
||||||
|
|
||||||
Ce dossier n'a pas pour vocation a être diffusé publiquement.
|
Ce dossier n'a pas vocation à être diffusé publiquement.
|
||||||
|
@ -9,7 +9,7 @@ Le fichier `statement.md` (ou `statement.txt`) est l'énoncé de l'étape, tel q
|
|||||||
Il doit bien poser le contexte, expliquer notamment pourquoi on est là, qu'est-ce qui justifie la démarche qui sera effectuée lors de l'étape, au sein de l'entreprise.
|
Il doit bien poser le contexte, expliquer notamment pourquoi on est là, qu'est-ce qui justifie la démarche qui sera effectuée lors de l'étape, au sein de l'entreprise.
|
||||||
|
|
||||||
N'oubliez pas de donner des objectifs clairs sur ce que l'on attend des participants avec les fichiers que vous fournissez.
|
N'oubliez pas de donner des objectifs clairs sur ce que l'on attend des participants avec les fichiers que vous fournissez.
|
||||||
Restez tout de même suffisamment évasif pour ne pas dévoiler involontairement des éléments demandés.
|
Restez tout de même suffisamment évasifs pour ne pas dévoiler involontairement des éléments demandés.
|
||||||
|
|
||||||
Comme l'ensemble des textes importés, vous pouvez utiliser du [Markdown](https://commonmark.org/) pour mettre en forme vos textes.
|
Comme l'ensemble des textes importés, vous pouvez utiliser du [Markdown](https://commonmark.org/) pour mettre en forme vos textes.
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ Votre article doit respecter les caractéristiques suivantes :
|
|||||||
N'hésitez pas à encadrer ou à mettre en valeur les flags ou les éléments
|
N'hésitez pas à encadrer ou à mettre en valeur les flags ou les éléments
|
||||||
importants sur les captures d'écran.
|
importants sur les captures d'écran.
|
||||||
N'hésitez pas non plus à donner des liens vers des articles techniques expliquant
|
N'hésitez pas non plus à donner des liens vers des articles techniques expliquant
|
||||||
plus en détail vos techniques. Insérez plutôt ses liens au sein de la section
|
plus en détail vos techniques. Insérez plutôt ces liens au sein de la section
|
||||||
concernée plutôt qu'à la fin.
|
concernée plutôt qu'à la fin.
|
||||||
|
|
||||||
### Captures d'écran et image
|
### Captures d'écran et image
|
||||||
|
@ -10,6 +10,6 @@ Vous trouverez dans cette section tous les points importants à savoir sur le pr
|
|||||||
|
|
||||||
Vous pouvez aussi télécharger la [présentation](presentation.pdf) pour les revoir.
|
Vous pouvez aussi télécharger la [présentation](presentation.pdf) pour les revoir.
|
||||||
|
|
||||||
Voici les différentes pages qui vous permettrons d'en apprendre davantage sur le projet :
|
Voici les différentes pages qui vous permettront d'en apprendre davantage sur le projet :
|
||||||
|
|
||||||
{{% children %}}
|
{{% children %}}
|
||||||
|
@ -44,18 +44,18 @@ weight: 20
|
|||||||
cyberdéfense](https://www.chaire-cyber.fr/), car un 2020 voulait intégrer
|
cyberdéfense](https://www.chaire-cyber.fr/), car un 2020 voulait intégrer
|
||||||
la marine après son cursus.
|
la marine après son cursus.
|
||||||
|
|
||||||
Au delà de l'enseignement, commencer à être en contact avec un milieu que
|
Au-delà de l'enseignement, commencer à être en contact avec un milieu que
|
||||||
vous visez peut être particulièrement motivant, profitez-en !
|
vous visez peut être particulièrement motivant, profitez-en !
|
||||||
|
|
||||||
|
|
||||||
- les technologies que vous aimeriez mettre en œuvre : souhaitez-vous plus
|
- les technologies que vous aimeriez mettre en œuvre : souhaitez-vous plus
|
||||||
réaliser des attaques réseaux, le hardware, des attaques sur les systèmes
|
réaliser des attaques réseaux, du hardware, des attaques sur les systèmes
|
||||||
Linux, Windows, Android, iOS, sur de l'embarqué, sur des systèmes
|
Linux, Windows, Android, iOS, de l'embarqué, des systèmes
|
||||||
industriels, des trains, des drônes, les réseaux de communication, le
|
industriels, des trains, des drônes, les réseaux de communication, du
|
||||||
social engineering, le reverse engineering, les mainframes, ...
|
social engineering, reverse engineering, des mainframes, ...
|
||||||
|
|
||||||
On peut imaginer de nombreux scénarios autour du cloud, pour cela il
|
On peut imaginer de nombreux scénarios autour du cloud. Pour cela il
|
||||||
faudra vous rapprochez de personnes compétentes pour challenger vos
|
faudra vous rapprocher de personnes compétentes pour challenger vos
|
||||||
infrastructures et peut-être vous mettre sur la piste d'erreurs courantes
|
infrastructures et peut-être vous mettre sur la piste d'erreurs courantes
|
||||||
de sécurité, que vous pourriez introduire dans vos scénarios.
|
de sécurité, que vous pourriez introduire dans vos scénarios.
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ changer de groupe.
|
|||||||
|
|
||||||
## Phase 1 : petits exercices de forensic (avril à juin 2023) {#1-exercice-forensic}
|
## Phase 1 : petits exercices de forensic (avril à juin 2023) {#1-exercice-forensic}
|
||||||
|
|
||||||
Afin de vous familiariser avec le forensic, nous vous proposerons dans un premier temps de réaliser une série de quatre exercices de forensic, sur les thématiques qui vous intéressent. À raison d'1 exercice par mois.
|
Afin de vous familiariser avec le forensic, nous vous proposerons dans un premier temps de réaliser une série de quatre exercices de forensic, sur les thématiques qui vous intéressent. À raison d'un exercice par mois.
|
||||||
|
|
||||||
Pour commencer, nous vous donnerons des idées d'exercices tout prêts, pour lesquels ils ne vous restera plus qu'à mettre en place l'infrastructure de l'exercice et à enregistrer les traces proposées. L'idée est de vous familiariser avec les attentes du projet.
|
Pour commencer, nous vous donnerons des idées d'exercices tout prêts, pour lesquels ils ne vous restera plus qu'à mettre en place l'infrastructure de l'exercice et à enregistrer les traces proposées. L'idée est de vous familiariser avec les attentes du projet.
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ En parallèle de la réalisation des exercices de forensic, vous allez devoir r
|
|||||||
|
|
||||||
Il vous est demandé durant cette phase de recherche de regrouper vos idées : quelles cibles, quels acteurs, quelles techniques, ...
|
Il vous est demandé durant cette phase de recherche de regrouper vos idées : quelles cibles, quels acteurs, quelles techniques, ...
|
||||||
|
|
||||||
Lorsque vous aurez une vision un peu plus claire de votre scénario, que les assistants auront validés avec vous l'intérêt, la faisabilité et l'originalité de votre proposition ; nous rechercherons un ancien compétent dans le(s) domaine(s) que vous ciblez, afin que vous puissiez échanger avec lui sur ce qui se fait dans le milieu.
|
Lorsque vous aurez une vision un peu plus claire de votre scénario, que les assistants auront validé avec vous l'intérêt, la faisabilité et l'originalité de votre proposition, nous rechercherons un ancien compétent dans le(s) domaine(s) que vous ciblez, afin que vous puissiez échanger avec lui sur ce qui se fait dans le milieu.
|
||||||
|
|
||||||
Il est important que l'infrastructure que vous allez mettre en place reflète ce qui se fait dans le milieu que vous ciblez. Cet ancien pourra vous renseigner sur les outils de sécurité ou les émulateurs de matériel spécifiques disponibles dans le milieu.
|
Il est important que l'infrastructure que vous allez mettre en place reflète ce qui se fait dans le milieu que vous ciblez. Cet ancien pourra vous renseigner sur les outils de sécurité ou les émulateurs de matériel spécifiques disponibles dans le milieu.
|
||||||
|
|
||||||
@ -90,16 +90,16 @@ De plus, n'oubliez pas que c'est une occasion pour rencontrer un intervenant d'u
|
|||||||
|
|
||||||
## Phase 2 : réalisation du scénario (juillet à novembre 2023) {#2-conception-scenario}
|
## Phase 2 : réalisation du scénario (juillet à novembre 2023) {#2-conception-scenario}
|
||||||
|
|
||||||
Une fois votre scénario bien ficelé, vous pourrez vous hateler à sa réalisation.
|
Une fois votre scénario bien ficelé, vous pourrez vous atteler à sa réalisation.
|
||||||
|
|
||||||
Il faudra bien sûr commencer par mettre en place toute l'infratructure, réfléchir à l'enchaînement des étapes pour que la progression soit fluide pour les participants (par exemple si vous fixez la date de l'attaque au 25 décembre 2023, il s'agit de bien respecter cette date dans toutes les traces que vous allez donner).
|
Il faudra bien sûr commencer par mettre en place toute l'infratructure, réfléchir à l'enchaînement des étapes pour que la progression soit fluide pour les participants (par exemple si vous fixez la date de l'attaque au 25 décembre 2023, il s'agit de bien respecter cette date dans toutes les traces que vous allez donner).
|
||||||
|
|
||||||
Entre septembre et novembre, vous allez devoir réaliser les 5 paliers de ce scénario. Une soutenance viendra valider systématiquement vos réalisations.
|
Entre septembre et novembre, vous allez devoir réaliser les 5 paliers de ce scénario. Une soutenance viendra valider systématiquement vos réalisations.
|
||||||
|
|
||||||
|
|
||||||
## Phase 3 : réalisation d'un petit exercice de forensic hardu (décembre 2023) {#3-exercice-forensic}
|
## Phase 3 : réalisation d'un petit exercice de forensic ardu (décembre 2023) {#3-exercice-forensic}
|
||||||
|
|
||||||
Forts de votre année de SRS, nous vous demandons de réaliser un dernier exercice de forensic, a priori indépendant de votre scénario. Cet exercice sera l'apothéose de vos compétences. Le scénario pouvant parfois vous contraindre dans certaines direction, avec cet exercice vous pourrez laisser libre court à votre imagination pour concevoir un exercice indépendant, bien pimenté, avec des choix de techniques que vous ne soupçoniez sans doute pas en arrivant en SRS !
|
Forts de votre année de SRS, nous vous demandons de réaliser un dernier exercice de forensic, a priori indépendant de votre scénario. Cet exercice sera l'apothéose de vos compétences. Le scénario pouvant parfois vous contraindre dans certaines directions, avec cet exercice vous pourrez laisser libre court à votre imagination pour concevoir un exercice indépendant, bien pimenté, avec des choix de techniques que vous ne soupçoniez sans doute pas en arrivant en SRS !
|
||||||
|
|
||||||
Cela peut être une bonne idée de mutualiser vos efforts avec le cours de virologie : vous n'aurez ainsi que le contexte à rédiger et les traces à enregistrer.
|
Cela peut être une bonne idée de mutualiser vos efforts avec le cours de virologie : vous n'aurez ainsi que le contexte à rédiger et les traces à enregistrer.
|
||||||
|
|
||||||
|
@ -30,6 +30,6 @@ L'équipe serveur se compose généralement de 3 à 4 étudiants volontaires.
|
|||||||
Faites-vous connaître sur la liste de diffusion
|
Faites-vous connaître sur la liste de diffusion
|
||||||
[`fic-server@lists.nemunai.re`](mailto:fic-server@lists.nemunai.re).
|
[`fic-server@lists.nemunai.re`](mailto:fic-server@lists.nemunai.re).
|
||||||
|
|
||||||
Tout le monde est le bienvenue dans l'équipe, quelque soit vos appétences. À
|
Tout le monde est le bienvenue dans l'équipe, quelles que soient vos appétences. À
|
||||||
partir du moment où l'une des activités listée ci-dessus vous intéresse, venez,
|
partir du moment où l'une des activités listées ci-dessus vous intéresse, venez,
|
||||||
on vous accueillera avec grand plaisir.
|
on vous accueillera avec grand plaisir.
|
||||||
|
@ -8,10 +8,10 @@ Le [Forum International de la Cybersécurité](https://www.forum-fic.com/) est u
|
|||||||
|
|
||||||
Au sein de cet événement, la majeure SRS organise depuis 2014 un challenge de forensic qui s'est bien développé grâce aux talents de tous nos anciens, et bientôt des vôtres !
|
Au sein de cet événement, la majeure SRS organise depuis 2014 un challenge de forensic qui s'est bien développé grâce aux talents de tous nos anciens, et bientôt des vôtres !
|
||||||
|
|
||||||
Depuis le FIC 2021, l'[European Cyber Cup (EC2)](https://european-cybercup.com/) est une véritable compétition, qui a lieu durant le FIC sur deux jours, dans laquelle notre challenge s'inscrit, aux côtés d'autres challenges réalisés par des grands noms de la Cyber ([Root-Me](https://www.root-me.org/) pour le CTF par exemple, ...)
|
Depuis le FIC 2021, l'[European Cyber Cup (EC2)](https://european-cybercup.com/) est une véritable compétition. Elle a lieu durant le FIC sur deux jours, dans laquelle notre challenge s'inscrit, aux côtés d'autres challenges réalisés par des grands noms de la Cyber ([Root-Me](https://www.root-me.org/) pour le CTF par exemple, ...).
|
||||||
|
|
||||||
Ces dernières années, les participants sont 10 par équipes et s'affrontent sur 4 à 7 challenges en parallèle.
|
Ces dernières années, les participants sont 10 par équipes et s'affrontent sur 4 à 7 challenges en parallèle.
|
||||||
|
|
||||||
Les équipes sont soit des professionels de la cybersécurité (Quarkslab, Bouygues Telecom, Airbus, ...), mais aussi des étudiants (UTT, EPITECH, EFREI, ...). Pour un total de 250 participants en 2023.
|
Les équipes sont soit des professionels de la cybersécurité (Quarkslab, Bouygues Telecom, Airbus, ...), soit des étudiants (UTT, EPITECH, EFREI, ...), pour un total de 250 participants en 2023.
|
||||||
|
|
||||||
Notre participation à cet événement, outre la démonstration de votre capacité à produire un contenu de très bonne qualité, est une opportunité pour vous de présenter votre travail auprès de vos futurs pairs.
|
Notre participation à cet événement, outre la démonstration de votre capacité à produire un contenu de très bonne qualité, est une opportunité pour vous de présenter votre travail auprès de vos futurs pairs.
|
||||||
|
@ -6,12 +6,12 @@ weight: 15
|
|||||||
|
|
||||||
Le projet `FIC_D` est votre projet de fin d'études. Il se veut être le couronnement de votre année de SRS. Nous attendons donc qu'il reflète vos capacités techniques et démontre votre capacité à produire du contenu de qualité.
|
Le projet `FIC_D` est votre projet de fin d'études. Il se veut être le couronnement de votre année de SRS. Nous attendons donc qu'il reflète vos capacités techniques et démontre votre capacité à produire du contenu de qualité.
|
||||||
|
|
||||||
Contrairement aux autres projets, ici vous avez une obligation de résultats : vous n'avez pas la possibilité d'abandonner ou de juste viser la moyenne. Votre production doit être présentable à un public et nous, encadrants, sommes avec vous pour nous assurer de la qualité finale, nous allons vous orienter et vous aider tout au long de l'année vers cet objectif.
|
Contrairement aux autres projets, ici vous avez une obligation de résultats : vous n'avez pas la possibilité d'abandonner ou de juste viser la moyenne. Votre production doit être présentable à un public et nous, encadrants, sommes avec vous pour nous assurer de la qualité finale, vous orienter et vous aider tout au long de l'année vers cet objectif.
|
||||||
|
|
||||||
|
|
||||||
## Les délais
|
## Les délais
|
||||||
|
|
||||||
Votre projet de fin d'études vous accompagne sur presque toute votre année de SRS. Nous vous le présentons vers fin mars, lorsque vous avez pu commencer à prendre vos marques dans la majeure et pu rencontrer vos camarades. Et il dure jusqu'à votre sortie de SRS, en janvier.
|
Votre projet de fin d'études vous accompagne sur presque toute votre année de SRS. Nous vous le présentons vers fin mars, lorsque vous avez pu commencer à prendre vos marques dans la majeure et pu rencontrer vos camarades. Il dure jusqu'à votre sortie de SRS, en janvier.
|
||||||
|
|
||||||
Cela fait donc près de 9 mois (avec une pause au mois d'août) que vous allez consacrer à travailler régulièrement sur ce sujet.
|
Cela fait donc près de 9 mois (avec une pause au mois d'août) que vous allez consacrer à travailler régulièrement sur ce sujet.
|
||||||
|
|
||||||
@ -27,9 +27,9 @@ Enfin, des *FIC Blancs* sont organisés aussi régulièrement que possible pour
|
|||||||
|
|
||||||
### Suivi mensuel
|
### Suivi mensuel
|
||||||
|
|
||||||
1 samedi par mois (selon vos disponibilité d'emploi du temps, cela peut varier légèrement), un matinée est consacréer au suivi et à l'avancement du projet.
|
1 samedi par mois (selon vos disponibilités d'emploi du temps, cela peut varier légèrement), une matinée est consacréée au suivi et à l'avancement du projet.
|
||||||
|
|
||||||
À cette occasion, chaque groupe de 6 passera devant un jury aléatoire de 2 encadrants qui se là uniquement pour juger votre dernière réalisation et valider le lancement de la suivante.
|
À cette occasion, chaque groupe de 6 passera devant un jury aléatoire de 2 encadrants qui seront là uniquement pour juger votre dernière réalisation et valider le lancement de la suivante.
|
||||||
|
|
||||||
Il est attendu que vous présentiez à l'aide d'un vidéoprojecteur, rapidement et succinctement, le contexte de votre exercice sur la plateforme, puis sa résolution (en montrant [le write-up]({{< relref "../files/write-up.md" >}}) ou la [vidéo de résolution]({{< relref "../files/resolution.md" >}})).
|
Il est attendu que vous présentiez à l'aide d'un vidéoprojecteur, rapidement et succinctement, le contexte de votre exercice sur la plateforme, puis sa résolution (en montrant [le write-up]({{< relref "../files/write-up.md" >}}) ou la [vidéo de résolution]({{< relref "../files/resolution.md" >}})).
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ Les encadrants testerons sur la plateforme les flags, vérifierons la cohérence
|
|||||||
|
|
||||||
Vous aurez deux notes : une à la fin de chaque semestre.
|
Vous aurez deux notes : une à la fin de chaque semestre.
|
||||||
|
|
||||||
Comme dit en introduction, la notation n'est pas réalisée sur votre capacité à atteindre l'objectif car vous avez une obligation de résultat : si vos encadrants jugent que vos exercices ne respectent pas les critères de qualité minimum pour être présentés, vous ne pourrez pas être évalué et n'aurez pas de note pour le contenu visé.
|
Comme dit en introduction, la notation n'est pas réalisée sur votre capacité à atteindre l'objectif car vous avez une obligation de résultat : si vos encadrants jugent que vos exercices ne respectent pas les critères de qualité minimum pour être présentés, vous ne pourrez pas être évalués et n'aurez pas de note pour le contenu visé.
|
||||||
|
|
||||||
La notation porte sur la qualité de votre travail, sur le dépassement technique et sur ta tenue des délais.
|
La notation porte sur la qualité de votre travail, sur le dépassement technique et sur ta tenue des délais.
|
||||||
|
|
||||||
@ -65,8 +65,8 @@ Mais aussi il s'agit d'évaluer la manière dont vous faites face aux difficult
|
|||||||
|
|
||||||
9 mois c'est long ... et court. Vous avez une année chargée, on le sait. Travailler régulièrement est votre meilleur atout pour mener à bien ce projet.
|
9 mois c'est long ... et court. Vous avez une année chargée, on le sait. Travailler régulièrement est votre meilleur atout pour mener à bien ce projet.
|
||||||
|
|
||||||
Votre capacité à planifier des séances de travails, à respecter les deadlines, anticiper les moments de rushs, ... tout cela fait parti du projet FIC.
|
Votre capacité à planifier des séances de travail, à respecter les deadlines, anticiper les moments de rush, ... tout cela fait partie du projet FIC.
|
||||||
|
|
||||||
Lorsque d'autres priorités plus grandes, qui n'étaient pas anticipées, vous empêchent de terminer une étape, soyez honêtes et décrivez comment vous allez vous organiser pour rattraper le retard. Jusqu'à 24 heures avant la soutenance, vous pouvez nous demander exceptionnellement de reporter de quelques jours votre passage si cela vous permet de tenir le délais et les points précédents.
|
Lorsque d'autres priorités plus grandes, qui n'étaient pas anticipées, vous empêchent de terminer une étape, soyez honêtes et décrivez comment vous allez vous organiser pour rattraper le retard. Jusqu'à 24 heures avant la soutenance, vous pouvez nous demander exceptionnellement de reporter de quelques jours votre passage si cela vous permet de tenir les délais et les points précédents.
|
||||||
|
|
||||||
Nous apprécions aussi que vous prépareriez les soutenances (il n'est pas question de vous demander de passer du temps à répéter votre intervention, mais ayez un plan, que chacun sache quand il intervient et pour dire quoi). En arrivant dans la salle, installez-vous rapidement, avec du matériel testé apte à la projection (on ne recompile pas `xrandr` devant nous svp ...) et disposant de tous les exercices attendus à présenter (pour ne pas perdre de temps à changer d'ordi entre chaque exercice).
|
Nous apprécions aussi que vous prépareriez les soutenances (il n'est pas question de vous demander de passer du temps à répéter votre intervention, mais ayez un plan, que chacun sache quand il intervient et pour dire quoi). En arrivant dans la salle, installez-vous rapidement, avec du matériel testé apte à la projection (on ne recompile pas `xrandr` devant nous svp ...) et disposant de tous les exercices attendus à présenter (pour ne pas perdre de temps à changer d'ordi entre chaque exercice).
|
||||||
|
@ -8,6 +8,6 @@ Les *flags* sont les éléments que les participants doivent retrouver pour pass
|
|||||||
|
|
||||||
Choisissez-les en faisant en sorte qu'il ne puisse pas y avoir d'ambiguïté, tout en empêchant l'anti-jeu, tel que le brute-force, ...
|
Choisissez-les en faisant en sorte qu'il ne puisse pas y avoir d'ambiguïté, tout en empêchant l'anti-jeu, tel que le brute-force, ...
|
||||||
|
|
||||||
De nombreux type de flag sont à votre disposition :
|
De nombreux types de flag sont à votre disposition :
|
||||||
|
|
||||||
{{% children %}}
|
{{% children %}}
|
||||||
|
@ -4,7 +4,7 @@ title: Texte informatif
|
|||||||
weight: 99
|
weight: 99
|
||||||
---
|
---
|
||||||
|
|
||||||
Il ne s'agit pas d'un flag à proprement parlé car il ne donne pas lieu à une validation. Ceci permet de donner une information au participant, au sein du cadre affichant les flags.
|
Il ne s'agit pas d'un flag à proprement parler car il ne donne pas lieu à une validation. Ceci permet de donner une information au participant, au sein du cadre affichant les flags.
|
||||||
|
|
||||||
### Exemple
|
### Exemple
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ label
|
|||||||
: intitulé du choix ;
|
: intitulé du choix ;
|
||||||
|
|
||||||
value
|
value
|
||||||
: (facultatif, par défaut : `false`) état attendue de la case à cocher pour ce choix (`true` = coché, `false` = décoché).
|
: (facultatif, par défaut : `false`) état attendu de la case à cocher pour ce choix (`true` = coché, `false` = décoché).
|
||||||
|
|
||||||
|
|
||||||
## Rendu
|
## Rendu
|
||||||
|
@ -4,7 +4,7 @@ title: QCM justifiés
|
|||||||
weight: 15
|
weight: 15
|
||||||
---
|
---
|
||||||
|
|
||||||
Ce type de flag est précaunisé pour orienter les participants lorsqu'il faut trouver beaucoup de flags. Il devra déterminer si chacune est vraie ou fausse, puis pour les proposition qu'il juge vraies, apporter un élément de justification.
|
Ce type de flag est préconisé pour orienter les participants lorsqu'il faut trouver beaucoup de flags. Il devra déterminer si chacune est vraie ou fausse, puis pour les propositions qu'il juge vraies, apporter un élément de justification.
|
||||||
|
|
||||||
Lors de la résolution de ce type de flag, le nombre de différences d'état des cases à cocher est affiché (type Mastermind).
|
Lors de la résolution de ce type de flag, le nombre de différences d'état des cases à cocher est affiché (type Mastermind).
|
||||||
|
|
||||||
@ -66,10 +66,10 @@ capture_regexp
|
|||||||
: (facultatif) [expression rationnelle]({{< relref "/responses/simple.md#flag-modulable" >}}) dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ;
|
: (facultatif) [expression rationnelle]({{< relref "/responses/simple.md#flag-modulable" >}}) dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ;
|
||||||
|
|
||||||
casesensitive
|
casesensitive
|
||||||
: (facultatif, par défaut : `false`) prend en compte la la casse de ce drapeau lors de la validation ;
|
: (facultatif, par défaut : `false`) prend en compte la casse de ce drapeau lors de la validation ;
|
||||||
|
|
||||||
ordered
|
ordered
|
||||||
: (facultatif, par défaut : `false`) ignore l'ordre dans lequels les éléments du tableau sont passés ;
|
: (facultatif, par défaut : `false`) ignore l'ordre dans lequel les éléments du tableau sont passés ;
|
||||||
|
|
||||||
placeholder
|
placeholder
|
||||||
: (facultatif) chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner une indication de format ;
|
: (facultatif) chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner une indication de format ;
|
||||||
|
@ -8,10 +8,10 @@ Ce type de flag s'utilise pour valider toute chaîne de caractères que l'on
|
|||||||
retrouve brute dans les fichiers donnés (ou après un traitement
|
retrouve brute dans les fichiers donnés (ou après un traitement
|
||||||
_déterministe_).
|
_déterministe_).
|
||||||
|
|
||||||
Attention, par défaut, les propositions ne sont pas sensible à la
|
Attention, par défaut, les propositions ne sont pas sensibles à la
|
||||||
casse[^gocase].
|
casse[^gocase].
|
||||||
|
|
||||||
[^gocase]: Casse selon les classes Unicode de charactères, ce ne concerne pas
|
[^gocase]: Casse selon les classes Unicode de caractères, cela ne concerne pas
|
||||||
que l'alphabet traditionnel. Pour plus d'infos, consultez la [documentation
|
que l'alphabet traditionnel. Pour plus d'infos, consultez la [documentation
|
||||||
de la fonction utilisée](https://golang.org/pkg/bytes/#ToLower).
|
de la fonction utilisée](https://golang.org/pkg/bytes/#ToLower).
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ capture_regexp = "([0-9]{1,2}):([0-9]{1,2}):[0-9]{1,2}"
|
|||||||
|
|
||||||
Ici, nous demandons l'heure de l'exfiltration, mais plusieurs journaux
|
Ici, nous demandons l'heure de l'exfiltration, mais plusieurs journaux
|
||||||
enregistrent l'exfiltration à des secondes différentes. Les secondes n'étant
|
enregistrent l'exfiltration à des secondes différentes. Les secondes n'étant
|
||||||
pas significative car la période de log donné est sur plus d'une journée, on
|
pas significatives car la période de log donnée est sur plus d'une journée, on
|
||||||
peut considérer qu'un participant qui donne la bonne heure et la bonne minute a
|
peut considérer qu'un participant qui donne la bonne heure et la bonne minute a
|
||||||
répondu à la question. On le laisse cependant recopier le timestamp complet
|
répondu à la question. On le laisse cependant recopier le timestamp complet
|
||||||
pour qu'il fasse l'effort de trouver la bonne valeur selon lui (il pourrait
|
pour qu'il fasse l'effort de trouver la bonne valeur selon lui (il pourrait
|
||||||
@ -96,7 +96,7 @@ La valeur qui sera hashée pour comparaison sera `1122`, ce qui correspond à la
|
|||||||
concaténation de tous les groupes de notre expression rationnelle.
|
concaténation de tous les groupes de notre expression rationnelle.
|
||||||
|
|
||||||
Il est préférable d'écrire une expression rationnelle vague, qui ne fait pas
|
Il est préférable d'écrire une expression rationnelle vague, qui ne fait pas
|
||||||
apparaître les termes de la réponses. Ici, nous aurions pu utiliser
|
apparaître les termes de la réponse. Ici, nous aurions pu utiliser
|
||||||
l'expression rationnelle suivante : `(11):(22):(?:33|34|35)`, mais cela aurait
|
l'expression rationnelle suivante : `(11):(22):(?:33|34|35)`, mais cela aurait
|
||||||
fait apparaître clairement les termes de la réponse. L'attribut étant parfois
|
fait apparaître clairement les termes de la réponse. L'attribut étant parfois
|
||||||
transmis aux participants pour être utilisé par l'interface, il est prérérable
|
transmis aux participants pour être utilisé par l'interface, il est prérérable
|
||||||
@ -131,7 +131,7 @@ sort\_capture\_regexp\_groups
|
|||||||
: (facultatif, par défaut : `false`) trie les groupes capturant par ordre alphabétique avant concaténation ;
|
: (facultatif, par défaut : `false`) trie les groupes capturant par ordre alphabétique avant concaténation ;
|
||||||
|
|
||||||
casesensitive
|
casesensitive
|
||||||
: (facultatif, par défaut : `false`) prend en compte la la casse de ce drapeau lors de la validation ;
|
: (facultatif, par défaut : `false`) prend en compte la casse de ce drapeau lors de la validation ;
|
||||||
|
|
||||||
placeholder
|
placeholder
|
||||||
: (facultatif) chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner une indication de format ;
|
: (facultatif) chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner une indication de format ;
|
||||||
|
@ -28,10 +28,10 @@ capture_regexp
|
|||||||
: (facultatif) expression rationnelle dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ;
|
: (facultatif) expression rationnelle dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ;
|
||||||
|
|
||||||
ordered
|
ordered
|
||||||
: (facultatif, par défaut : `false`) ignore l'ordre dans lequels les éléments du tableau sont passés ;
|
: (facultatif, par défaut : `false`) ignore l'ordre dans lequel les éléments du tableau sont passés ;
|
||||||
|
|
||||||
casesensitive
|
casesensitive
|
||||||
: (facultatif, par défaut : `false`) prend en compte la la casse de ce drapeau lors de la validation ;
|
: (facultatif, par défaut : `false`) prend en compte la casse de ce drapeau lors de la validation ;
|
||||||
|
|
||||||
placeholder
|
placeholder
|
||||||
: (facultatif) chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner une indication de format ;
|
: (facultatif) chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner une indication de format ;
|
||||||
@ -49,7 +49,7 @@ label
|
|||||||
: (facultatif, par défaut `value` est utilisé) intitulé du choix ;
|
: (facultatif, par défaut `value` est utilisé) intitulé du choix ;
|
||||||
|
|
||||||
value
|
value
|
||||||
: valeur envoyé par le formulaire de validation lorsque le choix est sélectionné.
|
: valeur envoyée par le formulaire de validation lorsque le choix est sélectionné.
|
||||||
|
|
||||||
|
|
||||||
### Exemple
|
### Exemple
|
||||||
|
@ -7,9 +7,9 @@ weight: 7
|
|||||||
Ce type de flag s'utilise pour valider plusieurs chaînes de caractères liées au même flag.
|
Ce type de flag s'utilise pour valider plusieurs chaînes de caractères liées au même flag.
|
||||||
Par exemple, s'il faut trouver une liste d'administrateurs, les IP appartenant à un botnet, les fichiers infectés, ...
|
Par exemple, s'il faut trouver une liste d'administrateurs, les IP appartenant à un botnet, les fichiers infectés, ...
|
||||||
|
|
||||||
Attention, par défaut, les propositions ne sont pas sensible à la casse[^gocase].
|
Attention, par défaut, les propositions ne sont pas sensibles à la casse[^gocase].
|
||||||
|
|
||||||
[^gocase]: Casse selon les classes Unicode de charactères, ce ne concerne pas
|
[^gocase]: Casse selon les classes Unicode de caractères, cela ne concerne pas
|
||||||
que l'alphabet traditionnel. Pour plus d'infos, consultez la [documentation
|
que l'alphabet traditionnel. Pour plus d'infos, consultez la [documentation
|
||||||
de la fonction utilisée](https://golang.org/pkg/bytes/#ToLower).
|
de la fonction utilisée](https://golang.org/pkg/bytes/#ToLower).
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ label = "IPv6 du botnet"
|
|||||||
raw = ['fe80::319c:1002:7c60:68fa', 'fe80::319c:1002:7c60:68fb', 'fe80::319c:1002:7c60:68fc', 'fe80::319c:1002:7c60:68fd' ]
|
raw = ['fe80::319c:1002:7c60:68fa', 'fe80::319c:1002:7c60:68fb', 'fe80::319c:1002:7c60:68fc', 'fe80::319c:1002:7c60:68fd' ]
|
||||||
```
|
```
|
||||||
|
|
||||||
Il convient de lister toutes les IP du botnet, l'ordre importe peut, donc on ne précise pas la propriété `ordered` ; la case d'un IP n'a pas non plus d'importance, donc on laisse la propriété `casesensitive` à sa valeur par défaut.
|
Il convient de lister toutes les IP du botnet, l'ordre importe peut, donc on ne précise pas la propriété `ordered` ; la casse d'un IP n'a pas non plus d'importance, donc on laisse la propriété `casesensitive` à sa valeur par défaut.
|
||||||
|
|
||||||
## Propriétés
|
## Propriétés
|
||||||
|
|
||||||
@ -38,16 +38,16 @@ raw
|
|||||||
: tableau TOML de drapeaux exacts à trouver ; sous forme de tableau, le participant n'aura pas connaissaance du nombre d'éléments ;
|
: tableau TOML de drapeaux exacts à trouver ; sous forme de tableau, le participant n'aura pas connaissaance du nombre d'éléments ;
|
||||||
|
|
||||||
capture_regexp
|
capture_regexp
|
||||||
: (facultatif) [expression rationnelle]({{< relref "/responses/simple.md#flag-modulable" >}}) dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ; Attention, la regexp est appliquée seulement sur la représentation de la chaîne de caractères obtenue, pas sur chaque élément.
|
: (facultatif) [expression rationnelle]({{< relref "/responses/simple.md#flag-modulable" >}}) dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas). Attention, la regexp est appliquée seulement sur la représentation de la chaîne de caractères obtenue, pas sur chaque élément ;
|
||||||
|
|
||||||
showlines
|
showlines
|
||||||
: (facultatif, restreint aux vecteurs de moins de 10 éléments, par défaut : `false`) affiche directement le bon nombre de champs de réponse dans l'interface, plutôt que de laisser la taille du tableau inconnu aux participants ;
|
: (facultatif, restreint aux vecteurs de moins de 10 éléments, par défaut : `false`) affiche directement le bon nombre de champs de réponse dans l'interface, plutôt que de laisser la taille du tableau inconnue aux participants ;
|
||||||
|
|
||||||
ordered
|
ordered
|
||||||
: (facultatif, par défaut : `false`) ignore l'ordre dans lequels les éléments du tableau sont passés ;
|
: (facultatif, par défaut : `false`) ignore l'ordre dans lequel les éléments du tableau sont passés ;
|
||||||
|
|
||||||
casesensitive
|
casesensitive
|
||||||
: (facultatif, par défaut : `false`) prend en compte la la casse des drapeaux lors de la validation ;
|
: (facultatif, par défaut : `false`) prend en compte la casse des drapeaux lors de la validation ;
|
||||||
|
|
||||||
placeholder
|
placeholder
|
||||||
: (facultatif) chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner une indication de format ;
|
: (facultatif) chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner une indication de format ;
|
||||||
@ -59,7 +59,7 @@ help
|
|||||||
: (facultatif, rarement utilisé) chaîne de caractères placée sous le champ du formulaire, idéale pour donner un détail supplémentaire.
|
: (facultatif, rarement utilisé) chaîne de caractères placée sous le champ du formulaire, idéale pour donner un détail supplémentaire.
|
||||||
|
|
||||||
separator
|
separator
|
||||||
: (facultatif, par défaut `,`) caractère utilisé comme séparateur lors de la fusion des différents éléments de réponse. Si l'une des valeurs de la réponse contient `,`, remplacez le séparateur par n'importe quel caractère qui n'est contenu dans aucune des chaines.
|
: (facultatif, par défaut `,`) caractère utilisé comme séparateur lors de la fusion des différents éléments de réponse. Si l'une des valeurs de la réponse contient `,`, remplacez le séparateur par n'importe quel caractère qui n'est contenu dans aucune des chaînes.
|
||||||
|
|
||||||
|
|
||||||
## Rendu
|
## Rendu
|
||||||
|
@ -8,15 +8,15 @@ weight: 10
|
|||||||
|
|
||||||
|
|
||||||
- 1 image sympa ;
|
- 1 image sympa ;
|
||||||
- 1 titre sympa : pas de langage familier, ça peut être un jeu de mot, le nom de l'entreprise, ... soyez créatif ;
|
- 1 titre sympa : pas de langage familier, ça peut être un jeu de mot, le nom de l'entreprise, ... soyez créatifs ;
|
||||||
- 1 à 2 phrase d'accroche bien conçues : c'est-à-dire qui présentent bien, sans s'étendre, mais faut vraiment que ce soit court, environ 6 lignes, 9-10 c'est trop.
|
- 1 à 2 phrases d'accroche bien conçues : c'est-à-dire qui présentent bien, sans s'étendre, mais faut vraiment que ce soit court, environ 6 lignes, 9-10 c'est trop.
|
||||||
|
|
||||||
|
|
||||||
## Sur la page du scénario
|
## Sur la page du scénario
|
||||||
|
|
||||||
### Contexte du scénario `overview.md`
|
### Contexte du scénario `overview.md`
|
||||||
|
|
||||||
Il faut 3 à 4 paragraphes (**pas moins !**) qui présente le contexte, et le présente bien, avec du beau storytelling et sans faute d'orthographe : quel est le secteur de votre entreprise, quelles sont ses activités habituelles, comment s'est passé la découverte de l'incident de sécurité, quelles premières mesures ont été prises (s'il y en a eu), quels sont nos interlocuteurs sur place, où se trouve-t-on, ...
|
Il faut 3 à 4 paragraphes (**pas moins !**) qui présentent le contexte, et le présentent bien, avec du beau storytelling et sans faute d'orthographe : quel est le secteur de votre entreprise, quelles sont ses activités habituelles, comment s'est passé la découverte de l'incident de sécurité, quelles premières mesures ont été prises (s'il y en a eu), quels sont nos interlocuteurs sur place, où se trouve-t-on, ...
|
||||||
|
|
||||||
Il faut aussi **au moins 1** schéma (**obligatoire**) qui ne dévoile aucune information pour la suite, mais qui présente convenablement le contexte : cela peut être un schéma d'architecture du réseau (dans lequel on voit les différents équipements ainsi que les séparations, ...)
|
Il faut aussi **au moins 1** schéma (**obligatoire**) qui ne dévoile aucune information pour la suite, mais qui présente convenablement le contexte : cela peut être un schéma d'architecture du réseau (dans lequel on voit les différents équipements ainsi que les séparations, ...)
|
||||||
|
|
||||||
@ -27,10 +27,10 @@ Le schéma attendu correspond à un schéma que l'équipe IT donnerait aux audit
|
|||||||
|
|
||||||
### Présentation des étapes `X-Titre/overview.md`
|
### Présentation des étapes `X-Titre/overview.md`
|
||||||
|
|
||||||
1 à 2 phrases par étape qui décrit bien l'étape : toujours sans donner d'informations capitales, mais il faut que cela résume bien ce qui sera fait dedans.
|
1 à 2 phrases par étape qui décrivent bien l'étape : toujours sans donner d'informations capitales, mais il faut que cela résume bien ce qui sera fait dedans.
|
||||||
|
|
||||||
Au delà de ces deux phrases (c'est la première ligne du fichier `overview.md` qui est extrait), on peut détailler un peu plus ce qui est attendu, pour que ce soit compréhensible par un décideur.
|
Au-delà de ces deux phrases (c'est la première ligne du fichier `overview.md` qui est extraite), on peut détailler un peu plus ce qui est attendu, pour que ce soit compréhensible par un décideur.
|
||||||
|
|
||||||
La suite de ce texte est accessible aux participants lorsqu'ils cliquent sur une étape pour laquelle il n'ont pas encore l'accès. On le retrouve aussi sur le tableau de bord visible du public. C'est pour cela qu'il faut faire un effort pour être le plus pédagogue possible. Le texte est affiche seul, sans le reste du contexte, donc n'hésitez pas à réexpliquer succinctement le contexte.
|
La suite de ce texte est accessible aux participants lorsqu'ils cliquent sur une étape pour laquelle il n'ont pas encore l'accès. On le retrouve aussi sur le tableau de bord visible du public. C'est pour cela qu'il faut faire un effort pour être le plus pédagogue possible. Le texte est affiché seul, sans le reste du contexte, donc n'hésitez pas à réexpliquer succinctement le contexte.
|
||||||
|
|
||||||
Pas plus de 2 à 3 paragraphes, la première ligne doit mettre dans l'action et donner envie de lire la suite.
|
Pas plus de 2 à 3 paragraphes, la première ligne doit mettre dans l'action et donner envie de lire la suite.
|
||||||
|
@ -27,4 +27,4 @@ Vérifiez la présence **OBLIGATOIRE** d'un placeholder qui montre le format att
|
|||||||
- `secret_password` si c'est un mot de passe,
|
- `secret_password` si c'est un mot de passe,
|
||||||
- ...
|
- ...
|
||||||
|
|
||||||
Assurez-vous que le label soit une description du champ « Mot de passe de l'administrateur » ou « Hash du fichier compromis », et PAS ~~« Quel est le hash du fichier compromis »~~ <-- c'est pour ça que `repochecker` vous embête pour pas mettre de `?`, on ne formule pas une question, on décrit le contenu attendu dans le champ.
|
Assurez-vous que le label soit une description du champ « Mot de passe de l'administrateur » ou « Hash du fichier compromis », et PAS ~~« Quel est le hash du fichier compromis »~~ <-- c'est pour ça que `repochecker` vous embête pour ne pas mettre de `?`, on ne formule pas une question, on décrit le contenu attendu dans le champ.
|
||||||
|
Loading…
Reference in New Issue
Block a user