​NI LabVIEWコード分類解除

概要

​​LabVIEW開発者は、安全で分類された領域でコードを作成します。コードを非セキュア領域に移動するには、コード、情報、またはデータなど、分類されたものがない必要があります。分類されたコードには、分類されたと見なされる処理を実行するアルゴリズム、コードの入力として使用される情報、およびアプリケーションによって収集されファイルに保存されるデータが含まれる場合があります。コードを分類された領域から移動する前に、分類された情報を識別する訓練を受け、LabVIEWコードを理解している人によるレビューと承認を受ける必要があります。 

 

​LabVIEWコードの分類解除は、他のプログラミング言語と同じです。

 

  1. ​適切なドキュメント作成方法に従ってコードを開発します。

  2. ​自動ツールを使用してスタティックコード解析を実行し、分類されたコードを識別する特定のフラグを検索します。
  3. ​すべての機密データが削除されるように、コードを手動で確認します。

  4. コード内の機密情報をすべてサニタイズします。 

  5. 使用したツール、実行した手順、結果など、分類プロセスをドキュメント化します。 

  6. 承認されたセキュリティ担当者から承認を得る。

​このホワイト ペーパーでは、LabVIEWコードの分類をできるだけシンプルに解除するための、次の推奨事項とベスト プラクティスの概要を説明します。

 

  • ​安全な環境で開発されたコードの量を最小限に抑える

  • ​コードをモジュール化して、分類された開発を分類されていない開発から分離する

  • ​コードを明確にドキュメント化して、機密情報と非機密情報を識別する

  • ​VIアナライザを使用してコードの静的解析を実行

  • ​「印刷」VIを使用してコードを手動で確認

  • ​実行された手順をドキュメント化する

  • ​トレーニングを受けたセキュリティ担当者に結果を提示

​​

内容

安全環境開発れるコード最小限抑える

分類されたコードを使用する場合、通常、分類された環境から分類されていない環境へコードを移動する必要はありません。可能な限り、非分類環境でコードを開発し、完成したコードを分類された環境に移動します。LabVIEWのモジュール式機能を使用すると、入力と出力を定義するプレースホルダサブVIを使用してコードを開発できますが、機密性の高いコードは分類された領域内に収まるまで開発されません。理想的には、移動後に発生するコードの変更は、分類されたコードの部分を実装することだけです。ただし、この方法が常に有効であるとは限らないため、分類された環境で作業するLabVIEW開発者は、このドキュメントの残りの部分で説明されている特定のベストプラクティスに従う必要があります。

コードモジュール分類開発分類開発分離する

​​LabVIEWでサブVIを使用すると、コードと分類された情報を分離できます。分類されたコードの開発を個々のサブVIに分離できるようにコードを設計します。

​コードを開発する際は、トップレベルVIでプレースホルダアルゴリズムを作成することを検討してください。実際のアルゴリズムを開発する前にアルゴリズムの入力と出力を定義し、図1に示すようにコードセクションからサブVIを作成します。

​図1.編集メニューのサブVIオプションを作成

​サブVIを作成したら、それを開いて残りのアルゴリズムを実装します。 

​サブVIを保存します。分類されたすべてのサブVIを別のフォルダに保存することで、コードから削除しやすくなります。

機密および機密情報識別するコード明確ドキュメントする

​​ドキュメント化は、機密解除プロセスを簡素化するための最も重要なステップです。セキュリティ担当者がコードの内容を理解できない場合、機密解除のためにクリアすることはできません。LabVIEWには、さまざまなレベルのドキュメントオプションがあります。

​ラベルテキストボックス使用機密情報識別する 

​すべてのフロントパネル制御器、表示器、定数にラベルを付け、データタイプと関数をできるだけわかりやすくします。ラベルを付ける際は、制御器内のデータが将来データとして分類される可能性があるかどうかを検討してください。データが分類される可能性がある場合は、NSAカラーコーディングを使用して、分類された情報の可能性を特定します。 

​図2の画像はフロントパネルからのもので、入力の一部に機密情報が含まれている可能性があります。これにより、分類解除プロセス中にどのコンテナをチェックすべきかが明確になります。

​図2.カラーコード制御器ラベル 

 

​分類情報定数入れないようする 

​ブロックダイアグラムの定数は、レビュープロセス中に見過ごされる可能性があるため、分類された情報をブロックダイアグラムの定数に直接配置することはできるだけ避けてください。また、定数を削除してコードを分類解除することが難しくなります。その代わりに、データファイルから入力をインポートし、分類された情報をそのファイルに保持することを検討してください。分類解除プロセスでは、LabVIEWブロックダイアグラムからそのファイルを分離します。LabVIEWダイアグラムには分類されたデータは含まれません。

​この方法は常に可能なわけではないため、定数に分類されたデータが含まれている場合は、図3に示すようにその定数にラベルを付けることが重要です。NSAのカラーコードに従って、データタイプを識別するためにラベルをカラーコードします。 

カラーコーディングを使用した分類の識別

​図3. LabVIEW定数のカラーコーディングによる分類の識別

 

​分類情報含むサブVIドキュメントする

​LabVIEWコードは、ファイル→VIプロパティを選択してサブVIのVIプロパティを開くと、サブVIレベルでドキュメント化できます。

​このダイアログボックスを開いた後、図4に示すように、ドロップダウンメニューからドキュメントを選択します。 

​図4.VIの説明プロパティで分類されたVIをドキュメント化する 

​VIの説明内のコメントは、このダイアログボックスでドキュメント化された後にのみ表示されます。 

​また、上記の例の**CLASSIFIED**のように、分類されたサブVIに共通のデスクリプタを使用すると便利です。その後、自動ツールを使用して、分類解除プロセス中にこれらのコメントを検索できます。

​コメントが表示される場所の1つは、詳細ヘルプウィンドウです。マウスをサブVIの上に移動すると、図5のようにドキュメントなどの説明が表示されます。

​図5.LabVIEW詳細ヘルプウィンドウでVIの説明を表示する

 

​サブVIアイコ使用機密情報識別する

​図6に示すように、新規作成されたサブVIの右上隅にデフォルトアイコンが表示されます。

デフォルトのLabVIEW VIアイコンとコネクタ

​図6.LabVIEW VIのデフォルトアイコン

​このアイコンをダブルクリックすると、LabVIEWアイコンエディタダイアログボックスが開きます。このアイコンエディタは、サブVIの機能を識別するために使用できます。図7に示すように、アイコンの色を使用して、関数に機密データが含まれているかどうかをすばやく識別することもできます。

分類を識別するために異なる色を使用した2つのLabVIEW VIの画像

​図7.アイコンカラーを使用してコード分類を識別する 

​このように色を使用すると、レビュー担当者がLabVIEWプログラマでなくても、分類解除中にコードを簡単にレビューできます。

​ブックマーク使用コードセクション識別する

​LabVIEWのブロックダイアグラムまたはフロントパネルの空白スペースをダブルクリックすると、テキストブックマークを作成できます。テキストの前にハッシュタグ(#)を付けると、テキストがブックマークになります。 

​自動ツールはこれらのブックマークを検索します。検索するブックマークを指定できます。図8に示すように、コードの各セクションに#CLASSIFIEDまたは#UNCLASSIFIEDのタグを付けると便利です。これらのブックマークのスキャンを自動化することができます。

LabVIEWコードスニペット (コードに分類フラグを付けるコメント付き)

​図8.分類コードセクションのLabVIEWタグ 

ブックマークマネージャウィンドウを使用して、サブVIを含むコード内のすべてのブックマークを表示できます。ブックマークマネージャウィンドウを起動するには、LabVIEWフロントパネルで表示→ブックマークマネージャを選択します。

​図9は、ブックマークマネージャウィンドウでこのガイドのコードがどのように表示されるかを示しています。

コード内のブックマークをリストするLabVIEWブックマークマネージャ

​図9.LabVIEWブックマークマネージャ

​このウィンドウで、リストされているタグをダブルクリックすると、コードのそのセクションに移動して確認できます。また、このリストをテキストファイルとしてエクスポートして、コード内のすべての分類済みコードセクションを評価者に表示することもできます。

​次のセクションでは、VIアナライザを使用してコード内のブックマークを検索する方法について説明します。

VIアナイザ使用コードスタティック解析実行する

​​VI Analyzerは、LabVIEWプロフェッショナルに含まれています。VI Analyzerは、コードレビューを自動化し、レビュー担当者によって定義されたコードの問題を検出します。 

  1. ​LabVIEW ブロックダイアグラムのツールメニューに VI Analyzer> Analyze VI が表示されない場合は、NI パッケージマネージャから VI Analyzer をインストールしてください。
  2. VIアナライザを起動するには、確認するトップレベルVIから開始します。ツール→VIアナライザ→VIを解析を選択します。
  3. 「現在のVIを解析」を選択します (または必要に応じて他のオプションを選択します)。
  4. 次へをクリックします。

​図10に示す次の画面は、実行するテストを定義する方法を示します。テストを定義して、ここで<ユーザ指定>テストから選択できます。VIアナライザは主にコードの品質テストを実行するために使用されるため、ここではデータの分類解除には適用されないテストが多数あります。

​図10.LabVIEW VI Analyzerウィンドウ

​機密解除プロセスで最も役立つテストは、次のとおりです。

  • 承認済みブックマークタグ―承認されていないブックマークが使用されているかどうかを調べます。
  • ​ドキュメント→開発者→コメントの使用―コメントがないVIを特定します。 

​最初の検索では、リストにないブックマークが返されます。#CLASSIFIEDをリストから除外すると、このタグを含むコードのすべてのセクションのリストが返されます。図11に示すように、#UNCLASSIFIEDを含めると、分類されていないと判断されたコードの部分を無視します。

​2回目の検索では、コメントのないコードセグメントが特定されるため、開発者はコードレビューの前に各セグメントにブックマークを配置する必要があります。

承認されたブックマークタグを含むVIアナライザウィンドウ

​図11.VIアナライザを使用して承認済みブックマークタグを省略する 

​テストを調整したら、保存ボタンをクリックして、テストを実行するたびにセットアップ時間を短縮します。 

解析をクリックしてテストを実行します。結果のレポートには、図12に示すように#CLASSIFIEDブックマークが表示されます。

スキャン結果を表示するVIアナライザ結果

​図12.VIアナライザ結果

​分類解除プロセス中に、VIプロジェクトとサブVIのコピーを保存します。VIを削除してこのテストを実行し、コードにタグ付きの#Classifiedセクションがないことを確認します。

「印刷」VI使用手動コードレビュー実行する

​​コードの自動レビューを実行した後、詳細な手動レビューを実行して、ドキュメント化プロセス中に機密データが見逃されていないことを確認します。

​ドキュメント作成する 

  1. ​アプリケーションでトップレベルVIを開き、ファイル→印刷を選択します。
  2. 印刷するメインVIを選択します。
  3. 次へをクリックします。
  4. VIドキュメントを選択して次へをクリックします。
  5. VIドキュメントスタイルメニューから完全を選択して、完全なドキュメントを返すように印刷オプションを構成します。
  6. 次へをクリックします。
  7. 出力を選択します。便宜上、リッチテキスト形式 (RTF) を選択します。このオプションは、Microsoft Wordで開くことができる画像を含むファイルを生成します。
  8. カラー深度を指定します (通常は256色で問題ありません)。
  9. 保存をクリックします。
  10. 場所を選択すると、ファイルが生成されます。

​Microsoft Wordなどの標準ドキュメントツールを使用してファイルを開きます。このファイルには、スクリーンショットを含むVIに関するすべての情報が含まれています。画像はページよりも大きく、切り取られているように見えるかもしれませんが、ページに合うようにサイズを小さくすることができます。 

​すべてのサブVIドキュメントが表示されます。このドキュメントを使用すると、セキュリティ担当者は機密解除のためにコードを確認できます。NSA分類カラーを使用すると、コードのどの部分に機密情報が含まれているかがすぐに明確になります。

​分類解除プロセスでは、VIを新しい場所に保存し、分類されたセクションをすべて削除してからこのプロセスを実行するのが最適です。正しく実行されると、コードに機密としてマークされたものは何も残されません。

実行手順ドキュメント化

​​セキュリティプロセスでは、ドキュメント化が重要です。機密環境で情報を保護するための手順を実行したことをセキュリティ担当者に納得させるには、ドキュメントを作成することが重要です。また、セキュリティ担当者が承認したプロセスに従い、セキュリティ担当者が手順を把握できるように、ドキュメント化することでプロセスを合理化できます。情報を保護するために実行するプロセスをできるだけ詳しく説明してください。

トレーニング受けセキュリティ担当結果提示

上記の手順を実行すれば、機密情報が安全な領域から出るのを防いでいるという確信を持ってセキュリティ担当者にアプローチできます。適切なコーディング方法を使用し、完全なドキュメントを作成し、コードレビューツールを使用することで、機密情報を保護するために必要な作業が完了していることを示すことができます。