Expand scenario READMEs with step-by-step execution guides
Some checks failed
Repo Quality / structure (push) Has been cancelled
Some checks failed
Repo Quality / structure (push) Has been cancelled
This commit is contained in:
@@ -1,10 +1,101 @@
|
||||
# 04 - View Bypass / Mandatory Access Control
|
||||
# 04 - View Bypass Mandatory Access Control
|
||||
|
||||
## Objetivo
|
||||
|
||||
Demonstrar que views e caminhos alternativos de acesso não devem contornar a política da tabela base.
|
||||
Demonstrar que views e caminhos alternativos de acesso nao devem contornar a politica da tabela base.
|
||||
|
||||
## Narrativa
|
||||
## O Que Este Lab Mostra
|
||||
|
||||
Uma view legada expõe todos os dados. Com `USE DATA GRANTS ONLY`, a política da tabela base passa a ser aplicada de forma uniforme.
|
||||
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).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user