27/03/2017 DEVOTEAM Preuve et tracabilité GS DAYS 01/12/09
En bref… De la preuve à la trace… Le système d’information est au cœur des entreprises… De plus en plus d’informations sont générées directement par ou pour le système d’informations … Cette présentation a pour objet de rappeler les objectifs de la preuve et le contexte dans laquelle elle s’exerce, et de faire un focus sur la traçabilité au sein du système d’information pour, au travers d’exemples concrets, indiquer les écueils régulièrement rencontrés, et la démarche à adopter pour mettre en œuvre une véritable politique de traçabilité …
Agenda Présentation de Devoteam Concept et Principe Système de Preuve Preuve ou trace ? Usage de la trace, Panorama des obligations de traçabilité, Top 5 des constats en matière de traçabilité, Cas concret d’une application CRM Besoins Constats Préconisations Conclusion
Présentation générale du groupe Le groupe Devoteam Présentation générale du groupe Sweden Norway Denmark Présence en EMEA United Kingdom Devoteam créé en 1995 The Netherlands Luxembourg Belgium Plus de 4500 consultants Germany Poland Czech Republic Austria Switzerland France Russia Entités dans 23 pays Italy Spain Turkey Evolution constante Tunisia Algeria Morocco Jordan Saudi Arabia United Arab Emirates
Devoteam et la Sécurité des systèmes d’information + de 400 consultants dont 130 en France en mesure de traiter tous les thèmes de la sécurité Classification des risques métiers liés à l’IT Stratégie de gestion des risques Métriques d’analyse des risques Intégration de la dimension RI dans les études d’opportunité Pilotage des risques Définition d’une organisation sécurité Conception de rôles et profils métier Sensibilisation, formation Veille technologique Intelligence et surveillance économique Politique de sécurité globale Tableaux de bord SSI Sécurité physique, Contrôle des accès aux sites protection incendie, dégâts des eaux, foudre... Standard organisationnels ou techniques Procédures Audits, tests d’intrusion Physique Processus Organisation Technique Stratégie BCP/BRP Conception de BCP/BRP Tests et simulations Analyse des scénarii de crise Organisation et moyens Politique technique de sécurité Stratégie d’évolution AMOA/AMOE solution de sécurité Etat de l’art et du marché Identity & Acces Mgnt Analyse et gestion des incidents de sécurité…
Concept & Principe Preuve ou Trace ? PREUVE TRACE Preuve : La "preuve" est la démonstration de la réalité d'un fait, d'un état, d'une circonstance ou d'une obligation. Exemples Un aveu écrit et signé d’intrusion au SI Un contrat signé de prestation Trace : Marque laissée par une action quelconque (= informatique) Exemples : Un log de connexion Un hit http PREUVE TRACE « Un poète doit laisser des traces de son passage, non des preuves. Seules les traces font rêver. » (citation René Char)
Preuve dans le droit Français 27/03/2017 Concept & Principe Preuve dans le droit Français Système Français : Parler des conventions de preuve au niveau des tribunaux de commerce
Concept & Principe Preuve ou Trace ? PREUVE TRACE TRACE TRACE TRACE La Preuve ne se déduit pas de la trace, en l’absence d’analyse : Du contenu, Du contexte, De la provenance, De sa fiabilité, …. Mais de tout cela à la fois, de règles et d’un jugement
Concept & Principe Preuve ou Trace ? Dans l’entreprise Une frontière des fois «mal appréhendée dans l’entreprise » Interface d’audit mélangeant des logs et des résultats d’opérations Des règles de constitution de l’information qui dépendent de la provenance du « demandeur » et de sa maturité sur la problématique
Concept & Principe Usage de la trace A destination de « tiers » « Commencement de preuve » par écrit Obligation réglementaire Pour des besoins internes Bon fonctionnement Contrôle Statistiques
Panorama des obligations de traçabilité Concept & Principe Panorama des obligations de traçabilité Exemples D’obligations sectorielles en France Obligation des traçabilité pour: Contrôle des accès aux données La lutte contre la fraude Contrôle des opérations techniques Identification des utilisateurs Droits des individus : A l’oubli A l’information A la « vie privée » au travail Santé Code de la santé publique Telecoms CPCE LCEN Administration ONP Banques CRBF MIFID CNIL Code du travail
Constat Top 5 Devoteam au travers de ses multiples missions sur la traçabilité a constaté les points suivants : Peu d’entreprises disposent d’une politique relative aux traces informatiques (nature, archivage, durée, moyens) L’analyse des traces n’est réalisée qu’en cas d’incident, La trace est laissée dans les mains des opérationnels, Dans les expressions de besoins, la partie traçabilité se limite à « il faut des traces… au cas où..» Dans les dossiers d’architecture technique, il y a souvent une confusion entre le niveau de preuve et celui de la trace,
Cas concret Besoins Disposer de traces permettant d’identifier : 27/03/2017 Cas concret Besoins Disposer de traces permettant d’identifier : Qui s’est connecté ? Quelles actions ont été effectuées ? Qui a accédé à des données sensibles ou les a modifiées ? Traçabilité à plusieurs niveaux du SI : Application, Système d’exploitation, Base de données,
Cas concret Constats Environnement CRM - Architecture type
Cas concret Constats Environnement CRM - Architecture type Constat N°1 : L’utilisateur traverse un firewall avec NAT ou un proxy
Cas concret Constats Environnement CRM - Architecture type Constat N°2 : Le reverse-proxy agit un mode lnline sans transmission de l’adresse IP source (champ X-Forwarded-For)
Cas concret Constats Environnement CRM - Architecture type Constat N°3 : Le champ X-Forwarded-For n’est pas enregistré Répartition de la charge sur plusieurs composants Valeurs des champs POST
Cas concret Constats Environnement CRM - Architecture type Constat N°4 : Le serveur d’application enregistre uniquement les erreurs liés à l’application et non pas son activité
Cas concret Constats Environnement CRM - Architecture type Constat N°5 : Seules les erreurs d’authentification sont enregistrées
Cas concret Constats Environnement CRM - Architecture type Constat N°6 : Enregistrement des erreurs SQL ou des requêtes trop lentes
Exemple CRM – Traces par défaut Cas concret Exemple CRM – Traces par défaut Erreur d’authentification : Reverse Proxy : Apache HTTPd SugarCRM : 192.168.0.1 - - [09/Nov/2009:22:26:19 +0100] "POST /sugarcrm/index.php HTTP/1.1" 302 1923 192.168.0.1 - - [09/Nov/2009:22:26:19 +0100] "GET /sugarcrm/index.php?module=Users&action=Login HTTP/1.1" 200 14769 Mon Nov 9 22:26:19 2009 [2870][-none-][FATAL] [LDAP ERROR][49]Invalid credentials Mon Nov 9 22:26:19 2009 [2870][-none-][FATAL] [LDAP] ATTEMPTING BIND USING BASE DN PARAMS Mon Nov 9 22:26:19 2009 [2870][-none-][FATAL] SECURITY: User authentication for jdoe failed Mon Nov 9 22:26:19 2009 [2870][-none-][FATAL] FAILED LOGIN:attempts[1] - jdoe
Exemple CRM – Traces par défaut Cas concret Exemple CRM – Traces par défaut Authentification réussie : Reverse Proxy : Apache HTTPd SugarCRM : 192.168.0.1 - - [09/Nov/2009:22:28:03 +0100] "POST /sugarcrm/index.php HTTP/1.1" 302 1365 192.168.0.1 - - [09/Nov/2009:22:28:04 +0100] "GET /sugarcrm/index.php?module=Home&action=index HTTP/1.1" 200 88101 Pas de traces
Exemple CRM – Traces par défaut Cas concret Exemple CRM – Traces par défaut Création d’un « deal client » : Reverse Proxy : Apache HTTPd SugarCRM : 192.168.0.1 - - [09/Nov/2009:22:30:12 +0100] "POST /sugarcrm/index.php HTTP/1.1" 302 24375 192.168.0.1 - - [09/Nov/2009:22:30:13 +0100] "GET /sugarcrm/index.php?action=DetailView&module=Leads&record=6c90ef05-b866-d5dc-2a67-4af8895a3064&return_module=Leads&return_action=DetailView HTTP/1.1" 200 66777 192.168.0.1 - - [09/Nov/2009:22:30:15 +0100] "GET /sugarcrm/modules/Leads/Lead.js?s=406eb82451ea23dbdae83a3843b3833a&c=1 HTTP/1.1" 200 3675 192.168.0.1 - - [09/Nov/2009:22:30:15 +0100] "GET /sugarcrm/include/SugarFields/Fields/Datetimecombo/Datetimecombo.js HTTP/1.1" 200 6685 Pas de traces
Erreur de l’application Cas concret Bilan de l’existant par défaut Champ Reverse-Proxy Application Heure X Adresse IP Utilisateur Id Session Action réalisée URL d’accès Erreur de l’application
Cas concret Constats Problématique: comment lier tous ses événements entre eux ? Quels sont les identifiants communs ? Exemple d’identifiants entre les traces : Reverse-Proxy : date / numéro de session (Cookie ? Session ID ?) Annuaire LDAP : date / utilisateur Serveur d’application : date / numéro de session (Cookie ? Session ID ?)
Amélioration de la traçabilité Cas concret Amélioration de la traçabilité Configuration de l’application : Niveau de traces : information Modification du module de logging (ajout des champs SessionId & Utilisateur) Configuration d’Apache : Modification du format des traces (LogFormat) Configuration de PHP : Modification du paramètre session.auto_start, session.use_cookie_only
Exemple CRM – Traces après modifications Cas concret Exemple CRM – Traces après modifications Erreur d’authentification : Reverse Proxy : Apache HTTPd SugarCRM : 192.168.0.1 - - d58a9d7db5d4889fec85da0ca0d234ef [11/Nov/2009:11:04:56 +0100] "POST /sugarcrm/index.php HTTP/1.1" 302 1367 192.168.0.1 - - d58a9d7db5d4889fec85da0ca0d234ef [11/Nov/2009:11:04:57 +0100] "GET /sugarcrm/index.php?module=Users&action=Login HTTP/1.1" 200 14825 Wed Nov 11 11:04:57 2009 [4612][d58a9d7db5d4889fec85da0ca0d234ef][][FATAL] SECURITY: User authentication for admin failed Wed Nov 11 11:04:57 2009 [4612][d58a9d7db5d4889fec85da0ca0d234ef][][FATAL] FAILED LOGIN:attempts[1] - admin
Exemple CRM – Traces après modifications Cas concret Exemple CRM – Traces après modifications Authentification réussie : Reverse Proxy : Apache HTTPd SugarCRM : 192.168.0.1 - - eb45f7ae174bb94a2f946ff047eb38bf [11/Nov/2009:11:12:04 +0100] "POST /sugarcrm/index.php HTTP/1.1" 302 1367 192.168.0.1 - - eb45f7ae174bb94a2f946ff047eb38bf [11/Nov/2009:11:12:05 +0100] "GET /sugarcrm/index.php?module=Home&action=index HTTP/1.1" 200 95361 Wed Nov 11 11:12:05 2009 [4618][eb45f7ae174bb94a2f946ff047eb38bf][][INFO] Query:SELECT users.* FROM users WHERE users.id = '1' AND users.deleted=0 LIMIT 0,1 Wed Nov 11 11:12:05 2009 [4618][eb45f7ae174bb94a2f946ff047eb38bf][][INFO] Query Execution Time:0.00599884986877 Wed Nov 11 11:12:05 2009 [4618][eb45f7ae174bb94a2f946ff047eb38bf][admin][INFO] Query:SELECT u1.first_name, u1.last_name from users u1, users u2 where u1.id = u2.reports_to_id AND u2.id = '1' and u1.deleted=0 Wed Nov 11 11:12:05 2009 [4618][eb45f7ae174bb94a2f946ff047eb38bf][admin][INFO] Query Execution Time:0.00301790237427
Exemple CRM – Traces après modifications Cas concret Exemple CRM – Traces après modifications Création d’un « deal client » : Reverse Proxy : Apache HTTPd SugarCRM : 192.168.0.1 - - eb45f7ae174bb94a2f946ff047eb38bf [11/Nov/2009:11:15:17 +0100] "POST /sugarcrm/index.php HTTP/1.1" 302 26818 Wed Nov 11 11:15:18 2009 [4611][eb45f7ae174bb94a2f946ff047eb38bf][admin][INFO] Insert: INSERT into leads set id='759cf253-8a03-0802-2fc2-4afa8e0f7341', date_entered='2009-11-11 10:15:18', date_modified='2009-11-11 10:15:18', modified_user_id='1', created_by='1', description=null, deleted='0', assigned_user_id='1', salutation=null, first_name=null, last_name='Joe Doe', title=null, department=null, do_not_call='0', phone_home=null, phone_mobile=null, phone_work=null, phone_other=null, phone_fax=null, primary_address_street=null, primary_address_city=null, primary_address_state=null, primary_address_postalcode=null, primary_address_country=null, alt_address_street=null, alt_address_city=null, alt_address_state=null, alt_address_postalcode=null, alt_address_country=null, converted='0', refered_by=null, lead_source='Email', lead_source_description=null, status='New', status_description=null, account_name=null, contact_id=null, account_id=null, opportunity_id=null, campaign_id=null
Activité SQL au sein de l’application Cas concret Bilan amélioration de la traçabilité Champ Reverse-Proxy Application Heure X Adresse IP Utilisateur Id Session Action réalisée URL d’accès Activité SQL au sein de l’application
○ ● Cas concret Bilan amélioration de la traçabilité Besoins Avant Après Qui s’est connecté ? ○ ● Quelles actions ont été effectuées ? Qui a accédé à des données sensibles ou les a modifiées ?
Bilan amélioration de la traçabilité Cas concret Bilan amélioration de la traçabilité Un système de traitement doit être mis en place afin de collecter les traces en temps-réel et de les centraliser Apports : Sécurisation des traces, Stockage des données, Console unique d’investigation
Amélioration de la traçabilité Cas concret Amélioration de la traçabilité Ce cas concret met en exergue : La traçabilité d’un processus n’est pas induite … Les composants du SI peuvent être très « verbeux »… mais c’est beaucoup de bruit pour rien… L’amélioration de la traçabilité peut être techniquement « simple » si elle est la conséquence d’un « besoin formalisé »
Conservation de la trace Conclusion Conservation de la trace Pas d’obligation formelle quant au mode de conservation des traces ( Trace = Commencement de preuve par écrit) Par contre, les mécanismes qui seront mis en œuvre pour en garantir sa fiabilité participeront à l’évaluation de sa pertinence Intégration des traces dans le processus d’archivage électronique légal Record Management (Moreq 2) Archivage légal - NF Z 42-013, ISO 15489
Processus d’amélioration de la traçabilité au sein du SI 27/03/2017 Conclusion Preuve et traçabilité Les traces générées par le SI pourront corroborées des faits et apporter des éléments de preuve…. Encore faut-il que soit générées les traces utiles et pertinentes à l’analyse et diagnostic…. Processus d’amélioration de la traçabilité au sein du SI POLITIQUE DE TRACE Log Management Lifecycle INTEGRATION Intégration de la traçabilité au niveau de la conception / cahier des charges TABLEAU DE BORD INVESTIGATION
Contact DOCUMENT David BIGOT / Yann FAREAU CONTACT ID: 20090122 27/03/2017 Contact AUSTRIA BELGIUM CZECH REPUBLIC DENMARK FRANCE MOROCCO NETHERLANDS NORWAY POLAND SAUDI ARABIA SPAIN SWEDEN SWITZERLAND UNITED ARAB EMIRATES UNITED KINGDOM CONTACT Person: David BIGOT Yann FAREAU Phone: +33.1.41.49.54.89 E-mail: david.bigot@devoteam.com / yann.fareau@devoteam.com Address : 73, rue anatole France, 92300 Levallois Perret DOCUMENT ID: 20090122 Authors: David BIGOT / Yann FAREAU Date: 2009 © Devoteam Solutions This document is not to be copied or reproduced in any way without the express permission of Devoteam Solutions. 36