102 lines
2.2 KiB
Markdown
102 lines
2.2 KiB
Markdown
# 04 - View Bypass Mandatory Access Control
|
|
|
|
## Objetivo
|
|
|
|
Demonstrar que views e caminhos alternativos de acesso nao devem contornar a politica da tabela base.
|
|
|
|
## O Que Este Lab Mostra
|
|
|
|
Antes do Oracle Deep Data Security, uma view legada pode expor linhas que deveriam estar protegidas. Depois de aplicar data grants e `USE DATA GRANTS ONLY`, tabela e view respeitam a mesma fronteira de acesso.
|
|
|
|
## Personas
|
|
|
|
- `emma`: dona de conta.
|
|
- `marvin`: dono de conta.
|
|
|
|
## Onde Executar Os Comandos
|
|
|
|
Execute os comandos a partir da raiz do repositorio:
|
|
|
|
```powershell
|
|
cd C:\Users\rodrigo\Documents\Codex\oracle-deep-data-security-lab
|
|
```
|
|
|
|
Conecte no banco com SQLcl ou SQL*Plus:
|
|
|
|
```bash
|
|
sql "<connect_string>"
|
|
```
|
|
|
|
## Passo A Passo - Antes, Ambiente Vulneravel
|
|
|
|
1. Acesse o banco:
|
|
|
|
```bash
|
|
sql "<connect_string>"
|
|
```
|
|
|
|
2. Limpe o cenario:
|
|
|
|
```sql
|
|
@scenarios/04-view-bypass-mac/sql/99_reset.sql
|
|
```
|
|
|
|
3. Crie tabela, view, dados e personas:
|
|
|
|
```sql
|
|
@scenarios/04-view-bypass-mac/sql/00_schema.sql
|
|
@scenarios/04-view-bypass-mac/sql/01_seed_data.sql
|
|
@scenarios/04-view-bypass-mac/sql/02_identities.sql
|
|
```
|
|
|
|
4. Consulte a view legada:
|
|
|
|
```sql
|
|
SELECT account_id, account_name, owner_name, region, balance
|
|
FROM dds_mac_accounts_view
|
|
ORDER BY account_id;
|
|
```
|
|
|
|
Resultado esperado antes: a view pode mostrar contas de outros donos.
|
|
|
|
## Passo A Passo - Depois, Com Deep Data Security
|
|
|
|
1. Aplique data grants e Mandatory Access Control:
|
|
|
|
```sql
|
|
@scenarios/04-view-bypass-mac/sql/03_data_grants.sql
|
|
```
|
|
|
|
2. Execute as consultas na tabela base e na view:
|
|
|
|
```sql
|
|
@scenarios/04-view-bypass-mac/sql/04_test_queries.sql
|
|
```
|
|
|
|
3. Repita o teste simulando `emma` e `marvin`.
|
|
|
|
Resultado esperado depois:
|
|
|
|
- A tabela retorna apenas a conta autorizada.
|
|
- A view retorna o mesmo subconjunto.
|
|
- O caminho alternativo deixa de funcionar como bypass.
|
|
|
|
## Execucao Automatizada Opcional
|
|
|
|
Windows:
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -File .\scripts\run-scenario.ps1 -Scenario 04-view-bypass-mac -ConnectString "<connect_string>"
|
|
```
|
|
|
|
Linux/macOS:
|
|
|
|
```bash
|
|
./scripts/run-scenario.sh 04-view-bypass-mac "<connect_string>"
|
|
```
|
|
|
|
## Detalhes Da Demo
|
|
|
|
Veja o passo a passo completo, evidencias e referencias oficiais em [RUNBOOK.md](RUNBOOK.md).
|
|
|