Esta arquitetura de referência mostra como criar um pipeline orientado por eventos que pode ajudar a automatizar a avaliação de ficheiros quanto à existência de software malicioso, como cavalos de troia, vírus e outro código malicioso. A avaliação manual do grande número de ficheiros carregados para o armazenamento na nuvem é demasiado demorada para a maioria das apps. A automatização do processo pode ajudar a poupar tempo e melhorar a eficiência.
O pipeline nesta arquitetura usa Google Cloud produtos juntamente com o motor antivírus de código aberto ClamAV. Também pode usar qualquer outro motor antimalware que execute verificações a pedido em contentores Linux. Nesta arquitetura, o ClamAV é executado num contentor do Docker alojado no Cloud Run. O pipeline também escreve entradas de registo no Cloud Logging e regista métricas no Cloud Monitoring.
Arquitetura
O diagrama seguinte apresenta uma vista geral da arquitetura:
A arquitetura mostra os seguintes pipelines:
- Pipeline de análise de ficheiros carregados pelos utilizadores, que verifica se um ficheiro carregado contém software malicioso.
- Pipeline de atualização da replicação da base de dados de software malicioso do ClamAV, que mantém uma replicação atualizada da base de dados de software malicioso que o ClamAV usa.
Os pipelines são descritos mais detalhadamente nas secções seguintes.
Pipeline de análise de ficheiros carregados pelos utilizadores
O pipeline de análise de ficheiros funciona da seguinte forma:
- Os utilizadores finais carregam os respetivos ficheiros para o contentor do Cloud Storage não analisado.
- O serviço Eventarc deteta este evento de carregamento e informa o serviço Cloud Run acerca deste novo ficheiro.
- O serviço do Cloud Run transfere o novo ficheiro do contentor do Cloud Storage não analisado e transmite-o ao analisador de software malicioso ClamAV.
- Consoante o resultado da análise de software malicioso, o serviço realiza uma das seguintes ações:
- Se o ClamAV declarar que o ficheiro está limpo, este é movido do contentor do Cloud Storage não analisado para o contentor do Cloud Storage limpo.
- Se o ClamAV declarar que o ficheiro contém software malicioso, este é movido do contentor do Cloud Storage não analisado para o contentor do Cloud Storage em quarentena.
- O serviço comunica o resultado destas ações ao Registo e à Monitorização para permitir que os administradores tomem medidas.
Pipeline de atualização da base de dados de software malicioso do ClamAV
O pipeline de atualização do espelho da base de dados de software malicioso do ClamAV mantém um espelho local privado atualizado da base de dados no Cloud Storage. Isto garante que a base de dados pública do ClamAV só é acedida uma vez por atualização para transferir os ficheiros de atualizações diferenciais mais pequenos e não a base de dados completa, o que evita qualquer limitação de taxa.
Este pipeline funciona da seguinte forma:
- Uma tarefa do Cloud Scheduler está configurada para ser acionada a cada duas horas, o que é igual ao intervalo de verificação de atualizações predefinido usado pelo serviço freshclam do ClamAV. Esta tarefa faz um pedido HTTP
POST
ao serviço do Cloud Run, instruindo-o a atualizar a base de dados de software malicioso. - A instância do Cloud Run copia a imagem espelhada da base de dados de software malicioso do contentor do Cloud Storage para o sistema de ficheiros local.
- Em seguida, a instância executa a ferramenta ClamAV CVDUpdate, que transfere todas as atualizações diferenciais disponíveis e as aplica à replicação da base de dados.
- Em seguida, copia o espelho da base de dados de software malicioso atualizado de volta para o contentor do Cloud Storage.
No arranque, o serviço ClamAV freshclam em execução na instância do Cloud Run transfere a base de dados de software malicioso do Cloud Storage. Durante a execução, o serviço também verifica regularmente e transfere quaisquer atualizações de base de dados disponíveis do contentor do Cloud Storage.
Considerações de design
As diretrizes seguintes podem ajudar a desenvolver uma arquitetura que satisfaça os requisitos da sua organização em termos de fiabilidade, custo e eficiência operacional.
Fiabilidade
Para analisar eficazmente, o scanner de software malicioso ClamAV tem de manter uma base de dados atualizada de assinaturas de software malicioso. O serviço ClamAV é executado através do Cloud Run, que é um serviço sem estado. No arranque de uma instância do serviço, o ClamAV tem sempre de transferir a base de dados de software malicioso completa mais recente, que tem vários megabytes.
A base de dados pública de software malicioso do ClamAV está alojada numa rede de distribuição de conteúdo (RFC), que limita a taxa destas transferências. Se forem iniciadas várias instâncias e tentarem transferir a base de dados completa, pode ser acionado um limite de taxa. Isto faz com que o endereço IP externo usado pelo Cloud Run seja bloqueado durante 24 horas. Isto impede o início do serviço ClamAV, bem como a transferência de atualizações da base de dados de software malicioso.
Além disso, o Cloud Run usa um conjunto partilhado de endereços IP externos. Como resultado, os downloads das instâncias de análise de software malicioso de diferentes projetos são vistos pela RFC como provenientes de um único endereço e também acionam o bloqueio.
Otimização de custos
Esta arquitetura usa os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custos com base na sua utilização projetada, use a calculadora de preços.
Eficiência operacional
Para acionar alertas baseados em registos para ficheiros infetados, pode usar entradas de registo do Logging. No entanto, a configuração destes alertas está fora do âmbito desta arquitetura.
Implementação
Para implementar esta arquitetura, consulte o artigo Implemente a análise automatizada de software malicioso para ficheiros carregados para o Cloud Storage.
O que se segue?
- Explore a documentação do Cloud Storage.
- Para ver mais arquiteturas de referência, diagramas e práticas recomendadas, explore o Centro de arquitetura na nuvem.