6장 |
|
이 장은 Solaris Security Toolkit 소프트웨어를 사용하여 시스템의 보안을 감사(검증)하는 방법에 대해 설명합니다. 강화 후에 설정된 보안 프로파일에 대해서는 이 장의 정보와 절차를 사용하십시오. 이미 전개된 시스템의 경우 이 장에 있는 정보를 사용하여 강화하기 전에 보안을 평가할 수 있습니다.
|
주 - 감사라는 용어는 이 장과 설명서에서 보안 상태를 사전 정의된 보안 프로파일과 비교하여 보안 상태를 검증하는 Solaris Security Toolkit 소프트웨어의 자동화된 프로세스를 정의하는 데 사용됩니다. 그러나, 이 용어의 사용이 감사 옵션 사용후 시스템이 완벽하게 안전함을 보장하는 것은 아닙니다. |
보안 유지는 주기적으로 검토하고 확인해야 하는 진행 중 프로세스입니다. 시스템에 대한 기본 보안 구성이 시간이 지남에 따라 점차 열리기 때문에 보안 시스템 유지 보수는 경계가 필요합니다. (보안 유지에 대한 자세한 정보는 시스템 보안 유지보수를 참조하십시오.)
사용자 경험 및 요청을 기초로 지정된 보안 프로파일에 대한 준수 레벨을 판별하여 Solaris Security Toolkit 소프트웨어가 시스템의 보안 상태를 감사하기 위한 자동화된 방법을 개발했습니다.
|
주 - 이 방법은 jass-execute -a 명령을 사용하여 독립형 모드에서만 사용할 수 있으며 JumpStart 설치 중에는 사용할 수 없습니다. |
수동 또는 자동으로(예를 들어 cron 작업이나 rc 스크립트를 통해) 주기적으로 시스템의 보안 상태를 감사하십시오. 예를 들어 새로운 설치를 강화한 후 5일 후에 Solaris Security Toolkit 소프트웨어 감사 명령(jass-execute -a 드라이버이름)을 실행하여 시스템 보안이 보안 프로파일에 의해 정의된 상태에서 변경되었는지 판별하십시오.
보안을 감사하는 빈도는 환경의 중요성과 보안 방침에 따라 달라집니다. 일부 사용자는 매 시간마다, 매일 또는 1개월에 한 번만 감사를 실행합니다. 일부 사용자는 매 시간마다 소형 스캔(제한된 수의 검사)을 실행하고 하루에 한 번 전체 스캔(가능한 모든 검사 사용)을 실행합니다.
필수 구성요소를 감사하여 전개된 시스템의 보안 상태를 유지하십시오. 보안 상태를 주기적으로 감사하지 않는 경우 원하는 보안 상태를 모르고서 또는 악의적으로 변경하는 엔트로피 또는 수정으로 인해 구성이 종종 시간에 따라서 변화합니다. 주기적 검토가 없으면 이들 변경은 검출되지 않고 수정되지 않습니다. 결과적으로 시스템은 덜 안정적이고 더 취약하게 됩니다.
주기적 감사 외에, 업그레이드, 패치, 및 기타 중요한 시스템 구성 변경 후에 감사를 수행하십시오.
일부 경우에는 전개된 시스템을 강화하기 전에 해당 시스템의 보안 상태를 검토하는 것이 유용함을 알 수 있습니다. 예를 들어 다른 사람이 관리한 전개된 시스템에 대한 책임을 지는 경우 시스템 상태를 파악하고 필요한 경우 다른 시스템에서 사용되는 동일한 보안 프로파일을 준수하게 만들 수 있도록 시스템의 상태를 조사하십시오.
감사 옵션은 시스템 상태 평가를 위한 높은 융통성과 확장성을 갖는 체계를 제공합니다. 강화 스크립트에서와 같이 감사 스크립트의 조치를 사용자 정의할 수 있습니다. 예를 들어 환경 변수를 사용자 정의하고 프레임워크와 지원 프로그램 기능을 사용자 정의하고 새로운 점검을 추가하고 감사 프레임워크에 기능을 추가할 수 있습니다.
대체로 표준 및 제품 특정 감사 스크립트는 해당 환경에 대한 감사를 사용자 정의할 템플리트로 적합합니다. 이 시나리오의 경우 드라이버, 종료 스크립트, 환경 변수 및 파일 템플리트를 통해 감사 스크립트 조치를 사용자 정의하십시오. 이러한 사용자 정의 변경은 아주 간단하며 코드를 수정하지 않고도 가능합니다. 강화를 위해 수행하는 모든 변경 사항은 사용자가 감사를 수행할 때 Solaris Security Toolkit 소프트웨어에 의해 자동으로 알려집니다.
때때로 Solaris Security Toolkit 소프트웨어가 제공하지 않은 검사나 기능을 추가할 필요가 있을 수도 있습니다. 이 시나리오의 경우 감사 스크립트에 검사나 새 기능을 추가하십시오. (대응하는 종료 스크립트에서 관련된 변경을 수행할 수도 있습니다.) 경우에 따라 코드를 수정해야 할 수 있습니다. 코드 추가 및 수정을 수행할 때 버그 및 실패를 도입하지 않도록 주의하십시오.
일부 사용자는 완전히 새로운 독점적 또는 사이트에 고유한 드라이버와 스크립트를 작성해야 합니다. 새로운 드라이버 및 스크립트를 코드화할 때 템플리트와 예제를 지침으로 사용하십시오. 감사 옵션을 사용할 때 사이트 특정 드라이버, 종료 스크립트, 변수 및 기능이 Solaris Security Toolkit 소프트웨어에 자동으로 알려지지 않음을 주의하십시오. 예를 들어 사이트에 고유한 종료 스크립트인 abcc-nj-install-foo.fin이 들어있는 abcc-nj-secure.driver라는 사이트 특정 드라이버를 추가하는 경우 사이트 특정 감사 스크립트 abcc-nj-install-foo.aud를 작성해야 합니다. 비슷하게 감사 스크립트만으로 시작하는 경우 대응하는 종료 스크립트를 작성해야 합니다.
새로운 드라이버, 스크립트, 변수 및 기능을 사용자 정의하거나 작성하려면 Solaris Security Toolkit 4.1 Reference Manual을 참조하십시오.
예를 들어 Solaris Security Toolkit 소프트웨어가 설치하지 않는 패치를 추가할 필요가 있을 수 있습니다. 표준 또는 제품 특정 템플리트 중 하나를 확장하거나 고유한 것을 작성할 수 있습니다. 자체 템플리트를 작성하는 경우 패치를 추가하는 종료 스크립트를 작성한 후 대응하는 감사 스크립트를 작성하여 패치 설치를 점검하십시오.
이 장의 지시 및 지침을 사용하려면 보안 프로파일이 필요합니다. 보안 프로파일 개발 및 구현에 대한 정보는 2 장을 참조하십시오.
다양한 보안 프로파일 템플리트가 Solaris Security Toolkit 배포에 드라이버로서 포함되어 있습니다. 이 설명서의 앞에서 언급한 것처럼 기본 보안 프로파일 및 이들 드라이버로 작성된 변경이 사용자 시스템에 적합하지 않을 수 있습니다. 일반적으로 이들 드라이버에 의해 구현되는 보안 프로파일이 보안을 위한 "최고 수위선" 입니다. 이에 의하면 필수가 아닌 서비스를 비활성화 하고 기본적으로 사용 불가능한 선택적 보안 기능을 활성화 함을 의미합니다.
많은 Solaris Security Toolkit 소프트웨어 사용자는 표준 및 제품 특정 보안 프로파일 템플리트가 해당 환경에 적용할 수 있음을 알 수 있습니다. 이 경우에 해당하는 경우 어떤 보안 프로파일이 사용자가 원하는 보안 상태에 가장 가까운지를 판별하고 시스템 평가 및 강화에 사용하십시오.
사용자 환경에 대해 보안 프로파일 템플리트를 검토 및 사용자 정의하거나 새로 개발하십시오. 보안 프로파일 사용자 정의에 대한 방법과 지침은 Solaris Security Toolkit 4.1 Reference Manual에 있습니다. 이 접근법은 사용자 조직에 맞는 보안 상태를 제공하며, 보안 평가 중에 반환되는 거짓 오류의 양을 최소화합니다. 예를 들어 텔넷을 사용해야 함을 알고 있는 경우 보안 평가를 수행할 때 소프트웨어가 텔넷을 취약점으로 고려하지 않도록 보안 프로파일을 사용자 정의할 수 있습니다. 예를 들어 인증 및 암호화를 위해 Telnet with Kerberos를 사용하는 사이트가 텔넷 사용을 취약점으로 간주하지 않습니다.
이 절에서는 감사 실행 실행에 사용 가능한 옵션과 출력 제어용 옵션에 대해 설명합니다. 이 절에는 다음 항목이 들어있습니다.
Solaris Security Toolkit 소프트웨어 감사 명령을 실행할 때 표 6-1에 나열된 다음 옵션을 사용할 수 있습니다.
jass-execute -a 명령과 함께 사용할 수 있는 옵션에 대한 자세한 정보는 다음 절을 참조하십시오.
-h 옵션은 사용 가능한 옵션의 개요를 제공하는 jass-execute 도움말 메시지를 표시합니다.
-m 전자 우편 주소 옵션은 실행이 완료될 때 출력이 Solaris Security Toolkit 소프트웨어에 의해 자동으로 전자 우편을 통해 보내질 수 있는 체계를 제공합니다. 전자 우편 보고서는 다른 옵션을 사용하여 시스템에 생성되는 모든 로그에 추가로 작성됩니다.
전자 우편 옵션을 사용하여 sunfire_15k_sc-config.driver를 호출하는 Solaris Security Toolkit 실행은 다음과 비슷합니다.
-o 출력 파일 옵션은 jass-execute 실행의 콘솔 출력을 별개 파일인 출력 파일로 경로 재지정합니다.
이 옵션은 JASS_REPOSITORY 디렉토리에 보존되는 로그에는 아무 영향도 주지 않습니다. 이 옵션은 Solaris Security Toolkit 실행에 의해 생성되는 상당한 양의 출력이 있기 때문에 특히 느린 터미널 연결을 통해 수행될 때 유용합니다.
이 옵션은 -d, -u 또는 -a 옵션 중 하나와 함께 사용할 수 있습니다.
# ./jass-execute -o jass-output.txt -a secure.driver [NOTE] Executing driver, secure.driver [NOTE] Recording output to jass-output.txt # |
-q 옵션은 강화 작업 중에 표준 입출력(stdio) 스트림에 대한 Solaris Security Toolkit 출력을 비활성화 합니다.
이 옵션은 JASS_REPOSITORY 디렉토리에 보존되는 로그에는 아무 영향도 주지 않습니다. -o 옵션과 비슷하게, 이 옵션은 특히 cron 작업을 통하거나 느린 네트워크 연결을 통해 Solaris Security Toolkit 소프트웨어를 실행할 때 도움이 됩니다.
이 옵션은 -d, -u 또는 -a 옵션 중 하나와 함께 사용할 수 있습니다.
-V 옵션은 감사 실행에 대한 상세(verbosity) 레벨을 지정합니다. 이 옵션은 감사에만 사용할 수 있습니다. 상세 레벨은 감사 실행의 결과를 표시하는 융통성이 높은 방법을 제공합니다. 예를 들어 100대의 시스템을 감사하는 경우 각 시스템에 대해 출력을 하나의 행으로 제한하여 어느 시스템이 감사를 통과하는지 간단히 판별할 수도 있습니다. 그런 다음 실패하는 시스템에 대해 문제점 영역에 집중하기 위해 확장된 출력을 생성하는 감사를 실행할 수 있습니다.
5가지 상세 레벨(0 - 4)이 -V 옵션으로 제어됩니다. 레벨이 올라갈수록 어떤 점검이 통과하고 어느 것이 실패하는지 보다 완전하게 이해하기 위해 사용할 수 있는 추가 세부사항을 제공합니다. 표 6-2에 상세 레벨이 설명되어 있습니다.
|
여러 행(레벨 3에서 제공되는 모든 데이터) 및 logDebug 로깅 기능에 의해 생성되는 모든 항목. 이 레벨은 디버깅용입니다. |
상세 레벨의 자세한 설명은 Solaris Security Toolkit 4.1 Reference Manual을 참조하십시오.
배너 및 메시지를 보고하거나 생략하도록 Solaris Security Toolkit 감사 옵션을 구성할 수 있습니다. JASS_LOG_BANNER 변수는 상세 레벨 0-2로 사용할 수 없습니다. 이런 출력 옵션은 상세 레벨 3과 4에 적용합니다. 예를 들어, (JASS_LOG_FAILURE 변수)만을 보고하고 집중할 수 있도록 출력에서 통과 메시지(JASS_LOG_SUCCESS 변수)를 제거할 수 있습니다.
표 6-3은 로깅 변수를 통해 제어할 수 있는 배너 및 메시지 목록입니다. (로깅 변수에 대한 자세한 정보는 Solaris Security Toolkit 4.1 Reference Manual을 참조하십시오.) 로깅 변수가 0으로 설정되면 해당 유형의 메시지에 대해 출력이 생성되지 않습니다. 반대로 로깅 변수가 1로 설정되면 메시지가 표시됩니다. 이러한 각 변수에 대한 기본 조치는 출력을 표시하는 것입니다. 표 6-3에서 로깅 변수에 대해 설명합니다.
|
이 매개변수는 배너 메시지의 표시를 제어합니다. 이들 메시지는 대개 등호("=") 또는 대시("-") 문자 중 하나로 구성되는 분리자로 둘러쌉니다. |
||
|
이 매개변수는 성공 또는 통과 상태 메시지의 표시를 제어합니다. 0으로 설정되면 성공 메시지가 생성되지 않습니다. |
||
이들 옵션을 사용하면 특정 메시지만을 보아야 할 때 매우 유용합니다. 이들 옵션을 설정하여 중요하다고 생각하는 영역에 집중하면서도 출력을 최소화할 수 있습니다. 예를 들어 JASS_LOG_FAILURE(기본값인 1로 그대로 둠)를 제외한 모든 로깅 변수를 0으로 설정하면 감사가 logFailure에 의해 생성되는 실패에 대해서만 보고합니다.
상세 레벨 0-2에 대한 호스트 이름, 스크립트 이름 및 시간 소인 정보를 포함하도록 Solaris Security Toolkit 감사 옵션을 구성할 수 있습니다. 예를 들어 감사할 시스템이 많은 경우 호스트 이름, 스크립트 이름 또는 시간 소인으로 출력을 정렬할 수 있기 원합니다. 표 6-4에 변수가 나열되어 있습니다.
호스트, 스크립트 및 시간 소인 정보를 앞에 첨부하도록 Solaris Security Toolkit 소프트웨어를 구성함으로써 단일 시스템이나 시스템 그룹의 많은 감사 실행을 결합하고 핵심 데이터를 기초로 정렬할 수 있습니다. 이 정보를 사용하여 여러 시스템에 걸쳐있거나 전개 프로세스의 증상인 문제점을 찾을 수 있습니다. 예를 들어 관리자는 이 방식으로 정보를 사용하여 주어진 프로세스를 사용하는 모든 시스템 구축에 항상 동일한 실패한 검사가 있는지 알 수 있습니다.
예를 들어 JASS_DISPLAY_TIMESTAMP 매개변수를 1로 설정하고 JASS_DISPLAY_SCRIPTNAME 값을 0으로 설정하면 다음과 비슷한 출력이 생성됩니다.
시스템에 대해 보안 평가를 주기적으로 수행하면 사용자가 구현한 보안 프로파일에 대해 시스템이 얼마나 가깝게 일치하는지의 벤치마크를 얻게 됩니다. 보안 평가 수행에 대한 가장 일반적인 시나리오는 새로운 설치를 수행한 후 보안 유지 작업으로 수행하는 것입니다. 단순히 시스템을 강화하는 데 사용한 동일한 강화 드라이버를 실행하도록 보안 평가 옵션을 디자인했지만, 이제는 -a 옵션을 사용하여 강화 중에 구현된 보안 프로파일과 비교한 현재 상태를 점검합니다. 이 디자인은 복잡하지 않고 유연합니다. 예를 들어 보안 프로파일을 업데이트할 때 후속 보안 평가는 업데이트된 보안 프로파일을 사용합니다.
또 다른 가능한 시나리오에서 사용자는 이미 전개된 시스템 보안의 책임자일 수도 있습니다. 해당 시스템을 강화하기 전에 보안 평가를 수행하고자 합니다. 이 시나리오에서는 사용자 고유의 보안 프로파일을 정의하거나 Solaris Security Toolkit 보안 프로파일 템플리트를 사용자 정의하거나 보안 프로파일 템플리트 중 하나를 있는 그대로 사용합니다.
|
감사를 수행하기 전에 보안 프로파일을 정의 또는 선택해야 합니다. 자세한 정보는 보안 감사 준비를 참조하십시오.
|
주의 - 이전에 강화하지 않은 전개된 시스템에 대해 보안 평가를 수행하려는 경우 먼저 시스템을 백업하고 재부트하여 시스템이 알려지고 작동 중이며 일관성 있는 구성 상태에 있는지 확인하십시오. 보안 평가를 계속하기 전에 이 예비 재부트 중에 검출되는 모든 오류나 경고를 정정하거나 기록해야 합니다. |
1. 사용하려는 보안 프로파일(강화 드라이버)을 선택합니다.
예를 들면 secure.driver 또는 abccorp-secure.driver.
사용 가능한 전체 드라이버의 최신 목록의 경우 다음 웹 사이트에서 Solaris Security Toolkit 소프트웨어의 최신 버전을 다운로드하십시오.
http://www.sun.com/security/jass
표준 및 제품 특정 드라이버에 대한 정보는 Solaris Security Toolkit 4.1 Reference Manual을 참조하십시오. 드라이버의 가장 최근 목록에 대해서는 Drivers 디렉토리를 참조하십시오.
2. 원하는 명령줄 옵션과 출력을 제어하기 원하는 방법을 결정합니다.
옵션 사용 및 감사 출력 제어를 참조하십시오.
3. jass-execute -a 명령, 보안 프로파일의 이름 및 원하는 옵션을 입력합니다.
다음은 sunfire_15k_sc-secure.driver를 사용한 예제 감사 실행입니다.
감사 실행이 시작될 때 Solaris Security Toolkit 소프트웨어는 JASS_HOME_DIR/Audit 디렉토리의 파일에 액세스합니다. JASS_HOME_DIR/Audit 및 JASS_HOME_DIR/Finish 디렉토리 둘 다에 있는 파일이 동일한 기본 파일 이름을 공유하지만 서로 다른 파일 이름 접미어를 갖습니다. driver.run 스크립트가 접미어를 .fin에서 .aud로 변경하여 자동으로 JASS_SCRIPTS 변수에 의해 정의되는 종료 스크립트를 감사 스크립트로 변환합니다.
감사 실행이 시작하고 Solaris Security Toolkit 소프트웨어의 상태를 초기화합니다. 작업 중에 액세스되는 각 드라이버가 모든 파일 템플리트 및 감사 스크립트의 상태를 평가합니다. 각 검사 결과는 각각 0이거나 0이 아닌 취약성 값으로 표시되는 성공 또는 실패 상태로 나타납니다. 대부분의 경우 실패는 숫자 1로 표시됩니다. 실행되는 각 스크립트가 스크립트에 들어있는 각 검사의 총 취약성 값을 토대로 총 보안 점수를 작성합니다. 또한 각 드라이버에 대한 총 취약성 값 결과가 드라이버 평가 완료시에 표시됩니다. 모든 점수의 총계는 작업이 종료할 때 제시됩니다.
보안 평가 옵션은 평가 작업이 시작되는 시점에서 시스템 상태의 포괄적인 보기를 제공합니다. Solaris Security Toolkit 소프트웨어는 구성 파일을 조사하여 시스템의 저장된 상태를 점검하고 프로세스 테이블 정보, 장치 드라이버 정보 등을 조사하여 시스템의 실행 중 상태를 점검합니다. Solaris Security Toolkit 소프트웨어는 각 파일이나 서비스의 존재 여부를 점검하고 서비스와 연관된 소프트웨어가 설치, 구성, 사용 가능 및 실행 중인지 점검합니다. 이 접근 방식은 시스템의 현재 상태에 대한 정확한 스냅샷을 작성합니다.
Copyright © 2004, Sun Microsystems, Inc. All rights reserved.