La minería de criptomonedas (también conocida como minería de bitcoin) es el proceso que se usa para crear criptomonedas nuevas y verificar transacciones. Los ataques de minería de criptomonedas ocurren cuando los atacantes que obtienen acceso a tu entorno también pueden explotar tus recursos para ejecutar sus propias operaciones de minera a tu cargo.
Según el informe Threat Horizons de noviembre de 2021, los ataques de minería de criptomonedas son la forma más común en que los atacantes explotan los recursos de procesamiento después de vulnerar tu entorno de Google Cloud. En el informe también se indica que los atacantes suelen descargar software de minería de criptomonedas en tus recursos dentro de 22 segundos después de vulnerar el sistema. La minería de criptomonedas puede aumentar con rapidez los costos y un ataque de minería de criptomonedas puede generar una factura mucho más grande de lo que esperabas. Debido a que los costos pueden aumentar con rapidez, debes implementar medidas de protección, detección y mitigación para resguardar tu organización.
Este documento está dirigido a arquitectos y administradores de seguridad. Se describen las prácticas recomendadas que puedes tomar para proteger tus recursos de Google Cloud de los ataques de minería de criptomonedas y ayudar a mitigar el impacto si ocurre un ataque.
Identifica tus vectores de amenaza
Para determinar la exposición de tu organización a los ataques de minería de criptomonedas, debes identificar los vectores de amenaza que se aplican a ella.
En el informe Threat Horizons de noviembre de 2021, se indica que la mayoría de los atacantes explotan vulnerabilidades como las siguientes:
- Una contraseña poco segura o la ausencia de contraseña para las cuentas de usuario
- Una autenticación poco segura o nula para las APIs de Google Cloud.
- Vulnerabilidades en software de terceros
- Configuración incorrecta en tu entorno de Google Cloud o en aplicaciones de terceros que ejecutas en Google Cloud
- Credenciales filtradas, como claves de cuentas de servicio publicadas en repositorios públicos de GitHub
Además, puedes suscribirte y revisar los siguientes documentos para obtener una lista de vectores de amenaza:
- Asesorías de tu gobierno sobre seguridad cibernética
- Boletines de seguridad de Google Cloud
- Boletines de seguridad de Compute Engine
- Los boletines de seguridad para las aplicaciones de terceros que ejecutas en Google Cloud
- Notificaciones importantes de Google Cloud
Una vez que hayas identificado los vectores de amenaza que se aplican a tu caso, puedes usar las prácticas recomendadas restantes en este documento para abordarlos.
Protege las cuentas y sus credenciales
Los atacantes pueden explotar cuentas no protegidas o administradas de forma incorrecta a fin de obtener acceso a tus recursos de Compute Engine. Google Cloud incluye diferentes opciones que puedes configurar para administrar cuentas y grupos.
Restringe el acceso al entorno de nube
En la siguiente tabla, se describen las políticas de la organización que puedes usar para definir quién puede acceder a tu entorno de nube.
Restricción de las políticas de la organización | Descripción |
---|---|
Uso compartido restringido al dominio | Especifica qué ID de cliente para Cloud Identity o Google Workspace son válidos. |
Cuentas de AWS permitidas que se pueden configurar para la Federación de Workload Identity en Cloud IAM | En un entorno de nube híbrida, define qué cuentas de AWS pueden usar la Federación de Workload Identity. |
Proveedores de identidad externos permitidos para cargas de trabajo | En un entorno de nube híbrida, define qué proveedores de identidad pueden usar tus cargas de trabajo. |
Configura la MFA o la 2FA
Cloud Identity admite la autenticación de varios factores (MFA) con varios métodos. Configura la MFA, en especial para tus cuentas con privilegios. Si deseas obtener más información, consulta Aplica MFA uniforme a recursos de empresas.
Para evitar ataques de suplantación de identidad (phishing) que puedan generar ataques de minería de criptomonedas, usa las llaves de seguridad Titan para la autenticación de dos factores (2FA).
Configura el privilegio mínimo
El privilegio mínimo garantiza que los usuarios y los servicios solo tengan el acceso que necesitan para realizar sus tareas específicas. El privilegio mínimo ralentiza la capacidad de un ataque para distribuirse en toda una organización porque un atacante no puede aumentar sus privilegios con facilidad.
Para satisfacer las necesidades de tu organización, usa las políticas, los roles y permisos detallados en Identity and Access Management (IAM). Además, analiza los permisos con regularidad mediante el recomendador de roles y el Analizador de políticas. El recomendador de roles usa el aprendizaje automático para analizar tu configuración y proporciona recomendaciones a fin de garantizar que tu configuración de roles cumpla con el principio de privilegio mínimo. El Analizador de políticas te permite ver qué cuentas tienen acceso a tus recursos en la nube.
Supervisa las cuentas
Si usas grupos para asignar políticas de IAM, supervisa los registros de los grupos para asegurarte de que no se agreguen cuentas no corporativas. Además, restringe las identidades, según los dominios de Cloud Identity o Google Workspace, que pueden acceder a tus recursos. Para obtener más información, consulta Restringe identidades por dominio.
Asegúrate de que los procedimientos de desvinculación incluyan procesos para desactivar cuentas y restablecer permisos cuando los empleados abandonen la organización o cambien de rol. Para obtener más información, consulta Revoca el acceso a Google Cloud.
Para auditar tus usuarios y grupos, consulta Registros de auditoría para Google Workspace.
Reduce la exposición a Internet de tus recursos de Compute Engine y GKE
Reducir la exposición a Internet significa que los atacantes tienen menos oportunidades de encontrar y explotar vulnerabilidades. En esta sección, se describen las prácticas recomendadas que ayudan a proteger las VM de Compute Engine y los clústeres de Google Kubernetes Engine (GKE) de la exposición a Internet.
Restringe el tráfico externo
No asignes direcciones IP externas a tus VM. Puedes usar la restricción de la política de la organización Inhabilitar el uso de IPv6 externa de VPC para denegar direcciones IP externas a todas las VM. Para ver qué VM tienen direcciones IP de acceso público, consulta Localiza las direcciones IP de una instancia. Si la arquitectura requiere direcciones IP externas para las VM, usa la política de la organización Define IP externas permitidas para instancias de VM, que te permite definir una lista de nombres de instancias que pueden tener direcciones IP externas.
Restringe los nodos de GKE solo a direcciones IP internas. Para obtener más información, consulta Crea un clúster privado.
Restringe el tráfico entrante (de entrada) y saliente (de salida) a Internet para todos los recursos de tus proyectos. Para obtener más información, consulta las reglas de firewall de VPC y las políticas de firewall jerárquicas.
Si deseas obtener más información sobre cómo restringir el tráfico externo, como la configuración de Cloud NAT a fin de permitir las comunicaciones salientes para las VMs sin dirección IP externa o el uso de un balanceador de cargas de proxy para las comunicaciones entrantes, consulta Conectarse a instancias de VM de forma segura.
Usa perímetros de servicio
Crea un perímetro de servicio para tus recursos de Compute Engine y GKE mediante Controles del servicio de VPC. Los Controles del servicio de VPC te permiten controlar las comunicaciones con tus recursos de Compute Engine desde fuera del perímetro. Los perímetros de servicio permiten la comunicación libre dentro del perímetro y bloquean el robo de datos y la comunicación de servicio desde fuera del perímetro. Usa los atributos de acceso adaptado al contexto, como las direcciones IP y las identidades de los usuarios para controlar aún más el acceso a los servicios de Google Cloud desde Internet.
Configura la seguridad de confianza cero
Configura la seguridad de confianza cero con BeyondCorp Enterprise. BeyondCorp Enterprise proporciona protección contra amenazas y datos y controles de acceso. Si tus cargas de trabajo se encuentran en entornos locales y en Google Cloud, configura Identity-Aware Proxy (IAP). Configura el desvío TCP para controlar quién puede acceder a servicios administrativos, como SSH y RDP, en tus recursos de Google Cloud desde la Internet pública. El redireccionamiento de TCP evita que estos servicios se expongan abiertamente a Internet.
Protege tus recursos de Compute Engine y GKE
La minería de criptomonedas requiere acceso a tus recursos de Compute Engine y GKE. En esta sección, se describen las prácticas recomendadas que te ayudarán a proteger los recursos de Compute Engine y GKE.
Protege las imágenes de VM
Usa imágenes de VM endurecidas y seleccionadas mediante la configuración de VM protegidas. La VM protegida está diseñada para evitar que se carguen códigos maliciosos, como el software malicioso a nivel de kernel o los rootkits, durante el ciclo de inicio. La VM protegida proporciona seguridad de inicio, supervisa la integridad y usa el Módulo de plataforma segura virtual (vTPM).
Para restringir qué imágenes se pueden implementar, puedes implementar políticas de imágenes confiables. En la política de la organización Definir proyectos de imágenes seguras, se define qué proyectos pueden almacenar imágenes y discos persistentes. Asegúrate de que solo existan imágenes seguras y mantenidas en esos proyectos.
En GKE, asegúrate de que tus contenedores usen imágenes base, que se actualizan de forma periódica con parches de seguridad. Además, considera las imágenes de contenedor sin distro que incluyen solo tu aplicación y sus dependencias del entorno de ejecución.
Acceso SSH seguro a las VM
Configura el Acceso al SO para administrar el acceso SSH a las VM que se ejecutan en Compute Engine. El Acceso al SO simplifica la administración del acceso SSH mediante la vinculación de la cuenta de usuario de Linux de tu administrador con su identidad de Google. El Acceso al SO funciona con IAM para que puedas definir los privilegios que tienen los administradores.
Para obtener más información, consulta Protege VM y contenedores.
Restringe las cuentas de servicio
Una cuenta de servicio es una cuenta de Google Cloud que las cargas de trabajo usan para llamar a la API de Google de un servicio.
No permitas que Google Cloud asigne roles de cuenta de servicio predeterminados a los recursos cuando se crean. Para obtener más información, consulta Restringe el uso de las cuentas de servicio.
Si tus aplicaciones se ejecutan fuera de Google Cloud y aún requieren acceso a los recursos de Google Cloud, no uses claves de cuentas de servicio. En su lugar, implementa la Federación de Workload Identity para administrar las identidades externas y los permisos que asocias a ellas. Para GKE, puedes implementar identidades de carga de trabajo. Si deseas obtener más información, consulta Elige el método de autenticación correcto para tu caso de uso.
Si deseas conocer más prácticas recomendadas que ayudan a proteger las cuentas de servicio, consulta Prácticas recomendadas para trabajar con cuentas de servicio.
Supervisa el uso de las cuentas de servicio y sus claves
Configura la supervisión para hacer un seguimiento de cómo se usan las cuentas de servicio y sus claves en tu organización. Para obtener visibilidad sobre los patrones de uso destacados, usa las estadísticas de cuentas de servicio. Por ejemplo, puedes usar las estadísticas de cuentas de servicio para hacer un seguimiento de cómo se usan los permisos en los proyectos e identificar las cuentas de servicio sin usar. A fin de ver cuándo se usaron tus cuentas y claves de servicio por última vez para llamar a una API de Google a fin de realizar las actividades de autenticación, consulta el uso reciente de las cuentas de servicio y sus claves.
Supervisa y aplica parches a las VM y los contenedores
Para iniciar un ataque de minería de criptomonedas, los atacantes suelen explotar configuraciones incorrectas y vulnerabilidades de software a fin de obtener acceso a los recursos de Compute Engine y GKE.
Para obtener información sobre las vulnerabilidades y configuraciones incorrectas que se aplican a tu entorno, usa las Security Health Analytics para analizar tus recursos. En particular, si usas la versión Premium de Security Command Center, revisa los hallazgos de instancias de Compute Engine y hallazgos de contenedores, y configurar procesos para resolverlos rápidamente.
Usa Artifact Analysis para verificar las vulnerabilidades en las imágenes de contenedor que almacenas en Artifact Registry o Container Registry.
Asegúrate de que tu organización pueda implementar parches en cuanto estén disponibles. Puedes usar la Administración de parches de SO para Compute Engine. Google aplica parche para las vulnerabilidades de forma automática en GKE. Para obtener más información, consulta Mantén las imágenes y los clústeres actualizados.
Protege tus aplicaciones con un WAF
Los atacantes pueden intentar acceder a tu red mediante la búsqueda de vulnerabilidades de capa 7 en las aplicaciones implementadas. Para ayudar a mitigar estos ataques, configura Google Cloud Armor, que es un firewall de aplicación web (WAF) que usa políticas de seguridad y filtrado de capa 7. Google Cloud Armor proporciona protección contra la denegación del servicio (DoS) y WAF para aplicaciones y servicios alojados en Google Cloud, en tus instalaciones o en otras nubes.
Google Cloud Armor incluye una regla de WAF para ayudar a abordar las vulnerabilidades de Apache Log4j. Los atacantes pueden usar las vulnerabilidades de Log4j para ingresar software malicioso que pueda realizar una minería de criptomonedas no autorizada. Para obtener más información, consulta la regla de WAF de Google Cloud Armor para ayudar a abordar la vulnerabilidad de Apache Log4j.
Protege la cadena de suministro
La integración continua y la entrega continua (CI/CD) proporcionan un mecanismo para obtener las funciones más recientes para tus clientes con rapidez. Para evitar ataques de minería de criptomonedas en tu canalización, realiza análisis de código y supervisa tu canalización en busca de ataques maliciosos.
Implementa la autorización binaria para garantizar que todas las imágenes estén firmadas por autoridades de confianza durante el proceso de desarrollo y, luego, aplica la validación de firma cuando implementes las imágenes.
Mueve las verificaciones de seguridad a la etapa más temprana posible del proceso de CI/CD (a veces denominado desplazamiento a la izquierda). Para obtener más información, consulta Desplazamiento a la izquierda en seguridad: Protección de las cadenas de suministro de software. Para obtener información sobre cómo configurar una cadena de suministro segura con GKE, consulta Seguridad de la cadena de suministro de software.
Administra secretos y claves
Un vector de ataque clave para ataques de minería de criptomonedas no autorizados corresponde a los secretos inseguros o robados. En esta sección, se describen las prácticas recomendadas que puedes usar para proteger tus secretos y claves de encriptación.
Rota las claves de encriptación con regularidad
Asegúrate de que todas las claves de encriptación se roten de manera habitual. Si Cloud KMS administra tus claves de encriptación, puedes rotarlas de manera automática.
Si usas cuentas de servicio que tienen pares de claves administrados por Google, las claves también se rotan de forma automática.
Evita descargar secretos
Los secretos expuestos son un vector de ataque clave para los atacantes. Si es posible, no descargues claves de encriptación ni otros secretos, incluidas las claves de cuentas de servicio. Si debes descargar claves, asegúrate de que tu organización tenga un proceso de rotación de claves implementado.
Si usas GitHub u otro repositorio público, debes evitar que se filtren las credenciales. Implementa herramientas como el análisis de secretos, que te advierten sobre secretos expuestos en tus repositorios de GitHub. Para evitar que se confirmen las claves en tus repositorios de GitHub, considera usar herramientas como git-secrets.
Usa soluciones de administración de secretos, como Secret Manager y Hashicorp Vault para almacenar los secretos, rotarlos con regularidad y aplicar el privilegio mínimo.
Detecta actividad anómala
Para supervisar la actividad anómala, configura herramientas de supervisión de Google Cloud y de terceros, junto con alertas. Por ejemplo, configura alertas según la actividad del administrador en la información de registro de auditoría de Compute Engine y los registros de auditoría de GKE.
Además, usa Event Threat Detection en Security Command Center para identificar las amenazas basadas en actividades de administrador, cambios en los Grupos de Google y en los permisos de IAM. Usa Virtual Machine Threat Detection en Security Command Center para identificar amenazas relacionadas con las VM de Compute Engine. Para obtener más información sobre los servicios de Security Command Center, consulta Niveles de servicio de Security Command Center.
Para ayudar a detectar amenazas basadas en la red, como el software malicioso, configura el IDS de Cloud.
Participa en el programa de protección criptográfica de Security Command Center
Si eres cliente de Security Command Center Premium y usas Compute Engine, puedes participar en el Programa de protección criptográfica de Security Command Center. Este programa te permite incurrir en los costos de las VM de Compute Engine relacionados con ataques de criptominería no autorizados y no detectados en tu entorno de VM de Compute Engine. Debes implementar las prácticas recomendadas de detección de criptominería, algunas de las cuales se superponen con las otras prácticas recomendadas que se describen en esta página.
Actualiza tu plan de respuesta ante incidentes
Asegúrate de que tu plan de respuesta ante incidentes y las guías proporcionen una orientación prescriptiva sobre cómo responderá tu organización a los ataques de minería de criptomonedas. Por ejemplo, asegúrate de que tu plan incluya lo siguiente:
- Cómo enviar un caso de asistencia a Atención al cliente de Cloud y comunicarte con tu administrador técnico de cuentas (TAM) de Google. Si no tienes una cuenta de asistencia, revisa los planes de asistencia disponibles y crea una.
- Cómo diferenciar las cargas de trabajo legítimas de computación de alto rendimiento (HPC) de los ataques de minería de criptomonedas. Por ejemplo, puedes etiquetar qué proyectos tienen habilitada la HPC y configurar alertas para los aumentos de costos inesperados.
- Cómo manejar las credenciales de Google Cloud comprometidas.
- Cómo poner en cuarentena los sistemas infectados y restablecer a partir de copias de seguridad en buen estado.
- Quién de la organización debe ser notificado a fin de investigar y responder al ataque.
- Qué información se debe registrar para tus actividades retrospectivas.
- Cómo verificar que tus actividades de solución hayan quitado de forma efectiva las actividades mineras y abordado la vulnerabilidad inicial que generó el ataque.
- Cómo responder a una alerta enviada por la Atención al cliente de Cloud. Para obtener más información, consulta Preguntas frecuentes sobre incumplimientos de políticas.
Para obtener más información, consulta Responde a los ataques y recupérate de ellos.
Implementa un plan de recuperación ante desastres
A fin de prepararte para un ataque de minería de criptomonedas, completa los planes de recuperación ante desastres y de continuidad del negocio, crea una guía de respuesta ante incidentes y realiza ejercicios de simulación.
Si se produce una minería de criptomonedas no autorizada, asegúrate de poder abordar el vector de amenaza que causó el incumplimiento inicial y de reconstruir tu entorno a partir de un buen estado conocido. Tu plan de recuperación ante desastres debe proporcionar la capacidad de determinar qué es un buen estado conocido, de modo que el atacante no pueda usar repetidamente las mismas vulnerabilidades para explotar tus recursos.
¿Qué sigue?
- Encuentra más recomendaciones de seguridad en el Framework de la arquitectura de Google Cloud: Seguridad, privacidad y cumplimiento.
- Protégete contra ataques de ransomware.
- Implementa un modelo de referencia seguro en Google Cloud, como se describe en el plano sobre las bases empresariales de Google Cloud.