LabVIEW Entwickler erstellen Programmcode in einem sicheren, klassifizierten Bereich. Um den Code in einen unsicheren Bereich zu verschieben, muss er frei von Geheimhaltung sein: Code, Informationen oder Daten. Klassifizierter Code kann Algorithmen enthalten, die als geheim eingestufte Aufgaben ausführen, Informationen, die als Eingaben im Code verwendet werden, und Daten, die von der Anwendung gesammelt und in einer Datei gespeichert werden. Bevor Sie den Code aus dem klassifizierten Bereich entfernen, muss er von jemandem überprüft und genehmigt werden, der in der Identifizierung von Verschlusssachen geschult ist und den LabVIEW Code versteht.
Die Deklassifizierung von LabVIEW-Code ist mit jeder Programmiersprache identisch:
Entwickeln Sie den Programmcode nach bewährten Dokumentationsverfahren.
Führen Sie eine manuelle Codeprüfung durch, um sicherzustellen, dass alle sensiblen Daten entfernt werden.
Bereinigen Sie alle geheimen Informationen im Code.
Dokumentieren Sie den Klassifizierungsprozess einschließlich der verwendeten Werkzeuge, Schritte und Ergebnisse.
Zustimmung eines zugelassenen Sicherheitsbeauftragten einholen.
In diesem Papier erläutern wir die folgenden Empfehlungen und bewährten Verfahren, um die Deklassifizierung von LabVIEW Code so einfach wie möglich zu gestalten.
Minimieren der Programmcodeentwicklung in der sicheren Umgebung
Modularisieren von Programmcode zur Trennung von klassifizierter und nicht klassifizierter Entwicklung
Dokumentieren Sie Code, um vertrauliche und nicht klassifizierte Informationen zu identifizieren
Verwenden des VI-Analyseprogramms zur statischen Analyse von Programmcode
Verwenden des VIs "Drucken" zur manuellen Überprüfung von Programmcode
Schritte dokumentieren
Ergebnisse einem geschulten Sicherheitsbeauftragten präsentieren
Bei der Arbeit mit klassifiziertem Programmcode ist es in der Regel einfacher, das Verschieben von Programmcode von einer klassifizierten in eine nicht klassifizierte Umgebung zu vermeiden. Entwickeln Sie den Programmcode nach Möglichkeit in einer nicht klassifizierten Umgebung und verschieben Sie ihn anschließend in die klassifizierte Umgebung. Die Modularität von LabVIEW ermöglicht die Entwicklung von Code mit Hilfe von Platzhalter-SubVIs, die die Ein- und Ausgänge definieren, aber die Entwicklung sensiblen Codes so lange überlassen, bis sich der Code innerhalb des klassifizierten Bereichs befindet. Im Idealfall sind die einzigen Codeänderungen, die nach dem Verschieben geschehen, die Implementierung der klassifizierten Teile des Codes. Da dies jedoch nicht immer möglich ist, sollten LabVIEW Entwickler, die in klassifizierten Umgebungen arbeiten, bestimmte bewährte Methoden befolgen, wie im Rest dieses Dokuments erläutert.
Die Verwendung von SubVIs in LabVIEW bietet eine Methode zum Trennen von Code mit Verschlusssachen. Entwickeln Sie Ihren Programmcode so, dass die Entwicklung von klassifiziertem Programmcode für einzelne SubVIs isoliert werden kann.
Wenn Sie Programmcode entwickeln, sollten Sie einen Platzhalteralgorithmus im Haupt-VI erstellen. Definieren Sie die Ein- und Ausgänge des Algorithmus, bevor Sie den eigentlichen Algorithmus entwickeln, und erstellen Sie dann ein SubVI aus dem Codeabschnitt, gemäß Abbildung 1.
Abbildung 1: SubVI-Option im Menü Bearbeiten erstellen
Sobald Sie das SubVI erstellt haben, öffnen Sie es und implementieren Sie den Rest des Algorithmus.
Speichern Sie das SubVI. Sie können alle klassifizierten SubVIs in einem separaten Ordner speichern, um sie leichter aus dem Programmcode zu entfernen.
Dokumentation ist der wichtigste Schritt zur Vereinfachung der Deklassifizierung. Wenn der Sicherheitsbeauftragte nicht versteht, was der Code bewirkt, kann er ihn nicht zur Deklassifizierung löschen. LabVIEW bietet zahlreiche Dokumentationsoptionen.
Beschriften Sie alle Bedien-, Anzeige- und Konstantelemente auf dem Frontpanel, um den Datentyp und die Funktion so offensichtlich wie möglich zu gestalten. Überlegen Sie beim Beschriften, ob die Daten im Element zu einem späteren Zeitpunkt als Daten klassifiziert werden könnten. Wenn es möglich ist, dass die Daten klassifiziert werden, verwenden Sie NSA-Farbkodierung, um das Potenzial für geheime Informationen zu identifizieren.
Das Bild in Abbildung 2 stammt von einem Frontpanel und zeigt, dass einige der Eingänge geheime Informationen enthalten können. Dadurch wird bei der Deklassifizierung deutlich, welche Container überprüft werden sollen.
Abbildung 2: Farbkodierte Elementbeschriftungen
Vermeiden Sie nach Möglichkeit, klassifizierte Informationen direkt in Blockdiagrammkonstanten einzufügen, da Konstanten während des Überprüfungsprozesses übersehen werden können. Außerdem ist es schwieriger, Konstanten zu entfernen, um den Code zu deklassieren. Stattdessen sollten Sie Eingaben aus einer Datendatei importieren und geheime Informationen in dieser Datei behalten. Trennen Sie die Datei während der Deklassifizierung vom LabVIEW Blockdiagramm, so dass keine klassifizierten Daten im LabVIEW Diagramm angezeigt werden.
Diese Vorgehensweise ist nicht immer möglich. Wenn eine Konstante klassifizierte Daten enthält, ist es wichtig, diese Konstante zu beschriften (siehe Abbildung 3). Farbcode- Beschriftung zur Kennzeichnung des Datentyps entsprechend den Farbcodes der NSA.
Abbildung 3: LabVIEW-Konstante mit Farbkodierung zum Erkennen der Klassifizierung
LabVIEW-Code kann auf SubVI-Ebene durch Öffnen der VI-Einstellungen für das SubVI dokumentiert werden.
Nach dem Öffnen dieses Dialogfelds wählen Sie Dokumentation aus dem Dropdown-Menü aus (siehe Abbildung 4).
Abbildung 4: Dokumentieren von VIs als in der Eigenschaft VI-Beschreibung klassifiziert
Kommentare in der VI-Beschreibung werden an einigen hilfreichen Stellen angezeigt, aber erst, nachdem sie in diesem Dialogfeld dokumentiert wurden.
Es ist auch hilfreich, einen gemeinsamen Deskriptor für klassifizierte SubVIs zu verwenden, wie **CLASSIFIED** im vorherigen Beispiel. Mit automatisierten Werkzeugen können Sie dann während der Deklassifizierung nach diesen Kommentaren suchen.
Die Kommentare werden an einer Stelle in der Kontexthilfe angezeigt. Wenn Sie den Mauszeiger über das SubVI bewegen, wird eine Beschreibung einschließlich Dokumentation angezeigt (siehe Abbildung 5).
Abbildung 5: Anzeigen von VI-Beschreibungen in der LabVIEW Kontexthilfe
Neu erstellte SubVIs zeigen das Standardsymbol in der rechten oberen Ecke an (siehe Abbildung 6).
Abbildung 6: Standardsymbol für LabVIEW VIs
Ein Doppelklick auf dieses Symbol öffnet den LabVIEW Icon Editor. Mit diesem Symbol-Editor kann die Funktion des SubVIs ermittelt werden. Sie können auch die Farbe des Symbols verwenden, um schnell zu erkennen, ob die Funktion klassifizierte Daten enthält (siehe Abbildung 7).
Abbildung 7: Verwenden von Symbolfarben zum Erkennen der Code-Klassifizierung
Die Verwendung von Farben auf diese Weise erleichtert die Überprüfung von Programmcode während der Deklassifizierung, auch wenn der Prüfer kein LabVIEW Programmierer ist.
Wenn Sie eine leere Stelle im LabVIEW Blockdiagramm oder Frontpanel doppelt anklicken, können Sie ein Textlesezeichen erstellen. Das Hinzufügen eines Hashtags (#), bevor der Text zum Lesezeichen wird.
Die automatisierten Tools suchen nach diesen Lesezeichen. Sie können festlegen, nach welchen Lesezeichen gesucht werden soll. Es ist hilfreich, jeden Abschnitt Ihres Programmcodes als #CLASSIFIED oder #UNCLASSIFIED zu kennzeichnen (siehe Abbildung 8). Sie können Scans nach diesen Lesezeichen automatisieren.
Abbildung 8: LabVIEW Tags für klassifizierte Codeabschnitte
Im Lesezeichen-Managerfenster werden alle Lesezeichen in Ihrem Programmcode angezeigt, einschließlich SubVIs. Zum Öffnen des Lesezeichen-Manager-Fensters wählen Sie auf Ihrem LabVIEW-Frontpanel Ansicht > Lesezeichen-Manager.
In Abbildung 9 sehen Sie ein Beispiel dafür, wie das Lesezeichen-Manager-Fenster nach dem Programmcode in dieser Anleitung aussieht.
Abbildung 9: LabVIEW Lesezeichen-Manager
In diesem Fenster können Sie ein beliebiges Tag doppelt anklicken, um zu diesem Programmabschnitt zu gelangen. Sie können diese Liste auch als Textdatei exportieren, um Ihrem Assessor alle klassifizierten Codeabschnitte in Ihrem Code anzuzeigen.
Im nächsten Abschnitt wird beschrieben, wie mit dem VI-Analyseprogramm nach Lesezeichen in Ihrem Programmcode gesucht wird.
Das VI-Analyseprogramm ist in LabVIEW Professional enthalten. Das VI-Analyseprogramm automatisiert die Codeüberprüfung und sucht nach Codeproblemen, die vom Prüfer definiert wurden.
Auf dem nächsten Bildschirm (siehe Abbildung 10) können Sie festlegen, welche Tests ausgeführt werden. Sie können einen Test definieren und hier unter <Benutzerdefiniert> auswählen. Der VI-Analyser wird hauptsächlich für die Ausführung von Qualitätstests an Programmcode verwendet. Daher gibt es hier viele Tests, die nicht auf die Deklassifizierung von Daten anwendbar sind.
Abbildung 10: Fenster "LabVIEW VI Analyzer"
Folgende Tests sind während des Deklassifizierungsprozesses am hilfreichsten:
Dokumentation > Entwickler > Verwendung von Kommentaren—Identifizieren Sie VIs, die keine Kommentare enthalten.
Bei der ersten Suche werden alle Lesezeichen ausgegeben, die nicht in der Liste enthalten sind. Wenn Sie #KLASSIFIZIERT aus der Liste lassen, gibt die Suche eine Liste aller Codeabschnitte mit diesem Tag aus. Durch Einfügen von #UNCLASSIFIED (siehe Abbildung 11) werden die Codeabschnitte ignoriert, die nicht klassifiziert sind.
Bei der zweiten Suche werden Codesegmente identifiziert, die keine Kommentare enthalten, wodurch Entwickler gezwungen werden, Lesezeichen in jedes Segment vor der Codeprüfung einzufügen.
Abbildung 11: Verwendung des VI-Analyseprogramms zum Weglassen genehmigter Lesezeichen-Tags
Nachdem Sie die Tests optimiert haben, klicken Sie auf die Schaltfläche Speichern, um die Einrichtungszeit bei jeder Ausführung der Tests zu verringern.
Klicken Sie auf Analysieren, um die Tests auszuführen. Das resultierende Protokoll zeigt Ihnen #KLASSIFIZIERTE Lesezeichen (siehe Abbildung 12).
Abbildung 12: Ergebnisse der VI-Analyse
Speichern Sie während der Deklassifizierung eine Kopie des VI-Projekts und der SubVIs. Entfernen Sie die VIs, führen Sie diesen Test durch und prüfen Sie, ob keine mit #Klassifizierten Abschnitte des Codes markiert sind.
Führen Sie nach der automatisierten Überprüfung des Codes eine detaillierte manuelle Überprüfung durch, um sicherzustellen, dass keine klassifizierten Daten während des Dokumentationsprozesses verpasst wurden.
Öffnen Sie die Datei mit einem Standarddokumentenwerkzeug wie Microsoft Word. Diese Datei enthält alle Informationen zum VI, einschließlich Screenshots. Beachten Sie, dass die Bilder größer als die Seite sind und abgeschnitten erscheinen, aber die Größe kann reduziert werden, um auf die Seite zu passen.
Beachten Sie, dass Ihre gesamte SubVI-Dokumentation angezeigt wird. Mit dieser Dokumentation kann Ihr Sicherheitsbeauftragter den Code auf Deklassifizierung überprüfen. Mit den Farben der NSA-Klassifizierung wird sofort klar, welche Abschnitte des Codes Geheiminformationen enthalten.
In einem Deklassifizierungsprozess sollten Sie die VIs am besten an einem neuen Speicherort speichern, alle klassifizierten Abschnitte entfernen und dann diesen Prozess ausführen. Bei korrekter Ausführung sollte nichts als geheim markiert in den Codes belassen werden.
In jedem Sicherheitsprozess ist Dokumentation der Schlüssel. Dokumentation ist wichtig, um den Sicherheitsbeauftragten davon zu überzeugen, dass Sie Schritte zum Schutz der Informationen in einer klassifizierten Umgebung befolgt haben. Dokumentation kann den Prozess rationalisieren, so dass Sie einen vom Sicherheitsbeauftragten genehmigten Prozess befolgen und der Sicherheitsbeauftragte die von Ihnen unternommenen Schritte versteht. Seien Sie so detailliert wie möglich, wenn Sie den Prozess beschreiben, dem Sie folgen, um die Informationen zu schützen.
Wenn Sie die aufgeführten Schritte unternommen haben, können Sie sich mit Sicherheit an Ihren Sicherheitsbeauftragten wenden, da Sie vertrauliche Informationen davor schützen, einen sicheren Bereich zu verlassen. Mit bewährten Programmierverfahren, vollständiger Dokumentation und Code-Review-Tools können Sie nachweisen, dass Sie die zum Schutz von Verschlusssachen erforderliche Arbeit geleistet haben.