Criando um Bot de Exploits e Notificações de Segurança no Telegram
Introdução
Desenvolver um bot no Telegram não apenas aprimora suas habilidades em desenvolvimento de software, mas também pode ser uma maneira eficaz de aprofundar seus conhecimentos em segurança da informação. Neste artigo, vou compartilhar a minha jornada na criação de um bot que busca exploits e envia notificações sobre vulnerabilidades de segurança, e como esse projeto me ajudou a crescer como profissional de segurança.
Por que criar um bot de exploits?
Sou o tipo de pessoa que aprende melhor colocando a mão na massa. Sempre tive dificuldade em entender como os exploits funcionam apenas lendo documentação - queria ver na prática como são reportados, implementados e corrigidos. Você pode se perguntar: “Por que não simplesmente pesquisar no Google ou perguntar para o ChatGPT?”. Bem, onde está a graça nisso?
Foi assim que surgiu a ideia de desenvolver uma ferramenta que não apenas facilitasse o acesso a informações sobre vulnerabilidades, mas também me ajudasse a entender melhor todo o ecossistema de segurança. E qual seria a melhor maneira de aprender que não seja criando algo útil?
O que o bot faz?
- /exploit
<CVE-ID>
<LANGUAGE>
: Pesquisa detalhes de uma vulnerabilidade específica por ID, incluindo descrição e referências.<CVE-ID>
é obrigatório.<LANGUAGE>
é opcional (padrão é inglês).
- /recent
<LANGUAGE>
: Retorna uma lista das vulnerabilidades mais recentes disponíveis.<LANGUAGE>
é opcional (padrão é inglês).
- /start: Exibe uma mensagem de boas-vindas e instruções de uso.
Talvez so de olhar o que o bot pode fazer, você já tenha percebido o porquê de eu ter escolhido faze-lo. Além de ser obrigado a entender como os exploits são reportados, corrigidos e divulgados, eu também tive que aprender a trabalhar com uma API de segurança, que consulta informações de vulnerabilidades de bases como a CVE Details ou CIRCL (Computer Incident Response Center Luxembourg), aprimorar minhas habilidades em Python e entender melhor como o Telegram funciona, como fazer traduções usando API do google Gratuitamente etc.
Vamos ao código
Para criar o bot, utilizei a biblioteca python-telegram-bot
, que facilita a interação com a API do Telegram. Aqui está um trecho do código que lida com a pesquisa de exploits por ID:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# src/commands/entry_points.py
async def exploit(update: Update, context: CallbackContext):
translator = Translator()
if context.args:
language = context.args[1] if len(context.args) > 1 else "en"
vuln_id = context.args[0]
logging.info(
f"Searching for exploit information for {vuln_id}, language: {language}"
)
info = "Searching for exploit information"
if language != "en":
translated_info = translator.translate(info, dest=language).text
await update.message.reply_text(f"🔍 {translated_info} ...")
else:
await update.message.reply_text(f"🔍 {info} ...")
result = await search_exploit(vuln_id, language)
logging.info(f"Search result: {result}")
await update.message.reply_text(result, parse_mode=ParseMode.HTML)
else:
logging.warning("No vulnerability ID provided.")
error_msg = "Please provide a vulnerability ID (eg: /exploit CVE-2021-34527)."
if language != "en":
translated_result = translator.translate(error_msg, dest=language).text
await update.message.reply_text(f"❌ {translated_result}")
else:
await update.message.reply_text(f"❌ {error_msg}")
Neste trecho, o bot recebe um comando /exploit
seguido de um identificador CVE e, opcionalmente, um idioma. Ele então chama a função search_exploit
para buscar informações sobre a vulnerabilidade e retorna os resultados ao usuário.
Como executar o bot
Leia o README.md do projeto para saber mais detalhes de como executar o bot. Basicamente você precisa de um token do Telegram. Você pode obter um token criando um novo bot no BotFather e seguindo as instruções.
Como o Projeto Melhorou Minhas Habilidades em Segurança
O desenvolvimento deste bot trouxe uma série de benefícios para minhas skills em Segurança da Informação:
Aprimoramento em Monitoramento de Vulnerabilidades: Ao usar o bot para verificar as vulnerabilidades mais recentes, fiquei mais familiarizado com a dinâmica dos sistemas de monitoramento. Isso é crucial para antecipar possíveis falhas em sistemas de produção.
Conhecimento de Exploits e CVEs: Trabalhar diretamente com a API de CVEs me deu um conhecimento mais profundo sobre como essas vulnerabilidades são categorizadas e publicadas. Isso me permite estar mais atento a vulnerabilidades críticas e seus respectivos patches.
Automatização de Tarefas de Segurança: O bot me ajudou a entender a importância de automatizar notificações e respostas a incidentes, algo essencial para um profissional de segurança que lida com um fluxo constante de novas ameaças.
Conclusão
Esse projeto foi uma excelente maneira de combinar meu interesse por desenvolvimento e segurança da informação. Criar um bot que interage com APIs de segurança, envia notificações e facilita a consulta de vulnerabilidades me ajudou a compreender melhor como ferramentas automatizadas podem ser utilizadas para manter sistemas seguros e atualizados. Se você está em busca de melhorar suas habilidades em segurança da informação, recomendo trabalhar em projetos práticos como este, que não só testam suas habilidades de programação, mas também aumentam sua familiaridade com o ecossistema de segurança.
Próximos Passos
- Notificações automáticas: Enviar alertas quando novas vulnerabilidades críticas forem encontradas.
- Integração com mais bancos de dados de exploits: Tornar o bot mais robusto ao buscar informações de várias fontes.
- Filtros avançados de CVE: Permitir que os usuários filtrem vulnerabilidades por categorias, como sistemas operacionais ou gravidade.
Você pode encontrar o código completo do bot no nosso repositório do GitHub. Pull requests são bem-vindos!