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:
Développez le code en suivant les bonnes pratiques de documentation.
Effectuez une revue manuelle du code pour vous assurer que toutes les données sensibles sont supprimées.
Assainissez toutes les informations classifiées du code.
Documenter le processus de classification, y compris les outils utilisés, les étapes franchies et les résultats.
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é
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.
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.
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.
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.
É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.
Figure 2. Étiquettes de commande à codage de couleur
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.
Figure 3. Constante LabVIEW utilisant le code couleur pour identifier la 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.
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.
Figure 5. Affichage des descriptions des VIs dans la fenêtre d'aide contextuelle LabVIEW
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.
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.
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.
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.
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.
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.
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.
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.
Figure 10. Fenêtre LabVIEW VI Analyzer
Voici les tests les plus utiles pendant le processus de déclassification :
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.
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.
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.
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.
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.
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.
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.