# M1039 — Environment Variable Permissions
## Descrição
**Environment Variable Permissions** restringe a modificação de variáveis de ambiente a usuários e processos autorizados, aplicando permissões e políticas rigorosas. Isso garante a integridade das variáveis de ambiente, impedindo que adversários as abusem ou alterem para fins maliciosos — especialmente para apagar rastros de comandos executados ([[t1070-003-clear-command-history|T1070.003]]) ou desabilitar o registro de histórico de shell ([[t1562-003-impair-command-history-logging|T1562.003]]).
Grupos como [[g0046-fin7|FIN7]] e operadores de ransomware frequentemente manipulam variáveis como `HISTFILE`, `HISTSIZE` e `HISTFILESIZE` para apagar evidências forenses antes de movimentação lateral ou exfiltração.
### Restrição de Acesso de Escrita
- **Implementação:** Definir permissões no nível do sistema de arquivos para restringir acesso a arquivos de configuração de variáveis de ambiente (ex: `.bashrc`, `.bash_profile`, `.zshrc`, arquivos de serviço `systemd`).
- **Caso de Uso:** Configurar `/etc/environment` ou `/etc/profile` em sistemas Linux para que apenas root ou administradores possam modificar o arquivo.
### Controles de Acesso Seguros (RBAC)
- **Implementação:** Limitar acesso a configurações de variáveis de ambiente em ferramentas de deployment ou pipelines CI/CD a pessoal autorizado.
- **Caso de Uso:** Usar RBAC em ferramentas como Jenkins ou GitLab para garantir que apenas usuários específicos possam modificar variáveis de ambiente nos pipelines.
### Restrição de Escopo de Processo
- **Implementação:** Configurar políticas para que variáveis de ambiente sejam acessíveis apenas aos processos para os quais foram explicitamente destinadas.
- **Caso de Uso:** Usar ambientes containerizados como Docker para isolar variáveis de ambiente a contêineres específicos, impedindo herança por outros processos.
### Auditoria de Alterações
- **Implementação:** Habilitar logging para alterações em variáveis de ambiente críticas.
- **Caso de Uso:** Usar `auditd` no Linux para monitorar mudanças em arquivos como `/etc/environment` ou arquivos de ambiente específicos de aplicações.
## Fluxo de Implementação
```mermaid
graph TB
A["📋 Inventário de Variáveis<br/>Mapear vars críticas por SO"] --> B["🔐 Aplicar Permissões<br/>chmod/ACLs em .bashrc<br/>/etc/environment"]
B --> C["👥 Configurar RBAC<br/>CI/CD Jenkins/GitLab"]
C --> D["📦 Isolamento por Container<br/>Docker: vars por escopo"]
D --> E["🔍 Habilitar auditd<br/>Monitorar /etc/environment"]
E --> F["📊 SIEM: Alertas<br/>Mudanças em HISTFILE<br/>HISTSIZE, PATH"]
F --> G{"Alteração suspeita?"}
G -->|"Sim"| H["🚨 Investigar Sessão<br/>Correlacionar com TTPs"]
G -->|"Não"| F
```
## Contexto LATAM
> [!warning] Adoção em SOCs Brasileiros
> A gestão de permissões de variáveis de ambiente é frequentemente negligenciada nos programas de segurança de empresas brasileiras, sendo raramente coberta por frameworks de compliance locais. Na prática, a maioria dos times de SOC não tem visibilidade sobre alterações em variáveis de shell dos usuários.
>
> **Regulações relevantes:**
> - **BACEN 4893/2021**: O controle de auditoria de comandos executados em sistemas financeiros é implicitamente exigido. Desabilitar o histórico de shell (`HISTFILE=/dev/null`) representa uma violação dos controles de rastreabilidade exigidos pelo regulador.
> - **LGPD (Lei 13.709/2018)**: A manipulação de variáveis para apagar rastros de acesso a dados pessoais configura violação de medidas de segurança exigidas pelo Art. 46, com potencial de agravamento em casos de incidentes reportáveis à ANPD.
> - **ISO 27001 (amplamente adotada no Brasil)**: O controle A.12.4 (Logging and Monitoring) abrange a necessidade de registros inalteráveis de atividades de sistema, diretamente ameaçados por técnicas como [[t1070-003-clear-command-history|T1070.003]].
>
> **Realidade dos SOCs:** Em ambientes de nuvem (AWS, Azure, GCP) — cada vez mais adotados por empresas brasileiras — a gestão de variáveis de ambiente em funções Lambda, contêineres ECS e pipelines GitHub Actions é um vetor frequentemente mal configurado, expondo segredos e permitindo evasão de detecção por manipulação de logs.
## Técnicas Mitigadas
| ID | Técnica |
|---|---------|
| T1562.003 | [[t1562-003-impair-command-history-logging\|T1562.003 — Impair Command History Logging]] |
| T1070.003 | [[t1070-003-clear-command-history\|T1070.003 — Clear Command History]] |
## Notas Relacionadas
- [[_defenses|Hub de Defesas]] — visão geral defensiva
- [[_mitigations|Todas as Mitigações]] — catálogo M-series completo
- [[ds0017-command|DS0017 — Command]] — telemetria de comandos para monitorar alterações
- [[ds0009-process|DS0009 — Process]] — monitoramento de processos e variáveis de ambiente
- [[m1038-execution-prevention|M1038 — Execution Prevention]] — complementar para controle de execução em pipelines
---
*Fonte: [MITRE ATT&CK — M1039](https://attack.mitre.org/mitigations/M1039)*