Los desarrolladores LabVIEW crean código en un área segura y clasificada. Para mover el código a un área no segura, debe estar libre de cualquier cosa clasificada: código, información o datos. El código clasificado puede incluir algoritmos que realizan trabajos considerados clasificados, información utilizada como entradas en el código y datos recopilados por la aplicación y almacenados en un archivo. Antes de mover el código fuera del área clasificada, debe ser revisado y aprobado por alguien capacitado para identificar información clasificada y que entienda el código LabVIEW.
Desclasificar el código LabVIEW es lo mismo que cualquier lenguaje de programación:
Desarrollar el código siguiendo buenas prácticas de documentación.
Realice una revisión manual del código para asegurarse de que se eliminan todos los datos confidenciales.
Desinfectar cualquier información clasificada en el código.
Documentar el proceso de clasificación, incluyendo las herramientas utilizadas, los pasos dados y los resultados.
Obtener la aprobación de un oficial de seguridad aprobado.
En este documento, esbozamos las siguientes recomendaciones y mejores prácticas para que la desclasificación del código LabVIEW sea lo más simple posible.
Minimizar la cantidad de código desarrollado en el entorno seguro
Modular el código para separar el desarrollo clasificado del no clasificado
Documente el código claramente para identificar información clasificada y no clasificada
Utilice VI Analyzer para ejecutar análisis estáticos en el código
Utilice Print VI para realizar la revisión manual del código
Documentar las medidas adoptadas
Presentar los resultados a un oficial de seguridad capacitado
Cuando se trabaja con código clasificado, generalmente es más fácil evitar mover el código de un entorno clasificado a un entorno no clasificado. Siempre que sea posible, desarrolle el código en un entorno no clasificado y luego mueva el código completado al entorno clasificado. La naturaleza modular de LabVIEW permite este desarrollo de código utilizando subVIs marcadoras de posición que definen las entradas y salidas, pero dejando el desarrollo de código sensible hasta que el código esté dentro del área clasificada. Idealmente, los únicos cambios de código que ocurren después de la mudanza son implementar las partes clasificadas del código. Sin embargo, dado que esta práctica no siempre es factible, los desarrolladores LabVIEW que trabajan en entornos clasificados deben seguir ciertas mejores prácticas como se explica en el resto de este documento.
El uso de subVIs en LabVIEW proporciona un método para separar código con información clasificada. Arquitecte su código para que el desarrollo de código clasificado se pueda aislar a subVI individuales.
Cuando desarrolles código, considera crear un algoritmo marcador de posición en el nivel superior VI. Defina las entradas y salidas del algoritmo antes de desarrollar el algoritmo real, luego cree un subVI desde la sección de código, como se muestra en la Figura 1.
Figura 1. Crear opción SubVI en el menú Edición
Una vez que haya creado el subVI, ábralo e implemente el resto del algoritmo.
Guarda el subVI. Puede guardar todos los subVI clasificados en una carpeta separada para que sea más fácil eliminarlos del código.
La documentación es el paso más importante que puede seguir para simplificar el proceso de desclasificación. Si el oficial de seguridad no puede entender lo que hace el código, no puede autorizar su desclasificación. LabVIEW ofrece muchos niveles de opciones de documentación.
Etiqueta cada control del panel frontal, indicador y constante para que el tipo de datos y la función sean lo más obvios posible. Al etiquetar, considere si los datos del control podrían clasificarse como datos en algún momento en el futuro. Si es posible que los datos sean clasificados, utilice el código de colores de la NSA para identificar el potencial de información clasificada.
La imagen de la Figura 2 es de un panel frontal e identifica que algunas de las entradas podrían contener información clasificada. Durante el proceso de desclasificación, esto hace obvio qué contenedores deben ser revisados.
Figura 2. Etiquetas de control codificadas por colores
Cuando sea posible, evite colocar información clasificada directamente en constantes de diagrama de bloques, porque las constantes pueden pasarse por alto durante el proceso de revisión. Además, es más difícil eliminar constantes para desclasificar el código. En su lugar, considere importar entradas de un archivo de datos y mantenga la información clasificada en ese archivo. Durante el proceso de desclasificación, separe ese archivo del diagrama de bloques LabVIEW, y no habrá datos clasificados en el diagrama LabVIEW.
Esta práctica no siempre es posible, por lo que cuando una constante contiene datos clasificados, es importante etiquetar esa constante, como se muestra en la Figura 3. Código de color de la etiqueta para identificar el tipo de datos, siguiendo los códigos de color de la NSA.
Figura 3. LabVIEW Constante Uso de código de colores para identificar la clasificación
El código LabVIEW se puede documentar en el nivel subVI abriendo Propiedades VI para el subVI seleccionando Archivo > Propiedades VI.
Después de abrir este cuadro de diálogo, seleccione Documentación en el menú desplegable, como se muestra en la Figura 4.
Figura 4. Documentación de los VI clasificados en el VI Descripción Propiedad
Los comentarios en la descripción VI aparecen en algunos lugares útiles, pero solo después de que se documenten en este cuadro de diálogo.
También es útil usar un descriptor común para subVI clasificados, como **CLASSIFIED** en el ejemplo anterior. A continuación, puede utilizar herramientas automatizadas para buscar estos comentarios durante el proceso de desclasificación.
Un lugar en el que aparecen los comentarios es en la ventana Ayuda del contexto. Al pasar el ratón sobre el subVI, aparece una descripción que incluye documentación, como se muestra en la Figura 5.
Figura 5. Visualización de descripciones VI en la ventana de ayuda del contexto LabVIEW
Los subVI recién creados muestran el icono predeterminado en la esquina superior derecha, como se muestra en la Figura 6.
Figura 6. Icono predeterminado para LabVIEW VIs
Al hacer doble clic en este icono se abre el cuadro de diálogo Editor de iconos LabVIEW. Este editor de iconos se puede utilizar para identificar la función del subVI. También puede usar el color del icono para identificar rápidamente si la función incluye datos clasificados, como se muestra en la Figura 7.
Figura 7. Uso de colores de iconos para identificar la clasificación de códigos
Usar colores de esta manera facilita la revisión del código durante la desclasificación, incluso si el revisor no es un programador LabVIEW.
Al hacer doble clic en un espacio vacío en el diagrama de bloques o el panel frontal de LabVIEW, puede crear un marcador de texto. Incluir un hashtag (#) antes del texto hace que el texto sea un marcador.
Las herramientas automatizadas buscan estos marcadores. Puede especificar qué marcadores buscar. Es útil tener cada sección de su código etiquetada como #CLASSIFIED o #UNCLASSIFIED, como se representa en la Figura 8. Podrás automatizar los análisis de estos marcadores.
Figura 8. LabVIEW Etiquetas para Secciones de Código Clasificado
Puede usar la ventana Administrador de marcadores para ver todos los marcadores de su código, incluidos los subVI. Para iniciar la ventana del Administrador de marcadores, seleccione Ver > Administrador de marcadores en el panel frontal LabVIEW.
La figura 9 muestra un ejemplo de cómo la ventana del administrador de marcadores podría buscar el código que se muestra en esta guía.
Figura 9. LabVIEW Bookmark Manager
En esta ventana, puede hacer doble clic en cualquier etiqueta listada para llevarlo a esa sección de código para su revisión. También puede exportar esta lista como un archivo de texto para mostrar todas las secciones de código clasificadas en su código a su asesor.
La siguiente sección discute cómo usar VI Analyzer para buscar marcadores en su código.
VI Analyzer se incluye con LabVIEW Professional. VI Analyzer automatiza la revisión de código, buscando problemas de código definidos por el revisor.
La siguiente pantalla, mostrada en la Figura 10, proporciona una manera de definir qué pruebas se ejecutan. Puede definir una prueba y seleccionarla aquí de las pruebas <Especificadas por el usuario>. VI Analyzer se utiliza principalmente para ejecutar pruebas de calidad en el código, por lo que hay muchas pruebas aquí que no son aplicables a la desclasificación de datos.
Figura 10. LabVIEW VI Analyzer Window
Estas son las pruebas más útiles durante el proceso de desclasificación:
Documentación > Desarrollador > Uso de comentarios: Identifique los VI que no tienen comentarios.
La primera búsqueda devolverá cualquier marcador que no esté en la lista. Al dejar #CLASSIFIED fuera de la lista, la búsqueda devolverá una lista de todas las secciones de código que tienen esta etiqueta. Al incluir #UNCLASSIFIED, como se muestra en la Figura 11, ignorará las secciones de código que se determine que no están clasificadas.
La segunda búsqueda identificará segmentos de código que no tienen comentarios, lo que obligará a los desarrolladores a colocar marcadores en cada segmento antes de la revisión del código.
Figura 11. Uso de VI Analyzer para omitir etiquetas de marcadores aprobadas
Después de ajustar las pruebas, haga clic en el botón Guardar para reducir el tiempo de configuración cada vez que ejecute las pruebas.
Haga clic en Analizar para ejecutar las pruebas. El informe resultante le mostrará marcadores #CLASSIFIED, como se muestra en la Figura 12.
Figura 12. VI Resultados del analizador
Durante el proceso de desclasificación, guarde una copia del proyecto VI y los subVI. Eliminar los VI, ejecutar esta prueba y verificar que no hay secciones clasificadas # etiquetadas del código.
Después de realizar la revisión automatizada del código, realice una revisión manual detallada para asegurarse de que no se perdieron datos clasificados durante el proceso de documentación.
Abra el archivo con una herramienta de documento estándar como Microsoft Word. Este archivo contendrá toda la información sobre el VI, incluyendo capturas de pantalla. Tenga en cuenta que las imágenes serán más grandes que la página y pueden parecer cortadas, pero los tamaños se pueden reducir para que quepan en la página.
Tenga en cuenta que aparecerá toda la documentación de su subVI. Con esta documentación, su oficial de seguridad puede revisar el código para la desclasificación. El uso de los colores de clasificación de la NSA dejará claro de inmediato qué secciones del código contienen información clasificada.
En un proceso de desclasificación, lo mejor es guardar los VI en una nueva ubicación, eliminar todas las secciones clasificadas y, a continuación, ejecutar este proceso. Si se hace correctamente, nada marcado como clasificado debe dejarse en el código.
En cualquier proceso de seguridad, la documentación es clave. La documentación es fundamental para convencer al oficial de seguridad de que siguió los pasos para proteger la información en un entorno clasificado. La documentación también puede simplificar el proceso para que siga un proceso aprobado por el oficial de seguridad y este entienda los pasos que ha dado. Sea lo más detallado posible cuando describa el proceso que sigue para proteger la información.
Si ha tomado las medidas que hemos enumerado, puede comunicarse con su oficial de seguridad con la confianza de que está protegiendo la información clasificada de salir de un área segura. Usar buenas prácticas de codificación, crear documentación completa y usar herramientas de revisión de código te ayudará a demostrar que has hecho el trabajo necesario para proteger la información clasificada.