Cloud Storage에 업로드된 파일의 멀웨어 검사 자동화

Last reviewed 2024-07-16 UTC

이 참조 아키텍처에서는 트로이 목마, 바이러스, 기타 악성 코드와 같은 멀웨어에 대한 파일 평가를 자동화하는 데 도움이 되는 이벤트 기반 파이프라인을 빌드하는 방법을 보여줍니다. 대부분의 앱에서 Cloud Storage에 업로드된 다수의 파일을 수동으로 평가하는 작업은 시간이 오래 걸릴 있습니다. 이 프로세스를 자동화하면 시간을 절약하고 효율성을 높일 수 있습니다.

이 아키텍처의 파이프라인에서는 오픈소스 바이러스 백신 엔진 ClamAV와 함께 Google Cloud 제품이 사용됩니다. Linux 컨테이너에서 주문형 스캔을 실행하는 다른 멀웨어 방지 엔진을 사용해도 됩니다. 이 아키텍처에서 ClamAV는 Cloud Run에서 호스팅되는 Docker 컨테이너에서 실행됩니다. 또한 파이프라인은 Cloud Logging에 로그 항목을 쓰고 Cloud Monitoring에 측정항목을 기록합니다.

아키텍처

다음 다이어그램은 아키텍처의 개요를 보여줍니다.

멀웨어 검사 파이프라인의 아키텍처

이 아키텍처는 다음과 같은 파이프라인을 보여줍니다.

  • 업로드된 파일에 멀웨어가 포함되어 있는지 확인하는 사용자 업로드 파일 검사 파이프라인
  • ClamAV 멀웨어 데이터베이스 미러 업데이트 파이프라인: ClamAV가 사용하는 멀웨어 데이터베이스의 최신 미러를 유지합니다.

파이프라인에 대해서는 다음 섹션에서 더 자세히 설명합니다.

사용자 업로드 파일 검사 파이프라인

파일 검사 파이프라인은 다음과 같이 작동합니다.

  1. 최종 사용자가 검사되지 않은 Cloud Storage 버킷에 파일을 업로드합니다.
  2. Eventarc 서비스는 이 업로드 이벤트를 포착하고 Cloud Run 서비스에 이 새 파일에 관해 알립니다.
  3. Cloud Run 서비스는 검사되지 않은 Cloud Storage 버킷에서 새 파일을 다운로드하여 ClamAV 멀웨어 스캐너로 전달합니다.
  4. 멀웨어 검사 결과에 따라 서비스는 다음 작업 중 하나를 실행합니다.
    • ClamAV가 파일이 정상임을 선언하면 검사되지 않은 Cloud Storage 버킷에서 클린 Cloud Storage 버킷으로 이동합니다.
    • ClamAV에서 파일에 멀웨어가 포함되어 있다고 선언하면 스캔되지 않은 Cloud Storage 버킷에서 격리된 Cloud Storage 버킷으로 이동합니다.
  5. 이 서비스는 이러한 작업의 결과를 Logging 및 Monitoring에 보고하여 관리자가 조치를 취할 수 있도록 합니다.

ClamAV 멀웨어 데이터베이스 미러 업데이트 파이프라인

ClamAV 멀웨어 데이터베이스 미러 업데이트 파이프라인은 Cloud Storage에 데이터베이스의 최신 비공개 로컬 미러를 유지합니다. 이렇게 하면 ClamAV 공개 데이터베이스가 업데이트당 한 번만 액세스하여 더 작은 차등 업데이트 파일을 다운로드하고 전체 데이터베이스는 다운로드하지 않으므로 비율 제한이 방지됩니다.

이 파이프라인은 다음과 같이 작동합니다.

  1. Cloud Scheduler 작업은 2시간마다 트리거되도록 구성되며 이는 ClamAV freshclam 서비스에서 사용하는 기본 업데이트 확인 간격과 동일합니다. 이 작업은 Cloud Run 서비스에 HTTP POST 요청을 보내 멀웨어 데이터베이스 미러를 업데이트하도록 지시합니다.
  2. Cloud Run 인스턴스는 Cloud Storage 버킷에서 로컬 파일 시스템으로 멀웨어 데이터베이스 미러를 복사합니다.
  3. 그런 다음 인스턴스는 사용 가능한 차등 업데이트를 다운로드하고 데이터베이스 미러에 적용하는 ClamAV CVDUpdate 도구를 실행합니다.
  4. 그런 후 업데이트된 멀웨어 데이터베이스 미러를 Cloud Storage 버킷에 다시 복사합니다.

시작 시 Cloud Run 인스턴스에서 실행되는 ClamAV latestclam 서비스가 Cloud Storage에서 멀웨어 데이터베이스를 다운로드합니다. 또한 런타임 중에 Cloud Storage 버킷에서 사용 가능한 데이터베이스 업데이트를 정기적으로 확인하고 다운로드합니다.

설계 고려사항

다음 가이드라인은 신뢰성, 비용, 운영 효율성에 대한 조직의 요구사항을 충족하는 아키텍처를 개발하는 데 도움이 될 수 있습니다.

신뢰성

효과적으로 검사하려면 ClamAV 멀웨어 검사기가 최신 멀웨어 서명 데이터베이스를 유지해야 합니다. ClamAV 서비스는 스테이트리스(Stateless) 서비스인 Cloud Run을 사용하여 실행됩니다. 서비스 인스턴스가 시작될 때 ClamAV는 항상 크기가 수백 메가바이트인 완전한 최신 멀웨어 데이터베이스를 다운로드해야 합니다.

ClamAV용 공개 멀웨어 데이터베이스는 다운로드 속도를 제한하는 콘텐츠 배포 네트워크(CDN)에서 호스팅됩니다. 여러 인스턴스가 시작되고 전체 데이터베이스를 다운로드하려고 시도하면 비율 제한이 트리거될 수 있습니다. 그러면 Cloud Run에서 사용하는 외부 IP 주소가 24시간 동안 차단됩니다. 이렇게 되면 ClamAV 서비스가 시작되지 않고 멀웨어 데이터베이스 업데이트가 다운로드되지 않습니다.

또한 Cloud Run은 공유된 외부 IP 주소 풀을 사용합니다. 따라서 다른 프로젝트의 멀웨어 검사 인스턴스에서 다운로드하는 것은 CDN에서 단일 주소에서 오는 것으로 간주하여 차단을 트리거합니다.

비용 최적화

이 아키텍처에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.

운영 효율성

감염된 파일에 대한 로그 기반 알림을 트리거하려면 Logging의 로그 항목을 사용하면 됩니다. 그러나 이러한 알림을 설정하는 것은 이 아키텍처의 범위를 벗어납니다.

배포

이 아키텍처를 배포하려면 Cloud Storage에 업로드된 파일에 대한 자동화된 멀웨어 스캔 배포를 참조하세요.

다음 단계