# 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)*