A regra de “Seis” – Parte II

  Esse texto é continuação, veja a parte anterior aqui Ajuda desde Praga Temos que dizer que na versão 4.0, os dois núcleos de antivírus (chamados “motores”) estavam operando juntos.

 

Esse texto é continuação, veja a parte anterior aqui

Ajuda desde Praga

Prague-1024x682

Temos que dizer que na versão 4.0, os dois núcleos de antivírus (chamados “motores”) estavam operando juntos. A verificação de arquivos foi feita pelo antigo e ainda ativo motor desenvolvido em 1996 da versão 3.0 (cuja licença foi vendida a empresas internacionais, como G-Data e F-Secure). A nova tarefa de energizar a filtragem de tráfego web foi sugerida durante um brainstorming, que ocorreu em uma reunião em Praga, em 1998.

O novo motor acabou sendo apelidado de “Praga”, apesar de ter sido realmente desenvolvido em Moscou por Andrey Doukhvalv, que não participou do debate na República Tcheca. As ideias-chave, no entanto, tiveram origem nesta cidade e Andrey entrou na companhia para tomar essas ideias e colocá-las em prática.

Praga tinha que ser exclusivamente um núcleo antivírus, mas as metas que haviam sido formuladas eram tão ambiciosas que a flexibilidade e criatividade deste novo motor não eram suficientes para dar suporte a sistemas mais complexos. A questão era saber se era possível carregar todos os recursos do produto nas costas de Praga.

Eugene Kaspersky lembra aqueles tempos: “Uma vez perguntei a Victor Matyushenko como eu estava lidando com o produto Praga e ele disse: ‘Sólido como uma rocha!’, que era o x da questão. Então eu fui para a sala onde Graf [De- Monderik] e Petrovich [Doukhvalov] estavam trabalhando e fiz a pergunta: Por que não baseamos todo o produto em Praga? Graf disse algo como: ‘É impossível, Praga não é para isso”, mas Petrovich hesitou. Na manhã seguinte Petrovich foi ao nosso escritório com uma pequena pilha de papéis e disse: ‘Estive pensando em alguns casos de uso em Praga’. Graf olhou para ele e disse: ‘precisamos conversar’. Depois de discutir o assunto por alguns minutos, os dois voltaram ao escritório e me disseram que valia a pena tentar”.

O desenvolvimento começou com uma equipe reduzida que escreveu as primeiras linhas do código que logo viria a se tornar a versão “Seis”.

“Nós começamos nossa pesquisa por pessoal criativo que poderia ajudar a melhorar a nossa equipe”, lembra De-Monderik. “Estava Pavel Mezhuev, um programador que acabava de chegar, mas era muito bom. Logo também estava Mike Pavlyuschik, que vinha trabalhando com nós há algum tempo. Ele foi o cara capaz de pensar ‘fora da caixa’. Acho que o Pavlyuschik foi um dos criadores mais talentosos que tínhamos”.

dec2003-ppp-1024x768

Após dois meses de codificação experimental o projeto foi desenvolvido em uma solução comercial. Agora tudo o que precisava era de um Gerente de Projeto.

“Você lembra do Nikolay Grebennikov do escritório do lado? Ele gosta de ler muito, é jovem e novo na empresa. Vamos contratá-lo!”, disse Andrey Doukhvalov ao lembrar da conversa com De-Monderik. Um tempo depois, Andrey Sobko, um engenheiro de software, também faria parte do equipe.

 

O que é “Praga”?

Esta seção é para os engenheiros de software. O resto do nosso público pode pular dela livremente.

No início de 1990, quando a indústria dos antivírus estava apenas começando a emergir, alguns vírus eram indetectáveis por algumas empresas. Com o tempo, os softwares tornaram-se cada vez mais complexos e os vírus também: se antes criar peças de malware era um jogo, passou a ser um mercado muito lucrativo.

Mesmo com a inserção de mais funcionalidades ao algoritmo de detecção baseado nas assinaturas, como era Kaspersky, os desenvolvedores viram a obrigação de atualizar constantemente o novo método de detecção das ameaças. O tempo de reação frente aos novos vírus foi reduzido significativamente e o sucesso que Kaspersky Lab obteve como a primeira indústria de antivírus capaz de curar o vírus CIH (Chernobyl) mostrou que valeu a pena o esforço para reduzir os tempos de reação.

Com isso em mente, em 1998 Eugene Kaspersky sugeriu aos seus colegas que o tempo para desenvolver um novo motor antivírus tinha chegado. O que poderia ser feito?

“A empresa tinha pouco dinheiro”, disse Kaspersky, “e tínhamos que encontrar o lugar mais barato perto de Moscou. Tivemos que deixar a cidade para poder pensar sobre o assunto, longe do barulho e problemas. O lugar tinha de ser completamente desconectado de tudo. Naquela época não havia Wi-Fi e o lugar mais barato acabou por ser uma capital europeia, Praga”.

Depois de pensar sobre a nova versão do antivírus, a equipe Kaspersky Lab concluiu que a abordagem orientada a objetos era a melhor solução para a capa do motor, ou seja, que cada um dos arquivos analisados ​​deve ser direcionado de acordo com a sua estrutura e os objetos dentro devem ser detectados, analisados ​​e testados. A gestão dos objetos, como um todo, teve que ser realizada durante o tempo de execução.

Foi analisado todo o entorno orientado a objetos disponíveis e todos foram descartados porque eram pouco flexíveis, utilizavam muita memória ou eram muito lentos. Durante várias reflexões surgiu uma ideia: desenvolver um novo entorno, capaz de incluir funcionalidades para a gestão da memória e outrso procedimentos, para que o antivírus possa dissecar e analisar qualquer potencial código maliciosa de maneira rápida e eficaz.

A idéia geral foi criada em Praga por De-Monderik e Andrey Krykov e foi apoiada pelas primeiras linhas de código fornecidas pelo Doukhvalov e Kryukov.

Então, por mais de um ano, foi principalmente Doukhvalov que continuou trabalhando em Praga, de fato Eugene Kaspersky o contratou para isso.Graças a sua experiência no campo da arquitetura, Doukhvalov fez com que Praga fosse um sistema flexível, escalável e fácil de implementar sem restrições arquitetônicas. Finalmente, o objetivo era construir uma solução multiplataforma.

Foi bastante difícil remover a hierarquia dos objetos, mas graças a um cômodo sistema de intercâmbio de mensagem entre os objetos e a uma interfaz de programação minimalista, Praga chegou a ser uma arquitetura integrada e pronta para usar.

“O motor foi projetado para a abordagem de componentes”, diz Doukhvalov com orgulho. “Isso significa que o componente pode ser adicionado a um programa existente. O sistema era muito aberto, continha a oportunidade para adicionar e alterar padrões de comportamento”.

Uma arquitetura baseada em componentes, compacta e sem muitos recursos foi a base para incluir novas tecnologias no KAV 6.0. A implementação foi fácil. Além disso, quando foi decidio que Praga serviria como base para todo o produto, e não apenas como um motor antivírus, Pavel Mezhuev contribuiu significativamente para o ajuste fino da arquitetura:

“Implementamos outra solução para a aquitetura, utilizando um modelo com lógica de negócio e interfaz separadas. Além disso, Doukhvalov e Mezhuev criaram um administrador de tarefas capaz de controlar cada processo do produto e também a reciprocidade dos processos que era muito simples”, explica Nikolay Grebennikov, gestor do projeto do então KAV 6.0.

 

Leia também:

O antivírus que mudou a Kaspersky – Parte I

Regra de Seis – Parte III

Regra de Seis – Parte Final

Tradução: Berenice Taboada Díaz

 

Dicas