Skip to content

Commit 4c1559c

Browse files
committed
feat: FR readme;
1 parent 5f49325 commit 4c1559c

File tree

1 file changed

+105
-2
lines changed

1 file changed

+105
-2
lines changed

README.md

+105-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# 🍁 Valentine
22

3+
[La version française suit.](#---------------------------------------------------------------------)
4+
35
![Lint, format, and test workflow](https://github.com/maxneuvians/valentine/actions/workflows/ci_code.yml/badge.svg)
46

57
Valentine is a real-time collaborative threat modeling tool that combines human expertise with generative AI to streamline the security design process while maintaining simplicity and rigor.
@@ -41,7 +43,6 @@ Valentine's flexibility allows it to be used for threat modeling both individual
4143

4244
Note: It is normal to see warnings during the setup process. Also depending on the amount of memory available to the codespace, the setup process may take longer than usual.
4345

44-
4546
## Running with docker compose
4647

4748
You can run the app locally using docker compose. It is not recommended to use this in production.
@@ -98,4 +99,106 @@ In this case to access the `/workspaces` route you need to be authenticated with
9899

99100
## License
100101

101-
MIT 2025
102+
MIT 2025
103+
104+
## ---------------------------------------------------------------------
105+
106+
# Valentine 🍁
107+
108+
Valentine est un outil collaboratif de modélisation des menaces en temps réel qui associe l’expertise humaine à l’IA générative pour rationaliser le processus de conception de la sécurité tout en conservant simplicité et rigueur.
109+
110+
![Capture d’écran d’un diagramme de flux de données dans Valentine](screenshots/data_flow_diagram.png)
111+
112+
IMPORTANT : Ce projet est en cours de développement et peut subir des modifications importantes. Il manque encore des fonctionnalités à ce projet et il comporte des bogues. Veuillez examiner les [problèmes](https://github.com/maxneuvians/valentine/issues) pour plus de renseignements.
113+
114+
## Fonctionnalités
115+
116+
1. Modélisation des menaces à l’aide de [STRIDE](https://en.wikipedia.org/wiki/STRIDE_model) sur la base d’une [grammaire des menaces prédéfinie](https://catalog.workshops.aws/threatmodel/en-US/what-can-go-wrong/threat-grammar). Pour de plus amples renseignements, consultez : [Threat Composer](https://github.com/awslabs/threat-composer).
117+
118+
2. Édition collaborative et en temps réel des modèles de menaces, des diagrammes de flux de données et de l’architecture des applications.
119+
120+
3. L’IA générative pour aider à la modélisation des menaces et expliquer les architectures et les flux de données.
121+
122+
4. Mise en correspondance des hypothèses et des mesures d’atténuation avec les contrôles NIST afin de faciliter les documents de la conformité.
123+
124+
5. Utilisation de dossiers de référence partageables pour aider à établir des hypothèses communes, des menaces et des mesures d’atténuation au sein des équipes d’une organisation.
125+
126+
Si vous préférez les images au lieu des textes, vous pouvez consulter la [galerie].
127+
128+
## Justification
129+
130+
131+
Valentine offre une autre option que l’approche de la sécurité axée sur la conformité, souvent pratiquée dans les grandes organisations. Dans les équipes qui suivent des pratiques de développement agiles, la sécurité axée sur la conformité crée souvent un goulot d’étranglement : les contrôles doivent être déterminés soit avant le début du développement, soit après sa conclusion. Ce paradigme place la sécurité comme un obstacle au développement plutôt que comme un partenaire de collaboration dans le processus.
132+
133+
Valentine repose sur le principe que la surface d’attaque d’un système s’étend principalement par l’ajout de fonctionnalités et leurs interactions. Si le système le plus sécurisé [peut-être celui qui ne fait rien](https://github.com/kelseyhightower/nocode), les applications du monde réel doivent trouver un équilibre entre la sécurité et la fonctionnalité. Au fur et à mesure que de nouvelles fonctionnalités sont mises en œuvre ou que les composants du système évoluent, le modèle de menace devrait s’adapter pour refléter à la fois les menaces directes provenant des nouvelles capacités et les menaces émergentes provenant des interactions entre les fonctionnalités, des changements environnementaux et des dépendances.
134+
135+
La modélisation des menaces, en particulier la méthodologie de STRIDE, fournit aux équipes un cadre accessible pour identifier et comprendre les menaces tout au long du cycle de vie du développement. Grâce à un processus itératif, les équipes peuvent construire et maintenir un modèle de menace complet qui reflète l’architecture, les interactions et le contexte environnemental réels de leur système, plutôt que de se fier uniquement à des hypothèses de conception initiales.
136+
137+
Si Valentine rationalise le processus de modélisation des menaces, cet outil reconnaît que les documents de conformité restent une nécessité pour l’organisation. Plutôt que de traiter la conformité comme une réflexion après coup ou comme un obstacle, l’un des principaux objectifs de la conception a été de générer automatiquement des documents à partir du processus de modélisation des menaces en cours. Les équipes peuvent faire correspondre les hypothèses et les mesures d’atténuation aux contrôles précis du NIST et exporter les documents qui en résultent pour les évaluations de sécurité, ce qui fait de la conformité un résultat naturel des bonnes pratiques de sécurité.
138+
139+
La flexibilité de Valentine lui permet d’être utilisé pour la modélisation des menaces, qu’il s’agisse de fonctionnalités individuelles ou de systèmes entiers, sans imposer un flux de travail rigide aux équipes. Cette adaptabilité permet aux organisations d’intégrer l’approche de la sécurité dans leur processus de développement d’une manière qui corresponde à leurs besoins spécifiques et à leur niveau de maturité.
140+
141+
## Relance de système en utilisant GitHub Codespaces
142+
143+
1. [![Ouvrir dans GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/maxneuvians/valentine)
144+
2. `make setup`
145+
3. `make dev`
146+
147+
Note : Il est normal de voir apparaître des avertissements au cours de la procédure d’installation. En outre, cela dépend de la capacité de mémoire disponible dans le Codespace, la procédure d’installation peut prendre plus de temps que d’habitude.
148+
149+
150+
## Exécuter avec docker compose
151+
Vous pouvez exécuter l’application localement en utilisant docker compose. Il n’est pas recommandé de l’utiliser dans le cadre de la production.
152+
153+
```
154+
docker compose up
155+
```
156+
construira la dernière image et exécutera l'application sur `http://localhost:4000`. Si vous souhaitez utiliser la fonctionnalité LLM, vous devez fournir votre propre OPENAI API clé pour `gpt-4o-mini`.
157+
158+
```
159+
OPENAI_API_KEY=sk-proj... docker compose up
160+
```
161+
162+
Si vous apportez des modifications au code source, vous devez alors reconstruire l'image :
163+
164+
```
165+
docker compose up -d --no-deps --build app
166+
```
167+
168+
## Configuration pour le développement
169+
170+
```
171+
cd valentine
172+
mix deps.get
173+
mix ecto.create
174+
mix ecto.migrate
175+
mix run priv/repo/seeds.exs
176+
cd assets
177+
npm i
178+
```
179+
180+
## OpenAI sur Azure
181+
Vous pouvez également utiliser OpenAI sur Azure. Vous devez fournir les variables d'environnement suivantes :
182+
183+
```
184+
AZURE_OPENAI_ENDPOINT=
185+
AZURE_OPENAI_KEY=
186+
```
187+
188+
## Authentification facultative avec Google Authentification
189+
190+
Vous pouvez utiliser Google comme fournisseur d'identité si vous définissez les variables d'environnement suivantes :
191+
192+
```
193+
GOOGLE_CLIENT_ID=votre-client-id
194+
GOOGLE_CLIENT_SECRET=votre-client-secret
195+
196+
```
197+
198+
Vous pouvez les obtenir en créant un nouveau projet sur Google Developer Console et en créant des identifiants OAuth 2.0.
199+
200+
Dans ce cas, pour accéder à la route `/workspaces`, voous devez vous authentifier avec Google en visitant `/auth/google`. Actuellement, rien n’est fait avec l’information utilisateur provenant de Google, mais vous pouvez l’utiliser pour limiter l’accès à l’application.
201+
202+
## Licence
203+
204+
MIT 2025

0 commit comments

Comments
 (0)