​NI LabVIEW 코드 분류 해제

개요

​LabVIEW 개발자는 보안, 분류된 영역에서 코드를 생성합니다. 코드를 안전하지 않은 영역으로 이동하려면, 코드, 정보, 데이터와 같은 모든 분류가 없어야 합니다. 분류된 코드는 분류된 것으로 간주되는 작업을 수행하는 알고리즘, 코드의 입력으로 사용되는 정보, 어플리케이션이 수집하여 파일에 저장하는 데이터를 포함할 수 있습니다. 암호화된 영역 밖으로 코드를 이동하기 전에 암호화된 정보를 식별하고 LabVIEW 코드를 이해하는 교육을 받은 사람이 이를 검토하고 승인해야 합니다. 

 

​LabVIEW 코드를 분류하는 것은 모든 프로그래밍 언어와 같습니다.

 

  1. ​좋은 문서화 방법에 따라 코드를 개발합니다.

  2. ​자동 도구를 사용하여 정적 코드 분석을 수행하여 분류된 코드를 식별하는 특정 플래그를 찾습니다.
  3. ​수동 코드 검토를 수행하여 모든 민감한 데이터가 제거되었는지 확인합니다.

  4. 코드의 모든 분류된 정보를 제거합니다. 

  5. 사용된 도구, 수행된 단계, 결과를 포함한 분류 프로세스를 문서화합니다. 

  6. 승인된 보안 담당자에게 승인을 받아야 합니다.

​이 문서에서는 가능한 한 간단하게 LabVIEW 코드의 분류를 해제하기 위해 다음과 같은 권장 사항과 모범 사례를 요약합니다.

 

  • ​보안 환경에서 개발되는 코드의 양 최소화

  • ​코드를 모듈화하여 분류된 개발과 분류되지 않은 개발을 분리

  • ​분류된 정보와 비분류된 정보가 명확하게 식별되도록 코드를 문서화

  • ​VI 분석기를 사용하여 코드의 정적 분석을 실행

  • ​인쇄 VI를 사용하여 코드의 수동 검토 수행

  • ​수행된 단계를 문서화

  • ​교육을 받은 보안관에게 결과 제시

​​

내용

보안 환경에서 개발되는 코드의 양 최소화

분류된 코드를 다룰 때는, 일반적으로 분류된 환경에서 분류되지 않은 환경으로 코드를 이동하는 것을 피하는 것이 더 쉽습니다. 가능한 한 비분류된 환경에서 코드를 개발한 후 완성된 코드를 분류된 환경으로 이동합니다. LabVIEW 모듈형 특성 때문에, 해당 코드가 분류된 영역 내에 있을 때까지 민감한 코드의 개발을 그대로 두는 자리 표시자 SubVI를 사용하여 코드를 개발할 수 있습니다. 이상적으로, 이동 후에 발생하는 유일한 코드 변경은 코드의 분류된 부분을 구현하는 것입니다. 그러나 이러한 실행이 항상 가능하지 않기 때문에, 분류된 환경에서 작업하는 LabVIEW 개발자는 이 문서의 나머지 부분에 설명된 바와 같이 일부 모범 사례를 따르십시오.

코드를 모듈화하여 분류된 개발과 분류되지 않은 개발을 분리

​LabVIEW에서 SubVI를 사용하면 분류 정보가 포함된 코드를 분리할 수 있습니다. 분류된 코드의 개발이 개별 SubVI에 격리될 수 있도록 코드를 설계합니다.

​코드를 개발할 때, 최상위 VI에서 자리 표시자 알고리즘을 생성하는 것을 고려하십시오. 실제 알고리즘을 개발하기 전에 알고리즘의 입력과 출력을 정의한 후, 그림 1과 같이 코드 섹션에서 SubVI를 생성합니다.

​그림 1. 편집 메뉴에서 SubVI 옵션 생성

​SubVI를 생성한 후, SubVI를 열고 알고리즘의 나머지를 구현합니다. 

​SubVI를 저장합니다. 모든 SubVI를 별도의 폴더에 저장하여 코드에서 쉽게 제거할 수 있습니다.

분류된 정보와 분류되지 않은 정보가 명확하게 식별되도록 코드를 문서화

​문서화는 분류 해제를 단순화하기 위한 가장 중요한 단계입니다. 보안 담당자가 코드의 기능을 이해할 수 없는 경우, 분류 해제를 위해 코드를 삭제할 수 없습니다. LabVIEW 여러 레벨의 문서 옵션을 제공합니다.

​라벨과 텍스트 박스를 사용하여 분류된 정보를 식별 

​모든 프런트패널 컨트롤, 인디케이터, 상수에 라벨을 붙여서 데이터 타입과 기능을 최대한 분명하게 합니다. 라벨을 붙이면, 컨트롤의 데이터가 나중에 데이터로 분류될 수 있는지 여부를 고려합니다. 데이터가 분류될 가능성이 있는 경우, NSA 색 코딩을 사용하여 분류된 정보의 가능성을 파악합니다. 

​그림 2의 이미지는 프런트패널에서 나타나며 입력 중 일부가 분류된 정보를 포함할 수 있음을 나타냅니다. 이를 통해 분류 해제 과정 중 어떤 컨테이너를 확인해야 하는지 알 수 있습니다.

전송 주파수 설정, 진폭 컨트롤, 자극 및 측정 채널 입력이 있는 LabVIEW 전면 패널.

​그림 2. 색으로 코드화된 컨트롤 라벨 

 

​분류된 정보를 상수에 넣지 않기 

​가능한 경우, 검토 과정 중 상수가 무시될 수 있기 때문에, 분류된 정보를 블록다이어그램 상수에 직접 놓는 것을 피하십시오. 또한 코드를 분류 해제하기 위해 상수를 제거하는 것이 더 어렵습니다. 대신 데이터 파일에서 입력을 반입하고 해당 파일에 분류된 정보를 유지하는 것을 고려하십시오. 분류 프로세스 중에 LabVIEW 블록다이어그램에서 해당 파일을 분리하면, 분류된 데이터가 LabVIEW 다이어그램에 없게 됩니다.

​이러한 방법은 항상 가능하지 않기 때문에, 상수가 분류된 데이터를 포함하는 경우, 그림 3과 같이 해당 상수에 라벨을 붙이는 것이 중요합니다. 색- NSA의 색 코드에 따라 라벨을 코드하여 데이터 타입을 식별합니다. 

색 코딩을 사용하여 분류를 식별하는LabVIEW 상수

​그림 3. 색 코딩을 사용하여 분류를 식별하는 LabVIEW 상수

 

​SubVI를 분류 정보와 함께 문서화

​SubVI의 VI 프로퍼티를 선택하여 SubVI 레벨에서 LabVIEW 코드를 문서화할 수 있습니다. 파일 > VI 프로퍼티.

​이 대화 상자를 열면 그림 4와 같이 드롭다운 메뉴에서 문서를 선택합니다. 

VI 설명 프로퍼티를 보여주는 LabVIEW VI 프로퍼티 대화 상자

​그림 4. VI 설명 프로퍼티에서 분류된 대로 VI 문서화하기 

​VI 설명의 주석은 몇 가지 유용한 위치에 나타나지만, 이 대화 상자에 문서화된 후에만 나타납니다. 

​또한 위의 예에서 **CLASSIFIED**와 같이 분류된 SubVI에 공통 설명자를 사용하는 것도 유용합니다. 그런 다음 자동 도구를 사용하여 분류 해제 과정 중 이러한 주석을 검색할 수 있습니다.

​주석이 나타나는 곳 중 하나는 기본 도움말 창입니다. 마우스를 SubVI 위로 움직이면 그림 5와 같이 문서가 포함된 설명이 나타납니다.

VI 설명을 보여주는LabVIEW 기본 도움말 윈도우

​그림 5. LabVIEW 기본 도움말 윈도우에서 VI 설명 보기

 

​SubVI 아이콘을 사용하여 분류된 정보를 식별

​새로 생성된 SubVI는 그림 6과 같이 오른쪽 위 코너에 기본 아이콘을 디스플레이합니다.

기본 LabVIEW VI 아이콘 및 커넥터

​그림 6. LabVIEW VI의 기본 아이콘

 

​이 아이콘을 더블 클릭하면 LabVIEW 아이콘 편집기 대화 상자가 열립니다. 이 아이콘 편집기를 사용하여 SubVI의 기능을 식별할 수 있습니다. 또한 그림 7과 같이 아이콘의 색을 사용하여 함수가 분류된 데이터를 포함하는지 신속하게 확인할 수 있습니다.

 분류를 식별하기 위해 서로 다른 색칠을 가진 두 개의 LabVIEW VI의 이미지

​그림 7. 아이콘 색을 사용하여 코드 분류 식별하기 

​이 방법을 사용하면 검토자가 LabVIEW 프로그래머가 아닌 경우에도 분류 해제 중 코드를 쉽게 검토할 수 있습니다.

​북마크를 사용하여 코드 섹션 식별

​LabVIEW 블록다이어그램이나 프런트패널의 빈 공간을 더블 클릭하면 텍스트 북마크를 생성할 수 있습니다. 텍스트 앞에 해쉬태그(#)를 포함시키면 텍스트가 북마크가 됩니다. 

​자동화된 도구는 이러한 북마크를 찾습니다. 어떤 북마크를 찾을지 지정할 수 있습니다. 그림 8과 같이 코드의 각 섹션을 #CLASSIFIED 또는 #UNCLASSIFIED로 태그하는 것이 좋습니다. 이러한 북마크에 대한 스캔을 자동화할 수 있게 됩니다.

LabVIEW 코드 스니핏과 코드를 분류로 표시하는 주석

​그림 8. 분류된 코드 섹션에 대한 LabVIEW 태그 

북마크 관리자 윈도우를 사용하여 SubVI를 포함한 코드의 모든 북마크를 볼 수 있습니다. 북마크 관리자 윈도우를 시작하려면, LabVIEW 프런트패널에서 보기 > 북마크 관리자를 선택합니다.

​그림 9는 북마크 관리자 윈도우가 이 가이드에 보이는 코드를 어떻게 찾는지 보여주는 예를 보여줍니다.

코드에서 북마크를 나열하는 LabVIEW 북마크 관리자

​그림 9. LabVIEW 북마크 관리자

​이 윈도우에서, 나열된 모든 태그를 더블 클릭하여 코드의 해당 섹션을 검토할 수 있습니다. 또한 이 리스트를 텍스트 파일로 반출하여 코드의 모든 분류된 코드 섹션을 평가자에게 보여줄 수 있습니다.

​다음 섹션에서는 VI 분석기를 사용하여 코드에서 북마크를 찾는 방법에 대해 설명합니다.

VI 분석기를 사용하여 코드에 정적 분석을 실행

​VI 분석기는 LabVIEW Professional에 포함되어 있습니다. VI 분석기는 검토자가 정의한 코드 문제를 검색하여 코드 검토를 자동화합니다. 

  1. ​LabVIEW 블록다이어그램의 도구 메뉴에 VI 분석기 > VI 분석이 표시되지 않으면, NI 패키지 관리자에서 VI 분석기를 설치하십시오.
  2. VI 분석기를 시작하려면, 검토하려는 최상위 VI에서 시작합니다. 도구 ≫VI 분석기≫VI 분석을 선택합니다.
  3. 현재 VI 분석(또는 다른 옵션)을 선택합니다.
  4. 다음을 클릭합니다.

​다음 화면은 그림 10과 같이 어떤 테스트를 실행할지 정의하는 방법을 제공합니다. 테스트를 정의하고 <User-Specified> 테스트에서 선택할 수 있습니다. VI 분석기는 주로 코드의 품질 테스트를 실행하는데 사용되기 때문에, 여기에는 데이터 분류에 적용되지 않는 많은 테스트가 있습니다.

사용 가능한 옵션이 표시된 LabVIEW VI Analyzer 윈도우

​그림 10. LabVIEW VI Analyzer 윈도우

​분류 해제 과정에서 가장 유용한 테스트는 다음과 같습니다:

  • 확인된 북마크 태그―확인되지 않은 북마크의 사용을 확인합니다.
  • ​문서 > 개발자 > 주석 사용―주석이 없는 VI를 식별합니다. 

​첫 번째 검색은 리스트에 없는 북마크를 반환합니다. #CLASSIFIED를 리스트에서 제거하면, 이 태그가 있는 코드의 모든 섹션의 리스트가 반환됩니다. 그림 11과 같이 #UNCLASSIFIED를 포함시키면 분류되지 않은 코드 섹션을 무시합니다.

​두 번째 검색은 주석이 없는 코드 부분을 식별하여 코드 검토 전에 각 부분에 북마크를 붙이도록 합니다.

승인된 북마크 태그가 포함된 VI 분석기 윈도우

​그림 11. VI 분석기를 사용하여 승인된 북마크 태그 생략하기 

​테스트를 튜닝한 후에는 테스트를 실행할 때마다 설치 시간을 줄이려면 저장 버튼을 클릭합니다. 

분석을 클릭하여 테스트를 실행합니다. 결과 리포트는 그림 12와 같이 #CLASSIFIED 북마크를 보여줍니다.

VI 분석기 스캔 결과 표시

​그림 12. VI 분석기 결과

​분류 해제 과정에서 VI 프로젝트와 SubVI의 복사본을 저장합니다. VI를 제거하고 이 테스트를 실행한 후, 코드의 #분류된 섹션에 태그가 없는지 확인합니다.

인쇄 VI를 사용하여 수동 코드 검토 수행

​코드의 자동 검토를 수행한 후, 문서화 과정 중에 분류된 데이터가 누락되었는지 확인하기 위해 자세한 수동 검토를 수행합니다.

​문서 생성하기 

  1. ​응용 프로그램에서 최상위 VI를 열고 파일 > 인쇄를 선택합니다.
  2. 인쇄하려는 주요 VI를 선택합니다.
  3. Next를 클릭합니다.
  4. VI 문서 를 클릭하고 다음을 클릭합니다.
  5. VI 문서 스타일 메뉴에서 완료를 선택하여 전체 문서를 반환하도록 인쇄 옵션을 설정합니다.
  6. 다음을 클릭합니다.
  7. 출력을 선택합니다. 단순성을 위해 Rich Text Format (RTF)을 선택합니다. 이 옵션은 Microsoft Word에서 열 수 있는 이미지가 포함된 파일을 생성합니다.
  8. 다음.
  9. 색 농도을 지정합니다 (256색은 일반적으로 괜찮습니다).
  10. 저장을 클릭합니다.
  11. 위치를 선택하면 파일이 생성됩니다.

​Microsoft Word와 같은 표준 문서 도구를 사용하여 파일을 엽니다. 이 파일에는 스크린샷을 포함한 VI에 대한 모든 정보가 포함됩니다. 이미지가 페이지보다 커지며 잘린 것처럼 보일 수 있지만, 페이지에 맞게 크기를 줄일 수 있습니다. 

​모든 SubVI 문서가 나타나는 것을 확인합니다. 이 문서를 통해 보안 담당자가 분류 해제를 위한 코드를 검토할 수 있습니다. NSA 분류 색을 사용하면 코드의 어떤 섹션에 분류된 정보가 포함되어 있는지 즉시 알 수 있습니다.

​분류 해제 과정에서, VI를 새 위치에 저장하고, 모든 분류된 섹션을 제거한 후 이 과정을 실행하는 것이 가장 좋습니다. 올바르게 수행하는 경우, 분류로 표시된 것은 코드에 남아있지 않아야 합니다.

수행된 단계 문서화

​모든 보안 프로세스에서 문서는 중요합니다. 문서는 보안 담당자가 기밀화된 환경에서 정보를 보호하기 위한 단계를 따랐음을 확신하는데 매우 중요합니다. 또한 문서화 과정은 보안 담당자가 승인한 과정을 따르고 보안 담당자가 수행한 단계를 이해하도록 간소화할 수 있습니다. 정보를 보호하기 위해 사용하는 프로세스를 설명할 때 최대한 자세히 설명하십시오.

훈련된 보안관에게 결과 제시

리스트에 나열된 단계를 수행한 경우, 보안 담당자에게 보안 정보가 보안 영역을 벗어나지 않도록 보호하고 있다고 확신할 수 있습니다. 좋은 코딩 방법을 사용하고, 완벽한 문서를 작성하고, 코드 검토 도구를 사용하면 분류된 정보를 보호하기 위해 필요한 작업을 완료했음을 증명할 수 있습니다.