# Oracle Deep Data Security Lab Kit interno para demonstrar Oracle Deep Data Security em cenários de segurança de dados comuns em clientes: agentes de AI, aplicações com conta compartilhada, BI ad hoc, acesso a PII e bypass por views. O objetivo é permitir que qualquer pessoa do time consiga subir uma fundação OCI segura, instalar cenários de laboratório, executar testes positivos/negativos e coletar evidências de forma repetível. ## Visão Rápida ```text terraform/ Infraestrutura OCI segura por padrão scenarios/ Labs independentes em SQL e runbooks scripts/ Automação de bootstrap, validação, execução e reset docs/ Guias para arquitetura, demo e operação apps/ Espaço para app Spring Boot, agente AI e simulador BI ``` ## Cenários Incluídos | ID | Cenário | Objetivo | | --- | --- | --- | | 01 | AI Prompt Injection | Demonstrar que o banco limita dados mesmo quando o agente gera SQL amplo ou malicioso. | | 02 | Shared App Account | Demonstrar controle por usuário final mesmo com uma conta técnica de aplicação. | | 03 | PII Row/Column/Cell | Demonstrar controle por linha, coluna e célula para dados pessoais e salário. | | 04 | View Bypass / MAC | Demonstrar Mandatory Access Control com `USE DATA GRANTS ONLY`. | | 05 | Legacy App AI Extension | Demonstrar modernizacao com agente AI sem reescrever a autorizacao da aplicacao legada. | | 06 | RAG Vector Classified Docs | Demonstrar RAG/vector search retornando apenas chunks autorizados por classificacao. | | 07 | Audit Evidence With Data Safe | Demonstrar evidencias de acesso com Unified Audit e roteiro de validacao no OCI Data Safe. | Cada cenario possui um `RUNBOOK.md` com passo a passo de demo em formato antes/depois, evidencias esperadas e referencias oficiais. ## Guias De Execucao Dos Cenarios Use os links abaixo para acessar o passo a passo de cada demo. Cada runbook mostra o cenario vulneravel antes da aplicacao dos controles, os comandos para aplicar Oracle Deep Data Security, o resultado esperado depois da protecao e as referencias oficiais usadas. | ID | Cenario | Guia passo a passo | | --- | --- | --- | | 01 | AI Prompt Injection | [RUNBOOK.md](scenarios/01-ai-prompt-injection/RUNBOOK.md) | | 02 | Shared App Account | [RUNBOOK.md](scenarios/02-shared-app-account/RUNBOOK.md) | | 03 | PII Row/Column/Cell | [RUNBOOK.md](scenarios/03-pii-row-column-cell/RUNBOOK.md) | | 04 | View Bypass / MAC | [RUNBOOK.md](scenarios/04-view-bypass-mac/RUNBOOK.md) | | 05 | Legacy App AI Extension | [RUNBOOK.md](scenarios/05-legacy-app-ai-extension/RUNBOOK.md) | | 06 | RAG Vector Classified Docs | [RUNBOOK.md](scenarios/06-rag-vector-classified-docs/RUNBOOK.md) | | 07 | Audit Evidence With Data Safe | [RUNBOOK.md](scenarios/07-audit-evidence-data-safe/RUNBOOK.md) | ## Pré-Requisitos - Conta OCI com permissão para criar rede, Autonomous Database, Vault opcional e Compute opcional. - Terraform 1.6 ou superior. - OCI CLI configurado, ou variáveis de autenticação do provider OCI. - SQLcl, SQL*Plus ou outro cliente compatível. - Acesso a uma versão de Oracle AI Database compatível com Deep Data Security. ## Execucao Em 7 Passos 1. Clone o repositorio. 2. Copie o arquivo de exemplo. Linux/macOS: ```bash cp terraform/envs/demo/terraform.tfvars.example terraform/envs/demo/terraform.tfvars ``` Windows PowerShell: ```powershell Copy-Item terraform\envs\demo\terraform.tfvars.example terraform\envs\demo\terraform.tfvars ``` 3. Edite `terraform/envs/demo/terraform.tfvars` com seus OCIDs, regiao e parametros do banco. Linux/macOS: ```bash vi terraform/envs/demo/terraform.tfvars ``` Windows PowerShell: ```powershell notepad terraform\envs\demo\terraform.tfvars ``` 4. Valide a infraestrutura. Linux/macOS: ```bash chmod +x scripts/*.sh ./scripts/validate-terraform.sh ``` Windows PowerShell: ```powershell powershell -ExecutionPolicy Bypass -File .\scripts\validate-terraform.ps1 ``` 5. Faca o deploy. Linux/macOS: ```bash cd terraform/envs/demo terraform init terraform plan -out tfplan terraform apply tfplan cd ../../.. ``` Windows PowerShell: ```powershell Set-Location terraform\envs\demo terraform init terraform plan -out tfplan terraform apply tfplan Set-Location ..\..\.. ``` 6. Instale um cenario. Linux/macOS: ```bash ./scripts/run-scenario.sh 01-ai-prompt-injection "" ``` Windows PowerShell: ```powershell powershell -ExecutionPolicy Bypass -File .\scripts\run-scenario.ps1 -Scenario 01-ai-prompt-injection -ConnectString "" ``` 7. Execute testes e reset quando necessario. Linux/macOS: ```bash ./scripts/run-scenario.sh 05-legacy-app-ai-extension "" ./scripts/reset-scenario.sh 05-legacy-app-ai-extension "" ``` Windows PowerShell: ```powershell powershell -ExecutionPolicy Bypass -File .\scripts\run-scenario.ps1 -Scenario 05-legacy-app-ai-extension -ConnectString "" powershell -ExecutionPolicy Bypass -File .\scripts\reset-scenario.ps1 -Scenario 05-legacy-app-ai-extension -ConnectString "" ``` ## Segurança Por Padrão - Banco em subnet privada. - Sem IP público no banco. - NSGs dedicados para aplicação e banco. - mTLS obrigatório na conexão do Autonomous Database. - Secrets fora do Git. - Vault/KMS opcional para chaves gerenciadas pelo cliente. - Compute bastion desabilitado por padrão. - Evidências e logs de demo ignorados pelo Git. ## Como Contribuir Leia [CONTRIBUTING.md](CONTRIBUTING.md). Todo novo cenário deve conter `README.md`, `metadata.yaml`, SQL numerado, testes positivos/negativos e script de reset. ## CI/CD O repositório inclui GitHub Actions para: - `terraform fmt` - `terraform init -backend=false` - `terraform validate` - checagem da estrutura mínima dos cenários - bloqueio de arquivos sensíveis como `.tfvars`, `.pem` e `.key`