Ao contrário da crença popular, o aprendizado de máquina não é uma invenção do século XXI. Nos últimos vinte anos, apenas plataformas de hardware suficientemente produtivas apareceram, de modo que é aconselhável usar redes neurais e outros modelos de aprendizado de máquina para resolver quaisquer problemas aplicados no dia a dia. As implementações de software de algoritmos e modelos também foram reforçadas.
A tentação de fabricar máquinas cuidando de nossa segurança e protegendo as pessoas (bastante preguiçosas, mas inteligentes) tornou-se grande demais. De acordo com a
CB Insights, quase 90 startups (2 delas com uma estimativa de mais de um bilhão de dólares) estão tentando automatizar pelo menos parte das tarefas rotineiras e monótonas. Com sucesso variável.

O principal problema da
inteligência artificial em segurança no momento é muito hype e besteiras de marketing francas. A frase "Inteligência Artificial" atrai investidores. As pessoas vêm para o setor que desejam chamar a IA de correlação mais simples de eventos. Os compradores de soluções para o seu próprio dinheiro não conseguem o que esperavam (mesmo que essas expectativas fossem inicialmente muito altas).

Como pode ser visto no mapa do CB Insights, existem dezenas de áreas em que o MO é usado. Mas o aprendizado de máquina ainda não se tornou a "pílula mágica" da segurança cibernética devido a várias sérias limitações.
A primeira limitação é a aplicabilidade restrita da funcionalidade de cada modelo em particular. Uma rede neural pode fazer uma coisa bem. Se reconhecer bem as imagens, a mesma rede não poderá reconhecer o áudio. O mesmo com a segurança da informação: se o modelo foi treinado para classificar eventos de sensores de rede e detectar ataques de computador a equipamentos de rede, ele não poderá trabalhar com dispositivos móveis, por exemplo. Se o cliente é um fã de IA, ele compra, compra e compra.
A segunda limitação é a falta de dados de treinamento. As soluções são pré-treinadas, mas não nos seus dados. Se a situação "Quem considera falso positivo nas duas primeiras semanas de operação" ainda puder ser aceita, no futuro haverá uma ligeira perplexidade do "pessoal de segurança", porque eles compraram uma solução para que a máquina seguisse a rotina e não vice-versa.

A terceira e provavelmente a coisa mais importante até agora é que os produtos MO não podem ser responsabilizados por suas decisões. Até o desenvolvedor de um “meio único de proteção com inteligência artificial” pode responder a essas afirmações: “Bem, o que você queria? Uma rede neural é uma caixa preta! Por que ela decidiu dessa maneira, ninguém além dela sabe. Portanto, as pessoas agora confirmam incidentes de segurança da informação. Máquinas ajudam, mas as pessoas ainda são responsáveis.
Há problemas com a proteção da informação. Eles serão resolvidos mais cedo ou mais tarde. Mas e o ataque? MO e AI podem se tornar a "bala de prata" dos ataques cibernéticos?
Opções para usar o aprendizado de máquina para aumentar a probabilidade de sucesso ou análise de segurança
Provavelmente, agora é mais rentável usar MO onde:
- você precisa criar algo semelhante ao que a rede neural já encontrou;
- é necessário identificar padrões que não são óbvios para o homem.
O MO já está indo muito bem com essas tarefas. Além disso, algumas tarefas podem ser aceleradas. Por exemplo, meus colegas já escreveram sobre
automação de ataques usando python e metasploit .
Tentando enganar
Ou verifique o conhecimento dos funcionários sobre questões de segurança da informação. Como mostra nossa prática de teste de penetração, a engenharia social funciona - em quase todos os projetos em que esse ataque foi realizado, tivemos sucesso.
Suponha que já tenhamos restaurado usando métodos tradicionais (site da empresa, redes sociais, locais de trabalho, publicações etc.):
- estrutura organizacional;
- lista de funcionários-chave;
- Padrões de endereço de email ou endereços reais
- telefonou, fingiu ser um cliente em potencial, descobriu o nome do vendedor, gerente, secretário.
Em seguida, precisamos obter dados para treinar uma rede neural que imite a voz de uma pessoa em particular. No nosso caso, alguém da gerência da empresa testada. Este
artigo afirma que um minuto de voz é suficiente para fingir autenticamente.
Estamos procurando gravações de discursos em conferências, vamos a eles mesmos e gravamos, tentamos conversar com a pessoa de que precisamos. Se conseguirmos imitar uma voz, podemos criar uma situação estressante para uma vítima específica do ataque.
Olá?
- Vendedor Preseylovich, olá. Este é o diretor Nachalnikovich. O seu celular não está respondendo. Agora você receberá uma carta da Vector-Fake LLC, consulte. Isso é urgente!
"Sim, mas ..."
- É isso, eu não posso mais falar. Eu estou em uma reunião. Antes da comunicação. Responda a eles!
Quem não responderá? Quem não verá o anexo? Todo mundo vai ver. E você pode carregar qualquer coisa nesta carta. Ao mesmo tempo, não é necessário saber o número de telefone do diretor ou o número de telefone pessoal do vendedor; não há necessidade de falsificar um endereço de email em um endereço corporativo interno do qual um email malicioso será enviado.
A propósito, a preparação de ataques (coleta e análise de dados) também pode ser parcialmente automatizada. Agora, estamos procurando um
desenvolvedor em uma equipe que resolva esse problema e crie um pacote de software que facilite a vida de um analista no campo da inteligência competitiva e segurança econômica de uma empresa.
Atacamos a implementação de sistemas de criptografia
Suponha que possamos ouvir o tráfego criptografado da organização atacada. Mas gostaríamos de saber o que exatamente nesse tráfego. Esta pesquisa de funcionários da Cisco “
Detectando código malicioso no tráfego TLS criptografado (sem descriptografia) ” surgiu com a idéia. De fato, se podemos determinar a presença de objetos maliciosos com base nos dados dos dados do serviço NetFlow, TLS e DNS, o que nos impede de usar os mesmos dados para identificar as comunicações entre os funcionários da organização atacada e entre os funcionários e os serviços corporativos de TI?
Atacar uma cripta na testa é mais caro. Portanto, usando dados nos endereços e portas da origem e destino, o número de pacotes transmitidos e seu tamanho, parâmetros de tempo, tentamos determinar o tráfego criptografado.
Além disso, tendo determinado gateways criptográficos ou nós finais no caso das comunicações p2p, começamos a concluí-los, forçando os usuários a mudar para métodos de comunicação menos seguros e fáceis de atacar.
O charme do método consiste em duas vantagens:
- A máquina pode ser treinada em casa, no virtualochki. Existem muitos produtos gratuitos e até de código aberto para criar comunicações seguras. “Máquina, esse é esse e aquele protocolo, tem tamanho de pacote, de entropia. Você entendeu? Lembra? Repita quantas vezes for possível em diferentes tipos de dados abertos.
- Não há necessidade de "dirigir" e passar pelo modelo todo o tráfego, apenas metadados são suficientes.
Desvantagem - o MitM ainda precisa ser recebido.
Procurando por bugs e vulnerabilidades de software
Provavelmente, a tentativa mais famosa de automatizar a busca, exploração e correção de vulnerabilidades é o DARPA Cyber Grand Challenge. Em 2016, sete sistemas totalmente automáticos projetados por equipes diferentes se uniram na batalha final do tipo CTF. Obviamente, o objetivo do desenvolvimento foi declarado exclusivamente bom - proteger infraestruturas, muito, aplicativos em tempo real e com participação mínima de pessoas. Mas você pode ver os resultados de um ângulo diferente.
A primeira direção na qual o MO está se desenvolvendo nesse assunto é a automação confusa. Os mesmos membros do CGC fizeram uso extensivo do american fuzzy lop. Dependendo da configuração, os difusores geram mais ou menos saída durante a operação. Onde existem muitos dados estruturados e pouco estruturados, os modelos MO procuram padrões perfeitamente. Se a tentativa de "descartar" o aplicativo funcionou com alguma entrada, há uma chance de que essa abordagem funcione em outro lugar.
O mesmo acontece com a análise de código estático e a análise dinâmica de arquivos executáveis quando o código-fonte do aplicativo não está disponível. As redes neurais podem procurar não apenas trechos de código com vulnerabilidades, mas também códigos que pareçam vulneráveis. Felizmente, há muito código com vulnerabilidades confirmadas (e corrigidas). O pesquisador terá que verificar essa suspeita. Com cada novo bug encontrado, esse NS se tornará cada vez mais "inteligente". Graças a essa abordagem, você pode deixar de usar apenas assinaturas pré-escritas.
Na análise dinâmica, se uma rede neural pode "entender" o relacionamento entre os dados de entrada (incluindo dados do usuário), ordem de execução, chamadas do sistema, alocação de memória e vulnerabilidades confirmadas, poderá, eventualmente, procurar novas.
Automatizar operação
Agora, com operação puramente automática, há um problema -

Isao Takaesu e os outros colaboradores que desenvolvem o Deep Exploit, “Ferramenta de teste de penetração totalmente automática usando o Machine Learning”, estão tentando resolvê-lo. Detalhes sobre ele estão escritos
aqui e
aqui .
Esta solução pode funcionar em dois modos - modo de coleta de dados e modo de força bruta.
No primeiro modo, o DE identifica todas as portas abertas no host atacado e inicia explorações que funcionavam anteriormente para essa combinação.
No segundo modo, o invasor indica o nome do produto e o número da porta, e a DE "atinge por área" usando todas as combinações disponíveis de exploração, carga útil e destino.

O Deep Exploit pode aprender métodos operacionais de forma independente usando treinamento reforçado (graças ao feedback que a DE recebe do sistema que está sendo atacado).
A IA pode substituir a equipe Pentester agora?
Provavelmente ainda
não .
As máquinas têm problemas com a criação de cadeias lógicas de exploração das vulnerabilidades identificadas. Mas é exatamente isso que afeta diretamente a consecução do objetivo do teste de penetração. Uma máquina pode encontrar uma vulnerabilidade, pode até criar uma exploração por conta própria, mas não pode avaliar o grau de impacto dessa vulnerabilidade em um sistema de informações específico, recursos de informação ou processos de negócios da organização como um todo.
A operação de sistemas automatizados gera muito ruído no sistema atacado, o que é facilmente percebido pelo equipamento de proteção. Os carros funcionam desajeitadamente. É possível reduzir esse ruído e ter uma idéia do sistema com a ajuda da engenharia social, e com isso as máquinas também não são muito boas.
E os carros não têm engenho nem senso. Recentemente, tivemos um projeto em que a maneira mais econômica de realizar testes seria usar um modelo controlado por rádio. Não consigo imaginar como uma não-pessoa poderia pensar em algo assim.
Que idéias para automação você poderia oferecer?