
Ferramenta de Descoberta de Superfície de Ataque construída em uma abordagem de microsserviços, utilizando multithreading para indexação rápida de ativos em escala da internet.
Contexto do Projeto: Este projeto serve como uma peça de portfólio demonstrando conceitos em segurança ofensiva, concorrência e arquitetura distribuída.
Durante meus primeiros dias me aventurando no mundo da segurança ofensiva, sempre fui fascinado por como grandes mecanismos de busca como Shodan indexavam informações de milhões de dispositivos. Esse conceito não saía da minha cabeça; eu precisava entender a engenharia por trás disso simulando-o eu mesmo.
Kimi é o resultado dessa curiosidade. É um scanner de reconhecimento contínuo projetado para priorizar a análise da exposição da superfície de ataque externa. Ele realiza varreduras em larga escala, orientadas a portas, para coletar informações de serviços conectados à Internet.
Meu objetivo era criar uma arquitetura eficiente: a implementação de threads e filas foi projetada para maximizar o desempenho por ciclo de varredura, reduzindo significativamente o tempo de execução para faixas IP massivas.
Kimi serve como uma prova de conceito em áreas críticas:
Concorrência: Uso de Threads e Filas em Python para orquestrar até ≈500 operações simultâneas de I/O de rede.
Arquitetura Desacoplada: Projeto de um sistema distribuído (Engine → API → DB), separando a execução da varredura da persistência de dados.
Redes: Programação de sockets de baixo nível para handshakes TCP/UDP e gerenciamento preciso de timeout.
Bancos de Dados NoSQL: Implementação do MongoDB para armazenar resultados de varreduras, que são inerentemente variáveis e não estruturados.
Revisitar Kimi hoje me permite aplicar uma perspectiva moderna de engenharia e ética ao meu trabalho inicial:
Evolução Técnica: O maior desafio foi dominar threading em Python. Hoje, reconheço que a solução mais escalável seria migrar o Engine para programação assíncrona (asyncio) para evitar a sobrecarga do GIL e escalar a concorrência ainda mais.
Maturidade Ética: A lição mais importante foi a responsabilidade profissional. O projeto evoluiu de um experimento movido pela curiosidade para uma ferramenta de demonstração. Kimi é estritamente limitado a testes éticos em redes controladas, destacando meu compromisso com práticas legais e responsáveis de segurança.
O sistema é dividido em Engine (Scanner) e API (Persistência).
MongoDB atua como o armazenamento primário de ingestão. A arquitetura é projetada para ser compatível com a integração Elasticsearch / Kibana (ELK), permitindo capacidades de pesquisa em texto completo e visualizações analíticas dos dados coletados.
| Cenário | Exemplo de Comando | Descrição |
|---|---|---|
| Varredura Rápida | python3 engine.py -r 192.168.0.0,192.168.0.255 -t 150 --top-ports |
Implantação: O projeto é totalmente containerizado com Docker.
Licença: Apache 2.0.
Contato: [email protected]
Aviso Legal: Kimi é apresentado exclusivamente para fins educacionais e demonstração técnica. O uso fora de ambientes controlados é de única responsabilidade do usuário.
| Varre uma faixa usando 150 threads. |
| CIDR Personalizado | python3 engine.py -r 192.168.0.0/24 -t 350 -C 80 443 21 | Varre portas específicas usando 350 threads. |