Aprimorando a segurança de APK com Milvus na TrendMicro

<95 milissegundos
latência de consulta de ponta a ponta
<10 segundos
para ingerir 3 milhões de vetores
Ativar
detecção de ameaças em tempo real
Milvus delivers unparalleled performance and flexibility, integrating seamlessly with leading vector index libraries like Faiss. Its intuitive API and robust solutions for high availability make it an indispensable tool in our APK security efforts.
Wei Huang
Sobre a Trend Micro
A Trend Micro é uma líder global do setor de software de segurança, com uma reputação consolidada por fornecer soluções de ponta a fornecedores de software e usuários individuais. À medida que as ameaças de cibersegurança evoluem, também evolui o compromisso da TrendMicro com a inovação.
Uma das principais áreas de foco da empresa é a segurança móvel, que se tornou cada vez mais crítica em nosso mundo digitalmente conectado. Nesse contexto, uma equipe especializada da TrendMicro é responsável por criar aplicativos de segurança móvel e desenvolver infraestrutura. Seu fluxo de trabalho envolve rastrear APKs externos (pacotes de aplicativos Android) de plataformas como o Google Play e aplicar os algoritmos proprietários da TrendMicro para detectar APKs que carregam vírus.
Atingindo o Limite de Escalabilidade: As Limitações do MySQL e do Faiss
Nos estágios iniciais do projeto, a TrendMicro dependia do MySQL para busca de similaridade de APKs. Como banco de dados relacional, o MySQL foi inicialmente suficiente para lidar com o tamanho da amostra de APKs e permitiu que a equipe usasse consultas SQL para buscas de similaridade. No entanto, à medida que o conjunto de dados cresceu para dezenas de milhões, com incrementos diários chegando a centenas de milhares, o desempenho do MySQL começou a se degradar. A latência das consultas aumentou, e o banco de dados precisou de ajuda para lidar com o alto volume de buscas simultâneas, levando a gargalos no sistema.
A equipe então recorreu ao Faiss, uma biblioteca especializada para busca de similaridade lançada pelo Facebook em 2017. O Faiss é conhecido por recuperar rapidamente vetores semelhantes e oferece várias opções de indexação, como IndexFlatL2, IndexFlatIP, HNSW e IVF. Embora o Faiss se destacasse em velocidade, ele era essencialmente uma biblioteca básica de algoritmos, sem vários recursos críticos para um ambiente de produção. Por exemplo, o Faiss não oferecia nenhum recurso de gerenciamento de dados, o que significava que a equipe teria que criar uma camada separada para armazenamento e recuperação de dados. Ele também carecia de recursos de alta disponibilidade e ferramentas de monitoramento, tornando-o inadequado para uma aplicação de missão crítica como a segurança de APKs.
Além disso, o Faiss não foi projetado para ser um sistema distribuído, o que representava um desafio para a escalabilidade horizontal. Embora algumas soluções do setor usassem o Faiss como uma biblioteca subjacente para plugins do Elasticsearch, elas não estavam isentas de problemas. Eram intensivas em memória e exigiam ajustes finos significativos para otimizar o desempenho, o que precisava ser mais prático para o conjunto de dados em rápido crescimento da TrendMicro.
O Avanço do Milvus: Um Mecanismo Robusto de Busca Vetorial para Análise Escalável de APKs
Depois de encontrar limitações com o MySQL e o Faiss, a busca da TrendMicro por uma solução robusta e escalável os levou ao Milvus. Desenvolvido em C++, o Milvus surgiu como um mecanismo abrangente de busca vetorial que abordava muitas deficiências das soluções anteriores. Um dos recursos de destaque foi sua integração com bibliotecas populares de índices vetoriais, como Faiss, NMSLIB e Annoy. Essas integrações permitiram que a TrendMicro aproveitasse a velocidade do Faiss enquanto se beneficiava dos recursos adicionais oferecidos pelo Milvus.
| Mecanismo | Desempenho (ms) | Tamanho do conjunto de dados (milhão) | Dimensões |
|---|---|---|---|
| ES | 600 | 1 | 128 |
| ES + Alibaba Cloud | 900 | 20 | 128 |
| Milvus | 27 | 1000+ | 128 |
| SPTAG | Ruim | ||
| ES + nmslib, faiss | 90 | 150 | 128 |
O Milvus forneceu uma API simples e intuitiva, uma vantagem significativa para a equipe de desenvolvimento. A API permitiu que eles escolhessem diferentes tipos de indexação com base em seus casos de uso específicos, oferecendo uma flexibilidade que faltava em outras soluções. Essa flexibilidade beneficiou a TrendMicro, pois eles precisavam lidar com vários vetores de características de APKs e necessitavam de um sistema que pudesse se adaptar aos seus diversos requisitos.
Outro ponto forte foi o foco do Milvus em alta disponibilidade e sistemas distribuídos. Ao contrário do Faiss, que não foi projetado para ser um sistema distribuído, o Milvus é uma solução madura para escalar horizontalmente. Escalabilidade e desempenho eram cruciais para a TrendMicro, pois seu conjunto de dados era grande e crescia rapidamente. A arquitetura distribuída do Milvus significava que eles poderiam adicionar facilmente mais nós ao sistema para lidar com cargas maiores, tornando assim sua infraestrutura de análise de APK preparada para o futuro.
O monitoramento foi outra área em que o Milvus se destacou. Ele vinha com suporte integrado ao Prometheus, uma solução líder de monitoramento open-source que funciona com o Grafana para visualização avançada de dados. Essa capacidade de monitoramento permitiu que a TrendMicro acompanhasse de perto várias métricas de desempenho, incluindo a latência das consultas e as velocidades de importação de dados, possibilitando a resolução proativa de problemas.
O Milvus ofereceu uma solução robusta, flexível e escalável, muito adequada às necessidades complexas e crescentes da TrendMicro. Seus recursos de integração, API intuitiva e foco em alta disponibilidade e monitoramento fizeram dele uma escolha revolucionária para o projeto de segurança de APK da TrendMicro.
Impacto no Mundo Real: Baixa Latência e Alta Velocidade de Importação de Dados
A implementação do Milvus no serviço ThashSearch da TrendMicro gerou resultados tangíveis que melhoraram significativamente a eficiência e a eficácia de sua análise de APK. Uma das métricas mais críticas para qualquer serviço de busca é a latência; nesse aspecto, o Milvus foi um divisor de águas. O serviço ThashSearch está no ar há vários meses e tem alcançado consistentemente uma latência média de consulta inferior a 95 milissegundos. Essa baixa latência garante que a TrendMicro possa fornecer alertas oportunos a usuários corporativos e individuais sobre APKs potencialmente nocivos, aprimorando a postura geral de segurança.
Mas a baixa latência é apenas uma parte da equação. Em um ambiente intensivo em dados como a análise de APK, a velocidade com que os desenvolvedores conseguem ingerir novos dados no sistema é igualmente importante. O Milvus também se destacou nesse aspecto. O sistema demonstrou uma velocidade impressionante de importação de dados, capaz de ingerir 3 milhões de dados vetoriais de 192 dimensões em aproximadamente 10 segundos. Considerando os incrementos diários de centenas de milhares de novas amostras de APK, essa capacidade rápida de importação de dados é crucial para a TrendMicro. Ela garante que o banco de dados esteja sempre atualizado, permitindo as buscas por similaridade mais precisas e atuais.
A combinação de baixa latência e alta velocidade de importação de dados tem um efeito sinérgico nas operações da TrendMicro. Ela melhorou a experiência do usuário ao fornecer resultados de busca mais rápidos e otimizou os processos de backend, facilitando manter o sistema atualizado com os dados mais recentes. Essa excelência operacional permitiu que a TrendMicro atingisse e superasse as metas iniciais de design para o serviço ThashSearch, confirmando a decisão de implementar o Milvus como o mecanismo de busca vetorial de escolha.
O Plano Futuro
À medida que a TrendMicro olha para o futuro, ela está muito interessada no roadmap do Milvus e em como seus próximos recursos podem otimizar ainda mais suas operações de análise de APK. Um desses recursos é a introdução de IDs do tipo string no Milvus. A TrendMicro planeja utilizar esse recurso para simplificar sua arquitetura atual, eliminando a necessidade de cache Redis. IDs do tipo string irão simplificar o processo de recuperação de dados, tornando-o mais eficiente e reduzindo a complexidade.
Além disso, a TrendMicro está entusiasmada com os planos do Milvus de evoluir para um sistema totalmente distribuído. Atualmente, o Milvus suporta apenas um nó de escrita, mas versões futuras visam remover essa limitação. A TrendMicro vê isso como uma oportunidade de escalar suas operações horizontalmente, aprimorando sua capacidade de lidar com conjuntos de dados ainda maiores e volumes de consultas mais altos. Dado o sucesso que tiveram com o Milvus em seu serviço ThashSearch, a TrendMicro também está considerando expandir a presença do Milvus dentro de sua organização. Eles estão explorando a possibilidade de integrar o Milvus a outros projetos e fluxos de trabalho que poderiam se beneficiar da busca eficiente por similaridade vetorial, maximizando assim seu retorno sobre o investimento na tecnologia.
- Sobre a Trend Micro
- Atingindo o Limite de Escalabilidade: As Limitações do MySQL e do Faiss
- O Avanço do Milvus: Um Mecanismo Robusto de Busca Vetorial para Análise Escalável de APKs
- Impacto no Mundo Real: Baixa Latência e Alta Velocidade de Importação de Dados
- O Plano Futuro
Conteúdo
Caso de uso
Indústria
Segurança


