Uma das premissas para se defender de ameaças é conhecer e mapear os vetores de ataque aos quais se está vulnerável.
Conhecendo determinado viés malicioso, é possível se prevenir contra ele, seja por monitoração ativa ou por meio de bloqueios estáticos e dinâmicos.
Uma forma de mapear ataques é através do uso de indicadores de comprometimento (indicators of compromise, ou IOCs).
No entanto, a assertividade no uso desses indicadores tem se tornado algo capcioso hoje em dia, uma vez que eles dependem, no geral, de uma detecção prévia por alguma fonte de segurança ou algum tipo de contextualização.
Podemos dizer que isso é funcional, porém nem sempre é efetivo, já que a manutenção desses IOCs depende de infraestrutura para armazenamento e constante atualização para garantir sua integridade e reduzir o número de falsos positivos, que eventualmente existirão.
Aprendizado de máquina
Uma abordagem eficiente para essa questão em segurança da informação é o uso de aprendizado de máquina (machine learning) com a aplicação de processamento de linguagem natural (Natural Language Processing, ou NLP).
Isso viabiliza uma mecânica para a identificação de domínios que usam o algoritmo de geração de domínio (Domain Generation Algorithm, ou DGA), na geração de seus nomes e que, potencialmente, estejam relacionados a alguma atividade suspeita ou não habitual/permitida no contexto de um determinado ambiente.
Vale ressaltar, que DGA é uma rotina para a geração pseudoaleatória de nomes de domínio.
No contexto de um malware, a possibilidade de geração desses domínios em tempo de execução permite a mudança e atualização nos destinos das conexões realizadas entre o malware e seus servidores de comando e controle (C&C servers), sem a necessidade do malware tê-los previamente gravados em seu código.
Velocidade de análise
Dentre as vantagens no uso da abordagem machine learning e NLP nesse processo, destacam-se a velocidade na análise desses elementos e a não necessidade de infraestrutura externa ou interna para suportar elementos de contextualização.
O pilar de efetividade desse tipo de algoritmo se dá no enriquecimento de suas funcionalidades (itens usados no treinamento e que tornam o algoritmo mais inteligente).
Com o treinamento de um maior número desses itens característicos que sejam aplicáveis à um determinado perfil (exemplos: quantificação de caracteres, lexicografia, incidência de domínios, e assim por diante) e com o correto treinamento de domínios autorizados, a assertividade do algoritmo vai sempre se manter alta, independente da diversidade dos domínios testados.
Camada adicional
É importante frisar que, apesar de ter como o intuito explorar o poder da NLP e machine learning na aplicação em segurança da informação atingindo um problema existente com um prisma diferente, a abordagem aqui descrita não exclui o uso de outras soluções existentes na classificação de tráfego para destinos maliciosos.
Ela deve ser vista, acima de tudo, como uma camada adicional de inteligência para o layout de segurança, o que mostra, felizmente, que outros caminhos vêm sendo delineados para incrementar a segurança dos sistemas – e que ainda temos muito a explorar.
- Fabiano Barreira é consultor de Segurança da Informação da Cipher