From a5910017151790a9f365e5a66ff82ab363b626ab Mon Sep 17 00:00:00 2001 From: eric-intuitem <71850047+eric-intuitem@users.noreply.github.com> Date: Fri, 6 Dec 2024 20:14:09 +0100 Subject: [PATCH] Detailed ANSSI hygiene guide Create anssi-guide-hygiene-detail.xlsx Add procedure category update doc-pol update convert_library --- ..._alter_appliedcontrol_category_and_more.py | 46 + backend/core/models.py | 1 + .../libraries/anssi-guide-hygiene-detail.yaml | 3209 +++++++++++++++++ backend/library/libraries/doc-pol.yaml | 1182 +++++- backend/library/utils.py | 2 +- frontend/messages/ar.json | 1 + frontend/messages/cz.json | 1 + frontend/messages/de.json | 1 + frontend/messages/en.json | 1 + frontend/messages/es.json | 1 + frontend/messages/fr.json | 1 + frontend/messages/hi.json | 1 + frontend/messages/it.json | 1 + frontend/messages/nl.json | 1 + frontend/messages/pl.json | 1 + frontend/messages/pt.json | 1 + frontend/messages/ro.json | 1 + frontend/messages/sv.json | 1 + frontend/messages/ur.json | 1 + tools/anssi/anssi-guide-hygiene-detail.xlsx | Bin 0 -> 50302 bytes tools/convert_library.py | 6 +- tools/doc-pol.xlsx | Bin 17444 -> 0 bytes tools/intuitem/doc-pol.xlsx | Bin 14986 -> 34114 bytes 23 files changed, 4408 insertions(+), 52 deletions(-) create mode 100644 backend/core/migrations/0045_alter_appliedcontrol_category_and_more.py create mode 100644 backend/library/libraries/anssi-guide-hygiene-detail.yaml create mode 100644 tools/anssi/anssi-guide-hygiene-detail.xlsx delete mode 100644 tools/doc-pol.xlsx diff --git a/backend/core/migrations/0045_alter_appliedcontrol_category_and_more.py b/backend/core/migrations/0045_alter_appliedcontrol_category_and_more.py new file mode 100644 index 0000000000..c3429f70b4 --- /dev/null +++ b/backend/core/migrations/0045_alter_appliedcontrol_category_and_more.py @@ -0,0 +1,46 @@ +# Generated by Django 5.1.1 on 2024-12-07 22:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("core", "0044_qualification"), + ] + + operations = [ + migrations.AlterField( + model_name="appliedcontrol", + name="category", + field=models.CharField( + blank=True, + choices=[ + ("policy", "Policy"), + ("process", "Process"), + ("technical", "Technical"), + ("physical", "Physical"), + ("procedure", "Procedure"), + ], + max_length=20, + null=True, + verbose_name="Category", + ), + ), + migrations.AlterField( + model_name="referencecontrol", + name="category", + field=models.CharField( + blank=True, + choices=[ + ("policy", "Policy"), + ("process", "Process"), + ("technical", "Technical"), + ("physical", "Physical"), + ("procedure", "Procedure"), + ], + max_length=20, + null=True, + verbose_name="Category", + ), + ), + ] diff --git a/backend/core/models.py b/backend/core/models.py index 5ab669cfd1..febf848ee8 100644 --- a/backend/core/models.py +++ b/backend/core/models.py @@ -780,6 +780,7 @@ class ReferenceControl(ReferentialObjectMixin, I18nObjectMixin): ("process", _("Process")), ("technical", _("Technical")), ("physical", _("Physical")), + ("procedure", _("Procedure")), ] CSF_FUNCTION = [ diff --git a/backend/library/libraries/anssi-guide-hygiene-detail.yaml b/backend/library/libraries/anssi-guide-hygiene-detail.yaml new file mode 100644 index 0000000000..1d28213abd --- /dev/null +++ b/backend/library/libraries/anssi-guide-hygiene-detail.yaml @@ -0,0 +1,3209 @@ +urn: urn:intuitem:risk:library:anssi-guide-hygiene-detail +locale: fr +ref_id: ANSSI-GUIDE-HYGIENE-DETAIL +name: "ANSSI - Guide d'hygi\xE8ne informatique - version d\xE9taill\xE9e" +description: "Renforcer la s\xE9curit\xE9 de son syst\xE8me d\u2019information en\ + \ 42 mesures\nVersion d\xE9taill\xE9e\n https://cyber.gouv.fr/sites/default/files/2017/01/guide_hygiene_informatique_anssi.pdf" +copyright: Licence Ouverte/Open Licence (Etalab - V1) +version: 1 +provider: ANSSI +packager: intuitem +objects: + framework: + urn: urn:intuitem:risk:framework:anssi-guide-hygiene-detail + ref_id: ANSSI-GUIDE-HYGIENE-DETAIL + name: "ANSSI - Guide d'hygi\xE8ne informatique - version d\xE9taill\xE9e" + description: "Renforcer la s\xE9curit\xE9 de son syst\xE8me d\u2019information\ + \ en 42 mesures\nVersion d\xE9taill\xE9e\n https://cyber.gouv.fr/sites/default/files/2017/01/guide_hygiene_informatique_anssi.pdf" + implementation_groups_definition: + - ref_id: S + name: standard + description: null + - ref_id: R + name: "renforc\xE9" + description: null + requirement_nodes: + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:i + assessable: false + depth: 1 + ref_id: I + name: Sensibiliser et former + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:1 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:i + ref_id: '1' + name: "Former les \xE9quipes op\xE9rationnelles \xE0 la s\xE9curit\xE9 des syst\xE8\ + mes d\u2019information" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node4 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:1 + description: "Les \xE9quipes op\xE9rationnelles (administrateurs r\xE9seau,\ + \ s\xE9curit\xE9 et syst\xE8me, chefs de projet, d\xE9veloppeurs, RSSI) ont\ + \ des acc\xE8s privil\xE9gi\xE9s au syst\xE8me d\u2019information. Elles peuvent,\ + \ par inadvertance ou par m\xE9connaissance des cons\xE9quences de certaines\ + \ pratiques, r\xE9aliser des op\xE9rations g\xE9n\xE9ratrices de vuln\xE9\ + rabilit\xE9s.\nCitons par exemple l\u2019affectation de comptes disposant\ + \ de trop nombreux privil\xE8ges par rapport \xE0 la t\xE2che \xE0 r\xE9aliser,\ + \ l\u2019utilisation de comptes personnels pour ex\xE9cuter des services ou\ + \ t\xE2ches p\xE9riodiques, ou encore le choix de mots de passe peu robustes\ + \ donnant acc\xE8s \xE0 des comptes privil\xE9gi\xE9s.\nLes \xE9quipes op\xE9\ + rationnelles, pour \xEAtre \xE0 l\u2019\xE9tat de l\u2019art de la s\xE9curit\xE9\ + \ des syst\xE8mes d\u2019information, doivent donc suivre - \xE0 leur prise\ + \ de poste puis \xE0 intervalles r\xE9guliers - des formations sur :" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.educ + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn:intuitem:risk:function:doc-pol:doc.educ_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node5 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node4 + description: "la l\xE9gislation en vigueur ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:train.legal + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node6 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node4 + description: les principaux risques et menaces ; + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:train.threat + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node7 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node4 + description: "le maintien en condition de s\xE9curit\xE9 ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:train.mcs + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node8 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node4 + description: "l\u2019authentification et le contr\xF4le d\u2019acc\xE8s ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:train.iam + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node9 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node4 + description: "le param\xE9trage fin et le durcissement des syst\xE8mes ; " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:train.hardening + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node10 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node4 + description: "le cloisonnement r\xE9seau ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:train.network_security + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node11 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node4 + description: 'et la journalisation. ' + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:train.logging + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node12 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:1 + description: "Cette liste doit \xEAtre pr\xE9cis\xE9e selon le m\xE9tier des\ + \ collaborateurs en consid\xE9rant des aspects tels que l\u2019int\xE9gration\ + \ de la s\xE9curit\xE9 pour les chefs de projet, le d\xE9veloppement s\xE9\ + curis\xE9 pour les d\xE9veloppeurs, les r\xE9f\xE9rentiels de s\xE9curit\xE9\ + \ pour les RSSI, etc. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node13 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:1 + description: "Il est par ailleurs n\xE9cessaire de faire mention de clauses\ + \ sp\xE9cifiques dans les contrats de prestation pour garantir une formation\ + \ r\xE9guli\xE8re \xE0 la s\xE9curit\xE9 des syst\xE8mes d\u2019information\ + \ du personnel externe et notamment les infog\xE9rants." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.supplier + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:2 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:i + ref_id: '2' + name: "Sensibiliser les utilisateurs aux bonnes pratiques \xE9l\xE9mentaires\ + \ de s\xE9curit\xE9 informatique" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node15 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:2 + description: "Chaque utilisateur est un maillon \xE0 part enti\xE8re de la cha\xEE\ + ne des syst\xE8mes d\u2019information. \xC0 ce titre et d\xE8s son arriv\xE9\ + e dans l\u2019entit\xE9, il doit \xEAtre inform\xE9 des enjeux de s\xE9curit\xE9\ + , des r\xE8gles \xE0 respecter et des bons comportements \xE0 adopter en mati\xE8\ + re de s\xE9curit\xE9 des syst\xE8mes d\u2019information \xE0 travers des actions\ + \ de sensibilisation et de formation." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.accept + - urn:intuitem:risk:function:doc-pol:pol.educ + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn:intuitem:risk:function:doc-pol:doc.educ_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node16 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:2 + description: "Ces derni\xE8res doivent \xEAtre r\xE9guli\xE8res, adapt\xE9es\ + \ aux utilisateurs cibl\xE9s, peuvent prendre diff\xE9rentes formes (mails,\ + \ affichage, r\xE9unions, espace intranet d\xE9di\xE9, etc.) et aborder au\ + \ minimum les sujets suivants :" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node17 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:2 + description: "les objectifs et enjeux que rencontre l\u2019entit\xE9 en mati\xE8\ + re de s\xE9curit\xE9 des syst\xE8mes d\u2019information ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node18 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:2 + description: "les informations consid\xE9r\xE9es comme sensibles ;\n" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node19 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:2 + description: "les r\xE9glementations et obligations l\xE9gales ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node20 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:2 + description: "les r\xE8gles et consignes de s\xE9curit\xE9 r\xE9gissant l\u2019\ + activit\xE9 quotidienne : respect de la politique de s\xE9curit\xE9, non-connexion\ + \ d\u2019\xE9quipements personnels au r\xE9seau de l\u2019entit\xE9, non-divulgation\ + \ de mots de passe \xE0 un tiers, non-r\xE9utilisation de mots de passe professionnels\ + \ dans la sph\xE8re priv\xE9e et inversement, signalement d\u2019\xE9v\xE9\ + nements suspects, etc. ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node21 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:2 + description: "les moyens disponibles et participant \xE0 la s\xE9curit\xE9 du\ + \ syst\xE8me : verrouillage syst\xE9matique de la session lorsque l\u2019\ + utilisateur quitte son poste, outil de protection des mots de passe, etc. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node22 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:2 + description: "Pour renforcer ces mesures, l\u2019\xE9laboration et la signature\ + \ d\u2019une charte des moyens informatiques pr\xE9cisant les r\xE8gles et\ + \ consignes que doivent respecter les utilisateurs peut \xEAtre envisag\xE9\ + e." + annotation: "Utiliser le r\xE8glement int\xE9rieur en y annexant la charte d'utilisation\ + \ \xE9vite de devoir recueillir des signatures." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.internal_rules + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:3 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:i + ref_id: '3' + name: "Ma\xEEtriser les risques de l\u2019infog\xE9rance" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node24 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:3 + description: "Lorsqu\u2019une entit\xE9 souhaite externaliser son syst\xE8me\ + \ d\u2019information ou ses donn\xE9es, elle doit en amont \xE9valuer les\ + \ risques sp\xE9cifiques \xE0 l\u2019infog\xE9rance (ma\xEEtrise du syst\xE8\ + me d\u2019information, actions \xE0 distance, h\xE9bergement mutualis\xE9\ + , etc.) afin de prendre en compte, d\xE8s la r\xE9daction des exigences applicables\ + \ au futur prestataire, les besoins et mesures de s\xE9curit\xE9 adapt\xE9\ + s. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.supplier + - urn:intuitem:risk:function:doc-pol:doc.risk_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node25 + assessable: false + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:3 + description: "Les risques SSI inh\xE9rents \xE0 ce type de d\xE9marche peuvent\ + \ \xEAtre li\xE9s au contexte de l\u2019op\xE9ration d\u2019externalisation\ + \ mais aussi \xE0 des sp\xE9cifications contractuelles d\xE9ficientes ou incompl\xE8\ + tes.\nEn faveur du bon d\xE9roulement des op\xE9rations, il s\u2019agit donc\ + \ :" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node26 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node25 + description: "d\u2019\xE9tudier attentivement les conditions des offres, la\ + \ possibilit\xE9 de les adapter \xE0 des besoins sp\xE9cifiques et les limites\ + \ de responsabilit\xE9 du prestataire ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.supplier + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node27 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node25 + description: "d\u2019imposer une liste d\u2019exigences pr\xE9cises au prestataire\ + \ : r\xE9versibilit\xE9 du contrat, r\xE9alisation d\u2019audits, sauvegarde\ + \ et restitution des donn\xE9es dans un format ouvert normalis\xE9, maintien\ + \ \xE0 niveau de la s\xE9curit\xE9 dans le temps, etc." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.supplier + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node28 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:3 + description: "Pour formaliser ces engagements, le prestataire fournira au commanditaire\ + \ un plan d\u2019assurance s\xE9curit\xE9 (PAS) pr\xE9vu par l\u2019appel\ + \ d\u2019offre. Il s\u2019agit d\u2019un document contractuel d\xE9crivant\ + \ l\u2019ensemble des dispositions sp\xE9cifiques que les candidats s\u2019\ + engagent \xE0 mettre en \u0153uvre pour garantir le respect des exigences\ + \ de s\xE9curit\xE9 sp\xE9cifi\xE9es par l\u2019entit\xE9." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.sap + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node29 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:3 + description: "Le recours \xE0 des solutions ou outils non ma\xEEtris\xE9s (par\ + \ exemple h\xE9berg\xE9s dans le nuage) n\u2019est pas ici consid\xE9r\xE9\ + \ comme \xE9tant du ressort de l\u2019infog\xE9rance et par ailleurs d\xE9\ + conseill\xE9 en cas de traitement d\u2019informations sensibles." + annotation: "V\xE9rifier que les biens sensibles ne sont pas stock\xE9s dans\ + \ des environnements non ma\xEEtris\xE9s" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.asset_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ii + assessable: false + depth: 1 + ref_id: II + name: "Conna\xEEtre le syst\xE8me d'information" + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:4 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ii + ref_id: '4' + name: " Identifier les informations et serveurs les plus sensibles et maintenir\ + \ un sch\xE9ma du r\xE9seau" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node32 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:4 + description: "Chaque entit\xE9 poss\xE8de des donn\xE9es sensibles. Ces derni\xE8\ + res peuvent porter sur son activit\xE9 propre (propri\xE9t\xE9 intellectuelle,\ + \ savoir-faire, etc.) ou sur ses clients, administr\xE9s ou usagers (donn\xE9\ + es personnelles, contrats, etc.). Afin de pouvoir les prot\xE9ger efficacement,\ + \ il est indispensable de les identifier." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.asset + - urn:intuitem:risk:function:doc-pol:pol.classif + - urn:intuitem:risk:function:doc-pol:doc.asset_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node33 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:4 + description: "\xC0 partir de cette liste de donn\xE9es sensibles, il sera possible\ + \ de d\xE9terminer sur quels composants du syst\xE8me d\u2019information elles\ + \ se localisent (bases de donn\xE9es, partages de fichiers, postes de travail,\ + \ etc.). Ces composants correspondent aux serveurs et postes critiques pour\ + \ l\u2019entit\xE9. \xC0 ce titre, ils devront faire l\u2019objet de mesures\ + \ de s\xE9curit\xE9 sp\xE9cifiques pouvant porter sur la sauvegarde, la journalisation,\ + \ les acc\xE8s, etc." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.proc_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node34 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:4 + description: "Il s\u2019agit donc de cr\xE9er et de maintenir \xE0 jour un sch\xE9\ + ma simplifi\xE9 du r\xE9seau (ou cartographie) repr\xE9sentant les diff\xE9\ + rentes zones IP et le plan d\u2019adressage associ\xE9, les \xE9quipements\ + \ de routage et de s\xE9curit\xE9 (pare-feu, relais applicatifs, etc.) et\ + \ les interconnexions avec l\u2019ext\xE9rieur (Internet, r\xE9seaux priv\xE9\ + s, etc.) et les partenaires." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.is_map + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node35 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:4 + description: " Ce sch\xE9ma doit \xE9galement permettre de localiser les serveurs\ + \ d\xE9tenteurs d\u2019informations sensibles de l\u2019entit\xE9." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.is_map + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:5 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ii + ref_id: '5' + name: "Disposer d\u2019un inventaire exhaustif des comptes privil\xE9gi\xE9\ + s et le maintenir \xE0 jour" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node37 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:5 + description: "Les comptes b\xE9n\xE9ficiant de droits sp\xE9cifiques sont des\ + \ cibles privil\xE9gi\xE9es par les attaquants qui souhaitent obtenir un acc\xE8\ + s le plus large possible au syst\xE8me d\u2019information. Ils doivent donc\ + \ faire l\u2019objet d\u2019une attention toute particuli\xE8re. Il s\u2019\ + agit pour cela d\u2019effectuer un inventaire de ces comptes, de le mettre\ + \ \xE0 jour r\xE9guli\xE8rement et d\u2019y renseigner les informations suivantes\ + \ :" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.pam + - urn:intuitem:risk:function:doc-pol:doc.pam_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node38 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node37 + description: "les utilisateurs ayant un compte administrateur ou des droits\ + \ sup\xE9rieurs \xE0 ceux d\u2019un utilisateur standard sur le syst\xE8me\ + \ d\u2019information ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.pam + - urn:intuitem:risk:function:doc-pol:doc.pam_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node39 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node37 + description: "les utilisateurs disposant de suffisamment de droits pour acc\xE9\ + der aux r\xE9pertoires de travail des responsables ou de l\u2019ensemble des\ + \ utilisateurs ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.pam + - urn:intuitem:risk:function:doc-pol:doc.pam_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node40 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node37 + description: "les utilisateurs utilisant un poste non administr\xE9 par le service\ + \ informatique et qui ne fait pas l\u2019objet de mesures de s\xE9curit\xE9\ + \ \xE9dict\xE9es par la politique de s\xE9curit\xE9 g\xE9n\xE9rale de l\u2019\ + entit\xE9. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.pam + - urn:intuitem:risk:function:doc-pol:doc.pam_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node41 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:5 + description: "Il est fortement recommand\xE9 de proc\xE9der \xE0 une revue p\xE9\ + riodique de ces comptes afin de s\u2019assurer que les acc\xE8s aux \xE9l\xE9\ + ments sensibles (notamment les r\xE9pertoires de travail et la messagerie\ + \ \xE9lectronique des responsables) soient maitris\xE9s. Ces revues permettront\ + \ \xE9galement de supprimer les acc\xE8s devenus obsol\xE8tes suite au d\xE9\ + part d\u2019un utilisateur par exemple. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.recertification + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node42 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:5 + description: "Enfin, il est souhaitable de d\xE9finir et d\u2019utiliser une\ + \ nomenclature simple et claire pour identifier les comptes de services et\ + \ les comptes d\u2019administration. \nCela facilitera notamment leur revue\ + \ et la d\xE9tection d\u2019intrusion." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:6 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ii + ref_id: '6' + name: " Organiser les proc\xE9dures d\u2019arriv\xE9e, de d\xE9part et de changement\ + \ de fonction des utilisateurs" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node44 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:6 + description: "Les effectifs d\u2019une entit\xE9, qu\u2019elle soit publique\ + \ ou priv\xE9e, \xE9voluent sans cesse : arriv\xE9es, d\xE9parts, mobilit\xE9\ + \ interne. Il est par cons\xE9quent n\xE9cessaire que les droits et les acc\xE8\ + s au syst\xE8me d\u2019information soient mis \xE0 jour en fonction de ces\ + \ \xE9volutions. Il est notamment essentiel que l\u2019ensemble des droits\ + \ affect\xE9s \xE0 une personne soient r\xE9voqu\xE9s lors de son d\xE9part\ + \ ou en cas de changement de fonction. Les proc\xE9dures d\u2019arriv\xE9\ + e et de d\xE9part doivent donc \xEAtre d\xE9finies, en lien avec la fonction\ + \ ressources humaines. Elles doivent au minimum prendre en compte :" + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node45 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node44 + description: "la cr\xE9ation et la suppression des comptes informatiques et\ + \ bo\xEEtes aux lettres associ\xE9es ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn:intuitem:risk:function:doc-pol:proc.hr_security + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node46 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node44 + description: " la gestion des acc\xE8s physiques aux locaux (attribution, restitution\ + \ des badges et des cl\xE9s, etc.) ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.physical_security + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node47 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node44 + description: " l\u2019affectation des \xE9quipements mobiles (ordinateur portable,\ + \ cl\xE9 USB, disque dur, ordiphone, etc.) ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node48 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node44 + description: "la gestion des documents et informations sensibles (transfert\ + \ de mots de passe, changement des mots de passe ou des codes sur les syst\xE8\ + mes existants)." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.classif + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node49 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node44 + description: "Les proc\xE9dures doivent \xEAtre formalis\xE9es et mises \xE0\ + \ jour en fonction du contexte." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.proc_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:7 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ii + ref_id: '7' + name: "Autoriser la connexion au r\xE9seau de l\u2019entit\xE9 aux seuls \xE9\ + quipements ma\xEEtris\xE9s" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node51 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:7 + description: "Pour garantir la s\xE9curit\xE9 de son syst\xE8me d\u2019information,\ + \ l\u2019entit\xE9 doit ma\xEEtriser les \xE9quipements qui s\u2019y connectent,\ + \ chacun constituant un point d\u2019entr\xE9e potentiellement vuln\xE9rable.\ + \ Les \xE9quipements personnels (ordinateurs portables, tablettes, ordiphones,\ + \ etc.) sont, par d\xE9finition, difficilement ma\xEEtrisables dans la mesure\ + \ o\xF9 ce sont les utilisateurs qui d\xE9cident de leur niveau de s\xE9curit\xE9\ + . De la m\xEAme mani\xE8re, la s\xE9curit\xE9 des \xE9quipements dont sont\ + \ dot\xE9s les visiteurs \xE9chappe \xE0 tout contr\xF4le de l\u2019entit\xE9\ + ." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node52 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:7 + description: "Seule la connexion de terminaux ma\xEEtris\xE9s par l\u2019entit\xE9\ + \ doit \xEAtre autoris\xE9e sur ses diff\xE9rents r\xE9seaux d\u2019acc\xE8\ + s, qu\u2019ils soient filaire ou sans fil. Cette recommandation, avant tout\ + \ d\u2019ordre organisationnel, est souvent per\xE7ue comme inacceptable ou\ + \ r\xE9trograde. Cependant, y d\xE9roger fragilise le r\xE9seau de l\u2019\ + entit\xE9 et sert ainsi les int\xE9r\xEAts d\u2019un potentiel attaquant." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.accept + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node53 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:7 + description: "La sensibilisation des utilisateurs doit donc s\u2019accompagner\ + \ de solutions pragmatiques r\xE9pondant \xE0 leurs besoins. Citons par exemple\ + \ la mise \xE0 disposition d\u2019un r\xE9seau Wi-Fi avec SSID d\xE9di\xE9\ + \ pour les terminaux personnels ou visiteurs." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node54 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:7 + description: "Ces am\xE9nagements peuvent \xEAtre compl\xE9t\xE9s par des mesures\ + \ techniques telles que l\u2019authentification des postes sur le r\xE9seau\ + \ (par exemple \xE0 l\u2019aide du standard 802.1X ou d\u2019un \xE9quivalent)." + annotation: "802.1X est le standard incontournable pour le contr\xF4le d'acc\xE8\ + s r\xE9seau, aussi bien en LAN qu'en Wi-Fi." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn:intuitem:risk:function:doc-pol:tech.nac + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iii + assessable: false + depth: 1 + ref_id: III + name: "Authentifier et contr\xF4ler les acc\xE8s" + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:8 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iii + ref_id: '8' + name: "Identifier nomm\xE9ment chaque personne acc\xE9dant au syst\xE8me et\ + \ distinguer les r\xF4les utilisateur/administrateur" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node57 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:8 + description: "Afin de faciliter l\u2019attribution d\u2019une action sur le\ + \ syst\xE8me d\u2019information en cas d\u2019incident ou d\u2019identifier\ + \ d\u2019\xE9ventuels comptes compromis, les comptes d\u2019acc\xE8s doivent\ + \ \xEAtre nominatifs." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node58 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:8 + description: "L\u2019utilisation de comptes g\xE9n\xE9riques (ex : admin, user)\ + \ doit \xEAtre marginale et ceux-ci doivent pouvoir \xEAtre rattach\xE9s \xE0\ + \ un nombre limit\xE9 de personnes physiques.\nBien entendu, cette r\xE8gle\ + \ n\u2019interdit pas le maintien de comptes de service, rattach\xE9s \xE0\ + \ un processus informatique (ex : apache, mysqld).\nDans tous les cas, les\ + \ comptes g\xE9n\xE9riques et de service doivent \xEAtre g\xE9r\xE9s selon\ + \ une politique au moins aussi stricte que celle des comptes nominatifs. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn:intuitem:risk:function:doc-pol:proc.pam + - urn:intuitem:risk:function:doc-pol:doc.pam_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node59 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:8 + description: "Par ailleurs, un compte d\u2019administration nominatif, distinct\ + \ du compte utilisateur, doit \xEAtre attribu\xE9 \xE0 chaque administrateur.\ + \ Les identifiants et secrets d\u2019authentification doivent \xEAtre diff\xE9\ + rents (ex : pmartin comme identifiant utilisateur, adm-pmartin comme identifiant\ + \ administrateur). Ce compte d\u2019administration, disposant de plus de privil\xE8\ + ges, doit \xEAtre d\xE9di\xE9 exclusivement aux actions d\u2019administration.\ + \ De plus, il doit \xEAtre utilis\xE9 sur des environnements d\xE9di\xE9s\ + \ \xE0 l\u2019administration afin de ne pas laisser de traces de connexion\ + \ ni de condensat de mot de passe sur un environnement plus expos\xE9." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn:intuitem:risk:function:doc-pol:proc.pam + - urn:intuitem:risk:function:doc-pol:doc.pam_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node60 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:8 + description: "D\xE8s que possible la journalisation li\xE9e aux comptes (ex\ + \ : relev\xE9 des connexions r\xE9ussies/\xE9chou\xE9es) doit \xEAtre activ\xE9\ + e." + annotation: "Un EDR pourra g\xE9rer la journalisation des \xE9checs de connexion." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.monitor + - urn:intuitem:risk:function:doc-pol:tech.access_log + - urn:intuitem:risk:function:doc-pol:tech.edr + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:9 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iii + ref_id: '9' + name: "Attribuer les bons droits sur les ressources sensibles du syst\xE8me\ + \ d\u2019information" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node62 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:9 + description: "Certaines des ressources du syst\xE8me peuvent constituer une\ + \ source d\u2019information pr\xE9cieuse aux yeux d\u2019un attaquant (r\xE9\ + pertoires contenant des donn\xE9es sensibles, bases de donn\xE9es, bo\xEE\ + tes aux lettres \xE9lectroniques, etc.). Il est donc primordial d\u2019\xE9\ + tablir une liste pr\xE9cise de ces ressources et pour chacune d\u2019entre\ + \ elles :" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.asset_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node63 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node62 + description: "de d\xE9finir quelle population peut y avoir acc\xE8s ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node64 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node62 + description: "de contr\xF4ler strictement son acc\xE8s, en s\u2019assurant que\ + \ les utilisateurs sont authentifi\xE9s et font partie de la population cibl\xE9\ + e ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn:intuitem:risk:function:doc-pol:proc.pam + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node65 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node62 + description: "d\u2019\xE9viter sa dispersion et sa duplication \xE0 des endroits\ + \ non ma\xEEtris\xE9s ou soumis \xE0 un contr\xF4le d\u2019acc\xE8s moins\ + \ strict." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.accept + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node66 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:9 + description: "Par exemple, les r\xE9pertoires des administrateurs regroupant\ + \ de nombreuses informations sensibles doivent faire l\u2019objet d\u2019\ + un contr\xF4le d\u2019acc\xE8s pr\xE9cis." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node67 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:9 + description: "Il en va de m\xEAme pour les informations sensibles pr\xE9sentes\ + \ sur des partages r\xE9seau : exports de fichiers de configuration, documentation\ + \ technique du syst\xE8me d\u2019information, bases de donn\xE9es m\xE9tier,\ + \ etc." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node68 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:9 + description: "Une revue r\xE9guli\xE8re des droits d\u2019acc\xE8s doit par\ + \ ailleurs \xEAtre r\xE9alis\xE9e afin d\u2019identifier les acc\xE8s non\ + \ autoris\xE9s." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.recertification + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:10 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iii + ref_id: '10' + name: "D\xE9finir et v\xE9rifier des r\xE8gles de choix et de dimensionnement\ + \ des mots de passe" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node70 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:10 + description: "L\u2019ANSSI \xE9nonce un ensemble de r\xE8gles et de bonnes pratiques\ + \ en mati\xE8re de choix et de dimensionnement des mots de passe. Parmi les\ + \ plus critiques de ces r\xE8gles figure la sensibilisation des utilisateurs\ + \ aux risques li\xE9s au choix d\u2019un mot de passe qui serait trop facile\ + \ \xE0 deviner, ou encore la r\xE9utilisation de mots de passe d\u2019une\ + \ application \xE0 l\u2019autre et plus particuli\xE8rement entre messageries\ + \ personnelles et professionnelles." + annotation: "Voir le guide ANSSI : Recommandations relatives \xE0 l'authentification\ + \ multifacteur et aux mots de passe \nDepuis 2024, il est important de prendre\ + \ en compte les recommandations NIST-SP800-63B" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node71 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:10 + description: "Pour encadrer et v\xE9rifier l\u2019application de ces r\xE8gles\ + \ de choix et de dimensionnement, l\u2019entit\xE9 pourra recourir \xE0 diff\xE9\ + rentes mesures parmi lesquelles :" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node72 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node71 + description: "le blocage des comptes \xE0 l\u2019issue de plusieurs \xE9checs\ + \ de connexion ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node73 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node71 + description: "la d\xE9sactivation des options de connexion anonyme ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node74 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node71 + description: " l\u2019utilisation d\u2019un outil d\u2019audit de la robustesse\ + \ des mots de passe." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node75 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:10 + description: "En amont de telles proc\xE9dures, un effort de communication visant\ + \ \xE0 expliquer le sens de ces r\xE8gles et \xE9veiller les consciences sur\ + \ leur importance est fondamental." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:11 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iii + ref_id: '11' + name: "Prot\xE9ger les mots de passe stock\xE9s sur les syst\xE8mes" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node77 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:11 + description: "La complexit\xE9, la diversit\xE9 ou encore l\u2019utilisation\ + \ peu fr\xE9quente de certains mots de passe, peuvent encourager leur stockage\ + \ sur un support physique\n(m\xE9mo, post-it) ou num\xE9rique (fichiers de\ + \ mots de passe, envoi par mail \xE0 soi-m\xEAme, recours aux boutons \xAB\ + \ Se souvenir du mot de passe \xBB) afin de pallier\ntout oubli ou perte.\n\ + Or, les mots de passe sont une cible privil\xE9gi\xE9e par les attaquants\ + \ d\xE9sireux d\u2019acc\xE9der au syst\xE8me, que cela fasse suite \xE0 un\ + \ vol ou \xE0 un \xE9ventuel partage du support de stockage. C\u2019est pourquoi\ + \ ils doivent imp\xE9rativement \xEAtre prot\xE9g\xE9s au moyen de solutions\ + \ s\xE9curis\xE9es au premier rang desquelles figurent l\u2019utilisation\ + \ d\u2019un coffre-fort num\xE9rique et le recours \xE0 des m\xE9canismes\ + \ de chiffrement." + annotation: "En 2025, l'usage d'un gestionnaire de mots de passe est primordiale.\ + \ Les mots de passe doivent \xEAtre g\xE9n\xE9r\xE9s et avoir une entropie\ + \ sup\xE9rieure \xE0 100 bits." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.password_manager + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node78 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:11 + description: "Bien entendu, le choix d\u2019un mot de passe pour ce coffre-fort\ + \ num\xE9rique doit respecter les r\xE8gles \xE9nonc\xE9es pr\xE9c\xE9demment\ + \ et \xEAtre m\xE9moris\xE9 par l\u2019utilisateur, qui n\u2019a plus que\ + \ celui-ci \xE0 retenir." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:12 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iii + ref_id: '12' + name: "Changer les \xE9l\xE9ments d\u2019authentification par d\xE9faut sur\ + \ les \xE9quipements et services" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node80 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:12 + description: "Il est imp\xE9ratif de partir du principe que les configurations\ + \ par d\xE9faut des syst\xE8mes d\u2019information sont syst\xE9matiquement\ + \ connues des attaquants, quand bien m\xEAme celles-ci ne le sont pas du grand\ + \ public. Ces configurations se r\xE9v\xE8lent (trop) souvent triviales (mot\ + \ de passe identique \xE0 l\u2019identifiant, mal dimensionn\xE9 ou commun\ + \ \xE0 l\u2019ensemble des \xE9quipements et services par exemple) et sont,\ + \ la plupart du temps, faciles \xE0 obtenir pour des attaquants capables de\ + \ se faire passer pour un utilisateur l\xE9gitime.\nLes \xE9l\xE9ments d\u2019\ + authentification par d\xE9faut des composants du syst\xE8me doivent donc \xEA\ + tre modifi\xE9s d\xE8s leur installation et, s\u2019agissant de mots de passe,\ + \ \xEAtre conformes aux recommandations pr\xE9c\xE9dentes en mati\xE8re de\ + \ choix, de dimensionnement et de stockage." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node81 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:12 + description: "Si le changement d\u2019un identifiant par d\xE9faut se r\xE9\ + v\xE8le impossible pour cause, par exemple, de mot de passe ou certificat\ + \ \xAB en dur \xBB dans un \xE9quipement, ce probl\xE8me critique doit \xEA\ + tre signal\xE9 au distributeur du produit afin que cette vuln\xE9rabilit\xE9\ + \ soit corrig\xE9e au plus vite." + annotation: Inacceptable en 2025 + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node82 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:12 + description: "Afin de limiter les cons\xE9quences d\u2019une compromission,\ + \ il est par ailleurs essentiel, apr\xE8s changement des \xE9l\xE9ments d\u2019\ + authentification par d\xE9faut, de proc\xE9der \xE0 leur renouvellement r\xE9\ + gulier." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:13 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iii + ref_id: '13' + name: "Privil\xE9gier lorsque c\u2019est possible une authentification forte" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node84 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:13 + description: "Il est vivement recommand\xE9 de mettre en \u0153uvre une authentification\ + \ forte n\xE9cessitant l\u2019utilisation de deux facteurs d\u2019authentification\ + \ diff\xE9rents parmi les suivants :\n> quelque chose que je sais (mot de\ + \ passe, trac\xE9 de d\xE9verrouillage, signature) ;\n> quelque chose que\ + \ je poss\xE8de (carte \xE0 puce, jeton USB, carte magn\xE9tique, RFID, un\ + \ t\xE9l\xE9phone pour recevoir un code SMS) ;\n> quelque chose que je suis\ + \ (une empreinte biom\xE9trique)." + annotation: "En 2025 cette pr\xE9conisation s'impose partout." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node85 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:13 + description: "Les cartes \xE0 puces doivent \xEAtre privil\xE9gi\xE9es ou, \xE0\ + \ d\xE9faut, les m\xE9canismes de mots de passe \xE0 usage unique (ou One\ + \ Time Password) avec jeton physique. Les op\xE9rations cryptographiques mises\ + \ en place dans ces deux facteurs offrent g\xE9n\xE9ralement de bonnes garanties\ + \ de s\xE9curit\xE9.\nLes cartes \xE0 puce peuvent \xEAtre plus complexes\ + \ \xE0 mettre en place car n\xE9cessitant une infrastructure de gestion des\ + \ cl\xE9s adapt\xE9e. Elles pr\xE9sentent cependant l\u2019avantage d\u2019\ + \xEAtre r\xE9utilisables \xE0 plusieurs fins : chiffrement, authentification\ + \ de messagerie, authentification sur le poste de travail, etc." + annotation: "L'utilisation du smartphone comme authentifiant s'av\xE8re en g\xE9\ + n\xE9ral plus pratique que la carte \xE0 puce. Celle-ci reste incontournable\ + \ pour les environnements les plus sensibles." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.access + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iv + assessable: false + depth: 1 + ref_id: IV + name: "S\xE9curiser les postes" + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:14 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iv + ref_id: '14' + name: "Mettre en place un niveau de s\xE9curit\xE9 minimal sur l\u2019ensemble\ + \ du parc informatique" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node88 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:14 + description: "L\u2019utilisateur plus ou moins au fait des bonnes pratiques\ + \ de s\xE9curit\xE9 informatique est, dans de tr\xE8s nombreux cas, la premi\xE8\ + re porte d\u2019entr\xE9e des attaquants vers le syst\xE8me. Il est donc fondamental\ + \ de mettre en place un niveau de s\xE9curit\xE9 minimal sur l\u2019ensemble\ + \ du parc informatique de l\u2019entit\xE9 (postes utilisateurs, serveurs,\ + \ imprimantes, t\xE9l\xE9phones, p\xE9riph\xE9riques USB, etc.) en impl\xE9\ + mentant les mesures suivantes :" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node89 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node88 + description: "limiter les applications install\xE9es et modules optionnels des\ + \ navigateurs web aux seuls n\xE9cessaires ;" + annotation: Par exemple SCCM + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.uem + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node90 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node88 + description: "doter les postes utilisateurs d\u2019un pare-feu local et d\u2019\ + un anti-virus (ceux-ci sont parfois inclus dans le syst\xE8me d\u2019exploitation)\ + \ ;" + annotation: "Choisir un antivirus int\xE9grant la fonction firewall\nUn EDR\ + \ est \xE9galement recommand\xE9 en 2025" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.malware + - urn:intuitem:risk:function:doc-pol:tech.endpoint_protection + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node91 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node88 + description: "chiffrer les partitions o\xF9 sont stock\xE9es les donn\xE9es\ + \ des utilisateurs ;" + annotation: "Par exemple Bitlocker, CRYHOD, MacOS\u2026" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.disk_encryption + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node92 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node88 + description: "d\xE9sactiver les ex\xE9cutions automatiques (autorun)." + annotation: "GPO de d\xE9sactivation de l'autorun" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.gpo + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node93 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:14 + description: "En cas de d\xE9rogation n\xE9cessaire aux r\xE8gles de s\xE9curit\xE9\ + \ globales applicables aux postes, ceux-ci doivent \xEAtre isol\xE9s du syst\xE8\ + me (s\u2019il est impossible de mettre \xE0 jour certaines applications pour\ + \ des raisons de compatibilit\xE9 par exemple)." + annotation: "Cloisonnement des \xE9quipements sp\xE9cifiques" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node94 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:14 + description: "Les donn\xE9es vitales au bon fonctionnement de l\u2019entit\xE9\ + \ que d\xE9tiennent les postes utilisateurs et les serveurs doivent faire\ + \ l\u2019objet de sauvegardes r\xE9guli\xE8res et stock\xE9es sur des \xE9\ + quipements d\xE9connect\xE9s, et leur restauration doit \xEAtre v\xE9rifi\xE9\ + e de mani\xE8re p\xE9riodique. En effet, de plus en plus de petites structures\ + \ font l\u2019objet d\u2019attaques rendant ces donn\xE9es indisponibles (par\ + \ exemple pour exiger en contrepartie de leur restitution le versement d\u2019\ + une somme cons\xE9quente (ran\xE7ongiciel))." + annotation: "Cette recommandation s'impose en 2025 pour couvrir le risque ransomware.\n\ + Utiliser un syst\xE8me de sauvegarde immutable sur site ou dans le cloud.\n\ + Il est important de v\xE9rifier p\xE9riodiquement l'efficacit\xE9 r\xE9elle\ + \ des sauvegardes au moyen de tests de r\xE9silience, consistant \xE0 simuler\ + \ un effacement de toutes les informations." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn:intuitem:risk:function:doc-pol:tech.immutable_backup + - urn:intuitem:risk:function:doc-pol:pol.bcp + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:15 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iv + ref_id: '15' + name: "Se prot\xE9ger des menaces relatives \xE0 l\u2019utilisation de supports\ + \ amovibles" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node96 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:15 + description: "Les supports amovibles peuvent \xEAtre utilis\xE9s afin de propager\ + \ des virus, voler des informations sensibles et strat\xE9giques ou encore\ + \ compromettre le r\xE9seau de l\u2019entit\xE9. De tels agissements peuvent\ + \ avoir des cons\xE9quences d\xE9sastreuses pour l\u2019activit\xE9 de la\ + \ structure cibl\xE9e.\nS\u2019il n\u2019est pas question d\u2019interdire\ + \ totalement l\u2019usage de supports amovibles au sein de l\u2019entit\xE9\ + , il est n\xE9anmoins n\xE9cessaire de traiter ces risques en identifiant\ + \ des mesures ad\xE9quates et en sensibilisant les utilisateurs aux risques\ + \ que ces supports peuvent v\xE9hiculer." + annotation: "EN 2025 il est viable d'interdire totalement le transfert d'information\ + \ par cl\xE9 USB dans le cas g\xE9n\xE9ral, avec une gestion d'exceptions." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node97 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:15 + description: "Il convient notamment de proscrire le branchement de cl\xE9s USB\ + \ inconnues (ramass\xE9es dans un lieu public par exemple) et de limiter au\ + \ maximum celui de cl\xE9s non ma\xEEtris\xE9es (dont on connait la provenance\ + \ mais pas l\u2019int\xE9grit\xE9) sur le syst\xE8me d\u2019information \xE0\ + \ moins, dans ce dernier cas, de faire inspecter leur contenu par l\u2019\ + antivirus du poste de travail." + annotation: "Choisir un antivirus int\xE9grant la gestion des ports USB" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.endpoint_protection + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node98 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:15 + description: "Sur les postes utilisateur, il est recommand\xE9 d\u2019utiliser\ + \ des solutions permettant d\u2019interdire l\u2019ex\xE9cution de programmes\ + \ sur les p\xE9riph\xE9riques amovibles (par exemple Applocker sous Windows\ + \ ou des options de montage noexec sous Unix). " + annotation: "Choisir un antivirus int\xE9grant la gestion des ports USB" + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.endpoint_protection + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node99 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:15 + description: "Lors de la fin de vie des supports amovibles, il sera n\xE9cessaire\ + \ d\u2019impl\xE9menter et de respecter une proc\xE9dure de mise au rebut\ + \ stricte pouvant aller jusqu\u2019\xE0 leur destruction s\xE9curis\xE9e afin\ + \ de limiter la fuite d\u2019informations sensibles." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.disposal + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:16 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iv + ref_id: '16' + name: "Utiliser un outil de gestion centralis\xE9e afin d\u2019homog\xE9n\xE9\ + iser les politiques de s\xE9curit\xE9" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node101 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:16 + description: "La s\xE9curit\xE9 du syst\xE8me d\u2019information repose sur\ + \ la s\xE9curit\xE9 du maillon le plus faible. Il est donc n\xE9cessaire d\u2019\ + homog\xE9n\xE9iser la gestion des politiques de s\xE9curit\xE9 s\u2019appliquant\ + \ \xE0 l\u2019ensemble du parc informatique de l\u2019entit\xE9.\nL\u2019\ + application de ces politiques (gestion des mots de passe, restrictions de\ + \ connexions sur certains postes sensibles, configuration des navigateurs\ + \ Web, etc.) doit \xEAtre simple et rapide pour les administrateurs, en vue\ + \ notamment de faciliter la mise en \u0153uvre de contre-mesures en cas de\ + \ crise informatique.\nPour cela, l\u2019entit\xE9 pourra se doter d\u2019\ + un outil de gestion centralis\xE9e (par exemple Active Directory en environnement\ + \ Microsoft) auquel il s\u2019agit d\u2019inclure le plus grand nombre d\u2019\ + \xE9quipements informatiques possible. Les postes de travail et les serveurs\ + \ sont concern\xE9s par cette mesure qui n\xE9cessite \xE9ventuellement en\ + \ amont un travail d\u2019harmonisation des choix de mat\xE9riels et de syst\xE8\ + mes d\u2019exploitation.\nAinsi, des politiques de durcissement du syst\xE8\ + me d\u2019exploitation ou d\u2019applications pourront facilement s\u2019\ + appliquer depuis un point central tout en favorisant la r\xE9activit\xE9 attendue\ + \ en cas de besoin de reconfiguration." + annotation: 'AD est incontournable en environnement Windows. + + De nombreuses solutions multi-plateformes existent.' + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.uem + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:17 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iv + ref_id: '17' + name: Activer et configurer le pare-feu local des postes de travail + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node103 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:17 + description: "Apr\xE8s avoir r\xE9ussi \xE0 prendre le contr\xF4le d\u2019un\ + \ poste de travail (\xE0 cause, par exemple, d\u2019une vuln\xE9rabilit\xE9\ + \ pr\xE9sente dans le navigateur Internet), un attaquant cherchera souvent\ + \ \xE0 \xE9tendre son intrusion aux autres postes de travail pour, in fine,\ + \ acc\xE9der aux documents des utilisateurs.\nAfin de rendre plus difficile\ + \ ce d\xE9placement lat\xE9ral de l\u2019attaquant, il est n\xE9cessaire d\u2019\ + activer le pare-feu local des postes de travail au moyen de logiciels int\xE9\ + gr\xE9s (pare-feu local Windows) ou sp\xE9cialis\xE9s.\nLes flux de poste\ + \ \xE0 poste sont en effet tr\xE8s rares dans un r\xE9seau bureautique classique\ + \ : les fichiers sont stock\xE9s dans des serveurs de fichiers, les applications\ + \ accessibles sur des serveurs m\xE9tier, etc." + annotation: "Choisir un antivirus int\xE9grant la fonction firewall.\nUn EDR\ + \ est \xE9galement recommand\xE9 en 2025." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.endpoint_protection + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node104 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:17 + description: "Le filtrage le plus simple consiste \xE0 bloquer l\u2019acc\xE8\ + s aux ports d\u2019administration par d\xE9faut des postes de travail (ports\ + \ TCP 135, 445 et 3389 sous Windows, port TCP 22 sous Unix), except\xE9 depuis\ + \ les ressources explicitement identifi\xE9es (postes d\u2019administration\ + \ et d\u2019assistance utilisateur, \xE9ventuels serveurs de gestion requ\xE9\ + rant l\u2019acc\xE8s \xE0 des partages r\xE9seau sur les postes, etc.)." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.endpoint_protection + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node105 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:17 + description: "Une analyse des flux entrants utiles (administration, logiciels\ + \ d\u2019infrastructure, applications particuli\xE8res, etc.) doit \xEAtre\ + \ men\xE9e pour d\xE9finir la liste des autorisations \xE0 configurer. Il\ + \ est pr\xE9f\xE9rable de bloquer l\u2019ensemble des flux par d\xE9faut et\ + \ de n\u2019autoriser que les services n\xE9cessaires depuis les \xE9quipements\ + \ correspondants (\xAB liste blanche \xBB)." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.flow_matrix + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node106 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:17 + description: "Le pare-feu doit \xE9galement \xEAtre configur\xE9 pour journaliser\ + \ les flux bloqu\xE9s, et ainsi identifier les erreurs de configuration d\u2019\ + applications ou les tentatives d\u2019intrusion." + annotation: "Les antivirus et EDR g\xE8rent nativement la d\xE9tection des incidents\ + \ r\xE9seau." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.endpoint_protection + - urn:intuitem:risk:function:doc-pol:tech.edr + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:18 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:iv + ref_id: '18' + name: "Chiffrer les donn\xE9es sensibles transmises par voie Internet" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node108 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:18 + description: "Internet est un r\xE9seau sur lequel il est quasi impossible d\u2019\ + obtenir des garanties sur le trajet que vont emprunter les donn\xE9es que\ + \ l\u2019on y envoie. Il est donc tout \xE0 fait possible qu\u2019un attaquant\ + \ se trouve sur le trajet de donn\xE9es transitant entre deux correspondants.\n\ + Toutes les donn\xE9es envoy\xE9es par courriel ou transmises au moyen d\u2019\ + outils d\u2019h\xE9bergement en ligne (Cloud) sont par cons\xE9quent vuln\xE9\ + rables. Il s\u2019agit donc de proc\xE9der \xE0 leur chiffrement syst\xE9\ + matique avant de les adresser \xE0 un correspondant ou de les h\xE9berger." + annotation: "On pourra utiliser 7zip, ZOD, pour l'envoi par mail.\nLes messageries\ + \ instantan\xE9es s\xE9curis\xE9es comme Signal, Olvid, s'av\xE8rent encore\ + \ plus pratiques." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.transfer + - urn:intuitem:risk:function:doc-pol:pol.crypto + - urn:intuitem:risk:function:doc-pol:tech.file_encryption + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node109 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:18 + description: "La transmission du secret (mot de passe, cl\xE9, etc.) permettant\ + \ alors de d\xE9chiffrer les donn\xE9es, si elle est n\xE9cessaire, doit \xEA\ + tre effectu\xE9e via un canal de confiance ou, \xE0 d\xE9faut, un canal distinct\ + \ du canal de transmission des donn\xE9es. Ainsi, si les donn\xE9es chiffr\xE9\ + es sont transmises par courriel, une remise en main propre du mot de passe\ + \ ou, \xE0 d\xE9faut, par t\xE9l\xE9phone doit \xEAtre privil\xE9gi\xE9e." + annotation: "Les messageries instantan\xE9es s\xE9curis\xE9es comme Signal ou\ + \ Olvid sont une tr\xE8s bonne solution." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.transfer + - urn:intuitem:risk:function:doc-pol:pol.crypto + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:v + assessable: false + depth: 1 + ref_id: V + name: "S\xE9curiser le r\xE9seau" + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:19 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:v + ref_id: '19' + name: "Segmenter le r\xE9seau et mettre en place un cloisonnement entre ces\ + \ zones" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node112 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:19 + description: "Lorsque le r\xE9seau est \xAB \xE0 plat \xBB, sans aucun m\xE9\ + canisme de cloisonnement, chaque machine du r\xE9seau peut acc\xE9der \xE0\ + \ n\u2019importe quelle autre machine. La compromission de l\u2019une d\u2019\ + elles met alors en p\xE9ril l\u2019ensemble des machines connect\xE9es. Un\ + \ attaquant peut ainsi compromettre un poste utilisateur et ensuite \xAB rebondir\ + \ \xBB jusqu\u2019\xE0 des serveurs critiques.\nIl est donc important, d\xE8\ + s la conception de l\u2019architecture r\xE9seau, de raisonner par segmentation\ + \ en zones compos\xE9es de syst\xE8mes ayant des besoins de s\xE9curit\xE9\ + \ homog\xE8nes. On pourra par exemple regrouper distinctement des serveurs\ + \ d\u2019infrastructure, des serveurs m\xE9tiers, des postes de travail utilisateurs,\ + \ des postes de travail administrateurs, des postes de t\xE9l\xE9phonie sur\ + \ IP, etc." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node113 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:19 + description: "Une zone se caract\xE9rise alors par des VLAN et des sous-r\xE9\ + seaux IP d\xE9di\xE9s voire par des infrastructures d\xE9di\xE9es selon sa\ + \ criticit\xE9. Ainsi, des mesures de cloisonnement telles qu\u2019un filtrage\ + \ IP \xE0 l\u2019aide d\u2019un pare-feu peuvent \xEAtre mises en place entre\ + \ les diff\xE9rentes zones. On veillera en particulier \xE0 cloisonner autant\ + \ que possible les \xE9quipements et flux associ\xE9s aux t\xE2ches d\u2019\ + administration." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.vlan + - urn:intuitem:risk:function:doc-pol:tech.network_firewall + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node114 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:19 + description: "Pour les r\xE9seaux dont le cloisonnement a posteriori ne serait\ + \ pas ais\xE9, il est recommand\xE9 d\u2019int\xE9grer cette d\xE9marche dans\ + \ toute nouvelle extension du r\xE9seau ou \xE0 l\u2019occasion d\u2019un\ + \ renouvellement d\u2019\xE9quipements." + annotation: La microsegmentation permet d'agir a posteriori quand il n'est pas + possible de cloisonner par VLAN. + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.microsegmentation + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:20 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:v + ref_id: '20' + name: "S'assurer de la s\xE9curit\xE9 des r\xE9seaux d'acc\xE8s Wi-Fi et de\ + \ la s\xE9paration des usages" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node116 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:20 + description: "L\u2019usage du Wi-Fi en milieu professionnel est aujourd\u2019\ + hui d\xE9mocratis\xE9 mais pr\xE9sente toujours des risques de s\xE9curit\xE9\ + \ bien sp\xE9cifiques : faibles garanties en mati\xE8re de disponibilit\xE9\ + , pas de ma\xEEtrise de la zone de couverture pouvant mener \xE0 une attaque\ + \ hors du p\xE9rim\xE8tre g\xE9ographique de l\u2019entit\xE9, configuration\ + \ par d\xE9faut des points d\u2019acc\xE8s peu s\xE9curis\xE9e, etc.\nLa segmentation\ + \ de l\u2019architecture r\xE9seau doit permettre de limiter les cons\xE9\ + quences d\u2019une intrusion par voie radio \xE0 un p\xE9rim\xE8tre d\xE9\ + termin\xE9 du syst\xE8me d\u2019information. Les flux en provenance des postes\ + \ connect\xE9s au r\xE9seau d\u2019acc\xE8s Wi-Fi doivent donc \xEAtre filtr\xE9\ + s et restreints aux seuls flux n\xE9cessaires." + annotation: "Un acc\xE8s Wi-Fi correctement s\xE9curis\xE9 en 2025 est \xE9\ + quivalent \xE0 un acc\xE8s par c\xE2ble." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.vlan + - urn:intuitem:risk:function:doc-pol:tech.network_firewall + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node117 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:20 + description: "De plus, il est important d\u2019avoir recours prioritairement\ + \ \xE0 un chiffrement robuste (mode WPA2, algorithme AES CCMP) et \xE0 une\ + \ authentification centralis\xE9e, si possible par certificats clients des\ + \ machines." + annotation: "WPA3-Entreprise est.\xE0 l'\xE9tat de l'art. WPA2-Entreprise est\ + \ acceptable, mais on pr\xE9voiera une migration vers WPA3-Entreprise.\nWPA3/WPA2-Entreprise\ + \ s'appuient sur la gestion de certificats poste de travail.\nSur Windows\ + \ Server on pourra utiliser directement NPS (Network Policy Server). Il existe\ + \ d'autres solutions comme CISCO ISE, Ivanti, FreeRadius, ..." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.wifi_sec + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node118 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:20 + description: "La protection du r\xE9seau Wi-Fi par un mot de passe unique et\ + \ partag\xE9 est d\xE9conseill\xE9e. \xC0 d\xE9faut, il doit \xEAtre complexe\ + \ et son renouvellement pr\xE9vu mais il ne doit en aucun cas \xEAtre diffus\xE9\ + \ \xE0 des tiers non autoris\xE9s." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node119 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:20 + description: "Les points d\u2019acc\xE8s doivent par ailleurs \xEAtre administr\xE9\ + s de mani\xE8re s\xE9curis\xE9e (ex : interface d\xE9di\xE9e, modification\ + \ du mot de passe administrateur par d\xE9faut)." + annotation: "Un NOC (Network Operating Center) est la tour de contr\xF4le du\ + \ r\xE9seau, et doit \xEAtre b\xE2ti sur un r\xE9seau d\xE9di\xE9." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node120 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:20 + description: "Enfin, toute connexion Wi-Fi de terminaux personnels ou visiteurs\ + \ (ordinateurs portables, ordiphones) doit \xEAtre s\xE9par\xE9e des connexions\ + \ Wi-Fi des terminaux de l\u2019entit\xE9 (ex : SSID et VLAN distincts, acc\xE8\ + s Internet d\xE9di\xE9)." + annotation: "Un r\xE9seau d\xE9di\xE9 pour les visiteurs \xE9vite tout risque\ + \ de confusion." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:21 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:v + ref_id: '21' + name: "Utiliser des protocoles r\xE9seaux s\xE9curis\xE9s d\xE8s qu'ils existent" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node122 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:21 + description: "Si aujourd\u2019hui la s\xE9curit\xE9 n\u2019est plus optionnelle,\ + \ cela n\u2019a pas toujours \xE9t\xE9 le cas. C\u2019est pourquoi de nombreux\ + \ protocoles r\xE9seaux ont d\xFB \xE9voluer pour int\xE9grer cette composante\ + \ et r\xE9pondre aux besoins de confidentialit\xE9 et d\u2019int\xE9grit\xE9\ + \ qu\u2019impose l\u2019\xE9change de donn\xE9es. Les protocoles r\xE9seaux\ + \ s\xE9curis\xE9s doivent \xEAtre utilis\xE9s d\xE8s que possible, que ce\ + \ soit sur des r\xE9seaux publics (Internet par exemple) ou sur le r\xE9seau\ + \ interne de l\u2019entit\xE9.\nBien qu\u2019il soit difficile d\u2019en dresser\ + \ une liste exhaustive, les protocoles les plus courants reposent sur l\u2019\ + utilisation de TLS et sont souvent identifiables par l\u2019ajout de la lettre\ + \ \xAB s \xBB (pour secure en anglais) \xE0 l\u2019acronyme du protocole.\ + \ Citons par exemple HTTPS pour la navigation Web ou IMAPS, SMTPS ou POP3S\ + \ pour la messagerie.\nD\u2019autres protocoles ont \xE9t\xE9 con\xE7us de\ + \ mani\xE8re s\xE9curis\xE9e d\xE8s la conception pour se substituer \xE0\ + \ d\u2019anciens protocoles non s\xE9curis\xE9s. Citons par exemple SSh (Secure\ + \ SHell) venu remplacer les protocoles de communication historiques TELNET\ + \ et RLOGIN." + annotation: "EN 2025 les flux non chiffr\xE9s peuvent \xEAtre quasiment \xE9\ + radiqu\xE9s." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.transfer + - urn:intuitem:risk:function:doc-pol:pol.crypto + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:22 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:v + ref_id: '22' + name: "Mettre en place une passerelle d'acc\xE8s s\xE9curis\xE9 \xE0 Internet" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node124 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:22 + description: "L\u2019acc\xE8s \xE0 Internet, devenu indispensable, pr\xE9sente\ + \ des risques importants : sites Web h\xE9bergeant du code malveillant, t\xE9\ + l\xE9chargement de fichiers \xAB toxiques \xBB et, par cons\xE9quent, possible\ + \ prise de contr\xF4le du terminal, fuite de donn\xE9es sensibles, etc. Pour\ + \ s\xE9curiser cet usage, il est donc indispensable que les terminaux utilisateurs\ + \ n\u2019aient pas d\u2019acc\xE8s r\xE9seau direct \xE0 Internet." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node125 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:22 + description: "C\u2019est pourquoi il est recommand\xE9 de mettre en \u0153uvre\ + \ une passerelle s\xE9curis\xE9e d\u2019acc\xE8s \xE0 Internet comprenant\ + \ au minimum un pare-feu au plus pr\xE8s de l\u2019acc\xE8s Internet pour\ + \ filtrer les connexions et un serveur mandataire (proxy) embarquant diff\xE9\ + rents m\xE9canismes de s\xE9curit\xE9. Celui-ci assure notamment l\u2019authentification\ + \ des utilisateurs et la journalisation des requ\xEAtes." + annotation: "Certains firewalls int\xE8grent un proxy Internet. Il est n\xE9\ + anmoins recommand\xE9 d'utiliser des \xE9quipements distincts, et de placer\ + \ le proxy dans une DMZ." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.network_firewall + - urn:intuitem:risk:function:doc-pol:tech.web_proxy + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node126 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:22 + description: "Des m\xE9canismes compl\xE9mentaires sur le serveur mandataire\ + \ pourront \xEAtre activ\xE9s selon les besoins de l\u2019entit\xE9 : analyse\ + \ antivirus du contenu, filtrage par cat\xE9gories d\u2019URLs, etc." + implementation_groups: + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node127 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:22 + description: "Le maintien en condition de s\xE9curit\xE9 des \xE9quipements\ + \ de la passerelle est essentiel, il fera donc l\u2019objet de proc\xE9dures\ + \ \xE0 respecter. " + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.maintenance + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node128 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:22 + description: "Suivant le nombre de collaborateurs et le besoin de disponibilit\xE9\ + , ces \xE9quipements pourront \xEAtre redond\xE9s. " + implementation_groups: + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node129 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:22 + description: "Par ailleurs, pour les terminaux utilisateurs, les r\xE9solutions\ + \ DNS en direct de noms de domaines publics seront par d\xE9faut d\xE9sactiv\xE9\ + es, celles-ci \xE9tant d\xE9l\xE9gu\xE9es au serveur mandataire." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.network_firewall + - urn:intuitem:risk:function:doc-pol:tech.web_proxy + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node130 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:22 + description: "Enfin, il est fortement recommand\xE9 que les postes nomades \xE9\ + tablissent au pr\xE9alable une connexion s\xE9curis\xE9e au syst\xE8me d\u2019\ + information de l\u2019entit\xE9 pour naviguer de mani\xE8re s\xE9curis\xE9\ + e sur le Web \xE0 travers la passerelle." + annotation: "La plupart des firewalls int\xE8grent une passerelle VPN." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.vpn + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:23 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:v + ref_id: '23' + name: "Cloisonner les services visibles depuis Internet du reste du syst\xE8\ + me d'information" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node132 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:23 + description: "Une entit\xE9 peut choisir d\u2019h\xE9berger en interne des services\ + \ visibles sur Internet (site web, serveur de messagerie, etc.). Au regard\ + \ de l\u2019\xE9volution et du perfectionnement des cyberattaques sur Internet,\ + \ il est essentiel de garantir un haut niveau de protection de ce service\ + \ avec des administrateurs comp\xE9tents, form\xE9s de mani\xE8re continue\ + \ (\xE0 l\u2019\xE9tat de l\u2019art des technologies en la mati\xE8re) et\ + \ disponibles. Dans le cas contraire, le recours \xE0 un h\xE9bergement externalis\xE9\ + \ aupr\xE8s de professionnels est \xE0 privil\xE9gier." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node133 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:23 + description: "De plus, les infrastructures d\u2019h\xE9bergement Internet doivent\ + \ \xEAtre physiquement cloisonn\xE9es de toutes les infrastructures du syst\xE8\ + me d\u2019information qui n\u2019ont pas vocation \xE0 \xEAtre visibles depuis\ + \ Internet." + annotation: "Une DMZ r\xE9alis\xE9e \xE0 l'aide d'un firewall r\xE9seau permet\ + \ de mettre en \u0153uvre cette recommandation." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.network_firewall + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node134 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:23 + description: "Enfin, il convient de mettre en place une infrastructure d\u2019\ + interconnexion de ces services avec Internet permettant de filtrer les flux\ + \ li\xE9s \xE0 ces services de mani\xE8re distincte des autres flux de l\u2019\ + entit\xE9. Il s\u2019agit \xE9galement d\u2019imposer le passage des flux\ + \ entrants par un serveur mandataire inverse (reverse proxy) embarquant diff\xE9\ + rents m\xE9canismes de s\xE9curit\xE9." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.network_firewall + - urn:intuitem:risk:function:doc-pol:tech.reverse_proxy + - urn:intuitem:risk:function:doc-pol:tech.waf + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:24 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:v + ref_id: '24' + name: "Prot\xE9ger sa messagerie professionnelle" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node136 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:24 + description: "La messagerie est le principal vecteur d\u2019infection du poste\ + \ de travail, qu\u2019il s\u2019agisse de l\u2019ouverture de pi\xE8ces jointes\ + \ contenant un code malveillant ou du clic malencontreux sur un lien redirigeant\ + \ vers un site lui-m\xEAme malveillant.\nLes utilisateurs doivent \xEAtre\ + \ particuli\xE8rement sensibilis\xE9s \xE0 ce sujet : l\u2019exp\xE9diteur\ + \ est-il connu ? Une information de sa part est-elle attendue ? Le lien propos\xE9\ + \ est-il coh\xE9rent avec le sujet \xE9voqu\xE9 ? En cas de doute, une v\xE9\ + rification de l\u2019authenticit\xE9 du message par un autre canal (t\xE9\ + l\xE9phone, SMS, etc.) est n\xE9cessaire. " + annotation: La simuation de phishing est un bon moyen de sensibilisation. + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node137 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:24 + description: "Pour se pr\xE9munir d\u2019escroqueries (ex : demande de virement\ + \ frauduleux \xE9manant vraisemblablement d\u2019un dirigeant), des mesures\ + \ organisationnelles doivent \xEAtre appliqu\xE9es strictement." + annotation: "Les personnes g\xE9rant les paiements doivent \xEAtre tout particuli\xE8\ + rement sensibilis\xE9es aux escroqueries de plus en plus sophistiqu\xE9es." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.seg_duty + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node138 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:24 + description: "Par ailleurs, la redirection de messages professionnels vers une\ + \ messagerie personnelle est \xE0 proscrire car cela constitue une fuite irr\xE9\ + m\xE9diable d\u2019informations de l\u2019entit\xE9. Si n\xE9cessaire des\ + \ moyens ma\xEEtris\xE9s et s\xE9curis\xE9s pour l\u2019acc\xE8s distant \xE0\ + \ la messagerie professionnelle doivent \xEAtre propos\xE9s. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.accept + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node139 + assessable: false + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:24 + description: "Que l\u2019entit\xE9 h\xE9berge ou fasse h\xE9berger son syst\xE8\ + me de messagerie, elle doit s\u2019assurer :" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node140 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node139 + description: "de disposer d\u2019un syst\xE8me d\u2019analyse antivirus en amont\ + \ des bo\xEEtes aux lettres des utilisateurs pour pr\xE9venir la r\xE9ception\ + \ de fichiers infect\xE9s ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.network_antivirus + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node141 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node139 + description: "de l\u2019activation du chiffrement TLS des \xE9changes entre\ + \ serveurs de messagerie (de l\u2019entit\xE9 ou publics) ainsi qu\u2019entre\ + \ les postes utilisateur et les serveurs h\xE9bergeant les bo\xEEtes aux lettres." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.transfer + - urn:intuitem:risk:function:doc-pol:pol.crypto + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node142 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:24 + description: "Il est souhaitable de ne pas exposer directement les serveurs\ + \ de bo\xEEte aux lettres sur Internet. Dans ce cas, un serveur relai d\xE9\ + di\xE9 \xE0 l\u2019envoi et \xE0 la r\xE9ception des messages doit \xEAtre\ + \ mis en place en coupure d\u2019Internet." + annotation: "Certains firewalls int\xE8grent la fonction de passerelle de messagerie.\ + \ Toutefois, il est pr\xE9f\xE9rable de s\xE9parer ces fonctions, et de mettre\ + \ la passerelle de messagerie s\xE9curis\xE9e dans une DMZ." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.mail_gateway + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node143 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:24 + description: "Alors que le spam - malveillant ou non - constitue la majorit\xE9\ + \ des courriels \xE9chang\xE9s sur Internet, le d\xE9ploiement d\u2019un service\ + \ anti-spam doit permettre d\u2019\xE9liminer cette source de risques." + annotation: "Les passerelles de messagerie s\xE9curis\xE9es int\xE8grent une\ + \ fonction anti-spam" + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.mail_gateway + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node144 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:24 + description: "Enfin, l\u2019administrateur de messagerie s\u2019assurera de\ + \ la mise en place des m\xE9canismes de v\xE9rification d\u2019authenticit\xE9\ + \ et de la bonne configuration des enregistrements DNS publics li\xE9s \xE0\ + \ son infrastructure de messagerie (MX, SPF, DKIM, DMARC)." + annotation: "Les m\xE9chanismes SPIF, DKIM et DMARC sont indispensables en 2025.\ + \ Il est possible de les d\xE9l\xE9guer \xE0 un mandataire (par exemple avec\ + \ Office365)" + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.email_security + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:25 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:v + ref_id: '25' + name: "S\xE9curiser les interconnexions r\xE9seau d\xE9di\xE9es avec les partenaires" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node146 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:25 + description: "Pour des besoins op\xE9rationnels, une entit\xE9 peut \xEAtre\ + \ amen\xE9e \xE0 \xE9tablir une interconnexion r\xE9seau d\xE9di\xE9e avec\ + \ un fournisseur ou un client (ex : infog\xE9rance, \xE9change de donn\xE9\ + es informatis\xE9es, flux mon\xE9tiques, etc.).\nCette interconnexion peut\ + \ se faire au travers d\u2019un lien sur le r\xE9seau priv\xE9 de l\u2019\ + entit\xE9 ou directement sur Internet. Dans le second cas, il convient d\u2019\ + \xE9tablir un tunnel site \xE0 site, de pr\xE9f\xE9rence IPsec, en respectant\ + \ les pr\xE9conisations de l\u2019ANSSI." + annotation: "Cette fonction est int\xE9gr\xE9e dans la plupart des firewalls." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.vpn + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node147 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:25 + description: "Le partenaire \xE9tant consid\xE9r\xE9 par d\xE9faut comme non\ + \ s\xFBr, il est indispensable d\u2019effectuer un filtrage IP \xE0 l\u2019\ + aide d\u2019un pare-feu au plus pr\xE8s de l\u2019entr\xE9e des flux sur le\ + \ r\xE9seau de l\u2019entit\xE9. La matrice des flux (entrants et sortants)\ + \ devra \xEAtre r\xE9duite au juste besoin op\xE9rationnel, maintenue dans\ + \ le temps et la configuration des \xE9quipements devra y \xEAtre conforme." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.network_firewall + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node148 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:25 + description: "Pour des entit\xE9s ayant des besoins de s\xE9curit\xE9 plus exigeants,\ + \ il conviendra de s\u2019assurer que l\u2019\xE9quipement de filtrage IP\ + \ pour les connexions partenaires est d\xE9di\xE9 \xE0 cet usage." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.network_firewall + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node149 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:25 + description: "L\u2019ajout d\u2019un \xE9quipement de d\xE9tection d\u2019intrusions\ + \ peut \xE9galement constituer une bonne pratique." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.ids + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node150 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:25 + description: "Par ailleurs la connaissance d\u2019un point de contact \xE0 jour\ + \ chez le partenaire est n\xE9cessaire pour pouvoir r\xE9agir en cas d\u2019\ + incident de s\xE9curit\xE9." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.incident + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:26 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:v + ref_id: '26' + name: "Contr\xF4ler et prot\xE9ger l'acc\xE8s aux salles serveurs et aux locaux\ + \ techniques" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node152 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:26 + description: "Les m\xE9canismes de s\xE9curit\xE9 physique doivent faire partie\ + \ int\xE9grante de la s\xE9curit\xE9 des syst\xE8mes d\u2019information et\ + \ \xEAtre \xE0 l\u2019\xE9tat de l\u2019art afin de s\u2019assurer qu\u2019\ + ils ne puissent pas \xEAtre contourn\xE9s ais\xE9ment par un attaquant. Il\ + \ convient donc d\u2019identifier les mesures de s\xE9curit\xE9 physique ad\xE9\ + quates et de sensibiliser continuellement les utilisateurs aux risques engendr\xE9\ + s par le contournement des r\xE8gles." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.physical + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node153 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:26 + description: "Les acc\xE8s aux salles serveurs et aux locaux techniques doivent\ + \ \xEAtre contr\xF4l\xE9s \xE0 l\u2019aide de serrures ou de m\xE9canismes\ + \ de contr\xF4le d\u2019acc\xE8s par badge. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.physical + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node154 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:26 + description: "Les acc\xE8s non accompagn\xE9s des prestataires ext\xE9rieurs\ + \ aux salles serveurs et aux locaux techniques sont \xE0 proscrire, sauf s\u2019\ + il est possible de tracer strictement les acc\xE8s et de limiter ces derniers\ + \ en fonction des plages horaires." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.physical_security + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node155 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:26 + description: "Une revue des droits d\u2019acc\xE8s doit \xEAtre r\xE9alis\xE9\ + e r\xE9guli\xE8rement afin d\u2019identifier les acc\xE8s non autoris\xE9\ + s." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.physical_security + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node156 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:26 + description: "Lors du d\xE9part d\u2019un collaborateur ou d\u2019un changement\ + \ de prestataire, il est n\xE9cessaire de proc\xE9der au retrait des droits\ + \ d\u2019acc\xE8s ou au changement des codes d\u2019acc\xE8s." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.hr_security + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node157 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:26 + description: "Enfin, les prises r\xE9seau se trouvant dans des zones ouvertes\ + \ au public (salle de r\xE9union, hall d\u2019accueil, couloirs, placards,\ + \ etc.) doivent \xEAtre restreintes ou d\xE9sactiv\xE9es afin d\u2019emp\xEA\ + cher un attaquant de gagner facilement l\u2019acc\xE8s au r\xE9seau de l\u2019\ + entreprise." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:vi + assessable: false + depth: 1 + ref_id: VI + name: "S\xE9curiser l'administration" + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:27 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:vi + ref_id: '27' + name: "Interdire l\u2019acc\xE8s \xE0 Internet depuis les postes ou serveurs\ + \ utilis\xE9s pour l\u2019administration du syst\xE8me d\u2019information" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node160 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:27 + description: "Un poste de travail ou un serveur utilis\xE9 pour les actions\ + \ d\u2019administration ne doit en aucun cas avoir acc\xE8s \xE0 Internet,\ + \ en raison des risques que la navigation Web (\xE0 travers des sites contenant\ + \ du code malveillant) et la messagerie (au travers de pi\xE8ces jointes potentiellement\ + \ v\xE9rol\xE9es) font peser sur son int\xE9grit\xE9." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node161 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:27 + description: "Pour les autres usages des administrateurs n\xE9cessitant Internet\ + \ (consultation de documentation en ligne, de leur messagerie, etc.), il est\ + \ recommand\xE9 de mettre \xE0 leur disposition un poste de travail distinct.\ + \ \xC0 d\xE9faut, l\u2019acc\xE8s \xE0 une infrastructure virtualis\xE9e distante\ + \ pour la bureautique depuis un poste d\u2019administration est envisageable.\ + \ La r\xE9ciproque consistant \xE0 fournir un acc\xE8s distant \xE0 une infrastructure\ + \ d\u2019administration depuis un poste bureautique est d\xE9conseill\xE9\ + e car elle peut mener \xE0 une \xE9l\xE9vation de privil\xE8ges en cas de\ + \ r\xE9cup\xE9ration des authentifiants d\u2019administration." + annotation: "Pour les environnements les plus sensibles, la politique de gestion\ + \ des acc\xE8s \xE0 privil\xE8ge pr\xE9voiera des postes d\xE9di\xE9s pour\ + \ les administrateurs." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.pam + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node162 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:27 + description: "Concernant les mises \xE0 jour logicielles des \xE9quipements\ + \ administr\xE9s, elles doivent \xEAtre r\xE9cup\xE9r\xE9es depuis une source\ + \ s\xFBre (le site de l\u2019\xE9diteur par exemple), contr\xF4l\xE9es puis\ + \ transf\xE9r\xE9es sur le poste ou le serveur utilis\xE9 pour l\u2019administration\ + \ et non connect\xE9 \xE0 Internet." + annotation: "V\xE9rifier que la signature soit bien contr\xF4l\xE9e" + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.update + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node163 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:27 + description: "Ce transfert peut \xEAtre r\xE9alis\xE9 sur un support amovible\ + \ d\xE9di\xE9. " + annotation: "Il s'agit d'une exception l\xE9gitime au blocage USB." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.update + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node164 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:27 + description: "Pour des entit\xE9s voulant automatiser certaines t\xE2ches, la\ + \ mise en place d\u2019une zone d\u2019\xE9changes est conseill\xE9e. " + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.update + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:28 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:vi + ref_id: '28' + name: "Utiliser un r\xE9seau d\xE9di\xE9 et cloisonn\xE9 pour l\u2019administration\ + \ du syst\xE8me d\u2019information" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node166 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:28 + description: "Un r\xE9seau d\u2019administration interconnecte, entre autres,\ + \ les postes ou serveurs d\u2019administration et les interfaces d\u2019administration\ + \ des \xE9quipements. Dans la logique de segmentation du r\xE9seau global\ + \ de l\u2019entit\xE9, il est indispensable de cloisonner sp\xE9cifiquement\ + \ le r\xE9seau d\u2019administration, notamment vis-\xE0-vis du r\xE9seau\ + \ bureautique des utilisateurs, pour se pr\xE9munir de toute compromission\ + \ par rebond depuis un poste utilisateur vers une ressource d\u2019administration. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node167 + assessable: false + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:28 + description: "Selon les besoins de s\xE9curit\xE9 de l\u2019entit\xE9, il est\ + \ recommand\xE9 :" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node168 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node167 + description: "de privil\xE9gier en premier lieu un cloisonnement physique des\ + \ r\xE9seaux d\xE8s que cela est possible, cette solution pouvant repr\xE9\ + senter des co\xFBts et un temps de d\xE9ploiement importants;" + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node169 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node167 + description: "\xE0 d\xE9faut, de mettre en \u0153uvre un cloisonnement logique\ + \ cryptographique reposant sur la mise en place de tunnels IPsec. Ceci permet\ + \ d\u2019assurer l\u2019int\xE9grit\xE9 et la confidentialit\xE9 des informations\ + \ v\xE9hicul\xE9es sur le r\xE9seau d\u2019administration vis-\xE0-vis du\ + \ r\xE9seau bureautique des utilisateurs ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node170 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node167 + description: "au minimum, de mettre en \u0153uvre un cloisonnement logique par\ + \ VLAN. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:29 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:vi + ref_id: '29' + name: "\_Limiter au strict besoin op\xE9rationnel les droits d\u2019administration\ + \ sur les postes de travail" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node172 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:29 + description: "De nombreux utilisateurs, y compris au sommet des hi\xE9rarchies,\ + \ sont tent\xE9s de demander \xE0 leur service informatique de pouvoir disposer,\ + \ par analogie avec leur usage personnel, de privil\xE8ges plus importants\ + \ sur leurs postes de travail : installation de logiciels, configuration du\ + \ syst\xE8me, etc. Par d\xE9faut, il est recommand\xE9 qu\u2019un utilisateur\ + \ du SI, quelle que soit sa position hi\xE9rarchique et ses attributions,\ + \ ne dispose pas de privil\xE8ges d\u2019administration sur son poste de travail.\ + \ Cette mesure, apparemment contraignante, vise \xE0 limiter les cons\xE9\ + quences de l\u2019ex\xE9cution malencontreuse d\u2019un code malveillant.\ + \ La mise \xE0 disposition d\u2019un magasin \xE9toff\xE9 d\u2019applications\ + \ valid\xE9es par l\u2019entit\xE9 du point de vue de la s\xE9curit\xE9 permettra\ + \ de r\xE9pondre \xE0 la majorit\xE9 des besoins. \nPar cons\xE9quent, seuls\ + \ les administrateurs charg\xE9s de l\u2019administration des postes doivent\ + \ disposer de ces droits lors de leurs interventions. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node173 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:29 + description: "Si une d\xE9l\xE9gation de privil\xE8ges sur un poste de travail\ + \ est r\xE9ellement n\xE9cessaire pour r\xE9pondre \xE0 un besoin ponctuel\ + \ de l\u2019utilisateur, celle-ci doit \xEAtre trac\xE9e, limit\xE9e dans\ + \ le temps et retir\xE9e \xE0 \xE9ch\xE9ance." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn:intuitem:risk:function:doc-pol:pol.access + - urn:intuitem:risk:function:doc-pol:proc.pam + - urn:intuitem:risk:function:doc-pol:doc.pam_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:vii + assessable: false + depth: 1 + ref_id: VII + name: "G\xE9rer le nomadisme" + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:30 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:vii + ref_id: '30' + name: " Prendre des mesures de s\xE9curisation physique des terminaux nomades" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node176 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:30 + description: "Les terminaux nomades (ordinateurs portables, tablettes, ordiphones)\ + \ sont, par nature, expos\xE9s \xE0 la perte et au vol. Ils peuvent contenir\ + \ localement des informations sensibles pour l\u2019entit\xE9 et constituer\ + \ un point d\u2019entr\xE9e vers de plus amples ressources du syst\xE8me d\u2019\ + information. Au-del\xE0 de l\u2019application au minimum des politiques de\ + \ s\xE9curit\xE9 de l\u2019entit\xE9, des mesures sp\xE9cifiques de s\xE9\ + curisation de ces \xE9quipements sont donc \xE0 pr\xE9voir. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node177 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:30 + description: "En tout premier lieu, les utilisateurs doivent \xEAtre sensibilis\xE9\ + s pour augmenter leur niveau de vigilance lors de leurs d\xE9placements et\ + \ conserver leurs \xE9quipements \xE0 port\xE9e de vue. N\u2019importe quelle\ + \ entit\xE9, m\xEAme de petite taille, peut \xEAtre victime d\u2019une attaque\ + \ informatique. D\xE8s lors, en mobilit\xE9, tout \xE9quipement devient une\ + \ cible potentielle voire privil\xE9gi\xE9e." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.educ + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn:intuitem:risk:function:doc-pol:doc.educ_register + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node178 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:30 + description: "Il est recommand\xE9 que les terminaux nomades soient aussi banalis\xE9\ + s que possible en \xE9vitant toute mention explicite de l\u2019entit\xE9 d\u2019\ + appartenance (par l\u2019apposition d\u2019un autocollant aux couleurs de\ + \ l\u2019entit\xE9 par exemple)." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node179 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:30 + description: "Pour \xE9viter toute indiscr\xE9tion lors de d\xE9placements,\ + \ notamment dans les transports ou les lieux d\u2019attente, un filtre de\ + \ confidentialit\xE9 doit \xEAtre positionn\xE9 sur chaque \xE9cran." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.screen_filter + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node180 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:30 + description: "Enfin, afin de rendre inutilisable le poste seul, l\u2019utilisation\ + \ d\u2019un support externe compl\xE9mentaire (carte \xE0 puce ou jeton USB\ + \ par exemple) pour conserver des secrets de d\xE9chiffrement ou d\u2019authentification\ + \ peut \xEAtre envisag\xE9e. Dans ce cas il doit \xEAtre conserv\xE9 \xE0\ + \ part. " + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.disk_encryption + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:31 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:vii + ref_id: '31' + name: "Chiffrer les donn\xE9es sensibles, en particulier sur le mat\xE9riel\ + \ potentiellement perdable" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node182 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:31 + description: "Les d\xE9placements fr\xE9quents en contexte professionnel et\ + \ la miniaturisation du mat\xE9riel informatique conduisent souvent \xE0 la\ + \ perte ou au vol de celui-ci dans l\u2019espace public. Cela peut porter\ + \ atteinte aux donn\xE9es sensibles de l\u2019entit\xE9 qui y sont stock\xE9\ + es.\nIl faut donc ne stocker que des donn\xE9es pr\xE9alablement chiffr\xE9\ + es sur l\u2019ensemble des mat\xE9riels nomades (ordinateurs portables, ordiphones,\ + \ cl\xE9s USB, disques durs externes, etc.) afin de pr\xE9server leur confidentialit\xE9\ + . Seul un secret (mot de passe, carte \xE0 puce, code PIN, etc.) pourra permettre\ + \ \xE0 celui qui le poss\xE8de d\u2019acc\xE9der \xE0 ces donn\xE9es." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.crypto + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node183 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:31 + description: "Une solution de chiffrement de partition, d\u2019archives ou de\ + \ fichier peut \xEAtre envisag\xE9e selon les besoins. L\xE0 encore, il est\ + \ essentiel de s\u2019assurer de l\u2019unicit\xE9 et de la robustesse du\ + \ secret de d\xE9chiffrement utilis\xE9." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.disk_encryption + - urn:intuitem:risk:function:doc-pol:tech.file_encryption + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node184 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:31 + description: "Dans la mesure du possible, il est conseill\xE9 de commencer par\ + \ un chiffrement complet du disque avant d\u2019envisager le chiffrement d\u2019\ + archives ou de fichiers. En effet, ces derniers r\xE9pondent \xE0 des besoins\ + \ diff\xE9rents et peuvent potentiellement laisser sur le support de stockage\ + \ des informations non chiffr\xE9es (fichiers de restauration de suite bureautique,\ + \ par exemple)." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.disk_encryption + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:32 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:vii + ref_id: '32' + name: "S\xE9curiser la connexion r\xE9seau des postes utilis\xE9s en situation\ + \ de nomadisme" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node186 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:32 + description: "En situation de nomadisme, il n\u2019est pas rare qu\u2019un utilisateur\ + \ ait besoin de se connecter au syst\xE8me d\u2019information de l\u2019entit\xE9\ + . Il convient par cons\xE9quent de s\u2019assurer du caract\xE8re s\xE9curis\xE9\ + \ de cette connexion r\xE9seau \xE0 travers Internet. M\xEAme si la possibilit\xE9\ + \ d\u2019\xE9tablir des tunnels VPN SSL/TLS est aujourd\u2019hui courante,\ + \ il est fortement recommand\xE9 d\u2019\xE9tablir un tunnel VPN IPsec entre\ + \ le poste nomade et une passerelle VPN IPsec mise \xE0 disposition par l\u2019\ + entit\xE9." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.vpn + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node187 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:32 + description: "Pour garantir un niveau de s\xE9curit\xE9 optimal, ce tunnel VPN\ + \ IPsec doit \xEAtre automatiquement \xE9tabli et ne pas \xEAtre d\xE9brayable\ + \ par l\u2019utilisateur, c\u2019est-\xE0-dire qu\u2019aucun flux ne doit\ + \ pouvoir \xEAtre transmis en dehors de ce tunnel." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn:intuitem:risk:function:doc-pol:tech.endpoint_protection + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node188 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:32 + description: "Pour les besoins sp\xE9cifiques d\u2019authentification aux portails\ + \ captifs, l\u2019entit\xE9 peut choisir de d\xE9roger \xE0 la connexion automatique\ + \ en autorisant une connexion \xE0 la demande ou maintenir cette recommandation\ + \ en encourageant l\u2019utilisateur \xE0 utiliser un partage de connexion\ + \ sur un t\xE9l\xE9phone mobile de confiance." + annotation: "Cette fonction est int\xE9gr\xE9e dans les logiciels VPN les plus\ + \ courants." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.vpn + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node189 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:32 + description: "Afin d\u2019\xE9viter toute r\xE9utilisation d\u2019authentifiants\ + \ depuis un poste vol\xE9 ou perdu (identifiant et mot de passe enregistr\xE9\ + s par exemple), il est pr\xE9f\xE9rable d\u2019avoir recours \xE0 une authentification\ + \ forte, par exemple avec un mot de passe et un certificat stock\xE9 sur un\ + \ support externe (carte \xE0 puce ou jeton USB) ou un m\xE9canisme de mot\ + \ de passe \xE0 usage unique (One Time Password). " + annotation: Indispensable en 2025 + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.mfa + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:33 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:vii + ref_id: '33' + name: " Adopter des politiques de s\xE9curit\xE9 d\xE9di\xE9es aux terminaux\ + \ mobiles" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node191 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:33 + description: "Les ordiphones et tablettes font partie de notre quotidien personnel\ + \ et/ou professionnel. La premi\xE8re des recommandations consiste justement\ + \ \xE0 ne pas mutualiser les usages personnel et professionnel sur un seul\ + \ et m\xEAme terminal, par exemple en ne synchronisant pas simultan\xE9ment\ + \ comptes professionnel et personnel de messagerie, de r\xE9seaux sociaux,\ + \ d\u2019agendas, etc." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn:intuitem:risk:function:doc-pol:pol.accept + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node192 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:33 + description: "Les terminaux, fournis par l\u2019entit\xE9 et utilis\xE9s en\ + \ contexte professionnel doivent faire l\u2019objet d\u2019une s\xE9curisation\ + \ \xE0 part enti\xE8re, d\xE8s lors qu\u2019ils se connectent au syst\xE8\ + me d\u2019information de l\u2019entit\xE9 ou qu\u2019ils contiennent des informations\ + \ professionnelles potentiellement sensibles (mails, fichiers partag\xE9s,\ + \ contacts, etc.). D\xE8s lors, l\u2019utilisation d\u2019une solution de\ + \ gestion centralis\xE9e des \xE9quipements mobiles est \xE0 privil\xE9gier.\ + \ Il sera notamment souhaitable de configurer de mani\xE8re homog\xE8ne les\ + \ politiques de s\xE9curit\xE9 inh\xE9rentes : moyen de d\xE9verrouillage\ + \ du terminal, limitation de l\u2019usage du magasin d\u2019applications \xE0\ + \ des applications valid\xE9es du point de vue de la s\xE9curit\xE9, etc." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.uem + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node193 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:33 + description: "Dans le cas contraire, une configuration pr\xE9alable avant remise\ + \ de l\u2019\xE9quipement et une s\xE9ance de sensibilisation des utilisateurs\ + \ est souhaitable." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node194 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:33 + description: "Entre autres usages potentiellement risqu\xE9s, celui d\u2019\ + un assistant vocal int\xE9gr\xE9 augmente sensiblement la surface d\u2019\ + attaque du terminal et des cas d\u2019attaque ont \xE9t\xE9 d\xE9montr\xE9\ + s. Pour ces raisons, il est donc d\xE9conseill\xE9." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.work + - urn:intuitem:risk:function:doc-pol:tech.uem + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:viii + assessable: false + depth: 1 + ref_id: VIII + name: "Maintenir le syst\xE8me d'information \xE0 jour" + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:34 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:viii + ref_id: '34' + name: " D\xE9finir une politique de mise \xE0 jour des composants du syst\xE8\ + me d\u2019information" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node197 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:34 + description: "De nouvelles failles sont r\xE9guli\xE8rement d\xE9couvertes au\ + \ c\u0153ur des syst\xE8mes et logiciels. Ces derni\xE8res sont autant de\ + \ portes d\u2019acc\xE8s qu\u2019un attaquant peut exploiter pour r\xE9ussir\ + \ son intrusion dans le syst\xE8me d\u2019information. Il est donc primordial\ + \ de s\u2019informer de l\u2019apparition de nouvelles vuln\xE9rabilit\xE9\ + s (CERTFR) et d\u2019appliquer les correctifs de s\xE9curit\xE9 sur l\u2019\ + ensemble des composants du syst\xE8me dans le mois qui suit leur publication\ + \ par l\u2019\xE9diteur. Une politique de mise \xE0 jour doit ainsi \xEAtre\ + \ d\xE9finie et d\xE9clin\xE9e en proc\xE9dures op\xE9rationnelles. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.maintenance + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node198 + assessable: false + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:34 + description: "Celles-ci doivent notamment pr\xE9ciser :" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node199 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node198 + description: "la mani\xE8re dont l\u2019inventaire des composants du syst\xE8\ + me d\u2019information est r\xE9alis\xE9 ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.update + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node200 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node198 + description: "les sources d\u2019information relatives \xE0 la publication des\ + \ mises \xE0 jour ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.threat_intel + - urn:intuitem:risk:function:doc-pol:proc.update + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node201 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node198 + description: "les outils pour d\xE9ployer les correctifs sur le parc (par exemple\ + \ WSUS pour les mises \xE0 jour des composants Microsoft, des outils gratuits\ + \ ou payants pour les composants tiers et autres syst\xE8mes d\u2019exploitation)\ + \ ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.update + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node202 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node198 + description: "l\u2019\xE9ventuelle qualification des correctifs et leur d\xE9\ + ploiement progressif sur le parc." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.update + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node203 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:34 + description: "Les composants obsol\xE8tes qui ne sont plus support\xE9s par\ + \ leurs fabricants doivent \xEAtre isol\xE9s du reste du syst\xE8me. Cette\ + \ recommandation s\u2019applique aussi bien au niveau r\xE9seau par un filtrage\ + \ strict des flux, qu\u2019au niveau des secrets d\u2019authentification qui\ + \ doivent \xEAtre d\xE9di\xE9s \xE0 ces syst\xE8mes. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.network + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:35 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:viii + ref_id: '35' + name: "Anticiper la fin de la maintenance des logiciels et syst\xE8mes et limiter\ + \ les adh\xE9rences logicielles" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node205 + assessable: false + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:35 + description: "L\u2019utilisation d\u2019un syst\xE8me ou d\u2019un logiciel\ + \ obsol\xE8te augmente significativement les possibilit\xE9s d\u2019attaque\ + \ informatique. Les syst\xE8mes deviennent vuln\xE9rables d\xE8s lors que\ + \ les correctifs ne sont plus propos\xE9s. En effet, des outils malveillants\ + \ exploitant ces vuln\xE9rabilit\xE9s peuvent se diffuser rapidement sur Internet\ + \ alors m\xEAme que l\u2019\xE9diteur ne propose pas de correctif de s\xE9\ + curit\xE9. \nPour anticiper ces obsolescences, un certain nombre de pr\xE9\ + cautions existent :" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node206 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node205 + description: "\xE9tablir et tenir \xE0 jour un inventaire des syst\xE8mes et\ + \ applications du syst\xE8me d\u2019information ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.file_encryption + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node207 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node205 + description: "choisir des solutions dont le support est assur\xE9 pour une dur\xE9\ + e correspondant \xE0 leur utilisation ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.maintenance + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node208 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node205 + description: "assurer un suivi des mises \xE0 jour et des dates de fin de support\ + \ des logiciels ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.file_encryption + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node209 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node205 + description: "maintenir un parc logiciel homog\xE8ne (la coexistence de versions\ + \ diff\xE9rentes d\u2019un m\xEAme produit multiplie les risques et complique\ + \ le suivi) ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.maintenance + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node210 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node205 + description: "limiter les adh\xE9rences logicielles, c\u2019est-\xE0-dire les\ + \ d\xE9pendances de fonctionnement d\u2019un logiciel par rapport \xE0 un\ + \ autre, en particulier lorsque le support de ce dernier arrive \xE0 son terme\ + \ ;" + annotation: "Principe de modularit\xE9 applicative" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.arc_principles + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node211 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node205 + description: "inclure dans les contrats avec les prestataires et fournisseurs\ + \ des clauses garantissant le suivi des correctifs de s\xE9curit\xE9 et la\ + \ gestion des obsolescences ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.supplier + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node212 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node205 + description: "identifier les d\xE9lais et ressources n\xE9cessaires (mat\xE9\ + rielles, humaines, budg\xE9taires) \xE0 la migration de chaque logiciel en\ + \ fin de vie (tests de non-r\xE9gression, proc\xE9dure de sauvegarde, proc\xE9\ + dure de migration des donn\xE9es, etc.)." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.maintenance + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ix + assessable: false + depth: 1 + ref_id: IX + name: "Superviser, auditer, r\xE9agir" + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:36 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ix + ref_id: '36' + name: Activer et configurer les journaux des composants les plus importants + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node215 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:36 + description: "Disposer de journaux pertinents est n\xE9cessaire afin de pouvoir\ + \ d\xE9tecter d\u2019\xE9ventuels dysfonctionnements et tentatives d\u2019\ + acc\xE8s illicites aux composants du syst\xE8me d\u2019information." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.monitor + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node216 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:36 + description: "La premi\xE8re \xE9tape consiste \xE0 d\xE9terminer quels sont\ + \ les composants critiques du syst\xE8me d\u2019information. Il peut notamment\ + \ s\u2019agir des \xE9quipements r\xE9seau et de s\xE9curit\xE9, des serveurs\ + \ critiques, des postes de travail d\u2019utilisateurs sensibles, etc." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.asset_register + - urn:intuitem:risk:function:doc-pol:doc.is_map + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node217 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:36 + description: "Pour chacun, il convient d\u2019analyser la configuration des\ + \ \xE9l\xE9ments journalis\xE9s (format, fr\xE9quence de rotation des fichiers,\ + \ taille maximale des fichiers journaux, cat\xE9gories d\u2019\xE9v\xE8nements\ + \ enregistr\xE9s, etc.) et de l\u2019adapter en cons\xE9quence." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.logging + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node218 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:36 + description: "Les \xE9v\xE8nements critiques pour la s\xE9curit\xE9 doivent\ + \ \xEAtre journalis\xE9s et gard\xE9s pendant au moins un an (ou plus en fonction\ + \ des obligations l\xE9gales du secteur d\u2019activit\xE9s)." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.monitor + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node219 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:36 + description: "Une \xE9tude contextuelle du syst\xE8me d\u2019information doit\ + \ \xEAtre effectu\xE9e et les \xE9l\xE9ments suivants doivent \xEAtre journalis\xE9\ + s :" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.logging + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node220 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node219 + description: "pare-feu : paquets bloqu\xE9s ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.logging + - urn:intuitem:risk:function:doc-pol:tech.network_firewall + - urn:intuitem:risk:function:doc-pol:tech.edr + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node221 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node219 + description: "syst\xE8mes et applications : authentifications et autorisations\ + \ (\xE9checs et succ\xE8s), arr\xEAts inopin\xE9s ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.logging + - urn:intuitem:risk:function:doc-pol:tech.edr + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node222 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node219 + description: "services : erreurs de protocoles (par exemples les erreurs 403,\ + \ 404 et 500 pour les services hTTP), tra\xE7abilit\xE9 des flux applicatifs\ + \ aux interconnexions (URL sur un relai hTTP, en-t\xEAtes des messages sur\ + \ un relai SMTP, etc.)." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.logging + - urn:intuitem:risk:function:doc-pol:tech.edr + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node223 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:36 + description: "Afin de pouvoir corr\xE9ler les \xE9v\xE8nements entre les diff\xE9\ + rents composants, leur source de synchronisation de temps (gr\xE2ce au protocole\ + \ NTP) doit \xEAtre identique." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.ntp + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node224 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:36 + description: "Si toutes les actions pr\xE9c\xE9dentes ont \xE9t\xE9 mises en\ + \ \u0153uvre, une centralisation des journaux sur un dispositif d\xE9di\xE9\ + \ pourra \xEAtre envisag\xE9e. Cela permet de faciliter la recherche automatis\xE9\ + e d\u2019\xE9v\xE9nements suspects, d\u2019archiver les journaux sur une longue\ + \ dur\xE9e et d\u2019emp\xEAcher un attaquant d\u2019effacer d\u2019\xE9ventuelles\ + \ traces de son passage sur les \xE9quipements qu\u2019il a compromis. " + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:tech.siem + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:37 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ix + ref_id: '37' + name: "D\xE9finir et appliquer une politique de sauvegarde des composants critiques" + implementation_groups: + - S + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node226 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:37 + description: "Suite \xE0 un incident d\u2019exploitation ou en contexte de gestion\ + \ d\u2019une intrusion, la disponibilit\xE9 de sauvegardes conserv\xE9es\ + \ en lieu s\xFBr est indispensable \xE0 la poursuite de l\u2019activit\xE9\ + . Il est donc fortement recommand\xE9 de formaliser une politique de sauvegarde\ + \ r\xE9guli\xE8rement mise \xE0 jour. Cette derni\xE8re a pour objectif de\ + \ d\xE9finir des exigences en mati\xE8re de sauvegarde de l\u2019information,\ + \ des logiciels et des syst\xE8mes. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node227 + assessable: false + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:37 + description: "Cette politique doit au moins int\xE9grer les \xE9l\xE9ments suivants\ + \ :" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node228 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node227 + description: "la liste des donn\xE9es jug\xE9es vitales pour l\u2019organisme\ + \ et les serveurs concern\xE9s ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node229 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node227 + description: "les diff\xE9rents types de sauvegarde (par exemple le mode hors\ + \ ligne) ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node230 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node227 + description: "la fr\xE9quence des sauvegardes ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node231 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node227 + description: "la proc\xE9dure d\u2019administration et d\u2019ex\xE9cution des\ + \ sauvegardes ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node232 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node227 + description: "les informations de stockage et les restrictions d\u2019acc\xE8\ + s aux sauvegardes ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node233 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node227 + description: "les proc\xE9dures de test de restauration ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node234 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node227 + description: ' la destruction des supports ayant contenu les sauvegardes.' + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.disposal + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node235 + assessable: false + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:37 + description: "Les tests de restauration peuvent \xEAtre r\xE9alis\xE9s de plusieurs\ + \ mani\xE8res :" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node236 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node235 + description: "syst\xE9matique, par un ordonnanceur de t\xE2ches pour les applications\ + \ importantes ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node237 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node235 + description: "ponctuelle, en cas d\u2019erreur sur les fichiers ;" + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.backup + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node238 + assessable: true + depth: 4 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node235 + description: "g\xE9n\xE9rale, pour une sauvegarde et restauration enti\xE8res\ + \ du syst\xE8me d\u2019information." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.bcp + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node239 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:37 + description: "Un fois cette politique de sauvegarde \xE9tablie, il est souhaitable\ + \ de planifier au moins une fois par an un exercice de restauration des donn\xE9\ + es et de conserver une trace technique des r\xE9sultats." + annotation: "On pourra faire les tests de restauration dans une zone virtuelle\ + \ d\xE9di\xE9e." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.bcp + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:38 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ix + ref_id: '38' + name: "Proc\xE9der \xE0 des contr\xF4les et audits de s\xE9curit\xE9 r\xE9guliers\ + \ puis appliquer les actions correctives associ\xE9es (renforc\xE9)" + implementation_groups: + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node241 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:38 + description: "La r\xE9alisation d\u2019audits r\xE9guliers (au moins une fois\ + \ par an) du syst\xE8me d\u2019information est essentielle car elle permet\ + \ d\u2019\xE9valuer concr\xE8tement l\u2019efficacit\xE9 des mesures mises\ + \ en \u0153uvre et leur maintien dans le temps. Ces contr\xF4les et audits\ + \ permettent \xE9galement de mesurer les \xE9carts pouvant persister entre\ + \ la r\xE8gle et la pratique." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.audit + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node242 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:38 + description: "Ils peuvent \xEAtre r\xE9alis\xE9s par d\u2019\xE9ventuelles \xE9\ + quipes d\u2019audit internes ou par des soci\xE9t\xE9s externes sp\xE9cialis\xE9\ + es. Selon le p\xE9rim\xE8tre \xE0 contr\xF4ler, des audits techniques et/ou\ + \ organisationnels seront effectu\xE9s par les professionnels mobilis\xE9\ + s. Ces audits sont d\u2019autant plus n\xE9cessaires que l\u2019entit\xE9\ + \ doit \xEAtre conforme \xE0 des r\xE9glementations et obligations l\xE9gales\ + \ directement li\xE9es \xE0 ses activit\xE9s." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.audit_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node243 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:38 + description: "\xC0 l\u2019issue de ces audits, des actions correctives doivent\ + \ \xEAtre identifi\xE9es, leur application planifi\xE9e et des points de suivi\ + \ organis\xE9s \xE0 intervalles r\xE9guliers. Pour une plus grande efficacit\xE9\ + , des indicateurs sur l\u2019\xE9tat d\u2019avancement du plan d\u2019action\ + \ pourront \xEAtre int\xE9gr\xE9s dans un tableau de bord \xE0 l\u2019adresse\ + \ de la direction. " + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.nc_log + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node244 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:38 + description: "Si les audits de s\xE9curit\xE9 participent \xE0 la s\xE9curit\xE9\ + \ du syst\xE8me d\u2019information en permettant de mettre en \xE9vidence\ + \ d\u2019\xE9ventuelles vuln\xE9rabilit\xE9s, ils ne constituent jamais une\ + \ preuve de leur absence et ne dispensent donc pas d\u2019autres mesures de\ + \ contr\xF4le. " + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.main + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:39 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ix + ref_id: '39' + name: "D\xE9signer un r\xE9f\xE9rent en s\xE9curit\xE9 des syst\xE8mes d\u2019\ + information et le faire conna\xEEtre aupr\xE8s du personnel" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node246 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:39 + description: "Toute entit\xE9 doit disposer d\u2019un r\xE9f\xE9rent en s\xE9\ + curit\xE9 des syst\xE8mes d\u2019information qui sera soutenu par la direction\ + \ ou par une instance d\xE9cisionnelle sp\xE9cialis\xE9e selon le niveau de\ + \ maturit\xE9 de la structure. " + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.raci + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node247 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:39 + description: "Ce r\xE9f\xE9rent devra \xEAtre connu de tous les utilisateurs\ + \ et sera le premier contact pour toutes les questions relatives \xE0 la s\xE9\ + curit\xE9 des syst\xE8mes d\u2019information :\n> d\xE9finition des r\xE8\ + gles \xE0 appliquer selon le contexte ;\n> v\xE9rification de l\u2019application\ + \ des r\xE8gles ;\n> sensibilisation des utilisateurs et d\xE9finition d\u2019\ + un plan de formation des acteurs informatiques ;\n> centralisation et traitement\ + \ des incidents de s\xE9curit\xE9 constat\xE9s ou remont\xE9s par les utilisateurs." + annotation: 'n ' + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node248 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:39 + description: "Ce r\xE9f\xE9rent devra \xEAtre form\xE9 \xE0 la s\xE9curit\xE9\ + \ des syst\xE8mes d\u2019information et \xE0 la gestion de crise." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.educ_plan + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node249 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:39 + description: "Dans les entit\xE9s les plus importantes, ce correspondant peut\ + \ \xEAtre d\xE9sign\xE9 pour devenir le relais du RSSI. Il pourra par exemple\ + \ signaler les dol\xE9ances des utilisateurs et identifier les th\xE9matiques\ + \ \xE0 aborder dans le cadre des sensibilisations, permettant ainsi d\u2019\ + \xE9lever le niveau de s\xE9curit\xE9 du syst\xE8me d\u2019information au\ + \ sein de l\u2019organisme." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.raci + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:40 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:ix + ref_id: '40' + name: "D\xE9finir une proc\xE9dure de gestion des incidents de s\xE9curit\xE9" + implementation_groups: + - S + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node251 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:40 + description: "Le constat d\u2019un comportement inhabituel de la part d\u2019\ + un poste de travail ou d\u2019un serveur (connexion impossible, activit\xE9\ + \ importante, activit\xE9s inhabituelles, services ouverts non autoris\xE9\ + s, fichiers cr\xE9\xE9s, modifi\xE9s ou supprim\xE9s sans autorisation, multiples\ + \ alertes de l\u2019antivirus, etc.) peut alerter sur une \xE9ventuelle intrusion." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.incident + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node252 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:40 + description: "Une mauvaise r\xE9action en cas d\u2019incident de s\xE9curit\xE9\ + \ peut faire empirer la situation et emp\xEAcher de traiter correctement le\ + \ probl\xE8me. Le bon r\xE9flexe est de d\xE9connecter la machine du r\xE9\ + seau, pour stopper l\u2019attaque. En revanche, il faut la maintenir sous\ + \ tension et ne pas la red\xE9marrer, pour ne pas perdre d\u2019informations\ + \ utiles pour l\u2019analyse de l\u2019attaque. Il faut ensuite pr\xE9venir\ + \ la hi\xE9rarchie, ainsi que le r\xE9f\xE9rent en s\xE9curit\xE9 des syst\xE8\ + mes d\u2019information." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:proc.incident + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node253 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:40 + description: "\nCelui-ci peut prendre contact avec un prestataire de r\xE9ponse\ + \ aux incidents de s\xE9curit\xE9 (PRIS) afin de faire r\xE9aliser les op\xE9\ + rations techniques n\xE9cessaires (copie physique du disque, analyse de la\ + \ m\xE9moire, des journaux et d\u2019\xE9ventuels codes malveillants, etc.)\ + \ et de d\xE9terminer si d\u2019autres \xE9l\xE9ments du syst\xE8me d\u2019\ + information ont \xE9t\xE9 compromis. Il s\u2019agira \xE9galement d\u2019\xE9\ + laborer la r\xE9ponse \xE0 apporter afin de supprimer d\u2019\xE9ventuels\ + \ codes malveillants et acc\xE8s dont disposerait l\u2019attaquant et de proc\xE9\ + der au changement des mots de passe compromis." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.incident + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node254 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:40 + description: " Tout incident doit \xEAtre consign\xE9 dans un registre centralis\xE9\ + . Une plainte pourra \xE9galement \xEAtre d\xE9pos\xE9e aupr\xE8s du service\ + \ judiciaire comp\xE9tent." + implementation_groups: + - S + reference_controls: + - urn:intuitem:risk:function:doc-pol:doc.incident_register + - urn:intuitem:risk:function:doc-pol:proc.incident + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:x + assessable: false + depth: 1 + ref_id: X + name: Pour aller plus loin + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:41 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:x + ref_id: '41' + name: "Mener une analyse de risques formelle (renforc\xE9)" + implementation_groups: + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node257 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:41 + description: "Chaque entit\xE9 \xE9volue dans un environnement informationnel\ + \ complexe qui lui est propre. Aussi, toute prise de position ou plan d\u2019\ + action impliquant la s\xE9curit\xE9 du syst\xE8me d\u2019information doit\ + \ \xEAtre consid\xE9r\xE9 \xE0 la lumi\xE8re des risques pressentis par la\ + \ direction. En effet, qu\u2019il s\u2019agisse de mesures organisationnelles\ + \ ou techniques, leur mise en \u0153uvre repr\xE9sente un co\xFBt pour l\u2019\ + entit\xE9 qui n\xE9cessite de s\u2019assurer qu\u2019elles permettent de r\xE9\ + duire au bon niveau un risque identifi\xE9.\nDans les cas les plus sensibles,\ + \ l\u2019analyse de risque peut remettre en cause certains choix pass\xE9\ + s. Ce peut notamment \xEAtre le cas si la probabilit\xE9 d\u2019apparition\ + \ d\u2019un \xE9v\xE9nement et ses cons\xE9quences potentielles s\u2019av\xE8\ + rent critiques pour l\u2019entit\xE9 et qu\u2019il n\u2019existe aucune action\ + \ pr\xE9ventive pour le ma\xEEtriser.\nLa d\xE9marche recommand\xE9e consiste,\ + \ dans les grandes lignes, \xE0 d\xE9finir le contexte, appr\xE9cier les risques\ + \ et les traiter. L\u2019\xE9valuation de ces risques s\u2019op\xE8re g\xE9\ + n\xE9ralement selon deux axes : leur probabilit\xE9 d\u2019apparition et leur\ + \ gravit\xE9. S\u2019ensuit l\u2019\xE9laboration d\u2019un plan de traitement\ + \ du risque \xE0 faire valider par une autorit\xE9 d\xE9sign\xE9e \xE0 plus\ + \ haut niveau." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.risk + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node258 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:41 + description: "Trois types d\u2019approches peuvent \xEAtre envisag\xE9s pour\ + \ ma\xEEtriser les risques associ\xE9s \xE0 son syst\xE8me d\u2019information\ + \ :\n> le recours aux bonnes pratiques de s\xE9curit\xE9 informatique ;\n\ + > une analyse de risques syst\xE9matique fond\xE9e sur les retours d\u2019\ + exp\xE9rience des utilisateurs ;\n> une gestion structur\xE9e des risques\ + \ formalis\xE9e par une m\xE9thodologie d\xE9di\xE9e.\nDans ce dernier cas,\ + \ la m\xE9thode EBIOS r\xE9f\xE9renc\xE9e par l\u2019ANSSI est recommand\xE9\ + e. Elle permet d\u2019exprimer les besoins de s\xE9curit\xE9, d\u2019identifier\ + \ les objectifs de s\xE9curit\xE9 et de d\xE9terminer les exigences de s\xE9\ + curit\xE9." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.audit + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:42 + assessable: false + depth: 2 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:x + ref_id: '42' + name: "Privil\xE9gier l\u2019usage de produits et de services qualifi\xE9s par\ + \ l'ANSSI (renforc\xE9)" + implementation_groups: + - R + - urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:node260 + assessable: true + depth: 3 + parent_urn: urn:intuitem:risk:req_node:anssi-guide-hygiene-detail:42 + description: "La qualification prononc\xE9e par l\u2019ANSSI offre des garanties\ + \ de s\xE9curit\xE9 et de confiance aux acheteurs de solutions list\xE9es\ + \ dans les catalogues de produits et de prestataires de service qualifi\xE9\ + s que publie l\u2019agence.\nAu-del\xE0 des entit\xE9s soumises \xE0 r\xE9\ + glementation, l\u2019ANSSI encourage plus g\xE9n\xE9ralement l\u2019ensemble\ + \ des entreprises et administrations fran\xE7aises \xE0 utiliser des produits\ + \ qu\u2019elle qualifie, seul gage d\u2019une \xE9tude s\xE9rieuse et approfondie\ + \ du fonctionnement technique de la solution et de son \xE9cosyst\xE8me.\n\ + S\u2019agissant des prestataires de service qualifi\xE9s, ce label permet\ + \ de r\xE9pondre aux enjeux et projets de cybers\xE9curit\xE9 pour l\u2019\ + ensemble du tissu \xE9conomique fran\xE7ais que l\u2019ANSSI ne saurait adresser\ + \ seule. \xC9valu\xE9s sur des crit\xE8res techniques et organisationnels,\ + \ les prestataires qualifi\xE9s couvrent l\u2019essentiel des m\xE9tiers de\ + \ la s\xE9curit\xE9 des syst\xE8mes d\u2019information. Ainsi, en fonction\ + \ de ses besoins et du maillage national, une entit\xE9 pourra faire appel\ + \ \xE0 un Prestataire d\u2019audit de la s\xE9curit\xE9 des syst\xE8mes d\u2019\ + information (PASSI), un Prestataire de r\xE9ponse aux incidents de s\xE9curit\xE9\ + \ (PRIS), un Prestataire de d\xE9tection des incidents de s\xE9curit\xE9 (PDIS)\ + \ ou \xE0 un prestataire de service d\u2019informatique en nuage (SecNumCloud)." + implementation_groups: + - R + reference_controls: + - urn:intuitem:risk:function:doc-pol:pol.supplier diff --git a/backend/library/libraries/doc-pol.yaml b/backend/library/libraries/doc-pol.yaml index b15d8eba07..9464078d76 100644 --- a/backend/library/libraries/doc-pol.yaml +++ b/backend/library/libraries/doc-pol.yaml @@ -1,22 +1,25 @@ urn: urn:intuitem:risk:library:doc-pol locale: en -ref_id: doc-pol -name: Documents and policies -description: Typical documents and policies recommended by intuitem +ref_id: usual-controls +name: Usual reference controls +description: Usual documents, policies, procedures, training and technical controls + recommended by intuitem copyright: "\xA9 intuitem - 2024" -version: 2 +version: 3 provider: intuitem packager: intuitem translations: fr: - name: Documents et politiques - description: "Documents et politiques typiques recommand\xE9s par intuitem" + name: "Mesures de r\xE9f\xE9rence courantes" + description: "Documents, politiques, proc\xE9dures, formations et mesures techniques\ + \ recommand\xE9s par intuitem" objects: reference_controls: - urn: urn:intuitem:risk:function:doc-pol:doc.overview ref_id: DOC.OVERVIEW name: Organization overview document category: process + csf_function: govern description: 'Objectives of the organization Organigram @@ -38,6 +41,7 @@ objects: ref_id: DOC.CONTEXT name: Context of organization document category: process + csf_function: govern description: 'Stakeholders Authorities @@ -59,6 +63,7 @@ objects: ref_id: DOC.SCOPE name: ISMS Scope document category: process + csf_function: govern description: 'Products and services Products and services requiring certification @@ -91,6 +96,7 @@ objects: ref_id: DOC.LEGAL name: legal register category: process + csf_function: govern description: "Legal requirements \nStatutory requirements \nRegulatory requirements\ \ \nContractual requirements \nIntellectual property rights\nEmployment contracts\n\ NDAs" @@ -111,6 +117,7 @@ objects: ref_id: DOC.SOA name: Statement of Applicabilty document category: process + csf_function: govern translations: fr: name: "D\xE9claration d'applicabilit\xE9" @@ -119,6 +126,7 @@ objects: ref_id: DOC.CONTROLS name: Controls accountability matrix category: process + csf_function: govern annotation: 5.1.c translations: fr: @@ -128,6 +136,7 @@ objects: ref_id: DOC.AUDIT_PLAN name: Audit plan document category: process + csf_function: govern description: 'Context of the organization Leadership @@ -161,6 +170,7 @@ objects: ref_id: DOC.COMPETENCY name: Competency matrix category: process + csf_function: govern annotation: 5.1.f translations: fr: @@ -170,6 +180,7 @@ objects: ref_id: DOC.RACI name: Responsibility matrix category: process + csf_function: govern description: RACI for ISMS translations: fr: @@ -179,6 +190,7 @@ objects: ref_id: DOC.COM name: Communication plan document category: process + csf_function: govern annotation: '7.4' translations: fr: @@ -188,6 +200,7 @@ objects: ref_id: DOC.RISK_REGISTER name: Risk register category: process + csf_function: govern description: 'Risk owner Impact @@ -215,6 +228,7 @@ objects: ref_id: DOC.SO_REGISTER name: Security objectives register category: process + csf_function: govern annotation: '6.2' translations: fr: @@ -224,6 +238,7 @@ objects: ref_id: DOC.MGMT_REVIEW name: Management review plan document category: process + csf_function: govern description: 'Review of risks Review of security objectives @@ -244,7 +259,10 @@ objects: ref_id: DOC.EDUC_REGISTER name: Training and awareness register category: process - annotation: '7.2' + csf_function: govern + annotation: '7.2 + + A.6.3' translations: fr: name: Registre de formation et sensibilisation @@ -253,6 +271,7 @@ objects: ref_id: DOC.DOC_REGISTER name: Document register category: process + csf_function: govern description: 'Rules for edition and maintenance Version control @@ -270,46 +289,17 @@ objects: ref_id: DOC.PROC_REGISTER name: Operational procedures register category: process - description: 'Risk management procdure - - Incident management procedure - - Problem management procedure - - Vulnerability management procedure - - HR procedures - - Change management procedure - - Procedure for externalization - - Physical security procedures - - Privileged access procedure' - annotation: '8.1 - - A.6.1 - - 8.1 - - 8.1. - - A.7.1 - - A.8.2' + csf_function: govern + annotation: A.5.37 translations: fr: name: "Registre des proc\xE9dures op\xE9rationnelles" - description: "Processus de gestion des risques\nProc\xE9dure de gestion des\ - \ incidents\nProc\xE9dure de gestion des probl\xE8mes\nProc\xE9dure de gestion\ - \ des vuln\xE9rabilit\xE9s\nProc\xE9dures RH\nProc\xE9dure de gestion du\ - \ changement\nProc\xE9dure d\u2019externalisation\nProc\xE9dures de s\xE9\ - curit\xE9 physique\nProc\xE9dure d\u2019acc\xE8s privil\xE9gi\xE9" + description: null - urn: urn:intuitem:risk:function:doc-pol:doc.nc_log ref_id: DOC.NC_LOG name: Log of non-conformities category: process + csf_function: govern description: "List of non-conformities (incident, problems, \u2026)\nCorrective\ \ action taken" annotation: '10.1' @@ -322,6 +312,7 @@ objects: ref_id: DOC.INTERNAL_RULES name: Rules of procedure document category: process + csf_function: govern annotation: A.5.4, A.6.2 translations: fr: @@ -331,6 +322,7 @@ objects: ref_id: DOC.ASSET_REGISTER name: Registry of assets category: process + csf_function: identify annotation: A.5.9 translations: fr: @@ -340,15 +332,401 @@ objects: ref_id: DOC.SUPPLIER_REGISTER name: Registry of suppliers category: process + csf_function: identify description: Risk management translations: fr: name: Registre des fournisseurs description: Gestion des risques + - urn: urn:intuitem:risk:function:doc-pol:doc.educ_plan + ref_id: DOC.EDUC_PLAN + name: Information security awareness and traning plan + category: process + csf_function: govern + description: 'Objective: Raise awareness for all employees and provide targeted + training for relevant staff to promote secure behaviors, ensure compliance, + and reduce risks. + + Scope: Awareness for all employees and contractors; targeted training for specific + teams (e.g., IT, security, access managers). + + Roles and Responsibilities: Assign responsibilities to IT, HR, and security + teams. + + Training Requirements: Define mandatory topics (e.g., access management, secure + configurations) and frequency (e.g., annual, onboarding). + + Delivery Methods: Awareness through e-learning and campaigns; training through + hands-on workshops and simulations. + + Evaluation: Track participation rates, quiz scores, and phishing test results. + + Compliance: Align with regulations (e.g., GDPR, ISO 27001) and maintain audit-ready + records. + + Continuous Improvement: Update based on feedback and emerging threats.' + annotation: '7.3.c + + A.6.3' + translations: + fr: + name: Plan de sensibilisation et de formation + description: "Objectif : Sensibiliser l\u2019ensemble des employ\xE9s \xE0\ + \ la s\xE9curit\xE9 de l\u2019information et former sp\xE9cifiquement les\ + \ personnes concern\xE9es pour promouvoir des comportements s\xE9curis\xE9\ + s, assurer la conformit\xE9 et r\xE9duire les risques.\nPort\xE9e : Sensibilisation\ + \ pour tous les employ\xE9s et prestataires, formation cibl\xE9e pour les\ + \ \xE9quipes concern\xE9es (ex. : IT, s\xE9curit\xE9, responsables d'acc\xE8\ + s).\nR\xF4les et Responsabilit\xE9s : Attribution des responsabilit\xE9\ + s aux \xE9quipes IT, RH et s\xE9curit\xE9.\nExigences de Formation : D\xE9\ + finir les sujets obligatoires (ex. : gestion des acc\xE8s, configuration\ + \ s\xE9curis\xE9e) et la fr\xE9quence (ex. : annuelle, \xE0 l\u2019int\xE9\ + gration).\nM\xE9thodes de Diffusion : Sensibilisation via e-learning et\ + \ campagnes, formation via ateliers pratiques et simulations.\n\xC9valuation\ + \ : Suivre les taux de participation, les r\xE9sultats des quiz et les tests\ + \ de phishing.\nConformit\xE9 : S\u2019aligner sur les r\xE9glementations\ + \ (ex. : RGPD, ISO 27001) et conserver des dossiers pour audits.\nAm\xE9\ + lioration Continue : Mettre \xE0 jour en fonction des retours et des menaces\ + \ \xE9mergentes." + - urn: urn:intuitem:risk:function:doc-pol:doc.sap + ref_id: DOC.SAP + name: Security Assurance Plan + category: process + csf_function: govern + description: 'A document provided by suppliers outlining security measures, compliance + with standards (e.g., ISO 27001), and testing procedures to ensure the security + of their products, services, or systems. It demonstrates their commitment to + maintaining a secure environment and provides evidence of compliance and security + practices. + + + + + ' + annotation: A.5.19 + translations: + fr: + name: "Plan d'Assurance S\xE9curit\xE9 (PAS)" + description: "Document fourni par les fournisseurs d\xE9crivant les mesures\ + \ de s\xE9curit\xE9, la conformit\xE9 aux normes (ex. : ISO 27001) et les\ + \ proc\xE9dures de test mises en \u0153uvre pour garantir la s\xE9curit\xE9\ + \ de leurs produits, services ou syst\xE8mes. Il d\xE9montre leur engagement\ + \ \xE0 maintenir un environnement s\xE9curis\xE9 et fournit des preuves\ + \ de conformit\xE9 et de bonnes pratiques de s\xE9curit\xE9." + - urn: urn:intuitem:risk:function:doc-pol:doc.is_map + ref_id: DOC.IS_MAP + name: Information System Mapping + category: process + csf_function: identify + description: A visual representation of an organization's information system components + and their interactions to enhance management and security. + annotation: A.5.9 + translations: + fr: + name: Cartographie du SI + description: "Repr\xE9sentation visuelle des composants d\u2019un syst\xE8\ + me d\u2019information et de leurs interactions pour am\xE9liorer la gestion\ + \ et la s\xE9curit\xE9." + - urn: urn:intuitem:risk:function:doc-pol:doc.pam_register + ref_id: DOC.PAM_REGISTER + name: Register of privileged access accounts + category: process + csf_function: identify + annotation: A.5.18 + translations: + fr: + name: "Registre des acc\xE8s \xE0 privil\xE8ges" + description: null + - urn: urn:intuitem:risk:function:doc-pol:doc.incident_register + ref_id: DOC.INCIDENT_REGiSTER + name: Security Incident Register + category: process + csf_function: respond + annotation: A.5.34 + translations: + fr: + name: "Registre des incidents de s\xE9curit\xE9" + description: null + - urn: urn:intuitem:risk:function:doc-pol:doc.flow_matrix + ref_id: DOC.FLOW_MATRIX + name: Flow Matrix + category: process + csf_function: identify + description: A document mapping authorized data flows between systems, applications, + or network zones to ensure secure and compliant communication. + annotation: A.5.20 + translations: + fr: + name: Matrice de flux + description: "Document cartographiant les flux de donn\xE9es autoris\xE9s\ + \ entre syst\xE8mes, applications ou zones r\xE9seau pour garantir des communications\ + \ s\xE9curis\xE9es et conformes." + - urn: urn:intuitem:risk:function:doc-pol:doc.arc_principles + ref_id: DOC.ARC_PRINCIPLES + name: Security Architecture Principles + category: process + csf_function: protect + annotation: A.8.27 + translations: + fr: + name: "Principes d'architecture s\xE9curit\xE9" + description: null + - urn: urn:intuitem:risk:function:doc-pol:proc.pam + ref_id: PROC.PAM + name: Privileged Access Management Procedure + category: procedure + csf_function: protect + description: A document outlining the processes and controls for managing and + securing privileged accounts, ensuring only authorized users have access to + critical systems and data, with measures like monitoring, auditing, and time-limited + access to minimize risks. + annotation: 'A.5.18 + + A.8.2' + translations: + fr: + name: "Proc\xE9dure de gestion des acc\xE8s \xE0 privil\xE8ges" + description: "Document d\xE9crivant les processus et contr\xF4les pour g\xE9\ + rer et s\xE9curiser les comptes \xE0 privil\xE8ges, en s'assurant que seuls\ + \ les utilisateurs autoris\xE9s ont acc\xE8s aux syst\xE8mes et donn\xE9\ + es critiques. Elle inclut des mesures telles que la surveillance, l'audit,\ + \ et l'acc\xE8s limit\xE9 dans le temps pour r\xE9duire les risques." + - urn: urn:intuitem:risk:function:doc-pol:proc.recertification + ref_id: PROC.RECERTIFICATION + name: Account recertification procedure + category: procedure + csf_function: govern + description: A document that defines the process for regularly reviewing and validating + user access rights, system certifications, or compliance with standards. It + ensures that only authorized users and systems retain access or certification, + and it helps identify and revoke outdated or unnecessary permissions. + annotation: A.5.22 + translations: + fr: + name: "Proc\xE9dure de recertification des acc\xE8s" + description: "\nDocument d\xE9crivant le processus de r\xE9vision et de validation\ + \ r\xE9guli\xE8res des droits d'acc\xE8s des utilisateurs, des certifications\ + \ des syst\xE8mes ou de la conformit\xE9 aux normes. Il garantit que seuls\ + \ les utilisateurs et syst\xE8mes autoris\xE9s conservent leurs acc\xE8\ + s ou certifications, et aide \xE0 identifier et r\xE9voquer les autorisations\ + \ obsol\xE8tes ou inutiles." + - urn: urn:intuitem:risk:function:doc-pol:proc.hr_security + ref_id: PROC.HR_SECURITY + name: HR Security Procedure + category: procedure + csf_function: govern + description: "A document that outlines processes and controls related to managing\ + \ human resources within an organization, ensuring compliance with legal, regulatory,\ + \ and security standards. It includes recruitment, onboarding, role changes,\ + \ training, and termination procedures to safeguard the organization\u2019s\ + \ information and assets." + annotation: 'A.5.7 + + A.5.8 + + A.5.30 + + A.5.18' + translations: + fr: + name: "Proc\xE9dure de s\xE9curit\xE9 RH" + description: "Document d\xE9crivant les processus et contr\xF4les li\xE9s\ + \ \xE0 la gestion des ressources humaines au sein d'une organisation, en\ + \ garantissant la conformit\xE9 aux normes l\xE9gales, r\xE9glementaires\ + \ et de s\xE9curit\xE9. Il inclut les proc\xE9dures de recrutement, d'int\xE9\ + gration, de changement de r\xF4le, de formation et de d\xE9part afin de\ + \ prot\xE9ger les informations et les actifs de l'organisation." + - urn: urn:intuitem:risk:function:doc-pol:proc.physical_security + ref_id: PROC.PHYSICAL_SECURITY + name: Physical Security Procedure + category: procedure + csf_function: govern + description: 'Access Control: Procedures for granting, revoking, and monitoring + physical access to secure areas. + + Asset Protection: Guidelines for safeguarding critical assets (e.g., servers, + storage devices). + + Surveillance: Use of cameras, alarms, and monitoring systems to detect and prevent + breaches. + + Visitor Management: Policies for registering and escorting visitors in secure + areas. + + Incident Response: Steps to address physical security breaches or emergencies.' + annotation: 'A.5.14 + + A.5.20 + + A.5.21' + translations: + fr: + name: "Proc\xE9dure de s\xE9curit\xE9 physique" + description: "Contr\xF4le des acc\xE8s : Proc\xE9dures pour accorder, r\xE9\ + voquer et surveiller l'acc\xE8s physique aux zones s\xE9curis\xE9es.\nProtection\ + \ des actifs : Lignes directrices pour prot\xE9ger les actifs critiques\ + \ (ex. : serveurs, dispositifs de stockage).\nSurveillance : Utilisation\ + \ de cam\xE9ras, d'alarmes et de syst\xE8mes de monitoring pour d\xE9tecter\ + \ et pr\xE9venir les violations.\nGestion des visiteurs : Politiques pour\ + \ l'enregistrement et l'accompagnement des visiteurs dans les zones s\xE9\ + curis\xE9es.\nR\xE9ponse aux incidents : \xC9tapes pour traiter les violations\ + \ de s\xE9curit\xE9 physique ou les situations d'urgence." + - urn: urn:intuitem:risk:function:doc-pol:proc.gpo + ref_id: PROC.GPO + name: Group Policy Objects Procedure + category: procedure + csf_function: protect + description: defines how to create, configure, and manage GPOs to enforce security + settings, system configurations, and user policies across a Windows environment. + It ensures consistent implementation of organizational policies for secure and + compliant IT operations. + annotation: A.5.23 + translations: + fr: + name: "Proc\xE9dure GPO" + description: "D\xE9finit comment cr\xE9er, configurer et g\xE9rer les GPO\ + \ pour appliquer les param\xE8tres de s\xE9curit\xE9, les configurations\ + \ syst\xE8me et les politiques utilisateur dans un environnement Windows.\ + \ Cela garantit une mise en \u0153uvre coh\xE9rente des politiques organisationnelles\ + \ pour des op\xE9rations informatiques s\xE9curis\xE9es et conformes." + - urn: urn:intuitem:risk:function:doc-pol:proc.update + ref_id: PROC.UPDATE + name: Update management procedure + category: procedure + csf_function: protect + description: 'Roles and Responsibilities + + Update Classification + + Update Planning + + Testing and Validation + + Deployment Process + + Monitoring and Verification + + Documentation and Reporting' + annotation: A.8.8 + translations: + fr: + name: "Proc\xE9dure de gestion des mises \xE0 jour" + description: "R\xF4les et responsabilit\xE9s\nClassification des mises \xE0\ + \ jour\nPlanification des mises \xE0 jour\nTests et validation\nProcessus\ + \ de d\xE9ploiement\nSuivi et v\xE9rification\nDocumentation et rapports" + - urn: urn:intuitem:risk:function:doc-pol:proc.incident + ref_id: PROC.INCIDENT + name: Incident Management Procedure + category: procedure + csf_function: protect + description: Practical implementation of the incident management policy + annotation: 'A.5.24 + + A.5.25 + + A.5.26 + + A.5.27 + + A.5.28' + translations: + fr: + name: "Proc\xE9dure de gestion des incidents" + description: "Impl\xE9mentation pratique de la politique de gestion des incidents" + - urn: urn:intuitem:risk:function:doc-pol:proc.disposal + ref_id: PROC.DISPOSAL + name: Secure Disposal Procedure + category: procedure + csf_function: protect + description: 'Roles and Responsibilities + + Asset Identification for Disposal + + Secure Disposal Methods + + Data Sanitization + + Compliance with Legal and Regulatory Requirements + + Documentation and Record Keeping + + Verification and Audit' + annotation: A.7.14 + translations: + fr: + name: "Proc\xE9dure de gestion de la mise au rebut" + description: "R\xF4les et responsabilit\xE9s\nIdentification des actifs \xE0\ + \ mettre au rebut\nM\xE9thodes de mise au rebut s\xE9curis\xE9e\nEffacement\ + \ des donn\xE9es\nConformit\xE9 aux exigences l\xE9gales et r\xE9glementaires\n\ + Documentation et tenue des registres\nV\xE9rification et audit" + - urn: urn:intuitem:risk:function:doc-pol:proc.ntp + ref_id: PROC.NTP + name: Time Synchronization Procedure + category: procedure + csf_function: protect + description: ' + + Time Source: Use reliable external sources (e.g., NTP servers). + + Configuration: Define synchronization intervals and fallback mechanisms. + + Monitoring: Regularly verify time synchronization status.' + annotation: A.8.17 + translations: + fr: + name: "Proc\xE9dure de synchronisation des horloges" + description: "Source temporelle : Utiliser des sources fiables (ex. : serveurs\ + \ NTP).\nConfiguration : D\xE9finir les intervalles de synchronisation et\ + \ les m\xE9canismes de secours.\nSurveillance : V\xE9rifier r\xE9guli\xE8\ + rement l\u2019\xE9tat de la synchronisation temporelle." + - urn: urn:intuitem:risk:function:doc-pol:proc.email_security + ref_id: PROC.EMAIL_SECURITY + name: Email Security Configuration Procedure + category: procedure + csf_function: protect + description: 'Email Server Configuration + + Domain-Based Email Protection + + Anti-Malware and Anti-Spam Controls + + Encryption and Secure Communication + + Access Control and Monitoring + + Backup and Recovery + + User Awareness and Training' + annotation: A.8.21 + translations: + fr: + name: "Proc\xE9dure de s\xE9curisation des emails" + description: "Configuration du serveur de messagerie\nProtection des emails\ + \ bas\xE9e sur le domaine\nContr\xF4les anti-malware et anti-spam\nChiffrement\ + \ et communication s\xE9curis\xE9e\nContr\xF4le d\u2019acc\xE8s et surveillance\n\ + Sauvegarde et r\xE9cup\xE9ration\nSensibilisation et formation des utilisateurs" + - urn: urn:intuitem:risk:function:doc-pol:proc.logging + ref_id: PROC.LOGGING + name: Logging procedure + category: procedure + csf_function: detect + description: 'Log collection and categorization + + Secure storage and retention policies + + Analysis for anomaly detection and incident response' + annotation: A.8.15 + translations: + fr: + name: "Proc\xE9dure de gestion de la journalisation" + description: "Collecte et cat\xE9gorisation des journaux\nStockage s\xE9curis\xE9\ + \ et politiques de r\xE9tention\nAnalyse pour la d\xE9tection d'anomalies\ + \ et la r\xE9ponse aux incidents" - urn: urn:intuitem:risk:function:doc-pol:pol.main ref_id: POL.MAIN name: Main policy category: policy + csf_function: govern description: 'information security objectives commitment @@ -377,6 +755,7 @@ objects: ref_id: POL.EDUC name: Information security awareness and traning policy category: policy + csf_function: govern description: 'implications of not respecting Security event reporting @@ -397,6 +776,7 @@ objects: ref_id: POL.WORK name: Workstations and teleworking policy category: policy + csf_function: govern description: 'Workstations Mobile devices @@ -424,6 +804,7 @@ objects: ref_id: POL.CRYPTO name: Cryptographic policy category: policy + csf_function: govern description: 'Key management Encryption @@ -438,6 +819,7 @@ objects: ref_id: POL.CLASSIF name: Information classification and handling policy category: policy + csf_function: govern description: 'classification protection and handling of information @@ -475,6 +857,7 @@ objects: ref_id: POL.AUDIT name: Internal and external audit policy category: policy + csf_function: govern description: Protection of audit information annotation: A.8.34 translations: @@ -485,6 +868,7 @@ objects: ref_id: POL.BCP name: Business continuity policy category: policy + csf_function: govern translations: fr: name: "Politique de continuit\xE9 d\u2019activit\xE9" @@ -493,6 +877,8 @@ objects: ref_id: POL.SEG_DUTY name: Segregation of duties policy category: policy + csf_function: govern + annotation: A.5.3 translations: fr: name: "Politique sur la s\xE9paration des t\xE2ches" @@ -501,6 +887,7 @@ objects: ref_id: POL.ACCESS name: Access control policy category: policy + csf_function: govern description: 'Identification authentication @@ -538,6 +925,7 @@ objects: ref_id: POL.MALWARE name: Malware protection policy category: policy + csf_function: govern description: 'antivirus EDR' @@ -551,6 +939,7 @@ objects: ref_id: POL.RISK name: Risk management policy category: policy + csf_function: govern description: 'Risk management definition Risk appetite @@ -594,6 +983,7 @@ objects: ref_id: POL.ASSET name: Asset management policy category: policy + csf_function: govern translations: fr: name: "Politique de gestion d\u2019actifs" @@ -602,6 +992,7 @@ objects: ref_id: POL.BACKUP name: Backup and restore policy category: policy + csf_function: govern translations: fr: name: Politique de sauvegarde et de restauration @@ -610,6 +1001,7 @@ objects: ref_id: POL.SUPPLIER name: Third party supplier security policy category: policy + csf_function: govern annotation: A.5.19, A.5.20, A.5.21, A.5.22, A.5.23 translations: fr: @@ -619,6 +1011,7 @@ objects: ref_id: POL.MONITOR name: Logging and monitoring policy category: policy + csf_function: govern description: Logging annotation: A.8.15 translations: @@ -629,6 +1022,7 @@ objects: ref_id: POL.TRANSFER name: Information transfer policy category: policy + csf_function: govern annotation: A.5.14 translations: fr: @@ -638,6 +1032,7 @@ objects: ref_id: POL.SECDEV name: Secure development policy category: policy + csf_function: govern translations: fr: name: "Politique de d\xE9veloppement s\xE9curis\xE9" @@ -646,6 +1041,7 @@ objects: ref_id: POL.PHYSICAL name: Physical security policy category: policy + csf_function: govern description: 'Physical security perimeter Secure areas @@ -671,6 +1067,7 @@ objects: ref_id: POL.NETWORK name: Network security management policy category: policy + csf_function: govern translations: fr: name: "Politique de gestion de la s\xE9curit\xE9 du r\xE9seau" @@ -679,23 +1076,42 @@ objects: ref_id: POL.ACCEPT name: Acceptable use policy category: policy + csf_function: govern + description: 'Objective: To define the permitted and prohibited uses of resources. + + Scope: All IS users. + + Rules: Permitted and prohibited activities, safety obligations. + + Confidentiality: Protection of sensitive data. + + Compliance: Monitoring, penalties for non-compliance.' annotation: A.5.10 translations: fr: name: "Politique d\u2019utilisation acceptable" - description: null + description: "Objectif : D\xE9finir les usages autoris\xE9s et interdits des\ + \ ressources.\nPort\xE9e : Tous les utilisateurs du SI.\nR\xE8gles : Activit\xE9\ + s permises et proscrites, obligations de s\xE9curit\xE9.\nConfidentialit\xE9\ + \ : Protection des donn\xE9es sensibles.\nConformit\xE9 : Surveillance,\ + \ sanctions en cas de non-respect." - urn: urn:intuitem:risk:function:doc-pol:pol.project ref_id: POL.PROJECT name: IS project integration policy category: policy + csf_function: govern + description: Rules for the integration of security in IS projects + annotation: A.5.8 translations: fr: name: "Politique d\u2019int\xE9gration de projets SI" - description: null + description: "R\xE8gles d'int\xE9gration de la s\xE9curit\xE9 dans les projets\ + \ SI" - urn: urn:intuitem:risk:function:doc-pol:pol.threat_intel ref_id: POL.THREAT_INTEL name: Threat intelligence policy category: policy + csf_function: govern description: 'Known Exploited Vulnerabilities Threat actors activity @@ -711,27 +1127,697 @@ objects: ref_id: POL.INCIDENT name: IS incident management policy category: policy - description: 'Security incident management + csf_function: govern + description: 'Incident Classification + + Incident Reporting + + Incident Response Process + + Root Cause Analysis and Lessons Learned + + Documentation and Communication - Vulnerability management' - annotation: A.5.24, A.5.25, A.5.26, A.5.27 + Roles and Responsibilities + + Review and Updates' + annotation: 'A.5.24 + + A.5.25 + + A.5.26 + + A.5.27 + + A.5.28' translations: fr: name: Politique de gestion des incidents du SI - description: "Gestion des incidents de s\xE9curit\xE9\nGestion des vuln\xE9\ - rabilit\xE9s" + description: "Classification des incidents\nSignalement des incidents\nProcessus\ + \ de r\xE9ponse aux incidents\nAnalyse des causes et retours d'exp\xE9rience\n\ + Documentation et communication\nR\xF4les et responsabilit\xE9s\nRevue et\ + \ mises \xE0 jour" - urn: urn:intuitem:risk:function:doc-pol:pol.maintenance ref_id: POL.MAINTENANCE name: Maintenance policy category: policy + csf_function: govern description: 'Obsolescence management Maintenance contracts Change management' - annotation: A.7.13 + annotation: 'A.7.13 + + A.8.32' translations: fr: name: Politique de maintenance description: "Gestion de l\u2019obsolescence\nContrats de maintenance\nGestion\ \ du changement" + - urn: urn:intuitem:risk:function:doc-pol:pol.vulnerability + ref_id: POL.VULNERABILITY + name: Vulnerability management policy + category: policy + csf_function: govern + description: 'Vulnerability detection and management + + Patch management' + annotation: 'A.8.8 + + A.5.35' + translations: + fr: + name: "Politique de gestion des vuln\xE9rabilit\xE9s" + description: "D\xE9tection et gestion des vuln\xE9rabilit\xE9s\nGestion des\ + \ mises \xE0 jour" + - urn: urn:intuitem:risk:function:doc-pol:train.legal + ref_id: TRAIN.LEGAL + name: Legal and regulatory training + category: process + csf_function: govern + description: 'Objective: Ensure awareness of legal and regulatory compliance. + + Audience: All employees; tailored for specific roles. + + Topics: Key laws (e.g., GDPR), data handling, non-compliance risks. + + Methods: E-learning, workshops, case studies. + + Assessment: Quizzes and scenario-based tests.' + annotation: '7.2 + + 7.3' + translations: + fr: + name: "Formation conformit\xE9 l\xE9gal et r\xE9glementaire" + description: "Objectif : Assurer une sensibilisation aux obligations l\xE9\ + gales et r\xE9glementaires.\nPublic : Tous les employ\xE9s, avec des contenus\ + \ adapt\xE9s aux r\xF4les sp\xE9cifiques.\nSujets : Lois cl\xE9s (ex. :\ + \ RGPD), gestion des donn\xE9es, risques de non-conformit\xE9.\nM\xE9thodes\ + \ : E-learning, ateliers, \xE9tudes de cas.\n\xC9valuation : Quiz et tests\ + \ bas\xE9s sur des sc\xE9narios." + - urn: urn:intuitem:risk:function:doc-pol:train.threat + ref_id: TRAIN.THREAT + name: Threat landscape training + category: process + csf_function: govern + description: 'Objective: Understand current cyber threats and mitigation strategies. + + Audience: IT staff, security teams, and decision-makers. + + Topics: Emerging threats, attack techniques, defense mechanisms. + + Methods: Presentations, case studies, scenario-based discussions. + + Outcome: Improved awareness and readiness to address evolving threats.' + annotation: '7.2 + + 7.3' + translations: + fr: + name: "Formation sur l'\xE9tat de la menace" + description: "Objectif : Comprendre les menaces cyber actuelles et les strat\xE9\ + gies d\u2019att\xE9nuation.\nPublic : \xC9quipes IT, \xE9quipes de s\xE9\ + curit\xE9, et d\xE9cideurs.\nSujets : Menaces \xE9mergentes, techniques\ + \ d'attaque, m\xE9canismes de d\xE9fense.\nM\xE9thodes : Pr\xE9sentations,\ + \ \xE9tudes de cas, discussions bas\xE9es sur des sc\xE9narios.\nR\xE9sultat\ + \ : Sensibilisation accrue et meilleure pr\xE9paration face aux menaces\ + \ \xE9volutives." + - urn: urn:intuitem:risk:function:doc-pol:train.iam + ref_id: TRAIN.IAM + name: IAM (Identity and Access Management) training + category: process + csf_function: govern + description: 'Objective: Understand and master identity and access management. + + Audience: IT administrators, security teams, access managers. + + Topics: + + - Key concepts (identity, authentication, authorization, RBAC/ABAC models). + + - IAM best practices (rights management, provisioning, audits). + + - Standards and tools (SAML, OAuth, Active Directory, etc.). + + Methods: Practical workshops, use cases, demonstrations. + + Outcome: Enhanced skills to secure and efficiently manage access.' + annotation: '7.2' + translations: + fr: + name: "Formation IAM (Gestion des Identit\xE9s et des Acc\xE8s)" + description: "Objectif : Comprendre et ma\xEEtriser la gestion des identit\xE9\ + s et des acc\xE8s.\nPublic : Administrateurs IT, \xE9quipes de s\xE9curit\xE9\ + , responsables d\u2019acc\xE8s.\nSujets :\nConcepts cl\xE9s (identit\xE9\ + , authentification, autorisation, mod\xE8les RBAC/ABAC).\nBonnes pratiques\ + \ IAM (gestion des droits, provisionnement, audits).\nNormes et outils (SAML,\ + \ OAuth, Active Directory, etc.).\nM\xE9thodes : Ateliers pratiques, cas\ + \ d\u2019usage, d\xE9monstrations.\nR\xE9sultat : Capacit\xE9s renforc\xE9\ + es pour s\xE9curiser et g\xE9rer les acc\xE8s efficacement." + - urn: urn:intuitem:risk:function:doc-pol:train.network_security + ref_id: TRAIN.NETWORK_SECURITY + name: Network security training + category: process + csf_function: govern + description: 'Objective: Teach best practices for securing network infrastructures + and preventing cyber threats. + + Audience: IT administrators, network engineers, security professionals. + + Topics: + + - Network segregation principles. + + - Firewall configuration and monitoring. + + - Intrusion detection/prevention systems (IDS/IPS/NDR). + + - Network segmentation and access control. + + - Secure protocols (e.g., HTTPS, VPN, SSH). + + - Threat mitigation (e.g., DDoS, malware). + + Methods: Interactive labs, simulations, and hands-on exercises. + + Outcome: Enhanced ability to protect and monitor network environments.' + annotation: '7.2' + translations: + fr: + name: "Formation s\xE9curit\xE9 r\xE9seau" + description: "Objectif : Enseigner les meilleures pratiques pour s\xE9curiser\ + \ les infrastructures r\xE9seau et pr\xE9venir les cybermenaces.\nPublic\ + \ : Administrateurs IT, ing\xE9nieurs r\xE9seau, professionnels de la s\xE9\ + curit\xE9.\nSujets :\n\nPrincipes de cloisonnement r\xE9seau.\nConfiguration\ + \ et surveillance des pare-feu.\nSyst\xE8mes de d\xE9tection/pr\xE9vention\ + \ d'intrusion (IDS/IPS/NDR).\nSegmentation r\xE9seau et contr\xF4le des\ + \ acc\xE8s.\nProtocoles s\xE9curis\xE9s (ex. : HTTPS, VPN, SSH).\nAtt\xE9\ + nuation des menaces (ex. : DDoS, malwares).\nM\xE9thodes : Laboratoires\ + \ interactifs, simulations et exercices pratiques.\nR\xE9sultat : Capacit\xE9\ + s renforc\xE9es pour prot\xE9ger et surveiller les environnements r\xE9\ + seau." + - urn: urn:intuitem:risk:function:doc-pol:train.mcs + ref_id: TRAIN.MCS + category: process + csf_function: govern + description: 'Objective: Build expertise in maintaining secure IT systems through + monitoring, patching, compliance, and incident response. + + Audience: IT security professionals, system administrators, compliance officers, + and incident response teams. + + Topics: + + - Principles of maintaining security and its importance in cybersecurity. + + - Security monitoring tools and techniques (e.g., SIEM, IDS). + + - Patch management and secure system configurations. + + - Incident detection, response planning, and execution. + + - Compliance with security policies and regulatory standards. + + Methods: Practical labs, simulated scenarios, and case studies on maintaining + security conditions. + + Outcome: Enhanced capability to continuously secure IT environments, mitigate + risks, and ensure compliance.' + annotation: 'A.7.13 + + A.8.32' + translations: + fr: + name: "Formation Maintien en Condition de S\xE9curit\xE9 (MCS)" + description: "Objectif : D\xE9velopper une expertise dans le maintien en condition\ + \ de s\xE9curit\xE9 (MCS)\nPublic : Professionnels de la s\xE9curit\xE9\ + \ IT, administrateurs syst\xE8mes, responsables conformit\xE9 et \xE9quipes\ + \ de r\xE9ponse aux incidents.\nSujets :\n- Principes du MCS et son importance\ + \ en cybers\xE9curit\xE9.\n- Outils et techniques de surveillance de la\ + \ s\xE9curit\xE9 (ex. : SIEM, IDS).\n- Gestion des correctifs et configurations\ + \ s\xE9curis\xE9es des syst\xE8mes.\n- D\xE9tection des incidents, planification\ + \ et ex\xE9cution des r\xE9ponses.\n- Conformit\xE9 aux politiques de s\xE9\ + curit\xE9 et aux r\xE9glementations.\nM\xE9thodes : Exercices pratiques,\ + \ sc\xE9narios simul\xE9s et \xE9tudes de cas sur le maintien des conditions\ + \ de s\xE9curit\xE9.\nR\xE9sultat attendu : Capacit\xE9 renforc\xE9e \xE0\ + \ s\xE9curiser en continu les environnements IT, \xE0 att\xE9nuer les risques\ + \ et \xE0 garantir la conformit\xE9." + - urn: urn:intuitem:risk:function:doc-pol:train.logging + ref_id: TRAIN.LOGGING + name: Logging and Monitoring Training + category: process + csf_function: govern + description: "1. Objective: Teach effective logging practices and monitoring techniques\ + \ to enhance security and incident response. \n2. Audience: IT administrators,\ + \ security teams, and SOC analysts. \n3. Topics: \n - Importance of logging\ + \ and compliance requirements. \n - Configuring and managing log sources\ + \ (e.g., servers, firewalls, applications). \n - Centralized logging systems\ + \ (e.g., SIEM, ELK stack). \n - Detecting anomalies and analyzing logs. \ + \ \n - Incident response based on log insights. \n4. Methods: Hands-on labs,\ + \ real-world scenarios, and log analysis exercises. \n5. Outcome: Improved\ + \ ability to collect, analyze, and act on log data to prevent and respond to\ + \ incidents. " + annotation: '7.2 + + 7.12 + + 7.13 + + 7.14 + + A.5.12 + + A.5.13 + + A.5.14 + + A.5.15' + translations: + fr: + name: Formation sur la Journalisation et la Surveillance + description: "Objectif : Enseigner les pratiques efficaces de journalisation\ + \ et les techniques de surveillance pour renforcer la s\xE9curit\xE9 et\ + \ la r\xE9ponse aux incidents.\nPublic : Administrateurs IT, \xE9quipes\ + \ de s\xE9curit\xE9, analystes SOC.\nSujets :\nImportance de la journalisation\ + \ et exigences de conformit\xE9.\nConfiguration et gestion des sources de\ + \ journaux (ex. : serveurs, pare-feu, applications).\nSyst\xE8mes de journalisation\ + \ centralis\xE9e (ex. : SIEM, ELK stack).\nD\xE9tection d'anomalies et analyse\ + \ des journaux.\nR\xE9ponse aux incidents bas\xE9e sur les informations\ + \ des journaux.\nM\xE9thodes : Ateliers pratiques, sc\xE9narios r\xE9els\ + \ et exercices d'analyse des journaux.\nR\xE9sultat : Capacit\xE9 renforc\xE9\ + e \xE0 collecter, analyser et exploiter les donn\xE9es de journaux pour\ + \ pr\xE9venir et g\xE9rer les incidents." + - urn: urn:intuitem:risk:function:doc-pol:train.hardening + ref_id: TRAIN.HARDENING + name: Hardening and Secure Configuration Training + category: process + csf_function: govern + description: 'Objective: Equip participants with the knowledge to implement secure + configurations and harden systems to reduce vulnerabilities. + + Audience: IT administrators, system engineers, security professionals. + + Topics: + + - Principles of system hardening. + + - Hardening operating systems (Windows, Linux). + + - Securing databases (e.g., MySQL, PostgreSQL). + + - Network device hardening (firewalls, routers, switches). + + - Applying CIS Benchmarks and ANSSI guidelines. + + - Tools for automation (e.g., Ansible, Puppet, Chef). + + Methods: + + - Hands-on labs for OS and application hardening. + + - Case studies on hardening failures and solutions. + + Outcome: Participants will gain the ability to implement secure configurations + and improve overall system resilience.' + annotation: '7.2 + + A.5.23 + + A.5.12 + + A.5.16 + + A.5.35' + translations: + fr: + name: "Formation sur le Durcissement des Syst\xE8mes" + description: "Objectif : Former les participants \xE0 appliquer des configurations\ + \ s\xE9curis\xE9es et \xE0 durcir les syst\xE8mes pour r\xE9duire les vuln\xE9\ + rabilit\xE9s.\nPublic : Administrateurs IT, ing\xE9nieurs syst\xE8mes, professionnels\ + \ de la s\xE9curit\xE9.\nSujets :\n- Principes fondamentaux du durcissement\ + \ des syst\xE8mes.\n- Durcissement des syst\xE8mes d\u2019exploitation (Windows,\ + \ Linux).\n- S\xE9curisation des bases de donn\xE9es (ex. : MySQL, PostgreSQL).\n\ + - Durcissement des \xE9quipements r\xE9seau (pare-feu, routeurs, switchs).\n\ + - Application des benchmarks CIS et recommandations ANSSI.\n- Automatisation\ + \ des configurations (ex. : Ansible, Puppet, Chef).\nM\xE9thodes :\n- Ateliers\ + \ pratiques pour le durcissement des syst\xE8mes et applications.\n- \xC9\ + tudes de cas sur les \xE9checs de durcissement et leurs solutions.\nR\xE9\ + sultat : Les participants ma\xEEtriseront la mise en \u0153uvre de configurations\ + \ s\xE9curis\xE9es et l'am\xE9lioration de la r\xE9silience des syst\xE8\ + mes." + - urn: urn:intuitem:risk:function:doc-pol:tech.nac + ref_id: TECH.NAC + name: Network Access Control (802.1X) + category: technical + csf_function: protect + description: A capacity that enforces authentication and authorization of devices + or users before granting network access. It ensures secure access to wired and + wireless networks by leveraging protocols like 82.1X and RADIUS to validate + credentials and apply access policies. + annotation: A.5.20 + translations: + fr: + name: "Contr\xF4le d'Acc\xE8s R\xE9seau (802.1X)" + description: "Une capacit\xE9 permettant d'assurer l'authentification et l'autorisation\ + \ des appareils ou des utilisateurs avant de leur accorder l'acc\xE8s au\ + \ r\xE9seau. Elle garantit un acc\xE8s s\xE9curis\xE9 aux r\xE9seaux filaires\ + \ et sans fil en utilisant des protocoles comme 802.1X et RADIUS pour valider\ + \ les identifiants et appliquer les politiques d'acc\xE8s." + - urn: urn:intuitem:risk:function:doc-pol:tech.access_log + ref_id: TECH.ACCESS_LOG + name: Access Logging + category: technical + csf_function: detect + annotation: 'A.5.12 + + A.5.15' + translations: + fr: + name: "Journalisation des acc\xE8s" + description: null + - urn: urn:intuitem:risk:function:doc-pol:tech.edr + ref_id: TECH.EDR + name: Event Detection and Response (EDR) Capacity + category: technical + csf_function: detect + annotation: 'A.5.12 + + A.5.15' + translations: + fr: + name: "Capacit\xE9 de d\xE9tection et de traitement des \xE9v\xE9nements (EDR)" + description: null + - urn: urn:intuitem:risk:function:doc-pol:tech.password_manager + ref_id: TECH.PASSWORD_MANAGER + name: Password Management Capacity + category: technical + csf_function: protect + description: A capacity that enables secure creation, storage, management, and + usage of passwords for systems, applications, and accounts. It reduces the risk + of unauthorized access by enforcing strong password policies and ensuring secure + handling of credentials. + annotation: A.5.18 + translations: + fr: + name: "Syst\xE8me de gestion des mots de passe" + description: "Capacit\xE9 permettant la cr\xE9ation, le stockage, la gestion\ + \ et l'utilisation s\xE9curis\xE9s des mots de passe pour les syst\xE8mes,\ + \ les applications et les comptes. Elle r\xE9duit le risque d'acc\xE8s non\ + \ autoris\xE9 en appliquant des politiques de mots de passe robustes et\ + \ en garantissant une gestion s\xE9curis\xE9e des identifiants." + - urn: urn:intuitem:risk:function:doc-pol:tech.uem + ref_id: TECH.UEM + name: Unified Endpoint Management Capacity + category: technical + csf_function: protect + description: A capacity that provides centralized control and management of all + endpoints, including desktops, laptops, mobile devices, and IoT devices, through + a single platform. It ensures secure configuration, policy enforcement, application + management, and monitoring across an organization's endpoint ecosystem. + annotation: A.5.23 + translations: + fr: + name: "Syst\xE8me unifi\xE9 de gestion des terminaux" + description: "Capacit\xE9 permettant le contr\xF4le et la gestion centralis\xE9\ + s de tous les terminaux, y compris les ordinateurs de bureau, les ordinateurs\ + \ portables, les appareils mobiles et les dispositifs IoT, via une plateforme\ + \ unique. Elle garantit une configuration s\xE9curis\xE9e, l'application\ + \ des politiques, la gestion des applications et la surveillance de l'\xE9\ + cosyst\xE8me des terminaux de l'organisation." + - urn: urn:intuitem:risk:function:doc-pol:tech.endpoint_protection + ref_id: TECH.ENDPOINT_PROTECTION + name: Host antivirus, firewall and USB control + category: technical + csf_function: detect + description: "Integrated solutions for securing endpoints, including antivirus,\ + \ firewall, and USB port control\_" + annotation: A.8.7 + translations: + fr: + name: Antivirus et pare-feu pour poste de travail + description: "Solutions int\xE9gr\xE9es pour s\xE9curiser les terminaux, incluant\ + \ antivirus, pare-feu et gestion des ports USB" + - urn: urn:intuitem:risk:function:doc-pol:tech.disk_encryption + ref_id: TECH.DISK_ENCRYPTION + name: Disk Encryption Capacity + category: technical + csf_function: protect + description: Full-disk encryption for workstations + annotation: A.8.24 + translations: + fr: + name: "Capacit\xE9 de chiffrement de disque" + description: Chiffrement de disque complet pour les postes de travail + - urn: urn:intuitem:risk:function:doc-pol:tech.immutable_backup + ref_id: TECH.IMMUTABLE_BACKUP + name: Immutable backup capacity + category: technical + csf_function: recover + description: A capability that ensures backups cannot be altered, deleted, or + overwritten, protecting data integrity against ransomware and unauthorized access. + annotation: A.5.30 + translations: + fr: + name: "Capacit\xE9 de sauvegarde immuable" + description: "Capacit\xE9 qui garantit que les sauvegardes ne peuvent pas\ + \ \xEAtre modifi\xE9es, supprim\xE9es ou \xE9cras\xE9es, assurant l\u2019\ + int\xE9grit\xE9 des donn\xE9es contre les ransomwares et les acc\xE8s non\ + \ autoris\xE9s." + - urn: urn:intuitem:risk:function:doc-pol:tech.file_encryption + ref_id: TECH.FILE_ENCRYPTION + name: File encryption capacity + category: technical + csf_function: protect + description: File encryption utilities like 7zip + annotation: A.8.24 + translations: + fr: + name: "Capacit\xE9 de chiffrement de fichiers" + description: Utilitaire de chiffrement de fichier comme 7zip. + - urn: urn:intuitem:risk:function:doc-pol:tech.cmdb + ref_id: TECH.CMDB + name: Configuration Management DataBase (CMDB) + category: technical + csf_function: identify + description: A centralized repository that stores and manages information about + IT assets, their configurations, and relationships to support effective IT management. + annotation: A.5.23 + translations: + fr: + name: "Base de donn\xE9es de gestion des configurations (CMDB)" + description: "R\xE9f\xE9rentiel centralis\xE9 qui stocke et g\xE8re les informations\ + \ sur les actifs IT, leurs configurations et leurs relations pour une gestion\ + \ IT efficace." + - urn: urn:intuitem:risk:function:doc-pol:tech.siem + ref_id: TECH.SIEM + name: Security Information and Event Management (SIEM) + category: technical + csf_function: detect + description: 'A system that collects, analyzes, and correlates security data from + multiple sources to detect and respond to threats. + + ' + annotation: A.5.12 + translations: + fr: + name: "Gestion des informations et des \xE9v\xE9nements de s\xE9curit\xE9\ + \ (SIEM) " + description: "Syst\xE8me qui collecte, analyse et corr\xE8le les donn\xE9\ + es de s\xE9curit\xE9 provenant de multiples sources pour d\xE9tecter et\ + \ r\xE9pondre aux menaces." + - urn: urn:intuitem:risk:function:doc-pol:tech.screen_filter + ref_id: TECH.SCREEN_FILTER + name: Screen Filter + category: technical + csf_function: protect + description: A physical or digital filter that limits screen visibility to authorized + users, reducing the risk of visual data breaches. + annotation: A.7.9 + translations: + fr: + name: "Filtre d'\xE9cran" + description: "Filtre physique ou num\xE9rique qui limite la visibilit\xE9\ + \ de l'\xE9cran aux utilisateurs autoris\xE9s, r\xE9duisant le risque de\ + \ divulgation visuelle de donn\xE9es." + - urn: urn:intuitem:risk:function:doc-pol:tech.network_firewall + ref_id: TECH.NETWORK_FIREWALL + name: Network Firewall + category: technical + csf_function: protect + description: ecurity system that monitors and controls incoming and outgoing network + traffic based on predefined rules. + annotation: A.8.22 + translations: + fr: + name: "Pare-feu r\xE9seau" + description: "Syst\xE8me de s\xE9curit\xE9 qui surveille et contr\xF4le le\ + \ trafic r\xE9seau entrant et sortant selon des r\xE8gles pr\xE9d\xE9finies" + - urn: urn:intuitem:risk:function:doc-pol:tech.mail_gateway + ref_id: TECH.MAIL_GATEWAY + name: Secure Mail Gateway + category: technical + csf_function: protect + description: system that filters, monitors, and protects email communications + against spam, malware, and unauthorized access + annotation: A.5.23 + translations: + fr: + name: "Passerelle mail s\xE9curis\xE9e" + description: "Syst\xE8me qui filtre, surveille et prot\xE8ge les communications\ + \ par email contre le spam, les logiciels malveillants et les acc\xE8s non\ + \ autoris\xE9s." + - urn: urn:intuitem:risk:function:doc-pol:tech.network_antivirus + ref_id: TECH.NETWORK_ANTIVIRUS + name: Network Antivirus + category: technical + csf_function: detect + description: Protects email and web traffic at the network edge against malware + annotation: A.8.7 + translations: + fr: + name: "Antivirus r\xE9seau" + description: "Prot\xE8ge les emails et le trafic web \xE0 la p\xE9riph\xE9\ + rie du r\xE9seau contre les malwares" + - urn: urn:intuitem:risk:function:doc-pol:tech.vlan + ref_id: TECH.VLAN + name: VLAN + category: technical + csf_function: protect + description: VLANs isolate and segment network traffic to enhance security and + optimize performance. + annotation: A.8.22 + translations: + fr: + name: VLAN + description: "Les VLAN isolent et segmentent le trafic r\xE9seau pour renforcer\ + \ la s\xE9curit\xE9 et optimiser les performances." + - urn: urn:intuitem:risk:function:doc-pol:tech.microsegmentation + ref_id: TECH.MICROSEGMENTATION + name: Microsegmentation + category: technical + csf_function: protect + description: Microsegmentation is a security strategy that creates fine-grained, + context-aware policies to isolate individual workloads or applications within + a network, limiting lateral movement and containing breaches. + annotation: A.8.22 + translations: + fr: + name: Micro-segmentation + description: "La microsegmentation est une strat\xE9gie de s\xE9curit\xE9\ + \ qui cr\xE9e des politiques granulaires et contextuelles pour isoler des\ + \ charges de travail ou des applications sp\xE9cifiques dans un r\xE9seau,\ + \ limitant les mouvements lat\xE9raux et contenant les violations" + - urn: urn:intuitem:risk:function:doc-pol:tech.wifi_sec + ref_id: TECH.WIFI_SEC + name: Wi-Fi Security + category: technical + csf_function: protect + description: Wi-Fi security ensures secure wireless communications through WPA3 + Enterprise encryption, robust authentication, and advanced access control mechanisms. + While WPA2 Enterprise remains acceptable, transitioning to WPA3 is strongly + recommended for enhanced security. + annotation: 'A.8.20 + + A.8.24' + translations: + fr: + name: "S\xE9curit\xE9 Wi-Fi" + description: "La s\xE9curit\xE9 Wi-Fi garantit des communications sans fil\ + \ s\xE9curis\xE9es gr\xE2ce au chiffrement WPA3 Enterprise, \xE0 une authentification\ + \ robuste et \xE0 des m\xE9canismes de contr\xF4le d'acc\xE8s avanc\xE9\ + s. Bien que WPA2 Enterprise soit acceptable, il est fortement recommand\xE9\ + \ de passer \xE0 WPA3 pour une s\xE9curit\xE9 renforc\xE9e." + - urn: urn:intuitem:risk:function:doc-pol:tech.reverse_proxy + ref_id: TECH.REVERSE_PROXY + name: Reverse Proxy + category: technical + csf_function: protect + description: A reverse proxy forwards client requests to backend servers, enhancing + security, load balancing, and performance. + annotation: A.8.23 + translations: + fr: + name: Proxy inverse + description: "Un proxy inverse transf\xE8re les requ\xEAtes des clients vers\ + \ les serveurs backend, am\xE9liorant la s\xE9curit\xE9, l'\xE9quilibrage\ + \ de charge et les performances" + - urn: urn:intuitem:risk:function:doc-pol:tech.waf + ref_id: TECH.WAF + name: Web Application Firewall (WAF) + category: technical + csf_function: detect + description: A Web Application Firewall (WAF) protects web applications by filtering + and monitoring HTTP traffic to block malicious activity. + annotation: A.8.23 + translations: + fr: + name: Firewall applicatif web + description: "Un pare-feu pour applications web (WAF) prot\xE8ge les applications\ + \ web en filtrant et surveillant le trafic HTTP pour bloquer les activit\xE9\ + s malveillantes." + - urn: urn:intuitem:risk:function:doc-pol:tech.ids + ref_id: TECH.IDS + name: Intrusion Detection System (IDS) + category: technical + csf_function: detect + description: An Intrusion Detection System (IDS) monitors network traffic to detect + and alert on potential security threats or unauthorized activities + annotation: A.8.20 + translations: + fr: + name: "Syst\xE8me de d\xE9tection d'intrusion (IDS)" + description: "Un syst\xE8me de d\xE9tection d'intrusion (IDS) surveille le\ + \ trafic r\xE9seau pour d\xE9tecter et alerter sur les menaces de s\xE9\ + curit\xE9 potentielles ou les activit\xE9s non autoris\xE9es." + - urn: urn:intuitem:risk:function:doc-pol:tech.web_proxy + ref_id: TECH.WEB_PROXY + name: Web Proxy + category: technical + csf_function: protect + description: A web proxy filters and monitors web traffic, enforces security policies, + and supports user authentication to control and secure internet access + annotation: A.8.23 + translations: + fr: + name: Proxy web + description: "Un proxy web filtre et surveille le trafic web, applique des\ + \ politiques de s\xE9curit\xE9 et prend en charge l'authentification des\ + \ utilisateurs pour contr\xF4ler et s\xE9curiser l'acc\xE8s \xE0 Internet." + - urn: urn:intuitem:risk:function:doc-pol:tech.vpn + ref_id: TECH.VPN + name: VPN + category: technical + csf_function: protect + description: A Virtual Private Network (VPN) secures data transmission by encrypting + traffic using protocols like IPSec, ensuring privacy and protection against + interception." + annotation: 'A.8.20 + + A.8.24' + translations: + fr: + name: VPN + description: "Un r\xE9seau priv\xE9 virtuel (VPN) s\xE9curise la transmission\ + \ des donn\xE9es en chiffrant le trafic gr\xE2ce \xE0 des protocoles comme\ + \ IPSec, garantissant la confidentialit\xE9 et la protection contre les\ + \ interceptions." + - urn: urn:intuitem:risk:function:doc-pol:tech.mfa + ref_id: TECH.MFA + name: Multi-Factor Authentication (MFA) + category: technical + csf_function: protect + description: 'Multi-Factor Authentication (MFA) enhances security by requiring + two verification factors from different categories: something you know (e.g., + a password), something you have (e.g., a token or smartphone), and something + you are (e.g., a fingerprint or facial recognition).' + annotation: A.8.5 + translations: + fr: + name: Authentification Multi-Facteur (MFA) + description: "L'authentification multifacteur (MFA) am\xE9liore la s\xE9curit\xE9\ + \ en exigeant deux facteurs de v\xE9rification issus de cat\xE9gories diff\xE9\ + rentes : ce que vous savez (ex. : un mot de passe), ce que vous poss\xE9\ + dez (ex. : un jeton ou un smartphone) et ce que vous \xEAtes (ex. : une\ + \ empreinte digitale ou une reconnaissance faciale)" diff --git a/backend/library/utils.py b/backend/library/utils.py index 03913c9067..075e9a94a6 100644 --- a/backend/library/utils.py +++ b/backend/library/utils.py @@ -97,7 +97,6 @@ def import_requirement_node(self, framework_object: Framework): is_published=True, question=self.requirement_data.get("question"), ) - for threat in self.requirement_data.get("threats", []): requirement_node.threats.add( Threat.objects.get(urn=threat.lower()) @@ -637,6 +636,7 @@ def import_objects(self, library_object): threat.import_threat(library_object) for reference_control in self._reference_controls: + print(reference_control) reference_control.import_reference_control(library_object) for risk_matrix in self._risk_matrices: diff --git a/frontend/messages/ar.json b/frontend/messages/ar.json index 1bcdb4f622..02dd1bafae 100644 --- a/frontend/messages/ar.json +++ b/frontend/messages/ar.json @@ -392,6 +392,7 @@ "technical": "تقني", "physical": "مادي", "process": "عملية", + "procedure": "إجراء", "veryLow": "منخفض جدًا", "low": "منخفض", "high": "مرتفع", diff --git a/frontend/messages/cz.json b/frontend/messages/cz.json index 20895bae20..bf0e1bb6ab 100644 --- a/frontend/messages/cz.json +++ b/frontend/messages/cz.json @@ -389,6 +389,7 @@ "technical": "Technické", "physical": "Fyzické", "process": "Proces", + "procedure": "postup", "veryLow": "Velmi nízké", "low": "Nízké", "high": "Vysoké", diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 3be9296d19..269002270f 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -391,6 +391,7 @@ "technical": "Technisch", "physical": "Physisch", "process": "Prozess", + "procedure": "Verfahren", "veryLow": "Sehr niedrig", "low": "Niedrig", "high": "Hoch", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 11b1f8bf39..b1f0d40bcf 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -393,6 +393,7 @@ "technical": "Technical", "physical": "Physical", "process": "Process", + "procedure": "Procedure", "veryLow": "Very low", "low": "Low", "high": "High", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 6d3af4836f..c5804188d8 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -391,6 +391,7 @@ "technical": "Técnico", "physical": "Físico", "process": "Proceso", + "procedure": "Procedimiento", "veryLow": "Muy bajo", "low": "Bajo", "high": "Alto", diff --git a/frontend/messages/fr.json b/frontend/messages/fr.json index a9fed187e2..930edd1061 100644 --- a/frontend/messages/fr.json +++ b/frontend/messages/fr.json @@ -393,6 +393,7 @@ "technical": "Technique", "physical": "Physique", "process": "Processus", + "procedure": "Procédure", "veryLow": "Très faible", "low": "Faible", "high": "Haut", diff --git a/frontend/messages/hi.json b/frontend/messages/hi.json index 051d2e76c2..fda7ffecc0 100644 --- a/frontend/messages/hi.json +++ b/frontend/messages/hi.json @@ -391,6 +391,7 @@ "technical": "तकनीकी", "physical": "भौतिक", "process": "प्रक्रिया", + "procedure": "प्रक्रिया", "veryLow": "बहुत कम", "low": "कम", "high": "उच्च", diff --git a/frontend/messages/it.json b/frontend/messages/it.json index 837ab5dea3..10b260ee07 100644 --- a/frontend/messages/it.json +++ b/frontend/messages/it.json @@ -391,6 +391,7 @@ "technical": "Tecnico", "physical": "Fisico", "process": "Processo", + "procedure": "Procedura", "veryLow": "Bassissimo", "low": "Basso", "high": "Alto", diff --git a/frontend/messages/nl.json b/frontend/messages/nl.json index fab932bd37..f8efeae7aa 100644 --- a/frontend/messages/nl.json +++ b/frontend/messages/nl.json @@ -391,6 +391,7 @@ "technical": "Technisch", "physical": "Fysiek", "process": "Proces", + "procedure": "Procedure", "veryLow": "Zeer laag", "low": "Laag", "high": "Hoog", diff --git a/frontend/messages/pl.json b/frontend/messages/pl.json index 1991efea23..7eff89efe3 100644 --- a/frontend/messages/pl.json +++ b/frontend/messages/pl.json @@ -391,6 +391,7 @@ "technical": "Techniczne", "physical": "Fizyczne", "process": "Proces", + "procedure": "Procedura", "veryLow": "Bardzo niskie", "low": "Niskie", "high": "Wysokie", diff --git a/frontend/messages/pt.json b/frontend/messages/pt.json index 4ecdb5a0ab..4c4271b0b0 100644 --- a/frontend/messages/pt.json +++ b/frontend/messages/pt.json @@ -391,6 +391,7 @@ "technical": "Técnico", "physical": "Físico", "process": "Processo", + "procedure": "Procedimento", "veryLow": "Muito baixo", "low": "Baixo", "high": "Alto", diff --git a/frontend/messages/ro.json b/frontend/messages/ro.json index 09b3994311..b451cbb0a8 100644 --- a/frontend/messages/ro.json +++ b/frontend/messages/ro.json @@ -391,6 +391,7 @@ "technical": "Tehnic", "physical": "Fizic", "process": "Proces", + "procedure": "Procedură", "veryLow": "Foarte scăzut", "low": "Scăzut", "high": "Ridicat", diff --git a/frontend/messages/sv.json b/frontend/messages/sv.json index aeee7ca161..2493768ff2 100644 --- a/frontend/messages/sv.json +++ b/frontend/messages/sv.json @@ -392,6 +392,7 @@ "technical": "Teknisk", "physical": "Fysisk", "process": "Process", + "procedure": "Förfarande", "veryLow": "Mycket låg", "low": "Låg", "high": "Hög", diff --git a/frontend/messages/ur.json b/frontend/messages/ur.json index 0d822959d8..e1a5a630da 100644 --- a/frontend/messages/ur.json +++ b/frontend/messages/ur.json @@ -391,6 +391,7 @@ "technical": "تکنیکی", "physical": "جسمانی", "process": "عمل", + "procedure": "طریقہ کار", "veryLow": "بہت کم", "low": "کم", "high": "زیادہ", diff --git a/tools/anssi/anssi-guide-hygiene-detail.xlsx b/tools/anssi/anssi-guide-hygiene-detail.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..160d48238a77280203f35074f5afef2edf8fb09b GIT binary patch literal 50302 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 {?)qR;WqJFjP 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 XY&l8LPfY^=fd1q2sjNW!e|-CY#sQII diff --git a/tools/intuitem/doc-pol.xlsx b/tools/intuitem/doc-pol.xlsx index 4ee98007565247bbe959f92ad6bbdd0686d15665..d19a72125bc5ccb73923fbd5d189332f49176fb6 100644 GIT binary patch delta 29097 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 Up`iaU`SN*XetM(^{d4!f0P)g8VgLXD delta 10060 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