IA para CYS

1. Visão Geral

Este projeto é uma solução de Inteligência Artificial Generativa (GenAI) projetada para analisar e interpretar logs de cibersegurança. O objetivo principal é fornecer uma interface de chat onde os analistas de segurança possam fazer perguntas em linguagem natural sobre os dados de log (provenientes do Wazuh) e receber respostas claras e contextualizadas, juntamente com os dados brutos correspondentes. O sistema traduz a pergunta do usuário para uma query de busca, executa-a no Wazuh e, em seguida, traduz os resultados de volta para uma resposta em linguagem natural.

Status Atual: Em desenvolvimento.

Fases do Projeto

  • 1 - Implementar modelos de ML do Alsac no CyberMesh

    • Levantamento e detalhamento dos modelos a serem migrados.
    • Verificação de compatibilidade com o Anomaly Detection do OpenSearch.
    • Integração de modelos via API (ex: OpenAI com Python).
    • Exportação e tratamento de dados de alertas para treinamento.
  • 2 - Interação com dados do CyberMesh via linguagem natural

    • Criação de ambiente paralelo com cópia de índices.
    • Desenvolvimento de interface de linguagem natural (ex: ChatGPT ou Eliza).
    • Integração do chat ao CyberMesh (interno ou externo).
  • 3 - Consulta a KBs e fontes externas com linguagem natural

    • Integração com base de conhecimento (MySupport, Ares).
    • Desenvolvimento de mecanismo de consulta semântica.
    • Implementação de interface conversacional.

2. Equipe e Responsáveis

3. Tecnologias e Definições

Frontend:

  • Framework: Next.js (React)
  • Linguagem: TypeScript
  • Estilização: TailwindCSS
  • Gerenciador de Pacotes: npm

Backend:

  • Framework: FastAPI
  • Linguagem: Python
  • IA e LLM: Azure OpenAI
  • Monitoramento: Azure Application Insights
  • Dependências Principais: uvicorn, python-dotenv, requests, opencensus-ext-azure

Infraestrutura:

  • Plataforma de Logs: Wazuh (com Elasticsearch)
  • Deployment: O projeto utiliza Docker e Docker Compose, com uma arquitetura baseada em contêineres.

Arquitetura:

4. Como Rodar o Projeto

Pré-requisitos

  • Node.js e npm
  • Python 3.x e pip
  • Docker e Docker Compose

Backend

  1. Navegue até a pasta backend:
      cd backend
      
  2. Crie e ative um ambiente virtual (recomendado):
      python -m venv env-backend-cys
    source env-backend-cys/bin/activate
      
  3. Instale as dependências:
      pip install -r requirements.txt
      
  4. Configure as variáveis de ambiente criando um arquivo .env na raiz da pasta backend.
  5. Inicie o servidor:
      uvicorn main:app --reload
      

Frontend

  1. Navegue até a pasta frontend:
      cd frontend
      
  2. Instale as dependências:
      npm install
      
  3. Inicie o servidor de desenvolvimento:
      npm run dev
      
  4. Acesse a aplicação em http://localhost:3000.

5. Como Usar

Após iniciar os servidores do frontend e backend, acesse a interface web. Digite uma pergunta relacionada aos logs de segurança na caixa de chat (por exemplo, “Houve alguma tentativa de login mal-sucedida hoje?”) e pressione Enter. O sistema processará a pergunta, buscará os dados relevantes no Wazuh e exibirá a resposta em linguagem natural.

6. Problemas Conhecidos e Soluções

Conexão com tunnel falhou: Caso você não esteja conseguindo fazer a conexão com o tunnel na VM hospedada na azure, siga os seguintes passos:

1 - Verifique se o seu Zscaler está ativado, caso esteja e mesmo assim não consiga conectar desative. 2 - Navegue até o site meuip.com e pegue seu ip. 3 - Navegue até a VM > Network > Network Settings e procure a regra de entrada com o nome: AllowSSHInbound. 4 - Edite ela e adicione o seu ip ao final.