diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 63c1ad6673..8979b0a312 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -1032,5 +1032,33 @@ "ebiosWs3_2_tooltip": "You need at least one selected RO/TO couple to elaborate a strategic scenario", "ebiosWs3_3_tooltip": "You need at least one Stakeholder to define associated security measures", "ebiosWs4_1_tooltip": "You need at least one selected Attack Path from a Strategic Scenario to elaborate an operational scenario", - "ebiosWs4_2_tooltip": "You need at least one Operational Scenario to evaluate its likelihood" + "ebiosWs4_2_tooltip": "You need at least one Operational Scenario to evaluate its likelihood", + "gravityHelpText": "Estimating the level and intensity of the effects of a risk", + "likelihoodHelpText": "Estimate of the feasibility or probability of a risk occurring", + "studyAssetHelpText": "Primary (business asset) and supporting assets relating to the object under study", + "fearedEventHelpText": "The feared events must express/translate the fears of the business", + "fearedEventAssetHelpText": "Primary asset (business value) affected by the feared event", + "fearedEventQualificationHelpText": "Possible impact categories", + "fearedEventIsSelectedHelpText": "Selection of the feared event for the study", + "riskOriginHelpText": "Element, person, group of persons or organisation likely to generate a risk", + "targetObjectiveHelpText": "Purpose of a source of risk, depending on its motivations", + "resourcesHelpText": "Including financial resources, level of cyber skills, tools, time available to the attacker to carry out the attack, etc.", + "motivationHelpText": "Interests, factors that drive the source of risk to achieve its objective", + "activityHelpText": "What is the level of activity of the source of risk within the scope of the study? ", + "pertinenceHelpText": "The relevance of the source of risk to the target objective", + "roToIsSelectedHelpText": "Selection of the RO/TO couple for the study", + "roToFearedEventHelpText": "Confronting the most serious feared events", + "stakeholderEntityHelpText": "Stakeholder in the ecosystem", + "stakeholderCategoryHelpText": "Relationship with the stakeholder", + "dependencyHelpText": "Is the relationship with this stakeholder vital to my business?", + "penetrationHelpText": "To what extent does the stakeholder have access to my internal resources?", + "maturityHelpText": "What are the stakeholder's safety capabilities?", + "trustHelpText": "Could the stakeholder's intentions or interests be contrary to my own?", + "stakeholderIsSelectedHelpText": "Selection of the stakeholder for the study", + "strategicScenarioHelpText": "Sets of attack paths from a source of risk to an intended target", + "operatingModesDescriptionHelpText": "Description of a series of basic actions that the source of risk is likely to have to carry out in order to achieve its objective", + "operationalScenarioThreatsHelpText": "Unitary actions carried out by a risk source on a critical support asset as part of an operational scenario", + "operationalScenarioIsSelectedHelpText": "Selection of the operational scenario for the study", + "attackPathStakeholdersHelpText": "Stakeholders involved in the attack path", + "attackPathIsSelectedHelpText": "Selection of the attack path for the study" } diff --git a/frontend/messages/fr.json b/frontend/messages/fr.json index 9d7cec4a51..c74eb295df 100644 --- a/frontend/messages/fr.json +++ b/frontend/messages/fr.json @@ -1017,6 +1017,7 @@ "addStrategicScenario": "Ajouter un scénario stratégique", "markAsDone": "C'est fait", "markAsInProgress": "Reprendre", + "riskAnalyses": "Analyses de risques", "client": "Client", "partner": "Partenaire", "supplier": "Fournisseur", @@ -1031,5 +1032,33 @@ "ebiosWs3_2_tooltip": "Vous avez besoin d'au moins un couple SR/OV sélectionné pour élaborer un scénario stratégique", "ebiosWs3_3_tooltip": "Vous avez besoin d'au moins une Partie Prenante pour définir les mesures de sécurité associées", "ebiosWs4_1_tooltip": "Vous avez besoin d'au moins un Chemin d'Attaque sélectionné à partir d'un Scénario Stratégique pour élaborer un scénario opérationnel", - "ebiosWs4_2_tooltip": "Vous avez besoin d'au moins un Scénario Opérationnel pour évaluer sa probabilité" + "ebiosWs4_2_tooltip": "Vous avez besoin d'au moins un Scénario Opérationnel pour évaluer sa vraisemblance", + "gravityHelpText": "Estimation du niveau et de l’intensité des effets d’un risque", + "likelihoodHelpText": "Estimation de la faisabilité ou de la probabilité qu’un risque se réalise", + "studyAssetHelpText": "Biens primaires (valeur métier) et supports relatifs à l'objet étudié", + "fearedEventHelpText": "Les événements redoutés doivent formuler / traduire les craintes des métiers", + "fearedEventAssetHelpText": "Biens primaires (valeur métier) affectés par l'évènement redouté", + "fearedEventQualificationHelpText": "Catégories d'impacts possibles", + "fearedEventIsSelectedHelpText": "Sélection de l'événement redouté pour l'étude", + "riskOriginHelpText": "Élément, personne, groupe de personnes ou organisation susceptible de générer un risque", + "targetObjectiveHelpText": "Finalité visée par une source de risque, selon ses motivations", + "resourcesHelpText": "Incluant les ressources financières, le niveau de compétences cyber, l’outillage, le temps dont l’attaquant dispose pour réaliser l’attaque, etc.", + "motivationHelpText": "Intérêts, éléments qui poussent la source de risque à atteindre son objectif", + "activityHelpText": "Quel est le niveau d'activité de la source de risque dans le périmètre de l'étude ?", + "pertinenceHelpText": "La pertinence de la source de risque par rapport à l'objectif visé", + "roToIsSelectedHelpText": "Sélection du couple SR/OV pour l'étude", + "roToFearedEventHelpText": "Confronter les événements redoutés les plus graves", + "stakeholderEntityHelpText": "Partie prenante de l'écosystème", + "stakeholderCategoryHelpText": "Relation avec la partie prenante", + "dependencyHelpText": "La relation avec cette partie prenante est-elle vitale pour mon entreprise ?", + "penetrationHelpText": "Dans quelle mesure la partie prenante a-t-elle accès à mes ressources internes ?", + "maturityHelpText": "Quelles sont les capacités de sécurité des parties prenantes ?", + "trustHelpText": "Les intentions ou les intérêts de la partie prenante pourraient-ils être contraires aux miens ?", + "stakeholderIsSelectedHelpText": "Sélection des parties prenantes pour l'étude", + "strategicScenarioHelpText": "Ensembles de chemins d'attaque d'une source de risque vers une cible visée", + "operatingModesDescriptionHelpText": "Description d'une série d'actions élémentaires que la source du risque est susceptible de devoir réaliser pour atteindre son objectif", + "operationalScenarioThreatsHelpText": "Actions élémentaires réalisées par une source de risque sur un bien support critique dans le cadre d'un scénario opérationnel", + "operationalScenarioIsSelectedHelpText": "Sélection du scénario opérationnel pour l'étude", + "attackPathStakeholdersHelpText": "Parties prenantes impactées par le chemin d'attaque", + "attackPathIsSelectedHelpText": "Sélection du chemin d'attaque pour l'étude" } diff --git a/frontend/src/lib/components/Forms/ModelForm/AttackPathForm.svelte b/frontend/src/lib/components/Forms/ModelForm/AttackPathForm.svelte index 7619db1828..a5f6076d54 100644 --- a/frontend/src/lib/components/Forms/ModelForm/AttackPathForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/AttackPathForm.svelte @@ -36,9 +36,15 @@ cacheLock={cacheLocks['stakeholders']} bind:cachedValue={formDataCache['stakeholders']} label={m.stakeholders()} + helpText={m.attackPathStakeholdersHelpText()} /> -<Checkbox {form} field="is_selected" label={m.selected()} /> +<Checkbox + {form} + field="is_selected" + label={m.selected()} + helpText={m.attackPathIsSelectedHelpText()} +/> <TextArea {form} field="justification" diff --git a/frontend/src/lib/components/Forms/ModelForm/EbiosRmForm.svelte b/frontend/src/lib/components/Forms/ModelForm/EbiosRmForm.svelte index d85c44fc00..bd9c35e1be 100644 --- a/frontend/src/lib/components/Forms/ModelForm/EbiosRmForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/EbiosRmForm.svelte @@ -145,6 +145,7 @@ })} field="assets" label={m.assets()} + helpText={m.studyAssetHelpText()} /> </div> <TextArea diff --git a/frontend/src/lib/components/Forms/ModelForm/FearedEventForm.svelte b/frontend/src/lib/components/Forms/ModelForm/FearedEventForm.svelte index 8a077d8db1..150d81504e 100644 --- a/frontend/src/lib/components/Forms/ModelForm/FearedEventForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/FearedEventForm.svelte @@ -16,6 +16,7 @@ export let initialData: Record<string, any> = {}; </script> +<p class="text-sm text-gray-500">{m.fearedEventHelpText()}</p> <AutocompleteSelect {form} options={getOptions({ objects: model.foreignKeys['ebios_rm_study'] })} @@ -39,6 +40,7 @@ label={m.gravity()} cacheLock={cacheLocks['gravity']} bind:cachedValue={formDataCache['gravity']} + helpText={m.gravityHelpText()} /> <TextArea {form} @@ -57,6 +59,7 @@ })} field="assets" label={m.assets()} + helpText={m.fearedEventAssetHelpText()} /> <AutocompleteSelect multiple @@ -66,5 +69,11 @@ })} field="qualifications" label={m.qualifications()} + helpText={m.fearedEventQualificationHelpText()} +/> +<Checkbox + {form} + field="is_selected" + label={m.isSelected()} + helpText={m.fearedEventIsSelectedHelpText()} /> -<Checkbox {form} field="is_selected" label={m.isSelected()} /> diff --git a/frontend/src/lib/components/Forms/ModelForm/OperationalScenarioForm.svelte b/frontend/src/lib/components/Forms/ModelForm/OperationalScenarioForm.svelte index 242428160a..20de69526c 100644 --- a/frontend/src/lib/components/Forms/ModelForm/OperationalScenarioForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/OperationalScenarioForm.svelte @@ -58,6 +58,7 @@ cacheLock={cacheLocks['operating_modes_description']} bind:cachedValue={formDataCache['operating_modes_description']} data-focusindex="1" + helpText={m.operatingModesDescriptionHelpText()} /> <AutocompleteSelect {form} @@ -71,6 +72,7 @@ cacheLock={cacheLocks['threats']} bind:cachedValue={formDataCache['threats']} label={m.threats()} + helpText={m.operationalScenarioThreatsHelpText()} /> {#if context !== 'edit'} <AutocompleteSelect @@ -102,6 +104,7 @@ label={m.likelihood()} cacheLock={cacheLocks['likelihood']} bind:cachedValue={formDataCache['likelihood']} + helpText={m.likelihoodHelpText()} /> <TextArea {form} @@ -111,4 +114,9 @@ bind:cachedValue={formDataCache['justification']} /> </div> -<Checkbox {form} field="is_selected" label={m.isSelected()} /> +<Checkbox + {form} + field="is_selected" + label={m.isSelected()} + helpText={m.operationalScenarioIsSelectedHelpText()} +/> diff --git a/frontend/src/lib/components/Forms/ModelForm/RoToForm.svelte b/frontend/src/lib/components/Forms/ModelForm/RoToForm.svelte index ac229b4f65..680c092cf1 100644 --- a/frontend/src/lib/components/Forms/ModelForm/RoToForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/RoToForm.svelte @@ -59,6 +59,7 @@ label={m.riskOrigin()} cacheLock={cacheLocks['risk_origin']} bind:cachedValue={formDataCache['risk_origin']} + helpText={m.riskOriginHelpText()} /> <TextArea {form} @@ -66,6 +67,7 @@ label={m.targetObjective()} cacheLock={cacheLocks['target_objective']} bind:cachedValue={formDataCache['target_objective']} + helpText={m.targetObjectiveHelpText()} /> </div> <div @@ -87,6 +89,7 @@ label={m.motivation()} cacheLock={cacheLocks['motivation']} bind:cachedValue={formDataCache['motivation']} + helpText={m.motivationHelpText()} /> <Select {form} @@ -95,6 +98,7 @@ label={m.resources()} cacheLock={cacheLocks['resources']} bind:cachedValue={formDataCache['resources']} + helpText={m.resourcesHelpText()} /> <Select {form} @@ -103,6 +107,7 @@ label={m.activity()} cacheLock={cacheLocks['activity']} bind:cachedValue={formDataCache['activity']} + helpText={m.activityHelpText()} /> </div> <div @@ -117,7 +122,12 @@ > {m.activityThree()} </p> - <Checkbox {form} field="is_selected" label={m.isSelected()} /> + <Checkbox + {form} + field="is_selected" + label={m.isSelected()} + helpText={m.roToIsSelectedHelpText()} + /> <AutocompleteSelect multiple {form} @@ -128,6 +138,7 @@ })} field="feared_events" label={m.fearedEvents()} + helpText={m.roToFearedEventHelpText()} /> <TextArea {form} diff --git a/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte b/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte index 6b1a576f31..1c33e3a41f 100644 --- a/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte @@ -95,6 +95,7 @@ label={m.category()} cacheLock={cacheLocks['category']} bind:cachedValue={formDataCache['category']} + helpText={m.stakeholderCategoryHelpText()} /> <AutocompleteSelect {form} @@ -104,6 +105,7 @@ bind:cachedValue={formDataCache['entity']} label={m.entity()} hidden={initialData.entity} + helpText={m.stakeholderEntityHelpText()} /> </span> @@ -124,6 +126,7 @@ field="current_dependency" cacheLock={cacheLocks['current_dependency']} bind:cachedValue={formDataCache['current_dependency']} + helpText={m.dependencyHelpText()} /> <i class="fa-solid fa-times" /> <RadioGroupInput @@ -139,6 +142,7 @@ label={m.penetration()} cacheLock={cacheLocks['current_penetration']} bind:cachedValue={formDataCache['current_penetration']} + helpText={m.penetrationHelpText()} /> </span> @@ -157,6 +161,7 @@ label={m.maturity()} cacheLock={cacheLocks['current_maturity']} bind:cachedValue={formDataCache['current_maturity']} + helpText={m.maturityHelpText()} /> <i class="fa-solid fa-times" /> <RadioGroupInput @@ -171,6 +176,7 @@ label={m.trust()} cacheLock={cacheLocks['current_trust']} bind:cachedValue={formDataCache['current_trust']} + helpText={m.trustHelpText()} /></span > </div> @@ -186,7 +192,12 @@ </div> </div> <div class="flex flex-col flex-grow"> - <Checkbox {form} field="is_selected" label={m.selected()} /> + <Checkbox + {form} + field="is_selected" + label={m.selected()} + helpText={m.stakeholderIsSelectedHelpText()} + /> <TextArea {form} field="justification" diff --git a/frontend/src/lib/components/Forms/ModelForm/StrategicScenarioForm.svelte b/frontend/src/lib/components/Forms/ModelForm/StrategicScenarioForm.svelte index 16fc830f27..ea765f5b0e 100644 --- a/frontend/src/lib/components/Forms/ModelForm/StrategicScenarioForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/StrategicScenarioForm.svelte @@ -14,6 +14,7 @@ export let context: string; </script> +<p class="text-sm text-gray-500">{m.strategicScenarioHelpText()}</p> {#if context !== 'edit'} <AutocompleteSelect {form}