Files
A-Team-Security-Infra-Agent…/README.md
2026-02-26 19:47:52 -03:00

7.4 KiB

🛡️ OCI CIS AI Agent

AI Agent - Infrastructure & Security Engineer

Plataforma web Dockerizada para auditoria de segurança OCI baseada no CIS Foundations Benchmark 3.0, com interface de chat AI Agent, geração de relatórios HTML/JSON, gerenciamento de configurações OCI, integração com bancos vetoriais e controle de acesso RBAC com MFA.


📋 Funcionalidades

Interface Web (4 abas principais + 3 admin)

Aba Descrição
💬 Chat Agent Interface de chat com AI Agent para consultas sobre CIS, status do sistema e comandos
📊 Report Visualização de relatórios HTML de compliance com iframe integrado
📁 Downloads Lista de relatórios com filtro, download em JSON/HTML
☁️ Config OCI Gerenciamento de credenciais OCI (tenancy, OCID, chaves PEM, região)
🔗 Vector DB Configuração de conexão com bancos vetoriais (ChromaDB, Pinecone, Weaviate, PGVector, Qdrant, Milvus, Oracle 23ai)
👥 Usuários (admin) Gerenciamento de usuários, criação, roles, ativação/desativação
🔐 MFA Configuração de autenticação TOTP (Google Authenticator / Authy)
📋 Audit Log (admin) Log de auditoria de todas as ações do sistema

Segurança

  • Autenticação JWT com expiração configurável
  • MFA/TOTP compatível com Google Authenticator e Authy
  • 3 roles: admin, user, viewer
  • Audit log completo de todas as ações
  • Senhas com PBKDF2-SHA256 (100k iterações + salt)

Roles e Permissões

Role Permissões
admin Acesso total: usuários, configs, relatórios, MFA, audit, instalar OCI CLI
user Criar configs OCI/VectorDB, executar relatórios, usar chat
viewer Visualizar relatórios, downloads, usar chat (somente leitura)

🚀 Quick Start

Pré-requisitos

  • Docker e Docker Compose instalados

1. Clone e configure

git clone <seu-repo>
cd oci-agent

# Crie o arquivo de ambiente
cp .env.example .env
# Edite o .env e defina um APP_SECRET forte

2. Suba os containers

docker compose up -d --build

3. Acesse

Abra o navegador em http://localhost:8080

Credenciais padrão:

  • Usuário: admin
  • Senha: admin123

⚠️ Altere a senha padrão imediatamente após o primeiro login!


📐 Arquitetura

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   Browser    │────▶│    Nginx     │────▶│   FastAPI    │
│  (Frontend)  │ :80 │  (Frontend)  │     │  (Backend)   │
│   SPA HTML   │     │  Reverse     │     │  Auth/API    │
└──────────────┘     │  Proxy /api  │     │  SQLite DB   │
                     └──────────────┘     └──────┬───────┘
                                                  │
                                          ┌───────▼───────┐
                                          │   /data vol   │
                                          │  ├─ agent.db  │
                                          │  ├─ oci_configs│
                                          │  ├─ reports   │
                                          └───────────────┘

Containers

Container Imagem Porta Função
oci-agent-frontend nginx:alpine 8080→80 Serve o SPA + reverse proxy para API
oci-agent-backend python:3.12-slim 8000 FastAPI com auth, RBAC, lógica de negócio

Volume persistente

  • agent-data/data no backend (SQLite, configs OCI, relatórios)

🔌 Integração com MCP Server

O sistema foi projetado para ser conectado ao MCP Server FastMCP criado anteriormente. Para integrar:

1. Monte o MCP server no container

No docker-compose.yml, adicione ao serviço backend:

volumes:
  - agent-data:/data
  - ./mcp_server/server.py:/app/mcp_server.py:ro  # MCP server

2. Substitua o runner stub

Edite backend/cis_runner.py para importar e usar as tools do MCP server:

from mcp_server import connect, collect_all_data, run_cis_checks, export_report_json

3. Ou conecte via SSE/stdio

O MCP server pode ser exposto como serviço separado e o backend se conecta via protocolo MCP padrão.


🗄️ Integração Vector DB

A aba Vector DB permite configurar conexão com:

Banco Porta Padrão Uso
ChromaDB 8000 Embeddings locais
Pinecone 443 SaaS vetorial
Weaviate 8080 Vetorial + busca híbrida
PGVector 5432 PostgreSQL com extensão vetorial
Qdrant 6333 Vetorial open-source
Milvus 19530 Vetorial distribuído
Oracle 23ai 1521 Oracle Database com AI Vector Search

Use para armazenar e consultar findings de compliance, embeddings de documentação CIS, e contexto para o AI Agent.


📊 Relatórios CIS

O sistema gera relatórios compatíveis com o CIS OCI Foundations Benchmark 3.0 contendo:

  • 54 controles em 8 domínios
  • Relatório HTML estilizado (similar ao Oracle Cloud Security Assessment)
  • Relatório JSON para integração programática
  • Resumo por domínio com contagem de PASS/FAIL
  • Detalhamento de cada controle

🔧 Configuração Avançada

Variáveis de Ambiente

Variável Padrão Descrição
APP_SECRET (gerado) Chave secreta para JWT
JWT_EXPIRY_HOURS 12 Expiração do token JWT
PORT 8080 Porta do frontend
DATA_DIR /data Diretório de dados persistentes

Instalar OCI CLI no container

Na interface como admin, vá em Config OCIInstalar OCI CLI no Container.

Ou manualmente:

docker exec -it oci-agent-backend pip install oci-cli

Backup dos dados

docker cp oci-agent-backend:/data ./backup-data

📝 API Endpoints

Método Endpoint Auth Descrição
POST /api/auth/login - Login (retorna JWT)
POST /api/auth/logout Logout
POST /api/auth/register admin Criar usuário
POST /api/auth/change-password Alterar senha
POST /api/mfa/setup Gerar secret MFA
POST /api/mfa/verify Ativar MFA
GET /api/users admin Listar usuários
GET /api/users/me Dados do usuário atual
PUT /api/users/{id} admin Atualizar usuário
POST /api/oci/config user+ Salvar config OCI (multipart)
GET /api/oci/configs Listar configs
POST /api/oci/test/{id} user+ Testar conexão OCI
POST /api/reports/run user+ Executar relatório CIS
GET /api/reports Listar relatórios
GET /api/reports/{id}/html Relatório HTML
GET /api/reports/{id}/download Download relatório
POST /api/vectordb/config user+ Salvar config Vector DB
GET /api/vectordb/configs Listar configs VDB
POST /api/chat Chat com AI Agent
GET /api/audit-log admin Log de auditoria
GET /api/health - Health check

📄 Licença

Projeto interno. Todos os direitos reservados.