Saiba como monitorar em tempo real ataques coordenados no Twitter
Uso de robôs têm sido
comuns para atacar jornalistas e instituições; este tutorial ensina como
detectar essas agressões virtuais.
Analisando mensagens com o BotSlayer
BotSlayer: da instalação à primeira busca
Configurando o BotSlayer
Inserindo chaves da API do Twitter
Fazendo sua primeira busca
Foto: Pixabay |
05/04/2020
Tutorial
escrito com apoio do jornalista Adriano Belisário, coordenador da Escola de Dados no Brasil.
Em um dos casos recentes de ataques virtuais à imprensa
brasileira, a jornalista Patrícia Campos Mello (Folha de S. Paulo) voltou a ser
alvo de ofensas machistas e misóginas nas redes sociais, em
11.fev.2020. Milhares de contas nas redes sociais disseminaram mensagens
ofensivas logo após um depoimento na Comissão Parlamentar Mista de Inquérito
das Fake News, levantando suspeitas de ações orquestradas com o uso de robôs no
Twitter.
Uma ótima ferramenta para investigar ações de ataques
coordenados nesta rede social é o BotSlayer,
que se encontra em fase beta na Universidade de Indiana (EUA) e serve
para rastrear e detectar possíveis manipulações de informações no Twitter. O
programa usa um algoritmo de detecção de anomalias e cria um índice para
sinalizar hashtags, links, contas e mídias com alta probabilidade
de terem sido impulsionadas na rede social de forma coordenada, com a ajuda de bots.
Filippo Menczer, professor de Informática e Ciência da
Computação e diretor do Observatório de Mídias Sociais, explica que o BotSlayer
usa um novo algoritmo chamado BotometerLite para calcular uma pontuação (entre
0 e 5) com base na probabilidade de uma conta ser um bot. Seu
funcionamento é descrito em detalhes neste artigo (em
inglês) publicado no final do ano passado.
O grande diferencial é contornar alguns dos maiores
problemas para detectar robôs: a possibilidade de aumentar a escala para
analisar mais conteúdos e a capacidade de “generalização” do modelo, ou seja,
seu correto funcionamento em contextos diferentes.
Ao invés de considerar as ações e conexões dos usuários,
o BotSlayer leva em conta apenas as informações de seu perfil, que podem ser
facilmente acessadas em massa. "Isso permite que cada tweet capturado pelo
BotSlayer seja verificado em tempo real", explicou Menczer, em entrevista à Abraji e à Escola de Dados.
O BotSlayer é gratuito e foi desenvolvido pelo
Observatório de Mídias Sociais da Universidade de Indiana (EUA), o mesmo grupo
que no passado fez outras ferramentas, como o Botometer e
o Hoaxy. O
primeiro checa a atividade de uma conta no Twitter e dá uma nota baseada na
probabilidade do usuário em questão ser um robô, enquanto o Hoaxy permite
visualizar como os fluxos de informação se espalham em redes de usuários.
O programa pode ser instalado tanto localmente, na
máquina de cada usuário, como na nuvem. Porém, como seu objetivo maior é
realizar análises em tempo real e 8 horas é o tempo mínimo de funcionamento
para o melhor aproveitamento de suas métricas, é recomendável a instalação do
software em um servidor. Um painel acessível pelo navegador permite que os
usuários explorem os tweets e contas associados a campanhas suspeitas,
visualizem sua propagação com o Hoaxy e pesquisem conteúdos relacionados na
web.
Modelo da tela do BotSlayer. Foto: reprodução |
O BotSlayer foi projetado como uma plataforma de crowdsourcing:
em troca do serviço gratuito, o sistema fornece dados anônimos de volta ao
laboratório para pesquisa, de maneira compatível com os termos e diretrizes do
Twitter. Os dados ajudarão no estudo e na detecção precoce de fenômenos de
manipulação de mídia social. O projeto é apoiado pela Craig Newmark
Philanthropies.
A Abraji e a Escola de Dados traduziram e
complementaram o tutorial fornecido pela Universidade de Indiana.
Confira abaixo como instalar o BotSlayer no seu próprio computador, desde que
você tenha o software Docker, ou em um servidor da Amazon. Todo o tutorial do
BotSlayer pode ser encontrado neste vídeo (em inglês) também.
Analisando mensagens com o BotSlayer
Abaixo, vamos ensinar como instalar o BotSlayer e
configurá-lo. Antes disso, porém, vejamos as métricas e principais resultados
que o programa nos oferece, quando em funcionamento. Tudo começa com a
definição de termos de buscas iniciais, que serão coletadas de forma contínua a
partir do momento da configuração inicial.
Segundo Diogo Pacheco, pesquisador envolvido no projeto,
o sistema não armazena mensagens retrospectivamente e a API do Twitter não
retorna mais que 1% do volume total de mensagens na plataforma em um certo
período.
Isto exige um cuidado na hora de escolher os termos de
busca: se eles forem bem específicos, você provavelmente conseguirá coletar
todas as mensagens relativas àquele assunto. Já se forem demasiadamente
genéricos, é possível que nem todos sejam coletados, por conta da limitação da
API do Twitter.
Depois de coletadas as mensagens, o BotSlayer identifica
as entidades envolvidas em cada uma delas. Entidades podem ser hashtags,
links, imagens ou vídeos, usuários do Twitter e frases textuais. O
funcionamento desta última em português ainda não é perfeito, pois o sistema
remove automaticamente palavras e expressões comuns (“stopwords”) apenas em
inglês, de modo que muitas frases textuais identificadas como entidades pelo
BotSlayer são palavras comuns do nosso vocabulário.
Depois de extrair as entidades, o BotSlayer as exibe em
um painel com as métricas abaixo para cada uma delas:
Tweets: o número de tweets e
retweets que correspondem à consulta inicial e contêm essa entidade nas últimas
quatro horas;
Accounts: o número de
contas distintas que postaram mensagens que correspondem à consulta nas últimas
quatro horas;
Trendiness: alteração
relativa no número de tweets que correspondem à consulta e contêm essa entidade
nas últimas quatro horas, em comparação com as quatro horas anteriores;
Botness: média do
índice que mede a probabilidade de dado usuário ser um bot, entre os
tweets de que contêm essa entidade nas últimas quatro horas;
BS Level: este índice,
mencionado no início do texto, leva em consideração os números anteriores para
chegar a uma nota entre 0 e 1. Quanto maior o índice, mais provável desta
“entidade” ter a participação de robôs em sua propagação online. Ele é
determinado de forma relativa, considerando cada conjunto de dados, e não
através de uma escala absoluta. Por isso, a comparação do “BS Level” entre datasets
diferentes não é recomendada. Segundo seus desenvolvedores, a definição do que
é um BS Level alto deve ser feita caso a caso.
Vale reforçar o fato de que o BotSlayer não coleta
mensagens retrospectivamente. Ou seja, é preciso deixar o programa rodando por
pelo menos 8h sem interrupções para levar em conta o índice de Trendiness, por
exemplo. Todos estes dados podem ser exportados para o formato CSV diretamente
do painel web do programa.
O professor Filippo Menczer pondera, no entanto, que o
BotSlayer não faz uma avaliação definitiva sobre robôs ou ações orquestradas de
ataque. A ferramenta apenas seleciona vários usuários com indícios fortes, mas
cabe ao usuário fazer avaliações finais, analisando os próprios dados e com o
uso de outras ferramentas gratuitas, como o Hoaxy, do próprio
Observatório.
"Não tentamos classificar uma entidade como
orquestrada/coordenada ou não. O BS Level tenta classificar as entidades que
podem ser suspeitas devido a uma combinação de fatores, mas você pode examinar
como uma entidade específica está se espalhando usando também outras
ferramentas, como o Hoaxy, para chegar a seu próprio julgamento sobre se existe
ou não uma campanha de manipulação coordenada”, explica.
BotSlayer: da instalação à primeira busca
Primeiro, para usar o BotSlayer é preciso preencher
este formulário.
Você também deve estar conectado a uma conta do Google para verificar sua
identidade e concordar com o EULA (End User License Agreement). Você
receberá os detalhes necessários para seguir as instruções de instalação abaixo
no texto. Anote a "Secret string", a "URL", e a
"Password" que serão geradas após preencher o formulário: você precisará
delas para fazer o download.
Confira as diferentes instruções de instalação:
Para usuários Docker
O BotSlayer pode ser instalado em qualquer computador por
meio de uma imagem pré-construída no Docker. Para instalá-lo na sua máquina,
siga as instruções no site do Docker.
Depois de solicitar o software e concordar com os termos
de uso, você deverá receber um URL vinculado a uma imagem do Docker e uma
senha. Faça o download do arquivo de imagem. Você precisará inserir um nome de
usuário (botslayer) e a senha fornecida.
Você também pode usar o seguinte comando para baixar a
imagem do Docker diretamente do terminal (substitua url2image pelo URL que você
recebeu):
wget --user = botslayer
--ask-password url2image
Em seguida, execute no terminal os seguintes comandos
para carregar a imagem baixada e execute o contêiner do Docker. Substitua o
nome do arquivo pelo nome do arquivo baixado.
gunzip filename.gz
docker load < filename
docker volume create pgdata
docker volume create rpdata
docker run -dit -p 5000:5000 -p 9001:9001 -v rpdata:/root/bev -v pgdata:/var/lib/postgresql/data bev
docker load < filename
docker volume create pgdata
docker volume create rpdata
docker run -dit -p 5000:5000 -p 9001:9001 -v rpdata:/root/bev -v pgdata:/var/lib/postgresql/data bev
O último comando mapeia portas que fornecem
funcionalidades diferentes. As interfaces estão disponíveis no “localhost” ou
no endereço IP do seu servidor. O painel do BotSlayer está na porta 5000. A
interface com os log é exposta na porta 9001, transmitindo arquivos de dentro
do contêiner sobre o funcionamento do sistema.
Para um acesso mais fácil ao painel na porta HTTP padrão
(80), você pode: (1) configurar um proxy reverso da porta 5000 à porta 80 ou
(2) usar o sudo para forçar a porta 5000 do mapa à porta 80 ao executar o docker
recipiente.
Se o computador reiniciar por qualquer motivo, você
precisará reiniciar o contêiner BotSlayer no Docker. Uma solução alternativa é
configurar algum gerenciador de processos, como o supervisord.
Se você quiser ver um exemplo de código de configuração
em ambiente EC2, que inclui a instalação do Docker, a instalação do proxy
reverso no nginx e a configuração da supervisão, consulte esta página (em inglês) para obter as etapas
da instalação.
Com o uso do Amazon Web Services
O BotSlayer usa o Amazon Web Services (AWS) por
meio de uma Amazon Machine Image (AMI) para otimizar o processo de
instalação para usuários não técnicos.
Etapa 1: Acesse a AWS. Se você não possui uma
conta, precisará criar uma. Isso é gratuito, mas requer um cartão de crédito
para cadastro. ATENÇÃO: Você pode selecionar o nível gratuito depois quando
escolher seu plano, mas o cadastro deve cobrar US$ 1.
Faça o login no console. No AWS Management Console
(Console de gerenciamento da AWS), clique em “Serviços AWS”, depois você irá
ver o menu “Computação” e clique em “EC2”.
Etapa 2: Clique no
botão para iniciar uma instância do EC2. Clique em “Launch instance”.
Etapa 3: Depois de
solicitar o software e concordar com o EULA, você deverá receber instruções que
incluem uma longa cadeia secreta como “0e ... f2”. É o item "Secret
string" que você recebeu após preencher o formulário do BotSlayer.
Copie isso na caixa de pesquisa na parte superior
(aparece como ‘Search for AMI by entering a search term”). Clique na guia
"Community AMIs".
Selecione o resultado em AMIs da comunidade. Se a
pesquisa não retornar nada, defina sua região de serviço da AWS como Ohio no
canto superior direito da página e pesquise novamente.
Etapa 4: Selecione a
imagem correta. Deve ser a imagem de um pinguim (o símbolo do Linux). Pressione
Select.
Etapa 5: Na nova tela (Choose
an Instance Type) você pode selecionar o tipo de instância marcado como
"nível gratuito qualificado" (Free tier eligible).
Como alternativa, você pode selecionar o
"t2.xlarge", recomendado pelo Observatório de Mídias Sociais, mas não
gratuito; pode custar cerca de US$ 0,20/hora. Clique em "Configurar
detalhes da instância" (Next:Configure Instance Details) no canto inferior
direito para continuar. A Abraji usou a versão gratuita.
Etapa 6: Use as
configurações padrão na página "Configurar detalhes da instância"
(Configure Instance Details) e clique diretamente em "Adicionar
armazenamento" (Next: Add Storage) na parte inferior direita para
prosseguir.
Etapa 7: Escolha o tamanho
do seu disco rígido. Você pode selecionar até 30 GB para o nível gratuito; o
Observatório de Mídias Sociais recomenda 100 GB ou mais para manter os dados
além de vários dias, dependendo da quantidade de informações que você rastrear.
Clique em "Adicionar tags" (Next: Add Tags) no canto inferior direito
para continuar.
Etapa 8: Use as
configurações padrão na página "Adicionar tags" e clique diretamente
em "Configurar grupo de segurança" (Next: Configure Security Group)
para continuar.
Etapa 9: Adicione duas
regras para abrir as portas exigidas pelo BotSlayer.
Clique em Add Rule – escolha “HTTP” em Type
– “TCP” em Protocol – “80” em Port Range – “Custom” e
“0.0.0.0/0, ::/0” em Source
Clique mais uma vez em Add Rule – escolha “Custom
TCP Rule” em Type – “TCP” em Protocol – “9001” em Port
Range – “Custom” e “0.0.0.0/0, ::/0” em Source
Clique em "Revisar e iniciar" (Review and
Launch) no canto inferior direito para continuar.
Etapa 10: Revise
cuidadosamente a configuração da máquina. Se você encontrar algum erro, poderá
voltar para corrigi-lo. Caso contrário, clique em "Iniciar" (Launch)
no canto inferior direito para continuar.
Etapa 11: Crie um novo par de
chaves (Create a new key pair) e atribua um nome significativo, como
“procura_bot_brasil” ou outro de sua preferência. Este par de chaves é
necessário para acessar a máquina EC2. Faça o download do par de chaves (Download
Key Pair) e mantenha-o em um ambiente seguro. Em seguida, inicie a
instância (Launch Instances).
Etapa 12: Você terminou de
configurar o BotSlayer, então clique no link da instância para ir para a Etapa
13. Clique no link após a frase: “The following instance launches have been initiated:”.
Etapa 13: Copie o nome do
domínio ou o endereço IP e cole-o no seu navegador para acessar a interface web
do BotSlayer. Em Instance State deve aparecer “running”.
Você pode encontrar o endereço em “IPv4 Public IP”. Algo
como “18.XXX.XXX.XX”, sendo que no lugar dos Xs existirão números.
Aguarde 5 minutos para que a máquina tenha tempo
suficiente para iniciar o BotSlayer.
Marque o endereço IP como favorito, pois é assim que você
acessará o painel do BotSlayer. Nota: se você reiniciar a instância do EC2, o
endereço IP será alterado. Para atribuir um endereço IP estático, você pode
usar um Endereço IP Elástico (não gratuito).
Configurando o BotSlayer
Depois de instalar o BotSlayer e acessar o painel da Web,
clique em "Config" no menu, digite a senha de sua escolha e forneça
as chaves do aplicativo de desenvolvedor do Twitter e uma consulta permanente
(veja abaixo mais detalhes em “Seu primeiro raspador”). Consulte a página de
Ajuda (Help) para obter mais instruções, dicas sobre as chaves do Twitter e o
formato da consulta.
Atenção:
O painel é acessível via Web usando o endereço IP do
servidor. Caso você esteja utilizando um servidor na nuvem, não compartilhe a
URL com alguém de fora da sua organização ou pessoas em que você não confia.
Eles podem fazer alterações no sistema ou acessar dados em violação dos termos
de serviço do Twitter. Para evitar possíveis problemas de segurança e violação
de termos, o BotSlayer bloqueia a indexação do mecanismo de pesquisa por
padrão.
Coloque no browser o endereço do BotSlayer que você pegou
no seu “IPv4 Public IP”. Clique em Config. É o momento que você escolhe uma
senha para seu BotSlayer e depois clique em Change Password. E depois é
preciso se logar com a senha que acabou de escolher.
Inserindo chaves da API do Twitter
Agora, chega o momento em que você precisa colocar suas
identificações de desenvolvedor no Twitter para continuar. Para conseguir essas
chaves você deve ir até o site desta rede social e se logar com seu usuário e senha no Twitter.
Clique no botão “Apps” e na próxima tela “Create an App”.
Se for a primeira vez, você pode ter que preencher um questionário longo sobre
os motivos do app e seus dados básicos.
Após isso você precisa colocar em “App details” o “App name”,
depois a descrição em “Application description”, o “Website URL” e “Callback
URLs” do seu projeto (por exemplo, no nosso caso, http://www.abraji.org.br), e
escrever “Diga-nos como este aplicativo será usado” (Tell us how this app
will be used). O Twitter pode levar algum tempo para aprovar o App depois
disso.
Uma vez criado, vá até a aba Key and tokens.
Clique nos dois botões Regenerate. Na tela que abre clique Copy
para Access token, dê Ctrl+C no bloco de notas, depois Copy para Access
token secret e dê Ctrl+C no bloco de notas. E também copie os valores de
API key. Guarde estas chaves.
De volta à tela do BotSlayer, copie em Consumer Key
o conteúdo de API key, depois em Consumer Secret copie API secret key,
depois em Access Token copie o valor de Access token e, por fim, em Access
Token Secret o valor de Access token secret. Clique em “Save”.
Fazendo sua primeira busca
Agora, no campo “Track” você pode escolher o que deseja
vasculhar: palavras, nomes, hashtags, usuários do Twitter e até localizações.
Durante o episódio envolvendo a Patrícia Campos Mello, por exemplo, a busca foi
feita com diversas hashtags e palavras-chave que foram utilizadas naquela
ocasião nas redes sociais, tais como: @camposmello, #somostodoshansriver,
#hansriver, @folha, #zapgate, @bolsonarosp e “CPMI das Fake News” (alguns
textos e hashtags que envolvem xingamentos foram retirados deste texto para não
impulsionar ainda mais estes termos, porém são usados nas postagens e devem
portanto serem considerados durante as pesquisas com o Botslayer).
Clique em Save de novo para salvar os parâmetros
de buscas. Também é possível escolher itens em Follow (delimitar
usuários específicos para seguir) e Location (locais dos tweets). Depois
clique em Data e aguarde um pouco.
O BotSlayer começará a coletar mensagens deste momento.
Depois de algum tempo, aperte Refresh para ver os resultados e as
métricas da ferramenta.
Modelo da visualização de dados no programa. Foto: reprodução |
Além de conferir as métricas comentadas acima, também é
possível alterar as datas de busca em “Time Warp” e filtrar a tabela apenas por
termos específicos. Também podem ser criadas visualizações dos dados com outro
projeto do Observatório de Mídias Sociais, o Hoaxy. Por fim, na aba
"Research" é possível ver timeline dos dados e os resultados das
buscas encontrados no Twitter, Google, 4chan, Facebook, Reddit e YouTube.
No momento, não é possível obter mais informações sobre a
quantidade total de mensagens coletadas ou ter acesso aos conteúdos baixados
através da interface gráfica. Para isso, é preciso acessar o banco de dados,
que provê os dados para o BotSlayer.
Em um ambiente Docker, isto pode ser feito através do
comando abaixo:
sudo docker exec -it psql
-U bev -h localhost -p 5432
Para mais informações sobre a arquitetura de software do
BotSlayer, consulte esta página no Github.
Nenhum comentário