vRealize Automation SaltStack SecOpsSaltStack Config용 추가 기능으로 두 개의 보안 라이브러리를 제공합니다. 두 컨텐츠 라이브러리는 보안 표준이 변경되면 정기적으로 업데이트됩니다. 보안 표준이 변경되면 컨텐츠를 자동으로 다운로드(또는 수집)하도록 구성할 수 있으며, 대부분의 표준 시스템에 권장됩니다.

다음 유형의 컨텐츠는 SaltStack SecOps의 일부로 제공됩니다.

  • 규정 준수 - 인프라에 대한 자동 규정 준수 감지 및 업데이트 적용. 규정 준수 컨텐츠 라이브러리는 CIS와 같은 업계 모범 사례 보안 및 규정 준수 컨텐츠로 구성됩니다.
  • 취약성 - 사용자 환경의 모든 시스템에 대한 취약성을 관리합니다. 컨텐츠 라이브러리에는 최신 CVE(일반 취약성 및 노출) 항목에 기반한 권고가 포함되어 있습니다.

라이브러리에는 컨텐츠를 수동으로 다운로드하거나 HTTP(s) 프록시를 통해 RaaS 노드에서 컨텐츠에 액세스하는 옵션이 대안으로 포함되어 있습니다. 수동 수집은 에어갭 시스템에 유용하지만 프록시를 통한 다운로드는 인터넷에서 직접 컨텐츠를 다운로드하지 않도록 하는 데 유용합니다. 프록시를 통해 다운로드하면 다운로드되는 항목과 위치를 보다 쉽게 제어하고 살펴볼 수 있습니다.

시작하기 전에

SaltStack SecOps 구성은 특정 순서로 수행해야 하는 일련의 여러 단계 중 하나인 설치 후 단계입니다. 먼저 설치 시나리오 중 하나를 완료한 후 다음과 같은 설치 후 페이지를 읽어보십시오.

Python 3 rpm 라이브러리 설치

SaltStack SecOps는 Python 3 rpm 라이브러리를 사용하여 패키지 버전을 안정적으로 비교합니다. 이러한 프로그램을 사용하려면 버전 규정 준수를 확인하거나 취약성을 평가하기 위해 이러한 라이브러리에서 제공하는 향상된 정확성이 필요합니다.

현재 RedHat 또는 CentOS 7을 사용하는 모든 미니언은 정확한 규정 준수 또는 취약성 평가를 실행하기 위해 Python 3 rpm 라이브러리가 필요할 수 있습니다. 이러한 버전의 RedHat 또는 CentOS를 사용하는 미니언에 대해 평가를 실행하려면 해당 시스템에 Python 3 rpm 라이브러리를 수동으로 설치해야 합니다.

참고:

다른 해결 방법을 사용할 수 있습니다. 다른 해결 방법이 필요하면 지원 연락처를 참조하십시오.

마스터 플러그인을 실행하는 Salt 마스터에 Python 3 rpm 라이브러리를 설치하려면:

  1. 다음 명령을 사용하여 EPEL 저장소를 설치합니다.
    yum install -y epel-release
  2. Python 3 rpm 라이브러리를 설치합니다.
    yum install -y python3-rpm

표준 시스템의 자동 컨텐츠 수집

에어갭 시스템이 아닌 RaaS 시스템의 경우 구성 파일의 설정에 따라 컨텐츠가 주기적으로 다운로드 및 수집됩니다. 기본적으로 자동 컨텐츠 수집은 SaltStack Config에 이미 구성되어 있으며 추가 작업이 필요하지 않습니다.

SaltStack Config를 수동으로 설치한 경우 다음 단계에 따라 자동 SaltStack SecOps 컨텐츠 수집을 구성합니다.

  1. RaaS 서비스 구성 파일 /etc/raas/raassec 섹션에 다음을 추가하고 필요에 따라 조정합니다.
    sec:
      stats_snapshot_interval: 3600
      username: secops
      content_url: https://enterprise.saltstack.com/secops_downloads
      ingest_saltstack_override: true
      ingest_custom_override: true
      locke_dir: locke
      post_ingest_cleanup: true
      download_enabled: true
      download_frequency: 86400
      compile_stats_interval: 10
      archive_interval: 300
      old_policy_file_lifespan: 2
      delete_old_policy_files_interval: 86400
      ingest_on_boot: true
      content_lock_timeout: 60
      content_lock_block_timeout: 120
  2. 파일을 저장합니다.
  3. RaaS 서비스를 다시 시작합니다.
    systemctl restart raas

    서비스가 다시 시작되면 SaltStack SecOps 컨텐츠가 다운로드되기 시작합니다. 인터넷 연결에 따라 최대 5분이 소요될 수 있습니다.

http(s) 프록시를 통해 컨텐츠 수집

프록시를 통해 수집하려면 RaaS 서비스에 대한 재정의를 생성하고, httpproxyhttpsproxy에 대한 새 환경 변수를 추가해야 합니다.

https 프록시를 사용하도록 RaaS 노드를 구성하려면:

  1. 이전 단계를 완료하여 자동 수집을 사용하도록 설정합니다.
  2. 마스터의 명령줄에서 RaaS 서비스를 편집합니다.
    systemctl edit raas
  3. 생성된 파일에 다음 줄을 추가합니다.
    [Service]
    Environment="http_proxy=http://<hostname>:234"
    Environment="https_proxy=https://<hostname>:234"
    Environment="HTTP_PROXY=http://<hostname>:234"
    Environment="HTTPS_PROXY=http://<hostname>:234"
  4. 프록시에 암호 인증이 필요한 경우 프록시 환경 변수의 일부로 해당 부분을 설정해야 할 수 있습니다. 예를 들면 다음과 같습니다.
    Environment="HTTP_PROXY=http://USER:PASSWORD@<hostname>:234"
  5. 프록시에서 내부 CA(인증 기관)를 사용하는 경우에는 프록시에서 사용할 수 있도록 REQUESTS_CA_BUNDLE 환경 변수를 설정해야 할 수도 있습니다. 예를 들면 다음과 같습니다.
    Environment="REQUESTS_CA_BUNDLE=/etc/pki/tls/certs/ca-bundle.crt"
  6. RaaS 서비스를 다시 시작합니다.
    systemctl restart raas

서비스가 다시 시작되면 컨텐츠가 다운로드되기 시작합니다. 최대 20분이 소요될 수 있습니다.

SaltStack SecOps Compliance에 대한 수동 컨텐츠 수집

환경이 에어갭(즉, 외부 사이트에 연결하여 업데이트를 다운로드할 수 없음)인 경우 Customer Connect에서 tarball을 다운로드한 후 이를 RaaS 노드로 전송하여 SaltStack SecOps Compliance 컨텐츠를 수동으로 업데이트해야 합니다.

또한 시스템이 에어갭인 경우 RaaS 구성 파일의 다운로드 구성 설정을 False로 변경합니다.

sec:
  download_enabled: False

RaaS 구성 파일은 /etc/raas/raas에 있습니다. 다음과 같은 구성 설정을 적용한 후 RaaS 서비스를 다시 시작해야 할 수도 있습니다.

systemctl restart raas

SaltStack SecOps Compliance tarball을 수동으로 수집하려면 다음을 수행합니다.

  1. SaltStack SecOps Compliance 컨텐츠를 다운로드합니다.
  2. RaaS 노드에 로그인합니다.
  3. 규정 준수 컨텐츠 tarball을 tmp 폴더의 RaaS 노드에 복사합니다.

    이 컨텐츠는 이메일 또는 기타 수단을 통해 전달될 수 있습니다.

  4. tarball 컨텐츠를 수집합니다.
    su - raas -c "raas ingest /path/to/locke.tar.gz.e"

    다음이 반환됩니다.

    Extracting: /tmp/locke.tar.gz -> /tmp/extracted-1551290468.5497127
    
    Cleaning up: /tmp/extracted-1551290468.5497127
    
    Results:
    
    {'errors': [], 'success': True}

SaltStack SecOps Vulnerability에 대한 수동 컨텐츠 수집

환경이 에어갭(즉, 외부 사이트에 연결하여 업데이트를 다운로드할 수 없음)인 경우 Customer Connect에서 tarball을 다운로드한 후 이를 RaaS 노드로 전송하여 SaltStack SecOps Vulnerability 컨텐츠를 수동으로 업데이트해야 합니다.

또한 시스템이 에어갭인 경우 RaaS 구성 파일의 다운로드 구성 설정을 False로 변경합니다.

sec:
  download_enabled: False

RaaS 구성 파일은 /etc/raas/raas에 있습니다. 다음과 같은 구성 설정을 적용한 후 RaaS 서비스를 다시 시작해야 할 수도 있습니다.

systemctl restart raas

SaltStack SecOps Vulnerability tarball을 수동으로 수집하려면 다음을 수행합니다.

  1. SaltStack SecOps Vulnerability 컨텐츠를 다운로드합니다.
  2. RaaS 노드에 로그인합니다.
  3. 취약성 컨텐츠 tarball을 tmp 폴더의 RaaS 노드에 복사합니다.

    이 컨텐츠는 이메일 또는 기타 수단을 통해 전달될 수 있습니다.

  4. tarball 컨텐츠를 수집하고, 이 명령의 tarball 이름을 tarball의 정확한 파일 이름으로 대체합니다.
    su - raas -c "raas vman_ingest /tmp/vman_date_example123.tar.gz.e"

    다음이 반환됩니다.

    'adv': {'error': 0, 'success': 60334},
      'adv_cve_xref': {'error': 0, 'success': 243781},
      'cve': {'error': 0, 'success': 162251},
      'pkgfile': {'error': 0, 'success': 42},
      'py': {'error': 0, 'success': 7},
      'sls': {'error': 0, 'success': 3}

수동 수집 문제 해결

SaltStack SecOps Compliance 또는 SaltStack SecOps Vulnerability 컨텐츠에 대해 수동 수집 명령을 실행하려고 하면 다음과 유사한 오류 메시지가 표시될 수 있습니다.

/home/centos/locke_date_example123.tar.gz.e not found or not readable

이 오류 메시지는 tarball을 tmp 폴더에 배치하지 않을 때 종종 나타납니다. tarball을 tmp 폴더에 배치하면 문제가 해결됩니다.

Splunk 통합 설정

SaltStack Config는 취약성 라이브러리를 Splunk와 통합하여 Splunk Enterprise용 SaltStack Config 추가 기능을 사용하여 디지털 인프라를 최적화하고 보호할 수 있도록 지원합니다. 추가 기능은 Splunkbase에 제공되며 SaltStack Config 버전 6.3 이상이 필요합니다.

Splunk의 SaltStack Config 추가 기능은 25개가 넘게 고유한 SaltStack Config 메트릭을 보고하는 Prometheus 호환 메트릭 끝점을 활용합니다. 이러한 메트릭은 인프라 상태에 대한 인사이트를 제공합니다. Splunk에서 액세스하면 중단 여부를 모니터링하고 비정상적인 활동을 식별하는 데 유용합니다. 또한 SaltStack Config를 사용하여 특정 Splunk 이벤트를 기반으로 자동화된 작업을 수행할 수 있는 기능을 제공합니다.

추가 기능을 설치하고 구성하는 방법에 대한 지침은 VMware 기술 자료에서 전체 추가 기능 설명서를 참조하십시오.

SaltStack Config 메트릭 끝점에 대한 자세한 내용은 SaltStack SecOps에 대한 제품 설명서를 참조하십시오.

구성 옵션

다음 표에는 규정 준수 컨텐츠에 사용할 수 있는 구성 옵션이 설명되어 있습니다.

옵션 설명
stats_snapshot_interval SaltStack SecOps Compliance 통계가 수집되는 빈도(초)
compile_stats_interval SaltStack SecOps Compliance 통계가 컴파일되는 빈도(초)
username 가장 최근의 SaltStack SecOps Compliance 컨텐츠를 다운로드하기 위해 SaltStack Config에 연결할 때 사용할 사용자 이름(기본값: secops)
content_url SaltStack SecOps Compliance 컨텐츠를 다운로드하는 데 사용되는 URL
ingest_override 새 컨텐츠를 수집할 때 기존 벤치마크 및 확인 덮어쓰기(기본값: True)
locke_dir 수집 시 새 컨텐츠를 찾을 것으로 예상되는 경로(기본값: locke). 상대 경로(선행 / 없음)를 사용하는 경우 RaaS 서비스 캐시 dir /var/lib/raas/cache에 상대적임
post_ingest_cleanup 수집 후 파일 시스템에서 확장된 컨텐츠 제거(기본값: True)
download_enabled SaltStack SecOps Compliance 다운로드 허용 여부(기본값: True). 에어갭 시스템의 경우 False로 설정하십시오.
download_frequency RaaS 서비스가 SaltStack SecOps Compliance 컨텐츠 다운로드를 시도하는 빈도(초)(기본값: 86400 - 24시간)
ingest_on_boot 부팅 시 RaaS 서비스가 SaltStack SecOps Compliance 다운로드를 시도할지 여부 (기본값: True)
content_lock_timeout 컨텐츠 다운로드 잠금이 지속되는 시간(초)(기본값: 60)
content_lock_block_timeout 실패하기 전 컨텐츠 다운로드 잠금 차단이 지속되는 시간(초)(기본값: 120)

다음 표에는 취약성 컨텐츠에 사용할 수 있는 구성 옵션이 설명되어 있습니다.

옵션 설명
vman_dir SaltStack SecOps Vulnerability 컨텐츠가 수집되기 전에 확장되는 위치. 경로가 상대적이면(선행 / 없음) RaaS 서비스 캐시 dir /var/lib/raas/cache에 상대적입니다.
download_enabled True이면 SaltStack SecOps Vulnerability 컨텐츠 다운로드를 사용하도록 설정됩니다. 에어갭 시스템의 경우 False로 설정
download_frequency 자동화된 SaltStack SecOps Vulnerability 컨텐츠 다운로드 및 수집 빈도(초)
username 컨텐츠를 얻기 위해 enterprise.saltstack.com에 로그인하는 데 사용되는 사용자 이름
content_url SaltStack SecOps Vulnerability 컨텐츠를 다운로드할 URL
ingest_on_boot True인 경우, SaltStack SecOps Vulnerability 컨텐츠는 RaaS 서비스가 부팅된 직후 다운로드 및 수집됩니다(기본값: True).
compile_stats_interval SaltStack SecOps Vulnerability 통계가 컴파일되는 빈도(초)
stats_snapshot_interval SaltStack SecOps Vulnerability 통계가 수집되는 빈도(초)
old_policy_file_lifespan RaaS 파일 시스템에 남아있는 이전 정책 파일의 수명(일)
delete_old_policy_files_interval 이전 SaltStack SecOps Vulnerability 정책 파일이 RaaS 파일 시스템에서 삭제되는 빈도(초)
tenable_asset_import_enabled True이면 SaltStack Config의 미니언 입자가 자산 매칭을 위해 Tenable.io로 전송됩니다(기본값: True.)
tenable_asset_import_grains

테넌트 자산 가져오기 기능을 사용하도록 설정한 경우 Tenable.io로 보낼 미니언 입자 목록.

SaltStack SecOps Vulnerability는 기본적으로 fqdn, ipv4, ipv6, hostname만 지원하지만 사용자 지정 입자를 정의하여 다른 정보를 보낼 수 있습니다. 사용자 지정 입자 작성 방법을 비롯한 입자에 대한 자세한 내용은 Salt 설명서: 입자를 참조하십시오.

입자 데이터에 하위 집합 키만 있는 경우 하위 집합에 있는 키만 동기화됩니다.

fqdnipv4는 여기에 나열되지 않아도 전송됩니다.

자세한 내용은 Tenable Import assets 설명서를 참조하십시오.

FAQ

  • Q: 새로운 SaltStack Vulnerability 컨텐츠는 얼마나 자주 릴리스됩니까?
    • A: 현재 릴리스 빈도는 분기당 약 1회입니다. 하지만 향후에는 컨텐츠가 더 자주 릴리스될 수 있습니다.
  • 수동 컨텐츠 수집 대신 자동 컨텐츠 수집을 사용하면 새 컨텐츠에 더 빨리 액세스할 수 있습니까?
    • A: 수동 또는 자동 수집에 관계없이 동일한 컨텐츠를 사용할 수 있습니다.

      단, 수동 수집을 사용하는 경우에는 보안 컨텐츠 업데이트가 있는지 확인하고 업데이트된 컨텐츠가 있을 때 수동으로 수집하는 프로세스를 개발하는 계획을 세워야 합니다.

후속 작업

SaltStack SecOps를 구성한 후 추가적인 설치 후 단계가 있을 수 있습니다. 설치 후 단계 목록을 확인하여 필요한 모든 단계를 완료했는지 확인하십시오.