DevSecOps

16 jan, 2017

Engenharia de segurança com IDS de e-mail personalizadas do Uber

Publicidade

O phishing é um dos maiores e mais difíceis desafios para qualquer equipe de segurança corporativa. É o grande equalizador da segurança; todos nós temos de lidar com isso. Bem executados, ataques de phishing podem ludibriar as pessoas a cometerem erros simples, mas caros.

Uma maneira de as empresas se protegerem contra essas campanhas de phishing é implementar soluções comerciais de detecção de intrusão, que analisam payloads em sandboxes onde podem ser checadas com segurança antes de chegarem à caixa de entrada de um funcionário. Esta é a principal competência da maioria dos sistemas de detecção de intrusão de e-mail (IDS) disponíveis no mercado hoje.

Na Uber, decidimos construir nosso próprio IDS de e-mail por algumas razões:

  • Gerar benefícios operacionais em preço, extensibilidade e desempenho
  • Exercer o controle total sobre recursos e alertas para que possamos nos ajustar às ameaças em evolução em tempo real
  • Capturar insights avançados para depurar alertas de intrusão e processamento de e-mail no Uber em geral

Os benefícios operacionais conduziram muitas das nossas escolhas do projeto, começando com a decisão de construí-lo em um ambiente de hospedagem baseado em nuvem. Por exemplo, o Amazon AWS tem componentes nativos que incluem SES, workers Lambda, S3 buckets, VPCs, alguns hosts EC2, um cluster Memcached e um cluster Elasticsearch. Usar uma plataforma on-demand nos dá flexibilidade sobre quando e como usamos o IDS, conservando simultaneamente o processamento e os custos por não executá-lo o tempo todo. O Amazon SNS nos dá uma maneira escalável de gerenciar filas.

Nosso e-mail IDS reflete a arquitetura de microsserviços no Uber. Como a nossa arquitetura geral, o IDS divide cada e-mail em várias peças e analisa essas peças em paralelo através de vários pipelines on-demand. Também aproveitamos as ferramentas e serviços existentes no mercado, como serviços em nuvem e vários serviços de análise internos. Por exemplo, usamos um cluster inteiro de sandboxes automatizadas no EC2, bem como sandboxes em nuvem           alternativas. Essa estratégia de arquitetura nos deu a oportunidade de explorar novos serviços de segurança ao mesmo tempo depurando, desenvolvendo novos recursos e otimizando o desempenho em pipelines existentes.

Rápido e Confiável

Soluções para velocidade e desempenho é uma prioridade constante no Uber. Muitas soluções comerciais IDS oferecem capacidades de análise comparáveis, mas muitas vezes são caixas pretas e, por isso, temos pouca visão de depuração em suas operações. Construímos duas versões do nosso IDS para garantir a disponibilidade de e-mails enquanto testamos e desenvolvemos novos recursos. Ambas as instâncias são executadas out-of-band, para não atrasar a entrega de e-mail com o tempo de análise. Uma versão é executada em produção; a outra é usada para testes. Desta forma, podemos desenvolver e integrar continuamente novas funcionalidades e lógica de alerta em nosso IDS, com base em ataques e tendências que vemos na natureza. Nossa instância de produção, em seguida, tem a capacidade de alertar e excluir e-mails em menos de um minuto de chegar na caixa de entrada de um funcionário.

Ao alavancar os recursos existentes de um grande serviço de hospedagem, fomos capazes de avançar muito mais rápido do que se fôssemos desenvolver tudo nós mesmos. O serviço Memcached nativo do ElastiCache deduplica determinados eventos de processamento, o que acelera nossa capacidade de processar campanhas e grandes e-mails em massa automatizados. Em seguida, a funcionalidade nativa de Elasticsearch nos permite agrupar nossos sinais idênticos para análise de campanha e impacto. Isso não só nos ajuda a identificar campanhas de phishing, como também reduz o tempo necessário para processar as informações antes de recebermos alertas. Adaptamos a popular biblioteca GAM à nossa própria biblioteca, apelidada de superGAM. Quando nosso IDS de e-mail identifica e-mails maliciosos, nossa plataforma de automação de contexto usa superGAM para excluir os e-mails automaticamente, antes que os funcionários os leiam. Além disso, o monitoramento automatizado – incluindo métricas de uptime e alertas sobre métricas – nos dá um sistema de alerta antecipado para que possamos resolver qualquer erro detectado no IDS de e-mail quando ainda é pequeno.

Prova do Futuro

Uma expectativa importante para as soluções que construímos internamente é a capacidade de dimensionar e adaptar-se à medida que a empresa cresce e as ameaças evoluem. Portanto, nosso IDS de e-mail foi projetado para ser altamente extensível e acomodar mudanças futuras. Por exemplo, devido à forma como concebemos as nossas funções Lambda, podemos ligar ou mudar outros produtos de fornecedor ou serviços internos com facilidade. Isto é importante à medida que mais pessoas com perícia singular se juntam à nossa equipe, porque nós podemos facilmente conectar independentemente das ferramentas ou pipelines que elas trazem para a tabela.

Além disso, a arquitetura de microsserviços do nosso IDS permite análise separada e concorrente. Isso significa que membros especializados da nossa equipe podem trabalhar em componentes individuais do IDS relevantes para sua especialização em domínios específicos. Por exemplo, alguém treinado em engenharia reversa pode trabalhar em ferramentas de análise binária, enquanto outra pessoa trabalha em componentes dedicados à inteligência de ameaças e outra pessoa trabalha em processamento de linguagem natural. Esta configuração nos permite atualizar e refinar continuamente cada parte do sistema em conjunto com os outros microsserviços que a equipe desenvolve.

Custo Efetivo

Construir nossa própria solução reduziu nossos custos anuais para uma fração do preço de uma solução comercial. Com um serviço de armazenamento baseado em nuvem, como o AWS, podemos acompanhar de perto os custos e fazer ajustes imediatos com base em nossas necessidades. Por exemplo, geramos relatórios financeiros baseados em tags para determinar o custo de componentes específicos. Além de aumentar a velocidade de análise, os esforços de deduplicação mencionados anteriormente desempenham um papel importante na redução dos custos de processamento.

Também executamos várias soluções de fornecedores de inteligência ao lado de nosso IDS para verificações extras sobre inteligência de ameaças e contexto de e-mail. Estes são serviços que já pagamos em outras partes da organização. Portanto, conectá-los a IDS extrai ainda mais valor desses contratos existentes, dando-nos alertas temporais adicionais sobre remetentes de e-mail, domínios e endereços IP usados em campanhas de ataque atuais.

Extensibilidade e Além

Com uma plataforma extensível, você pode explorar continuamente e adicionar novas capacidades à medida que os microsserviços são desenvolvidos na equipe, como análise para processamento de linguagem natural, análise de componentes DOM ou até mesmo um mecanismo de análise de URLs. Por exemplo, temos planos para adicionar um pipeline avançado de análise estática, que exigirá fortes capacidades de engenharia reversa. Também aprimoramos constantemente nossas fontes e aplicativos de inteligência de ameaças. Com esse projeto, podemos desenvolver ainda mais a abstração de arquivos de regras para desacoplar a lógica de alerta da infraestrutura, com o objetivo de compartilhar regras ou abrir o código de infraestrutura posterior. De qualquer forma, a plataforma permanece personalizável e cresce com a equipe, tornando-se um recurso valioso para a nossa equipe de Resposta de Segurança.

 

***

Este artigo é do Uber Engineering. Ele foi escrito por Xiaobing Li e Ankur Bansal. A tradução foi feita pela Redação iMasters com autorização. Você pode conferir o original em: https://eng.uber.com/custom-email-ids/