Add scenario runbooks and documentation updates
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:
78
scenarios/04-view-bypass-mac/RUNBOOK.md
Normal file
78
scenarios/04-view-bypass-mac/RUNBOOK.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# Runbook - 04 View Bypass MAC
|
||||
|
||||
## Objetivo
|
||||
|
||||
Demonstrar que views e caminhos alternativos de acesso podem contornar controles mal desenhados, e que `USE DATA GRANTS ONLY` aplica Mandatory Access Control no objeto protegido.
|
||||
|
||||
## Valor De Seguranca
|
||||
|
||||
- Evita bypass por views legadas.
|
||||
- Aplica politica uniforme em tabela base e views.
|
||||
- Ajuda clientes com muitos relatorios, synonyms, views e ferramentas BI.
|
||||
|
||||
## Pre-Requisitos
|
||||
|
||||
- Banco Oracle AI Database compativel com Oracle Deep Data Security.
|
||||
- SQLcl ou SQL*Plus.
|
||||
|
||||
## Antes - Ambiente Vulneravel
|
||||
|
||||
1. Limpe o cenario:
|
||||
|
||||
```sql
|
||||
@scenarios/04-view-bypass-mac/sql/99_reset.sql
|
||||
```
|
||||
|
||||
2. 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
|
||||
```
|
||||
|
||||
3. Simule uma view legada que retorna todos os dados:
|
||||
|
||||
```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 expor contas de outros donos.
|
||||
- O acesso por caminho alternativo nao respeita a mesma intencao da politica da tabela base.
|
||||
|
||||
## Depois - Aplicando Deep Data Security
|
||||
|
||||
1. Aplique data grants e habilite MAC:
|
||||
|
||||
```sql
|
||||
@scenarios/04-view-bypass-mac/sql/03_data_grants.sql
|
||||
```
|
||||
|
||||
2. Execute a consulta na tabela e na view:
|
||||
|
||||
```sql
|
||||
@scenarios/04-view-bypass-mac/sql/04_test_queries.sql
|
||||
```
|
||||
|
||||
## Resultado Esperado Depois
|
||||
|
||||
- A tabela base retorna somente a conta do usuario final.
|
||||
- A view retorna o mesmo subconjunto autorizado.
|
||||
- O data grant amplo na view nao consegue furar a politica da tabela base quando MAC esta habilitado.
|
||||
|
||||
## Evidencias Para Demo
|
||||
|
||||
- Resultado da tabela e da view antes/depois.
|
||||
- SQL `SET USE DATA GRANTS ONLY ON dds_mac_accounts ENABLED`.
|
||||
- Explicacao de que MAC remove inconsistencias entre caminhos de acesso.
|
||||
|
||||
## Referencias Oficiais
|
||||
|
||||
- SET USE DATA GRANTS ONLY: https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/set-use-data-grants-only.html
|
||||
- Fine-Grained Data Authorization - Mandatory Access Control: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/fine-grained-data-authorization.html
|
||||
- Configure Data Grants: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/configure-data-grants.html
|
||||
|
||||
Reference in New Issue
Block a user