NOTE : Cet article ne concerne pas uniquement les organisations qui ont déjà été piratées... La norme IEC 62443 est une norme générique reconnue comme applicable dans des secteurs critiques tels que la fabrication, l'énergie, le transport, les soins de santé et bien d'autres.

 

 

Cet article est le quatrième épisode d'une série de 8, couvrant certaines des meilleures pratiques à mettre en œuvre par toute organisation visant à respecter l'état de l'art en matière de cybersécurité pour les systèmes de contrôle industriels et d'automatisation. Basé sur une approche pragmatique, cet article se concentre sur l'activité de cybersécurité bien connue qu'est le test de pénétration. Cette méthode de test est requise par le cycle de vie de développement sécurisé tel que décrit par la CEI 62443-4-1).

 

 

Les exigences de vérification et de validation de la sécurité par la CEI 62443-4-1 (section 9 / SVV-X) décrivent quatre principaux types de tests :

 

  • SVV-1 - Test des exigences de sécurité: Les mots clés sont tests fonctionnels, performance et évolutivité, conditions limites, contraintes, injections...
  • SVV-2 - Test d'atténuation des menaces: Les mots clés sont efficacité des mesures d'atténuation, couverture du modèle de menace, ...
  • SVV-3 - Test de vulnérabilité: Les mots clés sont base de données publique de vulnérabilités, fuzzing, vulnérabilités connues, violations des règles de sécurité...
  • SVV-4 - Tests de pénétration: Alors que les activités de test précédentes permettent d'identifier et de caractériser les vulnérabilités connues et les limitations du système, les tests de pénétration sont réalisés pour exploiter les vulnérabilités de sécurité connues et inconnues à l'aide d'outils et de techniques d'exploitation. Les tests de pénétration peuvent être utilisés pour valider les vulnérabilités et tester l'efficacité des contre-mesures. La plus grande différence pour cette activité est la couverture des aspects de faisabilité par l'exploitation réelle des vulnérabilités.

 

Ce dernier type de test est le sujet principal de cet article et est décrit plus en détail ci-dessous.

 

 

Test de pénétration - Processus typique(basé sur NIST SP 800-115)

 

Les tests de pénétration sont connus et réalisés dans presque tous les domaines d'application. La terminologie et les processus diffèrent un peu d'un secteur à l'autre, mais l'approche de base reste la même et peut être décrite brièvement comme un processus en 4 étapes :

 

  1. Planification - Au cours de cette première phase, les règles sont identifiées, l'approbation de la direction est finalisée et documentée, et les objectifs du test sont fixés. La phase de planification pose les bases d'un test d'intrusion réussi. Aucun test réel n'a lieu au cours de cette phase.
  2. Découverte - Dans cette deuxième phase, deux sous-activités sont décrites :
    • La première partie est le début des tests réels et couvre la collecte d'informations et le balayage. L'identification des ports et des services du réseau, ainsi que d'autres techniques, sont menées pour identifier les cibles potentielles.
    • La deuxième partie de la phase de découverte est l'analyse des vulnérabilités, qui consiste à comparer les services, les applications et les systèmes d'exploitation des hôtes analysés aux bases de données de vulnérabilités (un processus automatique pour les scanners de vulnérabilités) et à la connaissance des vulnérabilités par les testeurs eux-mêmes.
  3. Attaque - Alors que la phase de découverte vise uniquement à vérifier l'existence éventuelle d'une vulnérabilité, la phase d'attaque d'un test d'intrusion exploite la vulnérabilité pour confirmer son existence. Il existe différentes définitions de cette phase dans la littérature mais nous pouvons identifier quatre sous-activités principales :
    • Obtention de l'accès - Sur la base des données recueillies lors de la phase de découverte, le testeur tente d'accéder à la cible.
    • Augmentation des privilèges - si seul l'accès au niveau utilisateur a été obtenu lors de la dernière étape, le testeur cherchera maintenant à prendre le contrôle total du système par l'augmentation de l'accès au niveau administrateur/root.
    • Exploration du système - le processus de collecte d'informations recommence pour identifier les mécanismes permettant d'accéder à d'autres systèmes.
    • Installation d'outils supplémentaires - Du matériel supplémentaire est déployé sur la cible afin d'élargir l'accès et la perspective d'"infecter" l'environnement ciblé.
  4. Rapport - Cette phase se déroule, le plus souvent, en même temps que les trois autres phases du test d'intrusion. Dans la phase de planification, le plan de test est développé. Lors des phases de découverte et d'attaque, des journaux écrits sont généralement conservés et des rapports périodiques sont adressés aux administrateurs système et/ou à la direction. À l'issue du test, un rapport est généralement rédigé pour décrire les vulnérabilités identifiées, présenter une évaluation des risques et donner des conseils sur la manière d'atténuer les faiblesses découvertes.

 

Les deuxième et troisième phases de ce processus sont comparables aux activités typiques réalisées par de véritables attaquants/hackers. L'état d'esprit et les compétences en matière de techniques offensives sont essentiels pour réaliser un test de pénétration efficace.

 

 

Indépendance des testeurs

 

Enfin, l'indépendance des testeurs est un sujet clé de la norme ISA 62443-4-1, cristallisée par une exigence normalisée qui définit le niveau d'indépendance suivant pour les activités de test :

 

 

 

  • Personne indépendante - le testeur ne doit pas être l'un des développeurs du produit.
  • Département indépendant - le testeur ne doit pas relever du même responsable de premier niveau que les développeurs du produit. Il peut également être membre d'un département d'assurance qualité (AQ).
  • Organisation indépendante - le testeur ne doit pas faire partie de la même organisation que les développeurs du produit. Une organisation peut être une entité juridique distincte, une division d'une société ou un département d'une société qui rend compte à un cadre différent, tel qu'un vice-président ou un niveau similaire.

 

La raison pour laquelle une telle exigence liée à l'indépendance a été définie est qu'un testeur indépendant peut souvent découvrir plus de défauts, d'autres et différents, qu'un testeur travaillant au sein d'une équipe de programmation - ou un testeur qui est de profession un programmeur. Un tel testeur apporte un ensemble différent d'hypothèses aux tests et aux revues, ce qui aide souvent à exposer les défauts et les problèmes cachés, en toute transparence et honnêteté.

 

 

Conclusion

Malheureusement, la plupart du temps, la cybersécurité n'est pas intégrée "par conception", ce qui implique très probablement que de multiples faiblesses et vulnérabilités sont présentes dans l'environnement d'un produit/système. Dans ce contexte, de nombreuses organisations pensent que la réalisation d'un test de pénétration permettrait d'identifier toutes les failles de sécurité, qu'il suffirait ensuite d'atténuer et... c'est tout. Malheureusement, les tests de pénétration ne doivent pas être considérés comme des solutions à l'épreuve des balles.

Bien sûr, les tests de pénétration sont toujours considérés comme de bonnes pratiques, et même comme une exigence de la norme IEC 62443, pour évaluer la faisabilité des menaces potentielles contre un système, mais ils ne doivent absolument pas être considérés comme la seule solution pour l'identification et la caractérisation des vulnérabilités. Soyez proactif plutôt que réactif en ce qui concerne vos cybermenaces.

 

Même si la conformité à la norme 62443 n'est pas un objectif ultime, les tests de sécurité doivent être considérés comme l'une des principales activités à mettre en œuvre et à gérer par l'organisation pour garantir une certaine confiance dans un cycle de développement donné.

 

Si vous avez des questions sur les tests de sécurité, la vérification et la validation et/ou tout autre critère de certification, n'hésitez pas à contacter notre spécialiste en cybersécurité : Kilian Marty