176 lines
5.9 KiB
Markdown
176 lines
5.9 KiB
Markdown
# 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 "<connect_string>"
|
|
```
|
|
|
|
Windows PowerShell:
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -File .\scripts\run-scenario.ps1 -Scenario 01-ai-prompt-injection -ConnectString "<connect_string>"
|
|
```
|
|
|
|
7. Execute testes e reset quando necessario.
|
|
|
|
Linux/macOS:
|
|
|
|
```bash
|
|
./scripts/run-scenario.sh 05-legacy-app-ai-extension "<connect_string>"
|
|
./scripts/reset-scenario.sh 05-legacy-app-ai-extension "<connect_string>"
|
|
```
|
|
|
|
Windows PowerShell:
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -File .\scripts\run-scenario.ps1 -Scenario 05-legacy-app-ai-extension -ConnectString "<connect_string>"
|
|
powershell -ExecutionPolicy Bypass -File .\scripts\reset-scenario.ps1 -Scenario 05-legacy-app-ai-extension -ConnectString "<connect_string>"
|
|
```
|
|
|
|
## 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`
|