Atualizado com base nos comentários:
De que maneiras podemos distinguir um ser humano que realiza determinadas atividades on-line e um bot programado para realizar atividades semelhantes, como verificar e-mail, baixar alguns arquivos de música, fazer compras no ebay, pesquisar no Google etc. ou talvez tentar desfigurar / invadir um site , força bruta uma senha de login etc.
Para limitar o escopo da questão e torná-lo mais claro, vamos restringir nossas observações apenas ao comportamento orientado à rede, alguns exemplos sendo: a quantidade de tempo gasto com XYZ online, a quantidade / tipo de dados baixados (digamos) de um site de compartilhamento de arquivos, o número de amigos / seguidores em sites de mídia social etc.
Eu acho que deveria ser possível obter alguns 'padrões' que distinguirão o comportamento humano e o comportamento programado.
O teste de Turing não é o que estou procurando.
Que técnicas podem ser úteis aqui? Aprendizado de máquina? Teoria do jogo?
Referências a artigos acadêmicos / de pesquisa relevantes também serão boas.
Respostas:
A maneira mais comum / óbvia é um teste de desafio-resposta que é fácil para humanos, mas difícil para computadores (é claro, mas não apenas CAPTCHA ).
Esse tipo de teste é muito eficaz {1}, mas se enquadra na área HIP (Human Interactive Proofs): não é transparente.
As abordagens "simples" típicas para distinguir o tráfego de sites humanos do Bot são:
tempo necessário para preencher todos os campos e clicar no botão enviar de um formulário de entrada (frequentemente usado, mas simples de ignorar).
Observar a cadência / ritmo da comunicação é uma alternativa mais segura (esse é um dos recursos do No CAPTCHA reCAPTCHA do Google );
Deve-se considerar que características do bot exibem uma grande variabilidade para diferentes rastreadores / sites diferentes , portanto, é difícil derivar heurísticas determinísticas simples: sistemas baseados em regras implicam uma longa lista de regras estáticas que são difíceis de definir e manter (mesmo por especialistas) .
Técnicas de aprendizado de máquina são frequentemente usadas:
Quase todas as "ferramentas" de IA / ML disponíveis foram experimentadas . O principal problema do uso dessas ferramentas supervisionadas de aprendizado de máquina é rotular o conjunto de dados de treinamento.
Mesmo restringindo a análise ao comportamento orientado à rede, essa é uma questão de enorme alcance, por esse motivo estou dando algumas palavras-chave para pesquisas adicionais.
Notas
Palavras-chave
HIP (Human Interactive Proofs), CAPTCHA, dinâmica de pressionamento de tecla, cadência de pressionamento de tecla, dinâmica de digitação, IDS (Sistema de detecção de intrusão), honeypot, clique em fraude, spambot
Referências
fonte