​Déclassification du code NI LabVIEW

Aperçu

​Les développeurs LabVIEW créent du code dans une zone sécurisée et classée. Pour déplacer le code vers une zone non sécurisée, il doit être exempt de tout élément classifié : code, informations ou données. Le code classifié peut inclure des algorithmes qui effectuent un travail considéré comme classifié, des informations utilisées comme entrées dans le code et des données collectées par l'application et stockées dans un fichier. Avant de déplacer le code hors de la zone classifiée, il doit être examiné et approuvé par une personne formée pour identifier les informations classifiées et qui comprend le code LabVIEW. 

 

​La déclassification du code LabVIEW est identique à n'importe quel langage de programmation:

 

  1. ​Développez le code en suivant les bonnes pratiques de documentation.

  2. ​Effectuez une analyse de code statique à l’aide d’outils automatisés pour rechercher certains marqueurs qui identifient le code classifié.
  3. ​Effectuez une revue manuelle du code pour vous assurer que toutes les données sensibles sont supprimées.

  4. Assainissez toutes les informations classifiées du code. 

  5. Documenter le processus de classification, y compris les outils utilisés, les étapes franchies et les résultats. 

  6. Obtenir l'approbation d'un agent de sécurité agréé.

​Dans le présent document, nous présentons les recommandations et les meilleures pratiques suivantes pour simplifier au maximum la déclassification du code LabVIEW :

 

  • ​Minimiser la quantité de code développé dans l'environnement sécurisé

  • ​Modulariser le code pour séparer le développement classifié du non-classifié

  • ​Documenter clairement le code pour identifier les informations classifiées et non classifiées

  • ​Utiliser l'Analyseur de VIs pour exécuter une analyse statique du code

  • ​Utiliser le VI Imprimer pour effectuer une révision manuelle du code

  • ​Documenter les étapes effectuées

  • ​Présenter les résultats à un agent de sécurité formé

​​

Contenu

Minimiser la quantité de code développé dans un environnement sécurisé

Lorsque vous travaillez avec du code classé, il est généralement plus facile d'éviter de déplacer du code d'un environnement classé vers un environnement non classé. Dans la mesure du possible, développez le code dans un environnement non classé puis déplacez le code terminé dans l'environnement classé. La nature modulaire de LabVIEW permet ce développement de code en utilisant des sous-VIs de substitution définissant les entrées et les sorties, mais en laissant le développement du code sensible jusqu'à ce que le code soit à l'intérieur de la zone classée. Idéalement, les seuls changements de code qui se produisent après le déplacement sont d’implémenter les parties classifiées du code. Cependant, comme cette pratique n'est pas toujours réalisable, les développeurs LabVIEW qui travaillent dans des environnements classifiés doivent suivre certaines bonnes pratiques comme expliqué dans la suite de ce document.

Modulariser le code pour séparer le développement classé du non-classifié

​L'utilisation de sous-VIs dans LabVIEW fournit une méthode pour séparer le code avec des informations classifiées. Concevez votre code de manière à ce que le développement de code classifié puisse être isolé de sous-VIs individuels.

​Lors du développement de code, envisagez de créer un algorithme de substitution dans le VI de niveau principal. Définissez les entrées et sorties de l'algorithme avant de développer l'algorithme réel, puis créez un sous-VI à partir de la section de code, comme le montre la figure 1.

Diagramme LabVIEW montrant le menu Édition avec la sélection de Créer un sous-VI.

​Figure 1. Créer une option de sous-VI dans le menu Édition

​Une fois le sous-VI créé, ouvrez-le et implémentez le reste de l’algorithme. 

​Enregistrez le sous-VI. Vous pouvez enregistrer tous les sous-VIs classés dans un dossier séparé pour faciliter leur suppression du code.

Documenter clairement le code pour identifier les informations classifiées et non classifiées

​La documentation est la mesure la plus importante que vous pouvez prendre pour simplifier le processus de déclassification. Si l'agent de sécurité ne peut pas comprendre ce que fait le code, il ne peut pas l'autoriser à être déclassifié. LabVIEW offre de nombreux niveaux d'options de documentation.

​Utiliser des étiquettes et des zones de texte pour identifier les informations classifiées 

​Étiquetez chaque commande, indicateur et constante de la face-avant pour que le type de données et la fonction soient aussi évidents que possible. Lorsque vous étiquetez, envisagez si les données de la commande pourraient être classées comme données à un moment donné dans le futur. S'il est possible que les données soient classifiées, utilisez le code couleur NSA pour identifier le potentiel d'informations classifiées. 

​L'image de la figure 2 provient d'une face-avant et identifie que certaines entrées peuvent contenir des informations classifiées. Au cours du processus de déclassification, il est donc clair quels conteneurs doivent être contrôlés.

Face-avant LabVIEW avec paramètres de fréquence de transmission, commandes d'amplitude et entrées de voies de stimulus et de mesure.

​Figure 2. Étiquettes de commande à codage de couleur 

 

​Éviter de placer des informations classifiées dans des constantes 

​Dans la mesure du possible, évitez de placer des informations classifiées directement dans les constantes du diagramme, car les constantes peuvent être négligées pendant le processus de révision. De plus, il est plus difficile de supprimer les constantes pour déclassifier le code. Envisagez plutôt d'importer des entrées d'un fichier de données et de conserver des informations classifiées dans ce fichier. Pendant le processus de déclassification, séparez ce fichier du diagramme LabVIEW, et aucune donnée classifiée ne sera dans le diagramme LabVIEW.

​Cette pratique n’est pas toujours possible, donc lorsqu’une constante contient des données classifiées, il est important de l’étiqueter, comme le montre la figure 3. Couleur - coder l'étiquette pour identifier le type de données, en suivant les codes de couleur de la NSA. 

Constante LabVIEW utilisant le code couleur pour identifier la classification

​Figure 3. Constante LabVIEW utilisant le code couleur pour identifier la classification

 

​Documenter les sous-VIs avec des informations de classification

​Le code LabVIEW peut être documenté au niveau du sous-VI en ouvrant Propriétés du VI pour le sous-VI en sélectionnant Fichier > Propriétés du VI.

​Après avoir ouvert cette boîte de dialogue, sélectionnez Documentation dans le menu déroulant, comme le montre la figure 4. 

Fenêtre de dialogue Propriété du VI LabVIEW affichant la description du VI

​Figure 4. Documentation des VIs classés dans la propriété Description du VI 

​Les commentaires dans la description du VI apparaissent à quelques endroits utiles, mais seulement après avoir été documentés dans cette boîte de dialogue. 

​Il est également utile d’utiliser un descripteur commun pour les sous-VIs classifiés, comme **CLASSIFIED** dans l’exemple précédent. Vous pouvez ensuite utiliser des outils automatisés pour rechercher ces commentaires pendant le processus de déclassification.

​Les commentaires apparaissent dans la Fenêtre d'aide contextuelle. Lorsque vous placez votre souris sur le sous-VI, une description comprenant de la documentation apparaît, comme le montre la figure 5.

Fenêtre d'Aide contextuelle LabVIEW montrant la description du VI

​Figure 5. Affichage des descriptions des VIs dans la fenêtre d'aide contextuelle LabVIEW

 

​Utiliser des icônes de sous-VI pour identifier des informations classifiées

​Les sous-VIs nouvellement créés affichent l'icône par défaut dans le coin supérieur droit, comme le montre la figure 6.

Icône et connecteur du VI LabVIEW par défaut

​Figure 6. Icône par défaut pour les VIs LabVIEW

​Double-cliquez sur cette icône pour ouvrir la boîte de dialogue LabVIEW Icon Editor. Cet éditeur d'icône peut être utilisé pour identifier la fonction du sous-VI. Vous pouvez aussi utiliser la couleur de l'icône pour identifier rapidement si la fonction inclut des données classifiées, comme le montre la figure 7.

 Image de deux VIs LabVIEW de couleurs différentes pour identifier la classification

​Figure 7. Utilisation des couleurs d'icône pour identifier la classification du code 

​L ' utilisation des couleurs facilite l ' examen du code pendant la déclassification, même si le réviseur n ' est pas un programmeur LabVIEW.

​Utiliser des signets pour identifier des sections de code

​Lorsque vous double-cliquez sur un espace vide du diagramme ou de la face-avant LabVIEW, vous pouvez créer un signet texte. L'ajout d'un hashtag (#) avant le texte fait du texte un signet. 

​Les outils automatisés recherchent ces signets. Vous pouvez spécifier quels signets rechercher. Il est utile que chaque section de votre code soit étiquetée #CLASSIFIED ou #UNCLASSIFIED, comme le montre la figure 8. Vous pourrez automatiser les balayages de ces signets.

Un extrait de code LabVIEW avec un commentaire pour signaler le code comme classifié

​Figure 8. Tags LabVIEW pour les sections de code classées 

​Vous pouvez utiliser la fenêtre Gestionnaire de signets pour voir tous les signets de votre code, y compris les sous-VIs. Pour lancer la fenêtre du Gestionnaire de signets, sélectionnez Affichage > Gestionnaire de signets sur votre face-avant LabVIEW.

​La figure 9 montre un exemple de la façon dont la fenêtre du Gestionnaire de signets peut rechercher le code indiqué dans ce guide.

LabVIEW Bookmark Manager répertoriant les signets dans le code

​Figure 9. Gestionnaire de signets LabVIEW

​Dans cette fenêtre, vous pouvez double-cliquer sur n'importe quel tag répertorié pour vous amener à cette section de code pour examen. Vous pouvez aussi exporter cette liste sous forme de fichier texte pour afficher toutes les sections de code classifié de votre code à votre évaluateur.

​La section suivante explique comment utiliser l'Analyseur de VIs pour rechercher des signets dans votre code.

Utiliser l'Analyseur de VIs pour exécuter une analyse statique sur du code

​VI Analyzer est inclus avec LabVIEW Professional. L'Analyseur de VIs automatise la révision du code, en recherchant les problèmes de code définis par le réviseur. 

  1. ​Si vous ne voyez pas Analyseur de VIs > Analyser des VIs dans le menu Outils de votre diagramme LabVIEW, installez l’Analyseur de VIs à partir du Gestionnaire de paquets NI.
  2. Pour lancer l'Analyseur de VIs, commencez par le VI de niveau principal que vous voulez revoir. Sélectionnez Outils > Analyseur de VIs > Analyser des VIs.
  3. Sélectionnez Analyser le VI actuel (ou une autre option selon le cas).
  4. Cliquez sur Suivant.

​L'écran suivant, illustré à la figure 10, fournit un moyen de définir quels tests sont exécutés. Vous pouvez définir un test et le sélectionner ici parmi les tests <User-Specified>. L'Analyseur de VIs est principalement utilisé pour exécuter des tests de qualité sur le code, de sorte qu'il existe de nombreux tests ici qui ne sont pas applicables à la déclassification des données.

Fenêtre LabVIEW VI Analyzer présentant les options disponibles

​Figure 10. Fenêtre LabVIEW VI Analyzer

​Voici les tests les plus utiles pendant le processus de déclassification :

  • Signets approuvés — Recherchez l'utilisation de signets non approuvés.
  • ​Documentation > Développeur > Utilisation des commentaires — Identifiez les VIs qui n'ont pas de commentaires. 

​La première recherche renverra tous les signets qui ne figurent pas dans la liste. En laissant #CLASSIFIED hors de la liste, la recherche renverra une liste de toutes les sections de code qui ont ce tag. En incluant #UNCLASSIFIED, comme le montre la figure 11, il ignorera les sections de code non classifiées.

​La deuxième recherche identifiera les segments de code qui n'ont pas de commentaires, forçant les développeurs à placer des signets dans chaque segment avant la révision du code.

Fenêtre de l'Analyseur de VIs avec tags de signets approuvés

​Figure 11. Utilisation de l'Analyseur de VIs pour omettre les tags de signets approuvés 

​Après avoir réglé les tests, cliquez sur le bouton Enregistrer pour réduire le temps de configuration à chaque exécution des tests. 

​Cliquez sur Analyser pour exécuter les tests. Le rapport résultant vous montrera #CLASSIFIED signets, comme le montre la figure 12.

Analyseur de VIs Résultats affichant les résultats du balayage

​Figure 12. résultats de l'Analyseur de VIs

​Pendant le processus de déclassification, enregistrez une copie du projet de VI et des sous-VIs. Supprimez les VIs, exécutez ce test et vérifiez qu'il n'y a pas de sections taguées #Classified du code.

Utiliser le VI Imprimer pour effectuer une révision manuelle du code

​Après avoir effectué l'examen automatisé du code, effectuez un examen manuel détaillé pour vous assurer qu'aucune donnée classifiée n'a été manquée pendant le processus de documentation.

​Création de documentation 

  1. ​Ouvrez le VI de niveau principal dans l'application, puis sélectionnez Fichier > Imprimer.
  2. Sélectionnez le VI principal que vous voulez imprimer.
  3. Cliquez sur Next.
  4. Documentation du VI et cliquez sur Suivant.
  5. Configurez les options d'impression pour renvoyer toute la documentation en sélectionnant Compléter dans le menu Style de documentation du VI.
  6. Cliquez sur Suivant.
  7. Sélectionnez la sortie. Pour simplifier, sélectionnez Rich Text Format (RTF). Cette option génère un fichier avec des images qui peuvent être ouvertes dans Microsoft Word.
  8. Suivant.
  9. Spécifiez la Profondeur de couleur (256 couleurs est généralement correct).
  10. Cliquez sur Save.
  11. Sélectionnez un emplacement et le fichier sera généré.

​Ouvrez le fichier en utilisant un outil documentaire standard comme Microsoft Word. Ce fichier contiendra toutes les informations sur le VI, y compris les captures d'écran. Remarquez que les images seront plus grandes que la page et peuvent sembler coupées, mais les tailles peuvent être réduites pour tenir sur la page. 

​Notez que toute la documentation de votre sous-VI apparaîtra. Avec cette documentation, votre agent de sécurité peut examiner le code pour la déclassification. L'utilisation des couleurs de classification NSA permettra de déterminer immédiatement quelles sections du code contiennent des informations classifiées.

​Dans un processus de déclassification, il est préférable d’enregistrer les VIs dans un nouvel emplacement, de supprimer toutes les sections classifiées, puis d’exécuter ce processus. Si c'est fait correctement, il ne faut rien laisser marqué comme classé dans le code.

Documenter les étapes effectuées

​Dans tout processus de sécurité, la documentation est essentielle. La documentation est essentielle pour convaincre l'agent de sécurité que vous avez suivi les étapes pour protéger les renseignements dans un environnement classifié. La documentation peut également simplifier le processus afin que vous suiviez un processus approuvé par l’agent de sécurité et que celui-ci comprenne les étapes que vous avez prises. Soyez aussi détaillé que possible lorsque vous décrivez le processus que vous suivez pour protéger les informations.

Présenter les résultats à un agent de sécurité formé

Si vous avez pris les mesures que nous avons énumérées, vous pouvez contacter votre agent de sécurité avec la certitude que vous protégez les informations classifiées de quitter une zone sécurisée. L’utilisation de bonnes pratiques de codage, la création d’une documentation complète et l’utilisation d’outils de révision de code vous aideront à démontrer que vous avez effectué le travail nécessaire pour protéger les informations classifiées.