Automatiza el análisis de software malicioso para archivos subidos a Cloud Storage

Last reviewed 2023-05-17 UTC

En esta arquitectura de referencia, se muestra cómo compilar una canalización controlada por eventos que pueda ayudarte a automatizar la evaluación de archivos en busca de software malicioso, como troyanos, virus y otros códigos maliciosos. La evaluación manual de la gran cantidad de archivos subidos a Cloud Storage toma demasiado tiempo para la mayoría de las apps. La automatización del proceso puede ayudarte a ahorrar tiempo y mejorar la eficiencia.

La canalización en esta arquitectura usa productos de Google Cloud junto con el motor de antivirus de código abierto ClamAV. También puedes usar cualquier otro motor contra software malicioso que realice análisis a pedido en contenedores de Linux. En esta arquitectura, ClamAV se ejecuta en un contenedor de Docker alojado en Cloud Run. La canalización también escribe entradas de registro en Cloud Logging y registra las métricas en Cloud Monitoring.

Arquitectura

En el siguiente diagrama, se proporciona una descripción general de la arquitectura:

Arquitectura de la canalización del análisis de software malicioso.

La arquitectura muestra las siguientes canalizaciones:

  • Canalización de análisis de archivos subida por el usuario, que verifica si un archivo subido contiene software malicioso.
  • Canalización de actualización duplicada de la base de datos de software malicioso de ClamAV, que mantiene una duplicación actualizada de la base de datos de software malicioso que usa ClamAV.

Las canalizaciones se describen con más detalle en las siguientes secciones.

Canalización de análisis de archivos subida por el usuario

La canalización de análisis de archivos funciona de la siguiente manera:

  1. Los usuarios finales suben sus archivos al bucket de Cloud Storage sin analizar.
  2. El servicio de Eventarc detecta este evento de carga y le informa al servicio de Cloud Run sobre este archivo nuevo.
  3. El servicio de Cloud Run descarga el archivo nuevo del bucket de Cloud Storage no analizado y lo pasa al análisis de software malicioso de ClamAV.
  4. Según el resultado del análisis de software malicioso, el servicio realiza una de las siguientes acciones:
    • Si ClamAV declara que el archivo está limpio, se mueve del bucket de Cloud Storage no analizado al bucket de Cloud Storage limpio.
    • Si ClamAV declara que el archivo contiene software malicioso, se mueve del bucket no analizado de Cloud Storage al bucket en cuarentena de Cloud Storage.
  5. El servicio informa el resultado de estas acciones a Logging y Monitoring para permitir que los administradores realicen acciones.

Canalización de actualización duplicada de la base de datos de software malicioso de ClamAV

La canalización de actualización de duplicación de la base de datos de software malicioso de ClamAV mantiene una duplicación local privada actualizada de la base de datos en Cloud Storage. Esto garantiza que solo se acceda a la base de datos pública de ClamAV una vez por actualización para descargar los archivos de actualizaciones diferenciales más pequeños, y no la base de datos completa, lo que evita cualquier límite de frecuencia.

Esta canalización funciona de la siguiente manera:

  1. Un trabajo de Cloud Scheduler está configurado para activarse cada dos horas, que es lo mismo que el intervalo de verificación de actualización predeterminado que usa el servicio freshclam de ClamAV. Este trabajo realiza una solicitud HTTP POST al servicio de Cloud Run que le indica que actualice la duplicación de la base de datos de software malicioso.
  2. La instancia de Cloud Run copia la duplicación de la base de datos de software malicioso del bucket de Cloud Storage al sistema de archivos local.
  3. Luego, la instancia ejecuta la herramienta ClamAV CVDUpdate, que descarga las actualizaciones diferenciales disponibles y las aplica a la duplicación de la base de datos.
  4. Luego, vuelve a copiar la duplicación de la base de datos de software malicioso actualizada en el bucket de Cloud Storage.

Durante el inicio, el servicio freshclam de ClamAV que se ejecuta en la instancia de Cloud Run descarga la base de datos de software malicioso desde Cloud Storage. Durante el tiempo de ejecución, el servicio también verifica y descarga con regularidad las actualizaciones de bases de datos disponibles desde el bucket de Cloud Storage.

Consideraciones del diseño

Los siguientes lineamientos pueden ayudarte a desarrollar una arquitectura que cumpla con los requisitos de confiabilidad, costo y eficiencia operativa de tu organización.

Confiabilidad

Para realizar un análisis de manera eficaz, el análisis de software malicioso de ClamAV debe mantener una base de datos actualizada de firmas de software malicioso. El servicio ClamAV se ejecuta mediante Cloud Run, que es un servicio sin estado. Al inicio de una instancia del servicio, ClamAV siempre debe descargar la última base de datos completa de software malicioso, que tiene cientos de megabytes de tamaño.

La base de datos pública de software malicioso para ClamAV se aloja en una red de distribución de contenidos (CDN), que limita la frecuencia de estas descargas. Si se inician varias instancias y se intenta descargar la base de datos completa, se puede activar el límite de frecuencia. Esto hace que la dirección IP externa que usa Cloud Run se bloquee durante 24 horas. Esto evita que el servicio de ClamAV se inicie y, además, evita la descarga de actualizaciones de la base de datos de software malicioso.

Además, Cloud Run usa un grupo compartido de direcciones IP externas. Como resultado, la CDN ve que las descargas de las instancias de análisis de software malicioso de diferentes proyectos provienen de una sola dirección y también activan el bloqueo.

Optimización de costos

En esta arquitectura, se utilizan los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Eficiencia operativa

Para activar alertas basadas en registros para archivos infectados, puedes usar entradas de registro de Logging. Sin embargo, la configuración de estas alertas está fuera del alcance de esta arquitectura.

Implementación

Para implementar esta arquitectura, consulta Implementa un análisis de software malicioso automatizado para los archivos subidos a Cloud Storage.

¿Qué sigue?