1. SMF e registros RACF

O SMF é o mecanismo de logging do z/OS. Cada subsistema grava registros SMF com tipo numérico. O RACF usa principalmente:

Tipo SMFConteúdo
80Eventos RACF — acessos a datasets e recursos, logins, mudanças de perfil
83Atividade de administração RACF — ADDUSER, ADDSD, PERMIT, etc.

O SMF tipo 80 tem subtipos que identificam o tipo de evento:

SubtipoEvento
1Verificação de acesso a dataset
2Verificação de acesso a recurso geral
3RACHECK — verificação genérica por programa
4Autenticação — tentativa de login (TSO, batch, CICS)
5Mudança de senha
6Perfil RACF criado/alterado/deletado

2. Configurando auditoria nos perfis

Cada perfil RACF tem configurações de auditoria independentes. As opções de AUDIT que vimos nos artigos anteriores definem o que é gravado no SMF para aquele recurso específico:

/* Auditoria em dataset — só falhas de READ ou mais */ ALTDSD 'PRODUCAO.CLIENTES.**' AUDIT(FAILURES(READ)) /* Auditoria total — todo acesso em qualquer nível */ ALTDSD 'PRODUCAO.SENHAS.MASTER' AUDIT(ALL(READ)) /* Auditoria em recurso geral — só UPDATE e acima */ RALTER TCICSTRN CTRANSFER AUDIT(ALL(UPDATE))

Os níveis de auditoria seguem a hierarquia UACC: especificar READ audita qualquer acesso (READ, UPDATE, CONTROL, ALTER). Especificar UPDATE audita apenas UPDATE, CONTROL e ALTER — não leitura.

💡 GLOBALAUDIT — auditoria que o dono não pode remover

Além do campo AUDIT (controlado pelo owner do perfil), existe o campo GLOBALAUDIT, que só pode ser definido por um usuário com atributo AUDITOR. Isso permite que a equipe de auditoria ative logging em perfis sem depender do owner e sem que o owner possa desativar.

/* GLOBALAUDIT — requer atributo AUDITOR */ ALTDSD 'PRODUCAO.CLIENTES.**' GLOBALAUDIT(ALL(READ)) /* Conceder atributo AUDITOR a um usuário */ ALTUSER AUDITORA1 AUDITOR

3. Auditoria global com SETROPTS

Além da auditoria por perfil, o SETROPTS permite ativar auditoria globalmente para categorias inteiras:

/* Auditar todas as tentativas de login */ SETROPTS LOGOPTIONS(ALWAYS(LOGON LOGOFF)) /* Auditar comandos RACF de administração */ SETROPTS AUDIT(USER GROUP DATASET) /* Auditar violações (acessos negados) em todas as classes */ SETROPTS LOGOPTIONS(FAILURES(DATASET)) /* Ver configurações atuais */ SETROPTS LIST

4. Extraindo e processando SMF

Os dados SMF são gravados em datasets especiais (SYS1.MAN1, SYS1.MAN2, etc. — ou o nome configurado pela instalação). Para processar esses dados, o utilitário padrão é o IFASMFDP:

//EXTRASMF JOB ... //STEP1 EXEC PGM=IFASMFDP //INDD1 DD DSN=SYS1.MAN1,DISP=SHR //OUTDD1 DD DSN=AUDIT.SMF.RACF.HOJE, // DISP=(NEW,CATLG), // SPACE=(CYL,(50,10)) //SYSPRINT DD SYSOUT=* //SYSIN DD * INDD(INDD1,OPTIONS(DUMP)) OUTDD(OUTDD1,TYPE(80,83)) DATE(2026001,2026365) /*

Esse JCL extrai apenas registros SMF tipo 80 e 83 (eventos RACF) de todo o ano de 2026. O dataset de saída pode então ser processado por ferramentas como o RACF Report Writer ou soluções de SIEM.

5. Relatórios com RACF Report Writer

O RACF Report Writer (programa ICHREACT) processa registros SMF tipo 80 e gera relatórios legíveis. Ele usa cards de controle no SYSIN:

//RACFRPT JOB ... //STEP1 EXEC PGM=ICHREACT //SMFDATA DD DSN=AUDIT.SMF.RACF.HOJE,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * DATE(20260601,20260617) USER(JSILVA,MPINTO) RESOURCE(DSN,PRODUCAO.CLIENTES.**) EVENT(ACCESS) SUMMARY /*

Cards de controle mais usados:

CardFiltra por
DATE(início,fim)Período no formato AAAAMMDD
USER(id,...)Usuários específicos
RESOURCE(classe,nome)Recurso ou dataset
EVENT(ACCESS/ADMIN/AUTH)Tipo de evento
SUMMARYRelatório resumido (vs DETAIL para cada evento)
VIOLATIONSApenas acessos negados

6. Investigando incidentes

Cenário: o time de segurança precisa investigar acesso suspeito ao dataset PRODUCAO.CLIENTES.DADOS ontem.

/* Passo 1: verificar se o perfil tem auditoria ativa */ LISTDSD 'PRODUCAO.CLIENTES.**' ALL /* Verificar campo AUDIT= na saída */ /* Passo 2: extrair SMF do dia */ //SYSIN DD * INDD(INDD1,OPTIONS(DUMP)) OUTDD(OUTDD1,TYPE(80)) DATE(20260617,20260617) /* /* Passo 3: gerar relatório focado */ //SYSIN DD * DATE(20260617,20260617) RESOURCE(DSN,PRODUCAO.CLIENTES.DADOS) EVENT(ACCESS) DETAIL /* Saída do relatório — cada linha mostra: DATE TIME USERID ACCESS RESULT RESOURCE 20260617 14:23:01 JSILVA UPDATE PERMIT PRODUCAO.CLIENTES.DADOS 20260617 14:23:45 PEDRO READ FAIL PRODUCAO.CLIENTES.DADOS 20260617 22:11:03 BATCH01 UPDATE PERMIT PRODUCAO.CLIENTES.DADOS

💡 Retenção de logs SMF

Em ambientes bancários regulados (BACEN, PCI-DSS, SOX), os registros SMF devem ser retidos por pelo menos 12 meses e, em alguns casos, 5 a 7 anos. A política de retenção é normativa — confirme com a equipe de compliance antes de definir o ciclo de vida dos datasets SMF.