탐색 클라이언트 데이터 수집 및 보안

이 문서에서는 데이터 센터에 Migration Center 탐색 클라이언트를 설치하는 것과 관련된 우려사항과 질문을 다룹니다. 규제가 엄격한 환경에서 고객 IT 애셋의 데이터를 검색하고 수집할 때 보안, 규정 준수, 성능의 중요성을 강조합니다.

데이터 수집 방법

탐색 클라이언트는 여러 메서드를 사용하여 타겟 머신에서 데이터를 수집합니다. 수집되는 데이터는 방법에 따라 다릅니다. 게스트 수준에서는 수집 스크립트를 사용하여 데이터를 수집하고, 하이퍼바이저 수준에서는 기본 플랫폼 API를 사용하여 데이터를 수집합니다.

탐색 클라이언트 서비스 및 프로세스

검색 클라이언트는 mcdc_service.exe이라는 프로세스에서 GoogleMCDC이라는 서비스로 실행됩니다.

수집 스크립트

탐색 클라이언트에서 사용하는 모든 게스트 수준 수집 메서드는 타겟 머신에서 수집 스크립트를 실행합니다. 다음 링크에서 수집에 사용된 실제 스크립트를 검토할 수 있습니다.

수집 스크립트는 결과를 보관 파일 (zip 또는 tar)에 저장하고 탐색 클라이언트는 이를 검색합니다.

수집 메커니즘

탐색 클라이언트는 다음 섹션에 설명된 하나 이상의 수집 메커니즘을 사용하여 타겟 머신에서 데이터를 수집할 수 있습니다.

SSH (Linux)

SSH 수집 중에 다음 프로세스가 발생합니다.

  1. 수집기 머신과 타겟 서버 간에 SSH 세션이 시작됩니다.
  2. ~/.mcdc-temp/ 아래에 임시 디렉터리가 생성됩니다.
  3. 수집 스크립트가 해당 디렉터리에 복사됩니다.
  4. 수집 스크립트가 실행됩니다.
  5. 결과 보관 파일은 SCP를 사용하여 가져옵니다.
  6. 임시 디렉터리가 정리됩니다.

WMI (Windows)

기본적으로 검색 클라이언트는 원격 WMI 호출을 사용하여 타겟 Windows 머신에서 데이터를 수집합니다. 또는 스크립트 기반 수집을 사용 설정하면 탐색 클라이언트가 대상 머신에서 스크립트를 복사하고 실행합니다.

스크립트 기반 WMI 수집 중에 다음 프로세스가 발생합니다.

  1. WMI 연결이 대상 머신에 시작됩니다.
  2. 임시 (휘발성) 레지스트리 키가 타겟 머신에서 HKLM:\SOFTWARE\Google\Collector\data 아래에 생성됩니다.
  3. 수집 스크립트가 레지스트리 키에 복사됩니다.
  4. C:\temp 아래에 임시 디렉터리가 생성됩니다.
  5. 수집 스크립트가 임시 디렉터리에 작성됩니다.
  6. 수집 스크립트가 실행됩니다.
  7. 컬렉션의 결과는 휘발성 레지스트리 키에 기록됩니다.
  8. 결과가 수집기 머신에 복사됩니다.

VMware 게스트 도구 (Linux 및 Windows)

Linux와 Windows 모두에 대한 VMware 수집 중에 다음 프로세스가 발생합니다.

  1. VMware 게스트 도구를 사용하여 임시 디렉터리가 생성됩니다.
  2. 수집 스크립트가 해당 디렉터리에 복사됩니다.
  3. 수집 스크립트가 실행됩니다.
  4. 결과 보관 파일은 VMware 게스트 도구를 사용하여 가져옵니다.
  5. 임시 디렉터리가 정리됩니다.

주기적 데이터 수집

탐색 클라이언트는 구성된 모든 서버에서 주기적으로 데이터를 수집합니다. 컬렉션에는 두 가지 유형이 있습니다.

  • 전체 수집: 각 서버에 대해 하루에 한 번 실행됩니다. 이 수집은 하드웨어, 환경, 설치된 소프트웨어, 실행 중인 프로세스 등 VM에 관한 다양한 정보를 수집하는 전체 수집 스크립트를 실행합니다.
  • 성능 수집: 각 서버에서 10분마다 실행됩니다. 이 컬렉션은 CPU, 메모리, 네트워크, 디스크 사용률에 관한 데이터를 수집하는 성능 수집 스크립트를 실행합니다.

수집되는 데이터

수집 스크립트는 타겟 VM에 관한 데이터를 수집하여 VM이 어떻게 구성되어 있고 어떤 리소스를 사용하는지 파악합니다. 이를 통해 클라우드로의 마이그레이션을 평가하고 계획할 수 있습니다.

수집되는 데이터는 다음과 같습니다.

  • 시스템 정보: VM의 크기, 성능 요구사항, 특정 하드웨어 또는 드라이버의 종속성을 결정하는 데 중요한 기본 정보입니다. 포함되는 요소는 다음과 같습니다.
    • 운영체제 (버전 및 출시)
    • 하드웨어 (CPU, 메모리, BIOS 세부정보)
    • 네트워크 구성 (네트워크 인터페이스, IP 주소, 라우팅 테이블)
    • 스토리지 (디스크 드라이브, 파티션, 마운트 지점)
  • 설치된 소프트웨어 및 서비스: 스크립트는 설치된 패키지 및 실행 중인 서비스 목록을 수집하여 VM의 소프트웨어 스택과 역할을 파악합니다. 포함되는 요소는 다음과 같습니다.
    • 웹 서버 (Apache, Tomcat, JBoss)
    • 데이터베이스 (SQL Server 증거는 Windows 스크립트에서 수집됨)
    • 마이그레이션 중에 특정 구성이 필요할 수 있는 기타 애플리케이션
  • 애플리케이션 구성: 스크립트는 웹 서버 (IIS, Apache, Tomcat, JBoss, Wordpress)의 구성 파일도 수집합니다. 이를 통해 이러한 애플리케이션의 구체적인 설정과 종속 항목을 파악할 수 있으며, 이는 클라우드 환경으로 원활하게 전환하는 데 매우 중요합니다.
  • VMWare 및 클라우드 환경 감지: Linux 및 Windows 스크립트 모두 VM이 이미 클라우드 환경 (AWS 또는 Google Cloud) 또는 VCenter 클러스터에서 실행 중인지 감지하려고 시도합니다. 이러한 클라우드 제공업체의 메타데이터 서버에 요청을 전송하여 이를 수행합니다. VM이 이미 클라우드에 있는 경우 스크립트는 인스턴스 ID, 인스턴스 유형, 기타 세부정보와 같은 관련 메타데이터를 수집합니다.
  • 성능 측정항목: 성능 수집 스크립트는 리소스 사용률을 측정합니다. 여기에는 다음이 포함됩니다.
    • CPU
    • 메모리
    • I/O 작업
    • 네트워킹
  • 네트워크 연결: 스크립트는 네트워크 리소스의 다양한 종속성을 파악하는 데 도움이 되도록 열린 연결을 수집합니다.

타겟 머신에 미치는 성능 영향

리소스 사용률 평가

타겟 머신에서 수집 스크립트의 리소스 사용률은 실행 중인 프로세스 수, 배포된 애플리케이션 수, 활성 네트워크 연결 수 등의 매개변수에 따라 달라집니다.

Windows에서 수집 스크립트는 스레딩 API를 통해 사용할 수 있는 가장 낮은 우선순위를 사용하여 실행됩니다. Linux에서는 nice 값이 5로 설정되어 프로덕션 워크로드와의 간섭을 최소화하고 수집 스크립트보다 우선순위가 높도록 합니다.

일반적인 수집은 로드되지 않은 머신에서 5~20초의 높은 단일 코어 CPU 사용량을 사용할 수 있습니다. 다른 워크로드가 있는 경우 이러한 워크로드의 우선순위가 더 높기 때문에 시간이 더 오래 걸릴 수 있습니다.

완화 전략

탐색 클라이언트는 특정 시간에 특정 서버의 수집을 방지하는 메커니즘을 제공합니다. 이 기능을 사용하면 사용량이 많은 시간에 중요한 워크로드를 실행하는 서버에서 수집이 이루어지지 않도록 할 수 있습니다.

보안 고려사항

인증 및 승인

타겟 머신과의 통신

  • 탐색 클라이언트는 보안 채널을 사용하여 대상 머신을 인증하고 통신합니다. 여기에는 SSH, WMI, VMware 도구, VCenter 연결이 포함됩니다. 탐색 클라이언트는 이러한 프로토콜의 일부로 내장된 보안 조치를 사용합니다.
  • SSH에서 탐색 클라이언트는 사용자 이름-비밀번호 인증과 키 기반 인증을 모두 허용합니다. 지원되는 키 쌍 유형의 전체 목록은 타겟 애셋 요구사항을 참고하세요.

Google Cloud과의 커뮤니케이션

  • 등록된 탐색 클라이언트는 정상 작동 중에 Google Cloud Migration Center와 통신합니다. 통신은 roles/migrationcenter.discoveryClient 역할 바인딩이 있는 서비스 계정을 통해 이루어집니다. 서비스 계정은 자동으로 생성되거나 등록 프로세스 중에 사용자가 제공합니다.
  • 서비스 계정 비공개 키는 다음 섹션에 설명된 암호화 메커니즘을 사용하여 검색 클라이언트 머신에서 암호화됩니다.
  • Google Cloud 와의 모든 통신은 이 서비스 계정을 사용하여 인증되고 SSL/TLS를 사용하여 암호화됩니다.

데이터 암호화

  • 전송 중: 모든 검색 클라이언트 통신 채널은 전송 중인 데이터를 보호하기 위해 암호화를 사용합니다. 여기에는 다양한 프로토콜 (SSH/WMI)을 사용하여 타겟 머신과 통신하고 HTTPS를 사용하여 Google Cloud 와 통신하는 것이 포함됩니다.
  • 저장 중: 탐색 클라이언트 PII, SPII, 비밀은 모두 AES128_GCM 알고리즘을 사용하여 저장 중에 암호화되며 Windows DPAPI를 사용하여 암호화 키를 안전하게 저장합니다.

침입 감지 및 방지

조직의 여러 VM에서 스크립트를 연결하고 실행하는 데 검색 클라이언트가 사용되므로 EDR 또는 xDR 알림이 트리거될 수 있습니다. 이는 보안 도구가 구성된 방식과 사용 중인 특정 도구에 따라 크게 달라집니다. 특정 알림 및 기기에 대한 예외를 만들 수 있습니다.

로깅 및 지원 가능성

탐색 클라이언트는 작동 중에 로그를 수집하여 디버깅 및 지원을 제공합니다. 탐색 클라이언트 로그는 다음 두 가지 메커니즘을 사용하여 수집됩니다.

  • 로컬 로그: 로그는 C:\ProgramData\Google\mcdc\logs 아래의 파일에 기록됩니다. 로그 파일이 순환되고 압축됩니다.
  • 클라우드 로그: 등록된 클라이언트는 고객 문제가 보고될 때 Google Cloud 지원팀에서 사용할 수 있도록 로그를 Google Cloud 에도 전송합니다.