암호화폐 채굴 공격으로부터 보호하기 위한 권장사항

Last reviewed 2023-10-20 UTC

암호화폐 채굴 (비트코인 채굴이라고도 함)은 새 암호화폐를 만들고 트랜잭션을 확인하는 데 사용되는 프로세스입니다. 암호화폐 채굴 공격은 환경에 대한 액세스 권한을 얻는 공격자가 리소스를 활용하여 피해자의 비용 부담으로 자체 채굴 작업을 실행할 수도 있는 경우에 발생합니다.

2021년 11월 위협 범위 보고서에 따르면 암호화폐 채굴 공격은 공격자가 Google Cloud 환경을 손상시킨 후 컴퓨팅 리소스를 악용하는 가장 일반적인 방법입니다. 또한 공격자는 일반적으로 시스템을 손상시킨 후 22초 이내에 리소스에 암호화폐 채굴 소프트웨어를 다운로드합니다. 암호화폐 채굴로 인해 비용이 빠르게 증가할 수 있으며, 암호화폐 채굴 공격으로 인해 예상보다 훨씬 많은 비용이 청구될 수 있습니다. 비용은 빠르게 증가할 수 있으므로 조직을 보호하기 위해 보호, 감지, 완화 조치를 취해야 합니다.

이 문서는 보안 설계자와 관리자를 대상으로 합니다. 암호화폐 채굴 공격으로부터 Google Cloud 리소스를 보호하고 공격이 발생할 경우 영향을 완화하는 데 도움이 되는 권장사항을 설명합니다.

위협 벡터 식별

암호화폐 채굴 공격에 대한 조직의 노출을 확인하려면 조직에 적용되는 위협 벡터를 식별해야 합니다.

2021년 11월 위협 범위 보고서에는 대부분의 공격자가 다음과 같은 취약점을 악용하는 것으로 나타났습니다.

  • 사용자 계정의 비밀번호가 취약하거나 없음
  • Google Cloud API 인증이 약하거나 없음
  • 타사 소프트웨어의 취약점
  • Google Cloud 환경 또는 Google Cloud에서 실행 중인 타사 애플리케이션의 구성 오류
  • 공개 GitHub 저장소에 게시된 서비스 계정 키와 같은 유출된 사용자 인증 정보

또한 위협 벡터 목록을 구독하고 검토할 수 있습니다.

적용되는 위협 벡터를 식별한 후에는 이 문서의 나머지 권장사항을 사용하여 이러한 문제를 해결할 수 있습니다.

계정 및 계정 사용자 인증 정보 보호

공격자는 보호되지 않거나 잘못 관리되는 계정을 악용하여 Compute Engine 리소스에 액세스할 수 있습니다. Google Cloud에는 계정과 그룹을 관리하도록 구성할 수 있는 다양한 옵션이 있습니다.

클라우드 환경에 대한 액세스 제한

다음 표에서는 클라우드 환경에 액세스할 수 있는 사용자를 정의하는 데 사용할 수 있는 조직 정책을 설명합니다.

조직 정책 제약조건 설명
도메인 제한 공유 Cloud ID 또는 Google Workspace에 유효한 고객 ID를 지정합니다.
Cloud IAM에서 워크로드 아이덴티티 제휴용으로 구성할 수 있는 허용된 AWS 계정 하이브리드 클라우드 환경에서 워크로드 아이덴티티 제휴를 식별할 수 있는 AWS 계정을 정의합니다.
워크로드에 허용된 외부 ID 공급업체 하이브리드 클라우드 환경에서 워크로드가 사용할 수 있는 ID 공급업체를 정의합니다.

MFA 또는 2FA 설정

Cloud ID는 다양한 방법을 통해 다단계 인증(MFA)을 지원합니다. MFA는 특히 권한이 있는 계정에 대해 구성하세요. 자세한 내용은 회사 소유의 리소스에 균일한 MFA 적용을 참조하세요.

암호화폐 채굴 공격으로 이어질 수 있는 피싱 공격을 방지하려면 2단계 인증(2FA)에 Titan 보안 키를 사용합니다.

최소 권한 구성

최소 권한은 사용자 및 서비스가 특정 태스크를 수행하는데 필요한 액세스 권한만 갖도록 보장합니다. 최소 권한은 공격자가 권한을 쉽게 승격할 수 없기 때문에 조직 전체로 공격이 확산되는 속도를 늦춰줍니다.

조직의 요구를 충족시킬 수 있도록 Identity and Access Management(IAM)에서 세분화된 정책, 역할, 권한을 사용합니다. 또한 역할 추천자정책 분석자를 사용하여 권한을 정기적으로 분석합니다. 역할 추천자는 머신러닝을 사용하여 설정을 분석하고 최소 권한의 원칙을 따르도록 역할 설정에 대한 권장사항을 제공합니다. 정책 분석자를 사용하면 클라우드 리소스에 액세스 권한이 있는 계정을 확인할 수 있습니다.

계정 모니터링

그룹을 사용하여 IAM 정책을 할당하는 경우 직원이 아닌 계정이 추가되지 않도록 그룹 로그를 모니터링하세요. 또한 Cloud ID 또는 Google Workspace 도메인을 기반으로 리소스에 액세스할 수 있는 ID를 제한합니다. 자세한 내용은 도메인별 ID 제한을 참조하세요.

오프보딩 절차에 직원이 조직을 떠나거나 역할을 변경할 때 계정을 비활성화하고 권한을 재설정하는 프로세스가 포함되어 있는지 확인합니다. 자세한 내용은 Google Cloud에 대한 액세스 취소를 참조하세요.

사용자 및 그룹을 감사하려면 Google Workspace 감사 로그를 참조하세요.

Compute Engine 및 GKE 리소스에 대한 인터넷 노출 감소

인터넷 노출을 줄이면 공격자가 취약점을 찾아 악용할 기회가 줄어듭니다. 이 섹션에서는 인터넷 노출로부터 Compute Engine VM 및 Google Kubernetes Engine(GKE) 클러스터를 보호하는 데 도움이 되는 권장사항을 설명합니다.

외부 트래픽 제한

VM에 외부 IP 주소를 할당하지 마세요. VPC 외부 IPv6 사용 중지 조직 정책 제약조건을 사용하여 모든 VM에 대한 외부 IP 주소를 거부할 수 있습니다. 공개적으로 액세스할 수 있는 IP 주소가 있는 VM을 보려면 인스턴스의 IP 주소 찾기를 참조하세요. 아키텍처가 VM에 외부 IP 주소를 필요로 하는 경우 외부 IP 주소를 갖도록 허용되는 인스턴스 이름 목록을 정의할 수 있는 VM 인스턴스에 허용되는 외부 IP 정의 조직 정책을 사용합니다.

GKE 노드를 내부 IP 주소로만 제한합니다. 자세한 내용은 비공개 클러스터 만들기를 참조하세요.

프로젝트의 모든 리소스에 대한 인터넷의 인바운드(인그레스) 및 아웃바운드(이그레스) 트래픽을 제한합니다. 자세한 내용은 VPC 방화벽 규칙계층적 방화벽 정책을 참조하세요.

외부 IP 주소 없이 VM에 발신 통신을 허용하거나, 수신 통신에 프록시 부하 분산기를 사용하도록 Cloud NAT를 구성하는 것과 같이 외부 트래픽을 제한하는 방법에 대한 자세한 내용은 VM 인스턴스에 안전하게 연결을 참조하세요.

서비스 경계 사용

VPC 서비스 제어를 사용하여 Compute Engine 및 GKE 리소스의 서비스 경계를 만듭니다. VPC 서비스 제어를 사용하면 경계 외부에서 Compute Engine 리소스와의 통신을 제어할 수 있습니다. 서비스 경계를 사용하면 경계 내에서 자유롭게 통신하고, 데이터 무단 반출을 차단하고, 경계 외부의 서비스 통신을 차단할 수 있습니다. IP 주소 및 사용자 ID와 같은 컨텍스트 인식 액세스 속성을 사용하여 인터넷에서 Google Cloud 서비스에 대한 액세스를 추가로 제어합니다.

제로 트러스트 보안 설정

BeyondCorp Enterprise로 제로 트러스트 보안을 설정합니다. BeyondCorp Enterprise는 위협 및 데이터 보호액세스 제어 수단을 제공합니다. 워크로드가 온프레미스 및 Google Cloud에 모두 있으면 IAP(Identity-Aware Proxy)를 구성합니다. TCP 전달을 구성하여 공개 인터넷에서 Google Cloud 리소스의 SSH 및 RDP와 같은 관리 서비스에 액세스할 수 있는 사용자를 제어합니다. TCP 전달은 이러한 서비스가 인터넷에 공개적으로 노출되지 않도록 방지합니다.

Compute Engine 및 GKE 리소스 보호

암호화폐 채굴을 위해서는 Compute Engine 및 GKE 리소스에 대한 액세스 권한이 필요합니다. 이 섹션에서는 Compute Engine 및 GKE 리소스를 보호하는 데 도움이 되는 권장사항을 설명합니다.

VM 이미지 보호

보안 VM을 구성하여 강화 및 선별된 VM 이미지를 사용합니다. 보안 VM은 커널 수준 멀웨어 또는 루트킷과 같은 악성 코드가 부팅 주기에 로드되지 않도록 설계되었습니다. 보안 VM은 부팅 보안을 제공하고 무결성을 모니터링하며 vTPM(Virtual Trusted Platform Module)을 사용합니다.

배포할 수 있는 이미지를 제한하려면 신뢰할 수 있는 이미지 정책을 구현합니다. 신뢰할 수 있는 이미지 프로젝트 정의 조직 정책은 이미지와 영구 디스크를 저장할 수 있는 프로젝트를 정의합니다. 프로젝트에 신뢰할 수 있는 관리형 이미지만 있는지 확인합니다.

GKE에서 컨테이너가 보안 패치로 정기적으로 업데이트되는 기본 이미지를 사용하는지 확인합니다. 애플리케이션과 런타임 종속 항목만 포함된 distroless 컨테이너 이미지도 고려하세요.

VM에 대한 SSH 액세스 보안

Compute Engine에서 실행되는 VM에 대한 SSH 액세스를 관리하도록 OS 로그인을 구성합니다. OS 로그인은 관리자의 Linux 사용자 계정을 Google ID에 연결하여 SSH 액세스 관리를 간소화합니다. OS 로그인은 IAM과 함께 작동하므로 관리자가 보유한 권한을 정의할 수 있습니다.

자세한 내용은 VM 및 컨테이너 보호를 참조하세요.

서비스 계정 제한

서비스 계정은 워크로드가 서비스의 Google API를 호출하는 데 사용하는 Google Cloud 계정입니다.

리소스를 만들 때 Google Cloud에서 리소스에 기본 서비스 계정 역할을 할당하지 않도록 합니다. 자세한 내용은 서비스 계정 사용 제한을 참조하세요.

애플리케이션이 Google Cloud 외부에서 실행되고 있지만 Google Cloud 리소스에 액세스해야 하는 경우 서비스 계정 키를 사용하지 마세요. 대신 워크로드 아이덴티티 제휴를 구현하여 외부 ID 및 연결하는 권한을 관리할 수 있습니다. GKE의 경우 워크로드 아이덴티티를 구현할 수 있습니다. 자세한 내용은 사용 사례에 적합한 인증 방법 선택을 참조하세요.

서비스 계정을 보호하는 데 도움이 되는 추가 권장사항은 서비스 계정 작업 권장사항을 참조하세요.

서비스 계정 및 서비스 계정 키 사용 모니터링

조직에서 서비스 계정 및 서비스 계정 키가 사용되는 방식을 추적할 수 있도록 모니터링을 설정합니다. 주목할 만한 사용 패턴을 확인하려면 서비스 계정 통계를 사용합니다. 예를 들어 서비스 계정 통계를 사용하여 프로젝트에서 권한이 사용되는 방식을 추적하고 사용하지 않는 서비스 계정을 식별할 수 있습니다. 인증 활동을 위해 Google API를 호출하여 서비스 계정 및 키가 마지막으로 사용된 시기를 확인하려면 서비스 계정 및 서비스 계정 키의 최근 사용을 확인하세요.

VM 및 컨테이너 모니터링 및 패치

공격자는 암호화폐 채굴 공격을 시작하기 위해 잘못된 구성 및 소프트웨어 취약점을 악용하여 Compute Engine 및 GKE 리소스에 액세스합니다.

사용자 환경에 적용되는 취약점과 잘못된 구성에 대한 유용한 정보를 얻으려면 Security Health Analytics를 사용하여 리소스를 스캔합니다. 특히 Security Command Center 프리미엄을 사용하는 경우 Compute Engine 인스턴스 발견 항목컨테이너 발견 항목을 검토하고 프로세스를 신속하게 해결할 수 있습니다.

Artifact Analysis를 사용하여 Artifact Registry 또는 Container Registry에 저장한 컨테이너 이미지의 취약점을 확인합니다.

패치가 제공되는 즉시 조직에서 이를 배포할 수 있는지 확인합니다. Compute Engine용 OS 패치 관리를 사용할 수 있습니다. Google에서는 GKE에서 자동으로 취약점을 패치합니다. 자세한 내용은 이미지 및 클러스터를 최신 상태로 유지하기를 참조하세요.

WAF를 사용하여 애플리케이션 보호

공격자는 배포된 애플리케이션 내에서 레이어 7 취약점을 찾아 네트워크에 액세스하려고 시도할 수 있습니다. 이러한 공격을 줄이려면 레이어 7 필터링 및 보안 정책을 사용하는 웹 애플리케이션 방화벽(WAF)인 Google Cloud Armor를 구성합니다. Google Cloud Armor는 Google Cloud, 온프레미스 또는 다른 클라우드에서 호스팅되는 애플리케이션과 서비스에 서비스 거부(DoS) 및 WAF 보호를 제공합니다.

Google Cloud Armor에는 Apache Log4j 취약점을 해결하는 데 도움이 되는 WAF 규칙이 포함되어 있습니다. 공격자는 Log4j 취약점을 사용하여 승인되지 않은 암호화폐 채굴을 수행할 수 있는 멀웨어를 도입할 수 있습니다. 자세한 내용은 Apache Log4j 취약점을 해결하는 Google Cloud Armor WAF 규칙을 참조하세요.

공급망 보호

지속적 통합 및 지속적 배포(CI/CD)는 고객들에게 최신 기능을 빠르게 전달할 수 있는 메커니즘을 제공합니다. 파이프라인에 대한 암호화폐 채굴 공격을 방지하려면 코드 분석을 수행하고 파이프라인에서 악의적인 공격을 모니터링합니다.

Binary Authorization을 구현하여 개발 프로세스 중에 모든 이미지가 신뢰할 수 있는 기관으로부터 서명을 받도록 하고 이미지 배포 시 서명 검증을 실시합니다.

보안 검사를 CI/CD 프로세스의 최대한 초기 시점으로 이동합니다(개발 초기부터 고려이라고도 함). 자세한 내용은 개발 초기부터 보안 문제 반영: 소프트웨어 공급망 보안을 참조하세요. GKE로 보안 공급망 설정에 대한 자세한 내용은 소프트웨어 공급망 보안을 참조하세요.

보안 비밀 및 키 관리

승인되지 않은 암호화폐 채굴 공격에 대한 주요 공격 벡터는 안전하지 않거나 유출된 보안 비밀입니다. 이 섹션에서는 보안 비밀과 암호화 키를 보호하는 데 사용할 수 있는 권장사항을 설명합니다.

암호화 키를 정기적으로 순환

모든 암호화 키가 정기적으로 순환되는지 확인합니다. Cloud KMS가 암호화 키를 관리하는 경우 암호화 키를 자동으로 순환할 수 있습니다.

Google 관리 키 쌍이 있는 서비스 계정을 사용하는 경우 키도 자동으로 순환됩니다.

보안 비밀 다운로드 방지

보안 비밀은 공격자의 주요 공격 벡터입니다. 가능하면 서비스 계정 키를 포함한 암호화 키 또는 다른 보안 비밀을 다운로드하지 마세요. 키를 다운로드해야 하는 경우 조직에 키 순환 프로세스가 있는지 확인합니다.

GitHub 또는 다른 공개 저장소를 사용하는 경우 사용자 인증 정보 유출을 방지해야 합니다. GitHub 저장소에 노출된 보안 비밀에 대해 경고하는 보안 비밀 스캔과 같은 도구를 구현합니다. 키가 GitHub 저장소에 커밋되지 않도록 하려면 git-secrets와 같은 도구를 사용하는 것이 좋습니다.

Secret ManagerHashicorp Vault와 같은 보안 비밀 관리 솔루션을 사용하여 보안 비밀을 저장하고, 정기적으로 순환하고, 최소 권한을 적용합니다.