☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta racf. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta racf. Mostrar todas as mensagens

quinta-feira, 17 de setembro de 2026

🎩 O CHAPELEIRO MALUCO E O PAÍS DAS PORTAS DOS FUNDOS

 

Um Café no Bellacosa Mainframe

🎩 O CHAPELEIRO MALUCO E O PAÍS DAS PORTAS DOS FUNDOS

RACF, Zero Trust, jatinhos, VIPs, compliance, conflitos de interesse, despesas de representação, audit trail, Red Team — e o dia em que Alice descobriu que o sistema estava perfeitamente protegido contra todo mundo, exceto contra quem tinha poder suficiente para pedir uma exceção.




🎬 PRÓLOGO — ALICE CAIU NO BURACO ERRADO

Alice já conhecia o País das Maravilhas.

Coelhos atrasados.

Gatos que desapareciam.

Rainhas temperamentais.

Cartas de baralho que falavam.

Nada daquilo a surpreendia mais.

Até que encontrou uma porta onde estava escrito:

SECURITY — AUTHORIZED PERSONNEL ONLY

Alice tentou entrar.

A porta não abriu.

Uma tela verde respondeu:

ICH408I USER ALICE
NOT AUTHORIZED TO RESOURCE

— Excelente! — disse Alice. — Finalmente encontrei um lugar organizado.

Então apareceu um homem importante.

Tentou entrar.

A porta também não abriu.

ICH408I USER VIP001
NOT AUTHORIZED TO RESOURCE

Alice sorriu.

— Pelo menos as regras são iguais.

O homem aproximou-se do funcionário responsável pela porta e perguntou:

— Você sabe com quem está falando?

O funcionário empalideceu.

Pegou o telefone.

Cinco minutos depois, a porta abriu.

Alice ficou olhando.

Nesse momento surgiu o Chapeleiro Maluco carregando uma xícara de café.

— Bem-vinda à segurança corporativa, Alice.

— Mas o sistema negou!

— Exatamente.

— Então como ele entrou?

O Chapeleiro tomou um gole.

O computador disse não. O organograma disse sim.

Eram exatamente 03:17.



🐇 CAPÍTULO 1 — O QUE APRENDEMOS COM O COELHO BRANCO?

Nossa conversa começou com um caso contemporâneo envolvendo um banco, seu controlador, autoridades, familiares, contratos, viagens e relações sociais.

Mas rapidamente percebemos que o assunto era muito maior.

As investigações envolvendo o Banco Master revelaram publicamente uma extensa rede de relacionamentos envolvendo diferentes setores do poder brasileiro. Isso não significa que toda pessoa mencionada tenha cometido irregularidade; contatos, contratos, viagens ou relações profissionais precisam ser examinados individualmente e com devido processo.

O verdadeiro aprendizado não está em perguntar:

“Quem conhece quem?”

Está em perguntar:

“Nosso sistema institucional consegue identificar quando um relacionamento legítimo começa a produzir conflito de interesses?”

Essa pergunta serve para Brasília.

Serve para bancos.

Serve para empresas.

E serve perfeitamente para o mainframe.



🔐 CAPÍTULO 2 — RACF NÃO PROTEGE CONTRA ORGANOGRAMA

Imagine que você está começando como programador COBOL.

Seu programa processa pagamentos.

O dataset é:

PROD.PAYROLL.MASTER

Seu USERID possui apenas:

READ

Você tenta alterar.

RACF responde:

ICH408I
NOT AUTHORIZED

Excelente.

Agora imagine que o presidente da empresa tente fazer a mesma coisa.

Tecnicamente, deveria acontecer exatamente a mesma coisa.

O RACF não deveria pensar:

“Nossa! É o presidente!”

Para o sistema, existem:

identidade → autenticação → autorização.

Cargo não substitui nenhuma delas.

Esse conceito precisa sair do mainframe e entrar na governança das organizações.



🪪 CAPÍTULO 3 — IDENTIDADE NÃO É AUTORIZAÇÃO

Essa talvez tenha sido a principal descoberta de toda nossa conversa.

Existem três conceitos diferentes:

Identificação

Quem você afirma ser?

USERID = ALICE

Autenticação

Você consegue provar que realmente é Alice?

Senha.

MFA.

Certificado.

Biometria.

Passkey.

Autorização

Alice pode executar aquela operação?

PERMIT ALICE
       CLASS(DATASET)
       ACCESS(READ)

É perfeitamente possível possuir:

IDENTITY       = VALID
AUTHENTICATION = SUCCESS
AUTHORIZATION  = DENIED

E isso não representa erro.

Representa segurança funcionando.

O problema aparece quando acrescentamos uma quarta variável:

STATUS = VIP

E alguém decide que VIP significa:

ACCESS = ALTER

Não deveria.



🎩 CAPÍTULO 4 — “VOCÊ SABE COM QUEM ESTÁ FALANDO?”

O Chapeleiro colocou quatro xícaras sobre a mesa.

Na primeira escreveu:

Política.

Na segunda:

Procedimento.

Na terceira:

Tecnologia.

Na quarta:

Cultura.

— Qual delas controla a empresa? — perguntou Alice.

— Política?

— Errado.

— Tecnologia?

— Também.

O Chapeleiro apontou para a quarta.

Cultura.

Uma organização pode possuir a política:

Ninguém entra sem autorização.

Mas possuir simultaneamente a cultura:

Não crie problema para diretor.

Qual das duas vence?

Normalmente a segunda.

Isso cria aquilo que poderíamos chamar de:

Shadow Security Policy

A política invisível.

Ela nunca foi aprovada.

Não existe PDF.

Não existe versão.

Não existe owner.

Mas todo funcionário aprende.


🧨 CAPÍTULO 5 — O FUNCIONÁRIO QUE DISSE NÃO

Nossa conversa trouxe um exemplo perfeito.

Um diretor solicitou determinado acesso.

O responsável sabia exatamente quem ele era.

Mas não havia autorização adequada.

A resposta foi:

não.

Só que não terminou aí.

Foi solicitado um e-mail formal.

Enquanto isso, houve confirmação independente com a pessoa competente para autorizar.

Isso é excelente segurança.

O fluxo ficou:

REQUEST
   |
   v
IDENTITY CONFIRMED
   |
   v
AUTHORIZATION MISSING
   |
   v
ACCESS DENIED
   |
   v
EXCEPTION REQUEST
   |
   v
INDEPENDENT VALIDATION
   |
   v
DOCUMENTED APPROVAL
   |
   v
CONTROLLED ACCESS

Observe algo importante:

o funcionário não decidiu conceder privilégio.

Quem possuía autoridade assumiu formalmente a responsabilidade.

Isso é accountability.


😡 CAPÍTULO 6 — QUANDO O DIRETOR FICA OFENDIDO

Só que existe um problema.

O diretor pode interpretar:

controle = desconfiança

ou:

procedimento = humilhação

ou:

registro = burocracia.

Se depois retaliar quem aplicou corretamente o procedimento, algo extremamente perigoso acontece.

Os demais funcionários aprendem.

Não através de treinamento oficial.

Aprendem observando.

A próxima pessoa importante aparece.

O funcionário lembra:

“Da última vez alguém seguiu a política e se ferrou.”

Então libera.

Nesse momento a empresa possui uma vulnerabilidade que:

Nessus não encontra.

Qualys não encontra.

SIEM não encontra.

Penetration test tradicional talvez não encontre.

Porque a vulnerabilidade está na cultura de poder.


✈️ CAPÍTULO 7 — ALICE ENCONTRA UM JATINHO

Depois apareceu o avião executivo.

Aqui descobrimos outra coisa importante.

Privacidade não é necessariamente anonimato.

Aviação executiva possui controles e regulamentação próprios, diferentes em vários aspectos do fluxo comercial comum.

Mas para governança existe uma pergunta essencial:

Conseguimos reconstruir posteriormente quem utilizou determinado recurso, quem autorizou e quem pagou?

Isso vale para avião.

Vale para carro corporativo.

Vale para hotel.

Vale para cartão empresarial.

Vale para dataset.

Vale para transação CICS.

Vale para API.

O nome técnico disso é:

Audit Trail


📜 CAPÍTULO 8 — SMF PARA O MUNDO REAL

No z/OS temos algo maravilhoso:

SMF — System Management Facilities.

O sistema registra acontecimentos.

Jobs.

Logons.

Uso de recursos.

Segurança.

Performance.

Accounting.

Agora imagine aplicar mentalidade semelhante à governança.

Queremos responder:

WHO?
WHAT?
WHEN?
WHERE?
WHY?
WHO AUTHORIZED?
WHO PAID?
WHO BENEFITED?

Isso é praticamente um SMF institucional.

E existe uma lição extraordinária:

quanto maior o privilégio, maior deveria ser a auditabilidade.

Muitas organizações fazem exatamente o contrário.

Funcionário comum:

30 controles.

Diretor:

“Pode deixar passar.”

Deveria ser:

mais poder → mais accountability.


🍽️ CAPÍTULO 9 — O JANTAR QUE TALVEZ NÃO FOSSE JANTAR

Chegamos então às despesas de representação.

Hospitalidade empresarial existe.

Jantares existem.

Eventos existem.

Viagens existem.

Relacionamento comercial existe.

Nada disso é automaticamente irregular.

Mas descobrimos outra diferença fundamental:

DOCUMENT EXISTS

não significa:

DOCUMENT REPRESENTS REALITY

Um compliance superficial verifica:

✔ nota fiscal
✔ centro de custo
✔ aprovação
✔ fornecedor
✔ valor

E encerra.

Um Red Team pergunta:

A natureza econômica da operação corresponde ao documento?

Essa pergunta muda tudo.


🧾 CAPÍTULO 10 — COMPLIANCE NÃO É COLECIONAR PDFs

Imagine:

REALIDADE       = A
DOCUMENTO       = B
ERP             = B
CONTABILIDADE   = B
RELATÓRIO       = B
AUDITORIA       = B

Todos os sistemas concordam.

Todos podem estar errados.

Por quê?

Porque todos receberam a mesma informação inicial.

Programadores conhecem isso há décadas:

Garbage In, Garbage Out.

Compliance também sofre de GIGO.


⚖️ CAPÍTULO 11 — A TOGA NÃO É SUPERUSER

Chegamos então à magistratura.

Aqui precisamos abandonar personagens específicos e pensar institucionalmente.

O Código de Ética da Magistratura Nacional estabelece princípios como independência, imparcialidade, transparência e integridade. Determina também que o magistrado mantenha distância equivalente das partes e evite comportamento que possa refletir favoritismo.

Isso é praticamente Zero Trust jurídico.

Não significa:

“Desconfie de todo juiz.”

Significa:

Construa mecanismos que não dependam exclusivamente da confiança pessoal.

Aliás, o próprio STF anunciou em fevereiro de 2026 a elaboração de seu Código de Ética específico, mencionando explicitamente prevenção de conflitos de interesse, transparência, responsabilidade e confiança pública.

O CNJ também avançou em 2026 numa proposta específica para identificação, declaração e tratamento de conflitos de interesses, incluindo sistemas eletrônicos de prevenção e estruturas de aconselhamento ético.

Ou seja:

o problema estrutural está sendo reconhecido institucionalmente.


❤️ CAPÍTULO 12 — CONFIANÇA NÃO PODE SER A ÚNICA DEFESA

Alice perguntou:

— Então devemos desconfiar de todo mundo?

O Chapeleiro respondeu:

— Claro que não!

— Mas você acabou de falar de Zero Trust.

— Alice, Zero Trust não significa que todos são desonestos.

Significa que honestidade não substitui controle.

Essa distinção é maravilhosa.

Não colocamos senha porque acreditamos que todos são criminosos.

Não utilizamos RACF porque acreditamos que todos os programadores querem roubar dados.

Não fazemos backup porque esperamos que o storage exploda amanhã.

Controles existem porque sistemas resilientes não dependem de pessoas perfeitas.


🕵️ CAPÍTULO 13 — ENTRE O INTERESSE PÚBLICO E O NOTÍCIAS POPULARES

Nossa conversa passou também por intimidade.

Sexo.

Profissionais do sexo.

Festas.

Luxo.

E aí existe uma armadilha.

Esses elementos são excelentes para manchetes.

Mas podem distrair da verdadeira questão.

A pergunta relevante não deveria ser:

“Com quem determinada autoridade dormiu?”

A pergunta institucional é:

“Um terceiro interessado financiou um benefício privado?”

Se não financiou, a intimidade pode continuar sendo simplesmente intimidade.

Se financiou, aparecem perguntas sobre:

conflito de interesses → vantagem → independência → eventual contrapartida.

O sexo vira quase detalhe contábil.

O dinheiro torna-se interessante.


🔎 CAPÍTULO 14 — FOLLOW THE MONEY NÃO É SUFICIENTE

Todo mundo conhece:

Follow the money.

O Chapeleiro discorda.

— Incompleto!

Ele escreveu:

FOLLOW THE MONEY
FOLLOW THE ACCESS
FOLLOW THE RELATIONSHIP
FOLLOW THE DECISION
FOLLOW THE EXCEPTION

Esse é um modelo muito melhor.

Imagine:

EMPRESA
   |
   +-- pagamento
   |
INTERMEDIÁRIO
   |
   +-- benefício
   |
PESSOA COM PODER
   |
   +-- decisão
   |
RESULTADO

Uma seta isolada pode não significar absolutamente nada.

O grafo completo pode contar uma história.


🧠 CAPÍTULO 15 — O QUE AINDA NÃO DESCOBRIMOS?

Aqui precisamos ter disciplina.

Não podemos afirmar que existem fatos escondidos específicos sem evidência.

Mas podemos perguntar:

Que classes de risco ainda podem estar invisíveis?

Essa é exatamente a função de threat modeling.

Possibilidades genéricas:

relações indiretas não declaradas

beneficiários econômicos difíceis de identificar

presentes e hospitalidade

viagens

intermediários

consultorias

empresas relacionadas

familiares

fundos

associações

institutos

eventos privados

exceções não documentadas

aprovações verbais

conflitos de interesse não percebidos

O objetivo não é presumir culpa.

É construir controles capazes de detectar situações relevantes.


🔴 CAPÍTULO 16 — ENTRA O RED TEAM

Finalmente chegamos ao Red Team.

Muita gente pensa:

Red Team = hacker tentando invadir servidor.

É muito pouco.

Um Red Team maduro pergunta:

Como este sistema pode falhar?

E “sistema” pode significar organização.

Começamos criando adversários hipotéticos.

Cenário 1 — VIP

Uma pessoa poderosa pede exceção.

O funcionário cede?

Cenário 2 — relacionamento

Fornecedor possui amizade com decisor.

O conflito é declarado?

Cenário 3 — benefício

Terceiro oferece viagem ou hospitalidade.

Existe registro?

Cenário 4 — intermediário

O benefício não vem diretamente do interessado.

O sistema identifica relacionamento indireto?

Cenário 5 — pressão hierárquica

Funcionário bloqueia operação irregular.

Ele é protegido ou punido?

Aqui encontramos uma métrica extraordinária.


🛡️ CAPÍTULO 17 — O TESTE DO FUNCIONÁRIO PROTEGIDO

Quer saber se uma organização possui cultura de segurança?

Faça esta pergunta:

O que acontece com o funcionário que corretamente diz NÃO para alguém poderoso?

Se ele recebe apoio:

boa cultura.

Se recebe bronca:

alerta.

Se sofre retaliação:

vulnerabilidade crítica.

Porque segurança depende de pessoas terem permissão organizacional para aplicar segurança.


🧪 CAPÍTULO 18 — RED TEAM DE GOVERNANÇA

Agora montamos nosso exercício.

Sem tentar cometer crimes.

Sem violar privacidade.

Sem burlar controles reais.

Usamos simulações autorizadas.

Passo 1 — Mapear ativos

Dados.

Dinheiro.

Decisões.

Acessos.

Contratos.

Viagens.

Presentes.

Passo 2 — Mapear privilégios

Quem pode aprovar?

Quem pode dispensar?

Quem pode autorizar exceções?

Passo 3 — Mapear relacionamentos

Fornecedores.

Clientes.

Familiares.

Representantes.

Consultores.

Passo 4 — Procurar Shadow Policies

Pergunte aos funcionários:

“O que realmente acontece quando um diretor pede exceção?”

A resposta pode ser completamente diferente do manual.

Passo 5 — Simular pressão

Em ambiente autorizado, teste se procedimentos continuam funcionando quando o solicitante possui status elevado.

Passo 6 — Verificar audit trail

Conseguimos reconstruir tudo posteriormente?

Passo 7 — Corrigir.

Não apenas tecnologia.

Processo + cultura + proteção ao funcionário + transparência.


🔧 CAPÍTULO 19 — COMO MELHORAMOS O SISTEMA?

O Chapeleiro apresentou sua arquitetura.

1. Zero Trust também para VIP

Nenhum cargo concede privilégio implícito.

2. Exceção sempre registrada

Se precisa quebrar regra:

REQUEST
APPROVER
REASON
TIME
RESOURCE
EXPIRATION
AUDIT

3. Four Eyes Principle

Operações sensíveis exigem segunda aprovação independente.

4. Conflict-of-interest by design

Não espere o conflito aparecer.

Crie sistemas para declará-lo antecipadamente.

5. Beneficial ownership

Saiba quem realmente está atrás de empresas e estruturas relevantes quando a legislação permitir e exigir essa verificação.

6. Hospitalidade transparente

Presentes, viagens e benefícios relevantes precisam de regras claras.

7. Proteção contra retaliação

Funcionário que aplica corretamente o controle não pode ser punido por fazê-lo.

8. Auditoria baseada em substância

Não verifique apenas documentos.

Verifique realidade econômica.

9. Analytics

Procure padrões.

Valores.

Recorrência.

Relacionamentos.

Concentração.

Exceções.

10. Red Team periódico

Ataque processos.

Não pessoas.


🤖 CAPÍTULO 20 — IA PODE AJUDAR

Agora entra 2026.

Imagine milhares de:

contratos,

pagamentos,

agendas,

fornecedores,

declarações,

processos,

aprovações.

Humanos não conseguem correlacionar tudo.

IA e graph analytics podem ajudar a encontrar:

PESSOA A
   |
EMPRESA B
   |
FUNDO C
   |
CONSULTORIA D
   |
FAMILIAR E
   |
PROCESSO F

Isso não prova irregularidade.

Produz:

sinal para investigação humana.

Essa distinção é fundamental.

IA não deveria declarar:

CULPADO.

Deveria dizer:

ANOMALIA — INVESTIGAR.


🏛️ CAPÍTULO 21 — TRANSPARÊNCIA É OBSERVABILIDADE INSTITUCIONAL

Programadores conhecem observabilidade.

Metrics.

Logs.

Traces.

Agora aplique isso à governança.

Metrics: quantas exceções existem?

Logs: quem autorizou?

Traces: como o benefício percorreu a organização?

De repente:

OBSERVABILITY

vira:

TRANSPARENCY

O próprio CNJ criou o ONIT para fortalecer integridade, ética, governança e transparência e identificar riscos como corrupção, conflitos de interesse e captura institucional.

A analogia é perfeita:

instituição sem transparência é produção sem logs.

Tudo parece funcionar.

Até ocorrer incidente.


🎩 CAPÍTULO 22 — O ÚLTIMO CHÁ DO CHAPELEIRO

Alice estava cansada.

— Então nunca teremos um sistema perfeito?

O Chapeleiro riu.

— Claro que não!

— Então para que tudo isso?

Ele colocou uma última xícara sobre a mesa.

Nela estava escrito:

RESILIENCE.

Segurança não significa impedir absolutamente todo problema.

Significa:

dificultar → detectar → registrar → responder → aprender → melhorar.

É exatamente aquilo que fazemos no mainframe.


🐒 EPÍLOGO — OS CHIMPANZÉS VOLTARAM

Alice retornou à porta do início.

O homem importante apareceu novamente.

Tentou entrar.

ICH408I
ACCESS DENIED

Olhou para o funcionário.

— Você sabe com quem está falando?

O funcionário respondeu calmamente:

— Sei perfeitamente, senhor.

— Então abra.

— Sua identidade está confirmada. Sua autorização, não.

O homem pegou o telefone.

Nada aconteceu.

Tentou ligar para um diretor.

Nada.

Tentou chamar um amigo.

Nada.

Alice ficou surpresa.

— O que vocês fizeram?

O Chapeleiro apontou para uma placa nova:

EXCEPTION WORKFLOW

REQUEST
   ↓
INDEPENDENT APPROVAL
   ↓
JUSTIFICATION
   ↓
TIME-LIMITED ACCESS
   ↓
LOG
   ↓
REVIEW

Ao lado havia outra:

Nenhum funcionário será punido por aplicar corretamente um controle de segurança.

Alice sorriu.

Os chimpanzés começaram a bater palmas.

O Chapeleiro olhou para o relógio.

03:17.

— Conseguimos fechar todas as portas dos fundos?

Alice perguntou.

Ele colocou o chapéu.

— Não.

— Então fracassamos?

— Pelo contrário.

Pegou a xícara.

Agora sabemos que devemos continuar procurando.

No terminal 3270 surgiu a última mensagem:

BELLACOSA MAINFRAME

SECURITY IS NOT
A PRODUCT.

SECURITY IS
A SYSTEM OF
PEOPLE,
PROCESSES,
TECHNOLOGY
AND ACCOUNTABILITY.

READY

E em letras menores:

ZERO TRUST:
SAME RULES.
ESPECIALLY FOR
SUPERUSERS.

☕🎩

Porque talvez a maior lição de todas seja esta:

Uma organização não demonstra que possui bons controles quando consegue dizer NÃO para quem não tem poder.

Ela demonstra quando consegue dizer NÃO para quem tem.

E um bom Red Team existe justamente para descobrir se esse NÃO continua funcionando quando chega o próximo Chapeleiro Maluco perguntando por que todo mundo está seguindo regras numa terra onde ele sempre acreditou que as regras eram para os outros.

quarta-feira, 16 de setembro de 2026

🐒 QUANDO UM MILHÃO DE CHIMPANZÉS ABRIRAM O BARRIL DE SAQUÊ PREMIUM

 

Um Café no Bellacosa Mainframe

🐒 QUANDO UM MILHÃO DE CHIMPANZÉS ABRIRAM O BARRIL DE SAQUÊ PREMIUM

Portas dos fundos humanas, “sabe com quem você está falando?”, jatinhos emprestados, togas, garotas de programa, despesas de representação, compliance, Red Team, Security — e o estranho dia em que descobrimos que o maior privilégio de um sistema talvez não estivesse cadastrado no RACF.




🎬 PRÓLOGO — O SISTEMA ESTAVA SEGURO

O jovem programador COBOL tinha certeza.

O RACF estava configurado.

As senhas eram fortes.

MFA estava habilitado.

Os datasets críticos estavam protegidos.

Os acessos privilegiados eram registrados.

O SIEM recebia eventos.

O SOC monitorava alertas.

Auditores possuíam relatórios.

Havia segregação de funções.

Existia política de Zero Trust.

Tudo perfeito.

Até que alguém apareceu na porta e pronunciou uma sequência de palavras contra a qual nenhum firewall havia sido configurado:

— Você sabe com quem está falando?

O jovem programador olhou para o veterano.

— Onde cadastro isso no RACF?

O velho tomou um gole de café.

— Em lugar nenhum.

— Então estamos protegidos?

— Muito pelo contrário, Padawan.

Eram 03:17.

O incidente estava apenas começando.



🐒 CAPÍTULO 1 — O MILHÃO DE CHIMPANZÉS

Existe uma velha brincadeira segundo a qual, colocando infinitos chimpanzés diante de máquinas de escrever durante tempo suficiente, algum deles acabaria escrevendo Shakespeare.

No Bellacosa Mainframe decidimos modernizar a experiência.

Colocamos um milhão de chimpanzés diante de terminais 3270.

Mas alguém cometeu um erro operacional gravíssimo.

Em vez de café, abriram um barril de saquê premium.

Depois do terceiro copo, nenhum chimpanzé queria mais escrever Shakespeare.

Queriam fazer auditoria.

E descobriram uma coisa extraordinária:

os sistemas mais protegidos do mundo frequentemente possuem portas que não aparecem nos diagramas de arquitetura.

Não são portas TCP.

Não estão no firewall.

Não possuem CVE.

Não aparecem no Nessus.

Não estão no OWASP Top 10.

São portas humanas.



🚪 CAPÍTULO 2 — A BACKDOOR QUE NÃO ESTAVA NO CÓDIGO

Imagine um sistema extremamente seguro.

Um funcionário tenta acessar determinado ambiente.

ACCESS DENIED.

Perfeito.

Agora chega um diretor.

ACCESS DENIED.

Tecnicamente, continua perfeito.

Então o diretor olha para o funcionário:

— Você sabe quem eu sou?

Nesse instante surge uma nova interface de autenticação.

Não existe API.

Não existe documentação.

Mas todo mundo conhece o protocolo:

IDENTIDADE: DIRETOR
AUTORIZAÇÃO: NÃO
PRESSÃO HIERÁRQUICA: ALTA
RISCO DE RETALIAÇÃO: ALTO

RESULTADO ESPERADO PELO SISTEMA:
DENY

RESULTADO ESPERADO PELO HUMANO:
TALVEZ SEJA MELHOR LIBERAR

Encontramos uma vulnerabilidade.

CVE-HUMAN-0001 — Sabe-Com-Quem-Está-Falando Privilege Escalation.



🪪 CAPÍTULO 3 — IDENTIDADE NÃO É AUTORIZAÇÃO

Aqui está uma lição fundamental de segurança:

Identification ≠ Authentication ≠ Authorization.

Eu posso saber exatamente quem você é.

Você pode realmente ser presidente.

Diretor.

CEO.

Ministro.

General.

Administrador.

DBA.

Isso não significa automaticamente que você esteja autorizado a acessar determinado recurso.

No RACF isso é banal.

No mundo humano, surpreendentemente, não.

O verdadeiro Zero Trust deveria conseguir dizer:

“Sei perfeitamente quem é o senhor. Agora preciso verificar se o senhor possui autorização.”

É fácil implementar Zero Trust contra o estagiário.

Quero ver implementar contra o presidente.



✈️ CAPÍTULO 4 — O JATINHO EMPRESTADO

Então os chimpanzés encontraram um hangar.

E descobriram outra propriedade curiosa do poder.

O cidadão comum viaja assim:

documento → check-in → fila → segurança → raio-X → portão → embarque.

O VIP pode utilizar ambientes completamente diferentes, sujeitos aos controles específicos daquela modalidade de aviação.

Nada disso significa automaticamente irregularidade.

Mas, para um Red Team, aparece imediatamente uma pergunta:

os controles continuam oferecendo rastreabilidade suficiente quando o usuário é VIP?

A pergunta não é:

“Como alguém poderia burlar isso?”

A pergunta correta é:

“Conseguimos reconstruir posteriormente quem entrou, quem saiu, quem autorizou e quem pagou?”

Essa é a diferença entre procurar uma vulnerabilidade e ensinar sua exploração.


Bellacosa Mainframe e uma historia que não esta no gibi

⚖️ CAPÍTULO 5 — A TOGA NÃO É UM TOKEN DE AUTENTICAÇÃO

Os chimpanzés continuaram investigando.

Encontraram pessoas poderosas.

Executivos.

Autoridades.

Magistrados.

Políticos.

Empresários.

E perceberam uma coisa.

Quanto maior o poder de uma pessoa, maior pode ser a tentação social de transformar sua posição em credencial.

Mas uma toga não deveria funcionar como:

PERMIT * ACCESS(ALTER)

Nem um cargo de CEO.

Nem um cartão VIP.

Nem amizade com o presidente.

Porque segurança baseada em prestígio possui uma vulnerabilidade fundamental:

ela funciona melhor justamente contra quem oferece menos risco institucional para quem aplica a regra.


🍽️ CAPÍTULO 6 — DESPESAS DE REPRESENTAÇÃO

Agora os chimpanzés chegaram ao departamento financeiro.

Encontraram uma expressão maravilhosa:

DESPESAS DE REPRESENTAÇÃO.

Jantares.

Viagens.

Eventos.

Hospitalidade.

Entretenimento.

Presentes.

Tudo pode possuir finalidade comercial perfeitamente legítima.

O problema começa quando alguém confunde:

DOCUMENTO EXISTE

com

TRANSAÇÃO É LEGÍTIMA.

São coisas completamente diferentes.

Um sistema ruim pergunta:

Tem comprovante?

Um sistema melhor pergunta:

O comprovante representa aquilo que realmente aconteceu?


🧾 CAPÍTULO 7 — COMPLIANCE NÃO É COLECIONAR PDF

Imagine:

DESPESA REAL = A
DOCUMENTO = B
CONTABILIDADE = B
ERP = B
RELATÓRIO = B
AUDITORIA SUPERFICIAL = OK

Cinco sistemas concordam.

E cinco sistemas podem estar errados.

Porque todos receberam a mesma representação incorreta da realidade.

Esse é um problema fascinante para quem trabalha com sistemas.

Garbage in, garbage out também funciona em compliance.

Uma transação pode possuir:

✔ documento
✔ aprovação
✔ centro de custo
✔ fornecedor
✔ lançamento
✔ pagamento

e ainda exigir investigação.

O auditor experiente não pergunta apenas:

“Existe nota?”

Pergunta:

“Esta nota conta a história verdadeira?”


👠 CAPÍTULO 8 — AS GAROTAS QUE ROUBARAM A MANCHETE

Então apareceram profissionais do sexo.

E todos os chimpanzés abandonaram imediatamente a arquitetura de segurança.

A imprensa também.

Porque:

CONFLITO DE INTERESSES EM COMPLEXA REDE DE RELACIONAMENTOS

é uma manchete chata.

Mas:

TOGA + JATINHO + GAROTA + FESTA

é praticamente o renascimento do Notícias Populares.

Só que existe uma armadilha intelectual aí.

Sexo consensual entre adultos pode não ser a questão relevante.

A pergunta interessante é outra:

quem proporcionou o benefício?

E depois:

por quê?

E depois:

para quem?

E finalmente:

o beneficiário possuía poder sobre algum interesse de quem estava pagando?

O Red Team abandona a fofoca e segue o fluxo.


💰 CAPÍTULO 9 — FOLLOW THE MONEY

Dinheiro possui uma qualidade maravilhosa para auditoria:

ele deixa rastros.

Mas o auditor iniciante procura somente:

A → B

O experiente procura:

A
│
├── empresa
├── consultoria
├── escritório
├── fornecedor
├── instituto
├── evento
├── viagem
└── benefício
        │
        ▼
        B

Isso não significa que cada seta represente corrupção.

Muito pelo contrário.

A maior parte das relações econômicas é perfeitamente legítima.

O objetivo é descobrir o significado das relações, não criminalizar relacionamentos.


🕵️ CAPÍTULO 10 — RED TEAM NÃO PROCURA APENAS BUG

Essa talvez seja a maior lição.

Red Team não precisa perguntar somente:

“Consigo quebrar o software?”

Pode perguntar:

“Consigo quebrar o processo?”

E depois:

“Consigo fazer alguém autorizado executar algo que eu não conseguiria executar?”

E finalmente:

“Existe alguém tão poderoso que os controles deixam de funcionar normalmente quando ele aparece?”

Essa última pergunta é assustadoramente poderosa.


🧠 CAPÍTULO 11 — O CONTROLE INVISÍVEL

Imagine duas políticas.

A política oficial:

Ninguém entra sem autorização.

E a política cultural:

Ninguém entra sem autorização, exceto pessoas importantes porque ninguém quer confusão.

Qual delas controla realmente a organização?

A segunda.

Mesmo sem estar escrita.

Esse é o Shadow Security Policy.

E ele pode ser mais poderoso que o RACF.


🐵 CAPÍTULO 12 — O CHIMPANZÉ AUDITOR

Depois de consumir quantidades preocupantes de saquê, um chimpanzé apresentou sua metodologia.

Ele escreveu no quadro:

QUEM?
 ↓
PEDIU O QUÊ?
 ↓
QUEM AUTORIZOU?
 ↓
QUEM PAGOU?
 ↓
QUEM RECEBEU?
 ↓
QUEM SE BENEFICIOU?
 ↓
HAVIA INTERESSE?
 ↓
HOUVE ATO POSTERIOR?
 ↓
EXISTE AUDIT TRAIL?

A sala ficou silenciosa.

O chimpanzé havia acabado de inventar uma investigação melhor que muito checklist corporativo.


🔐 CAPÍTULO 13 — ZERO TRUST PARA PODEROSOS

Talvez precisemos atualizar o conceito.

Zero Trust costuma ser explicado assim:

Never trust, always verify.

Mas existe uma versão organizacional:

Never trust status. Always verify authorization.

Porque existem duas formas de privilégio.

O privilégio técnico:

SPECIAL
OPERATIONS
AUDITOR
ALTER
CONTROL

E o privilégio social:

CEO
DIRETOR
VIP
AUTORIDADE
AMIGO DO DONO

O primeiro aparece nos relatórios.

O segundo raramente.

E justamente por isso merece atenção.


🧯 CAPÍTULO 14 — O FUNCIONÁRIO QUE DISSE NÃO

Existe ainda outro controle que quase nunca aparece no diagrama:

a pessoa que executa a política.

Se ela disser NÃO corretamente e receber punição por isso, a organização acabou de executar um treinamento informal.

Todos aprenderam:

Na próxima vez, diga SIM.

É assim que controles morrem sem ninguém alterar uma única linha de configuração.

O RACF continua perfeito.

O manual continua perfeito.

A auditoria continua recebendo relatórios verdes.

Mas ninguém mais deseja aplicar a regra contra determinadas pessoas.


🏛️ CAPÍTULO 15 — O PRINCÍPIO DA DISTÂNCIA ZERO

Relacionamento não é crime.

Networking não é crime.

Jantar não é crime.

Viajar não é crime.

Ter amigos poderosos não é crime.

Contratar serviços não é crime.

A pergunta de governança é:

essas relações conseguem alterar decisões que deveriam ser independentes?

Esse é o ponto em que compliance deixa de ser moralismo e vira arquitetura institucional.


📰 CAPÍTULO 16 — O EFEITO NOTÍCIAS POPULARES

Existe ainda um perigo para quem investiga.

Encontrar algo escandaloso demais.

Sexo.

Luxo.

Celebridades.

Jatinhos.

Festas.

Tudo isso produz atenção.

Mas atenção pode destruir investigação.

Porque o público passa a discutir:

“Quem dormiu com quem?”

quando deveria perguntar:

“Quem pagou o quê para quem e qual interesse existia?”

O espetáculo pode funcionar como fumaça sobre o problema verdadeiro.


🐒 EPÍLOGO — SHAKESPEARE NÃO VEIO

Depois de milhares de horas, o milhão de chimpanzés não escreveu Shakespeare.

Produziu algo muito mais útil.

Um relatório de auditoria.

Na última página havia apenas quatro linhas:

IDENTIDADE NÃO É AUTORIZAÇÃO.

DOCUMENTAÇÃO NÃO É VERDADE.

PODER NÃO É CREDENCIAL.

E TODO PRIVILÉGIO PRECISA DE AUDIT TRAIL.

O jovem programador olhou para o veterano.

— Então qual é a porta dos fundos mais perigosa?

O velho terminou o café.

Olhou para o relógio.

03:17.

— Aquela que todo mundo conhece, Padawan.

— Então por que ninguém fecha?

O veterano levantou-se.

— Porque às vezes quem passa por ela é justamente quem poderia mandar fechá-la.

No fundo da sala, um chimpanzé levantou o copo de saquê.

ICH408I.

Access denied.

Desta vez, para todos.

terça-feira, 15 de setembro de 2026

🧟 Mainframe Evolution — O Pesadelo Open Source que Entrou na LPAR

 

Bellacosa Mainframe e o Mainframe Evolution

☕ Um Café no Bellacosa Mainframe

🧟 Mainframe Evolution — O Pesadelo Open Source que Entrou na LPAR

Segurança, observabilidade e escala no IBM Z, investigadas sob a ótica de Dylan Dog, o Investigador do Pesadelo



Há casos que chegam ao escritório de Dylan Dog embrulhados em jornais velhos, acompanhados por fotografias borradas e pelo depoimento de alguma testemunha dizendo ter visto uma criatura impossível atravessar a parede à meia-noite.

Este caso chegou de maneira ainda mais suspeita.

Em uma apresentação apareceu a frase:

Mainframe Evolution: Securing, Monitoring, and Scaling with Next-Gen Open Source

Dylan olhou para o papel.

Groucho olhou para Dylan.

— Chefe, acho que descobriram algo mais antigo que os vampiros.

— O quê?

— COBOL.

Silêncio.

Em algum lugar distante, uma fita magnética girou sozinha.

Bem-vindo a mais uma investigação do Bellacosa Mainframe.

Desta vez nosso cliente afirma que existe open source dentro do mainframe.

Para muitos programadores, isso parece perfeitamente normal em 2026.

Para outros, principalmente aqueles que ainda imaginam o mainframe como uma fortaleza isolada onde todos entram pelo TSO e qualquer alteração precisa de três formulários, dois CABs e o sangue de um analista de produção, a afirmação parece paranormal.

Dylan Dog foi chamado.

Vamos investigar.



🕵️ CAPÍTULO 1 — O cadáver que se recusava a morrer

A primeira coisa que chamou a atenção de Dylan foi a idade da vítima.

O mainframe já havia sido declarado morto tantas vezes que seu prontuário parecia uma coleção de obituários.

Client/server iria matá-lo.

Depois Unix.

Depois Windows.

Depois servidores x86.

Depois Java.

Depois a Web.

Depois cloud.

Depois containers.

Depois Kubernetes.

Agora inteligência artificial.

Dylan abriu o arquivo.

STATUS: EXECUTING.

— Estranho — comentou ele.

Muito estranho.

Talvez estivéssemos procurando o cadáver errado.

Porque o IBM Z moderno não é simplesmente um computador gigantesco escondido no porão executando programas COBOL escritos quando os Beatles ainda tocavam juntos.

Ele é uma plataforma capaz de reunir tecnologias de gerações muito diferentes.

Podemos encontrar algo parecido com:

                 IBM Z
                   │
        ┌──────────┼──────────┐
        │          │          │
       z/OS       Linux      z/VM
        │          │          │
      COBOL      Python    Virtualização
      CICS       Java
      IMS        Open Source
      Db2        Containers
      MQ

A primeira pista estava diante de Dylan.

Talvez evolução do mainframe não significasse substituição.

Significasse incorporação.



🧟 CAPÍTULO 2 — Frankenstein não precisava morrer

Existe uma velha tentação em tecnologia.

Quando encontramos algo antigo, imediatamente pensamos:

"Precisamos substituir isso."

Imagine um banco possuindo milhões de linhas COBOL responsáveis por contas, cartões, pagamentos, empréstimos e liquidação financeira.

Alguém entra na reunião e anuncia:

— Temos uma ideia revolucionária! Vamos reescrever tudo!

Dylan provavelmente perguntaria:

— Por quê?

Essa é uma excelente pergunta.

Modernização não significa obrigatoriamente:

COBOL
  ↓
Java

Muito menos:

MAINFRAME
   ↓
CLOUD

Podemos modernizar ao redor da aplicação:

               Git
                │
VS Code ───► COBOL ◄─── CI/CD
                │
             Testing
                │
          Security Scan
                │
              APIs
                │
         Observability

O programa continua COBOL.

A lógica continua executando no z/OS.

CICS continua administrando transações.

Db2 continua guardando dados.

RACF continua controlando acessos.

Mas a maneira como desenvolvemos, testamos, implantamos, observamos e integramos essas aplicações pode mudar radicalmente.

Nosso monstro de Frankenstein não precisava ser destruído.

Precisávamos apenas entender como ele funcionava.



🔐 CAPÍTULO 3 — SECURING: alguém abriu novas portas no castelo

Dylan chegou à primeira cena do crime.

Uma enorme fortaleza.

Sobre o portão estava escrito:

RACF

Nada particularmente assustador.

O mainframe conhece controle de acesso há décadas.

Usuários possuem identidades.

Recursos possuem regras.

Datasets podem ser protegidos.

Transações CICS podem ser protegidas.

Recursos do sistema podem ser protegidos.

Aplicações podem ser protegidas.

Então apareceu o open source.

Depois vieram APIs.

CLI.

VS Code.

Git.

Jenkins.

Zowe.

Containers.

OpenShift.

Linux.

Cloud.

Service accounts.

Automação.

De repente, nosso castelo ganhou dezenas de portas.

                    IBM Z
                      │
     ┌────────────────┼────────────────┐
     │                │                │
    API              CLI             IDE
     │                │                │
 Jenkins            Zowe            VS Code
     │
   CI/CD

Nenhuma dessas tecnologias é inerentemente um problema.

O problema aparece quando adicionamos conectividade sem adicionar governança.



👻 CAPÍTULO 4 — O fantasma das credenciais

Groucho apareceu segurando um papel.

— Dylan, encontrei a senha.

— Onde?

— No script.

Isso é exatamente o tipo de fantasma que ninguém quer encontrar.

Imagine:

USER=DEPLOY01
PASSWORD=SUPERSECRET123

dentro de um script versionado.

Ou um token esquecido em um arquivo de configuração.

Ou uma service account com privilégios maiores que o necessário.

Automação multiplica produtividade.

Mas também pode multiplicar erros.

Um humano pode cometer um erro uma vez.

Um pipeline consegue cometer o mesmo erro automaticamente quinhentas vezes antes do café.

Por isso modernização exige pensar em:

Identity
Authentication
Authorization
Certificates
TLS
Secrets
Tokens
Audit
Least Privilege
API Security
Logging

O velho princípio continua válido:

Quem é você, o que você pode fazer e quem registrará que você fez?

RACF não ficou obsoleto porque apareceu DevOps.

Na verdade, DevOps torna essas perguntas ainda mais importantes.



🧪 CAPÍTULO 5 — Zowe entra na investigação

Dylan encontrou outra inscrição:

ZOWE

Aqui encontramos uma das pontes mais interessantes entre o mainframe tradicional e ferramentas modernas.

Imagine nosso jovem programador COBOL.

Ele conhece:

Git
VS Code
Terminal
REST
JSON
CLI

Então alguém apresenta:

TSO
ISPF
SDSF
JCL
3270

Nada disso é ruim.

Mas existe uma curva de aprendizagem.

Uma proposta importante do Zowe é permitir interfaces familiares ao desenvolvedor moderno para interação com o ecossistema z/OS.

Simplificando bastante:

VS Code ──────┐
              │
CLI ──────────┤
              │
REST ─────────┼──► Zowe ───► z/OS
              │
Scripts ──────┤
              │
Automation ───┘

Isso não significa abolir ISPF.

Nem significa transformar z/OS em Linux.

Significa criar novas maneiras de conversar com a plataforma.

Dylan anotou:

O suspeito não destruiu a porta antiga. Construiu outra entrada.


👁️ CAPÍTULO 6 — MONITORING: o mainframe sempre esteve olhando

Aqui nossa investigação fica especialmente interessante.

O mundo distribuído descobriu recentemente uma palavra maravilhosa:

observability.

Logs!

Metrics!

Traces!

Dashboards!

Alertas!

Dylan quase sorriu.

Porque no porão do mainframe encontrou arquivos muito mais antigos:

SMF
RMF
SYSLOG
OPERLOG
WLM
CICS Statistics
Db2 Accounting
IMS Logs
MQ Statistics

O mainframe sempre produziu uma quantidade extraordinária de informações operacionais.

Então qual é a novidade?

Correlação.


🔎 CAPÍTULO 7 — O cliente não sabe o que é uma LPAR

Imagine Maria pagando R$100 usando o celular.

Para ela:

CELULAR
  ↓
PAGAMENTO

Simples.

Agora acompanhemos o que pode acontecer por trás:

Mobile App
    ↓
Internet
    ↓
API Gateway
    ↓
OpenShift
    ↓
Java
    ↓
MQ
    ↓
z/OS Connect
    ↓
CICS
    ↓
COBOL
    ↓
Db2

Maria liga:

— Meu pagamento demorou.

Ela não diz:

"Observei um aumento no response time da transaction class associada ao CICS."

Seria fantástico se dissesse.

Mas não diz.

Ela quer saber por que o botão demorou.

A empresa precisa investigar a transação inteira.

Esse é o grande salto entre simplesmente monitorar componentes e observar serviços distribuídos.


🔦 CAPÍTULO 8 — A lanterna chamada Trace ID

Dylan coloca uma etiqueta na vítima:

TRACE-ID: BELLACOSA-0317

Agora imagine essa identificação acompanhando a solicitação:

APP
 │
 │ 0317
 ▼
API
 │
 │ 0317
 ▼
OPENSHIFT
 │
 │ 0317
 ▼
MQ
 │
 │ 0317
 ▼
CICS
 │
 │ 0317
 ▼
COBOL
 │
 │ 0317
 ▼
DB2

Agora temos uma investigação de verdade.

Podemos descobrir:

APP            120 ms
API             80 ms
OPENSHIFT       90 ms
MQ              40 ms
CICS            70 ms
COBOL           20 ms
DB2           3.900 ms

A aplicação demorou aproximadamente 4,3 segundos.

E finalmente encontramos o suspeito.

Não era COBOL.

Era uma consulta no banco.

O pobre COBOL estava sendo acusado porque morava no bairro errado.


🩸 CAPÍTULO 9 — OpenTelemetry encontra SMF

Aqui existe uma possibilidade particularmente fascinante.

De um lado temos o universo tradicional:

SMF
RMF
WLM
CICS
Db2
IMS
MQ

Do outro:

OpenTelemetry
Prometheus
Grafana
Elastic
OpenSearch
Jaeger

Historicamente eles podem parecer dois mundos.

Mas uma aplicação empresarial moderna pode atravessar ambos.

Portanto, o verdadeiro objetivo passa a ser:

             BUSINESS TRANSACTION
                     │
       ┌─────────────┴─────────────┐
       │                           │
 DISTRIBUTED WORLD             MAINFRAME
       │                           │
 OpenTelemetry                   SMF
 Prometheus                      RMF
 Containers                      WLM
 Kubernetes                      CICS
 APIs                            Db2
       │                           │
       └─────────────┬─────────────┘
                     │
               OBSERVABILITY

Agora podemos começar a responder não apenas:

"A CPU está boa?"

Mas:

"Por que o cliente não conseguiu concluir a compra?"

Essa segunda pergunta vale dinheiro.


📈 CAPÍTULO 10 — SCALING: o monstro começou a crescer

Nosso terceiro mistério é escala.

Alguém poderia dizer:

— Finalmente Kubernetes ensinará mainframe a escalar!

Nesse momento talvez Dylan pedisse para Groucho retirar a pessoa da sala.

Mainframes foram construídos justamente para executar workloads enormes.

z/OS possui uma longa história de administração sofisticada de workloads.

Temos conceitos como:

LPAR
WLM
Parallel Sysplex
Coupling Facility
Capacity
Workload Management

O que mudou foi o ambiente ao redor.

Imagine:

               INTERNET
                   │
             LOAD BALANCER
                   │
          ┌────────┼────────┐
          │        │        │
         POD      POD      POD
          │        │        │
          └────────┼────────┘
                   │
                  MQ
                   │
                CICS
                   │
                COBOL
                   │
                 DB2

Kubernetes pode aumentar pods.

Ótimo.

Mas isso não significa capacidade infinita.


☠️ CAPÍTULO 11 — O horror do autoscaling cego

Aqui mora um monstro interessante.

Suponhamos:

3 PODS

O sistema detecta carga elevada.

Então:

3 → 6 → 12 → 24 → 48 PODS

Fantástico!

Exceto que todos atacam o mesmo backend.

48 PODS
   │
   │
   ▼
   MQ
   │
   ▼
  CICS
   │
   ▼
  DB2

Escalar frontend sem compreender backend pode simplesmente produzir um ataque DDoS patrocinado pela própria empresa.

Essa é uma das grandes lições de arquitetura híbrida.

Precisamos compreender:

  • throughput;

  • concorrência;

  • filas;

  • limites;

  • CPU;

  • I/O;

  • locks;

  • conexões;

  • response time;

  • prioridades;

  • capacidade do backend.

Escalabilidade não significa "crie mais coisas".

Significa administrar capacidade do sistema completo.


🐧 CAPÍTULO 12 — Há um pinguim no porão

Dylan ouviu um barulho.

Desceu mais um andar.

Encontrou Linux.

Sim, Linux no mainframe.

Essa confusão ainda existe:

MAINFRAME = z/OS

Não exatamente.

IBM Z pode hospedar diferentes ambientes e workloads.

Podemos pensar conceitualmente em:

IBM Z
 │
 ├── z/OS
 │    ├── COBOL
 │    ├── CICS
 │    ├── IMS
 │    └── Db2
 │
 ├── Linux on Z
 │    ├── Java
 │    ├── Python
 │    └── Open Source
 │
 └── Virtualização
      ├── z/VM
      └── outros ambientes suportados

Isso muda completamente a imagem mental de "computador antigo".

O hardware permanece centralizado e extremamente robusto.

O ecossistema de software, entretanto, tornou-se bastante heterogêneo.


🔧 CAPÍTULO 13 — DevOps encontra COBOL

Nosso programador iniciante agora recebe uma missão.

Modificar:

CUSTOMER.cbl

No fluxo tradicional poderia acontecer:

ISPF
 ↓
EDIT
 ↓
JCL
 ↓
COMPILE
 ↓
LINK
 ↓
TEST

Esse fluxo continua perfeitamente válido em muitos ambientes.

Mas podemos criar:

VS Code
   ↓
Git
   ↓
Commit
   ↓
Pull Request
   ↓
Automated Build
   ↓
Unit Test
   ↓
Security Scan
   ↓
Deploy
   ↓
Monitoring

Observe o detalhe.

Em nenhum momento fomos obrigados a escrever:

rm CUSTOMER.cbl

O COBOL continua lá.

Mudamos o software delivery lifecycle.

Essa diferença é fundamental.


🧠 CAPÍTULO 14 — O erro clássico: confundir modernização com linguagem

Dylan encontra finalmente uma testemunha.

— Eu vi tudo! Modernizaram o sistema!

— Como?

— Converteram COBOL para Java!

Dylan fecha o bloco de notas.

Isso pode ser modernização.

Mas não é a definição de modernização.

Um programa COBOL pode estar integrado a:

Git
CI/CD
Automated Tests
APIs
Modern IDE
Observability
Security Automation
AI Assistance

Enquanto um programa Java pode viver em:

FTP
manual deployment
no tests
hardcoded passwords
no monitoring
no documentation

Qual dos dois é realmente "legado"?

A linguagem não responde sozinha.

Processo, arquitetura, governança e manutenibilidade importam enormemente.


🕸️ CAPÍTULO 15 — O verdadeiro monstro é a complexidade

Depois de horas investigando, Dylan percebe algo.

Não existe apenas um assassino.

Existe uma teia.

                    USER
                      │
                     APP
                      │
                     API
                      │
                  KUBERNETES
                      │
                      MQ
                      │
               z/OS CONNECT
                      │
                    CICS
                      │
                    COBOL
                      │
                     DB2

Cada camada possui:

Security
Monitoring
Configuration
Capacity
Networking
Logging
Authentication
Authorization
Versioning
Dependencies

É aqui que open source pode ajudar muito.

Mas também é onde ele pode criar problemas se for adotado simplesmente porque "todo mundo usa".

Open source não elimina complexidade.

Às vezes ele democratiza ferramentas para administrá-la.

E às vezes adiciona outra camada.

Arquitetura continua exigindo engenharia.


🧰 CAPÍTULO 16 — O arsenal do Investigador do Pesadelo

Se Dylan Dog fosse engenheiro de plataforma IBM Z, sua mala talvez tivesse:

┌─────────────────────────────┐
│ DYLAN DOG TOOLBOX           │
├─────────────────────────────┤
│ RACF       → Security       │
│ SMF        → Evidence       │
│ RMF        → Performance    │
│ WLM        → Workloads      │
│ SDSF       → Operations     │
│ Zowe       → Integration    │
│ Git        → Versioning     │
│ CI/CD      → Automation     │
│ OTel       → Tracing        │
│ Grafana    → Visualization  │
│ Linux      → Open ecosystem │
└─────────────────────────────┘

Mas ferramentas não resolvem crimes sozinhas.

Precisamos saber que pergunta fazer.


🎓 CAPÍTULO 17 — O novo programador mainframe

Talvez esta seja a maior transformação.

Durante décadas uma trilha de formação poderia começar assim:

3270
 ↓
TSO
 ↓
ISPF
 ↓
JCL
 ↓
COBOL
 ↓
VSAM
 ↓
CICS
 ↓
DB2

Eu ainda ensinaria essa base.

Porque abstração sem fundamento produz profissionais que sabem apertar botões, mas não entendem o que acontece quando o botão falha.

Porém acrescentaria outra coluna:

MAINFRAME CLÁSSICO       ENGENHARIA MODERNA

TSO/ISPF                 VS Code
JCL                      Pipelines
COBOL                    Git
CICS                     APIs
Db2                      Observability
RACF                     IAM concepts
SDSF                     Automation
SMF                      Telemetry
USS                      Open Source

Não são inimigos.

São camadas de conhecimento.

O profissional interessante do futuro sabe atravessar essa ponte.


🧟 CAPÍTULO 18 — E a inteligência artificial?

Naturalmente nosso monstro mais recente aparece.

IA pode ajudar a:

explicar COBOL
gerar documentação
analisar dependências
sugerir testes
interpretar mensagens
auxiliar debugging
explicar JCL
produzir scripts
examinar código legado

Fantástico.

Mas existe uma regra Dylan Dog para isso:

Não confie no monstro apenas porque ele fala educadamente.

Código gerado precisa ser revisado.

JCL precisa ser entendido.

Sugestões precisam ser validadas.

Segurança precisa permanecer sob controle.

Imagine uma IA sugerindo:

PERMIT * CLASS(DATASET) ACCESS(ALTER)

e alguém respondendo:

"A inteligência artificial recomendou."

Nesse momento o verdadeiro terror começou.

IA deve aumentar a capacidade do engenheiro.

Não abolir julgamento técnico.


🕯️ CAPÍTULO 19 — O Easter Egg das 03:17

Às 03:17, todos os dashboards ficaram vermelhos.

CPU?

Normal.

Storage?

Normal.

CICS?

UP.

Db2?

UP.

MQ?

UP.

Kubernetes?

Healthy.

O operador escreveu:

03:17:22 - USERS REPORTING PAYMENT TIMEOUT

Dylan olhou para o dashboard.

Tudo verde.

Olhou novamente para o cliente.

Tudo quebrado.

E finalmente percebeu o verdadeiro pesadelo:

Todos monitoravam componentes. Ninguém monitorava a experiência completa.

O sistema poderia estar tecnicamente saudável enquanto o serviço estava funcionalmente morto.

Essa talvez seja a melhor explicação de por que observabilidade tornou-se tão importante.


🧩 CAPÍTULO 20 — Security + Monitoring + Scaling

Finalmente podemos retornar ao título:

Securing

Garantir que as novas portas abertas pela modernização não destruam décadas de controles.

Monitoring

Sair da visão isolada do componente e compreender a transação ponta a ponta.

Scaling

Fazer ambientes distribuídos e mainframe responderem à demanda sem simplesmente transferir o gargalo de uma camada para outra.

E existe um quarto elemento escondido:

Integrating

Porque todos os anteriores dependem dele.

            MAINFRAME EVOLUTION
                    │
     ┌──────────────┼──────────────┐
     │              │              │
 SECURITY      OBSERVABILITY     SCALE
     │              │              │
     └──────────────┼──────────────┘
                    │
              INTEGRATION
                    │
                OPEN SOURCE
                    │
              AUTOMATION
                    │
                 IBM Z

☕ EPÍLOGO — Dylan fecha o caso

O sol começava a nascer.

Groucho trouxe café.

Dylan fechou a pasta.

Na capa escreveu:

CASE CLOSED?

Depois riscou o ponto de interrogação.

E tornou a colocá-lo.

Porque sistemas nunca ficam realmente prontos.

Eles evoluem.

O ponto central de Mainframe Evolution: Securing, Monitoring, and Scaling with Next-Gen Open Source não precisa ser interpretado como uma guerra entre dois mundos.

Não é:

MAINFRAME
   VS
OPEN SOURCE

Também não é:

OLD
 ↓
DELETE
 ↓
NEW

É algo muito mais interessante:

       60+ ANOS DE ENGENHARIA
                │
                ▼
             IBM Z
                │
      ┌─────────┼─────────┐
      │         │         │
    z/OS      Linux    Open Source
      │         │         │
 COBOL/CICS    Apps      Tools
 Db2/IMS/MQ   Cloud     Automation
      │         │         │
      └─────────┼─────────┘
                │
              APIs
                │
              Git
                │
             CI/CD
                │
         Observability
                │
            Security
                │
               AI
                │
                ▼
       MODERN ENTERPRISE

E isso nos conduz a uma conclusão deliciosa para alguém que trabalha com mainframe.

Durante décadas perguntaram:

"Quando o mainframe vai morrer?"

Talvez a pergunta estivesse errada.

A pergunta mais interessante em 2026 é:

"Quantas tecnologias novas o mainframe ainda conseguirá absorver sem deixar de ser mainframe?"

Até agora, a resposta parece ser:

muitas.

Talvez seja exatamente isso que explique sua longevidade.

O mainframe não sobreviveu apesar das mudanças.

Em boa medida, sobreviveu porque aprendeu a incorporá-las.

Dylan Dog saiu do data center.

As luzes se apagaram.

Uma última mensagem apareceu no console:

IEF404I BELLACOSA - ENDED - TIME=04.17.00

Groucho olhou para a tela.

— Então o monstro morreu?

Dylan vestiu o casaco.

— Não.

— E agora?

Ao fundo, outra mensagem apareceu:

$HASP100 BELLACOSA ON READER

O JOB seguinte acabara de entrar.

Bellacosa Mainframe — porque no mainframe até os fantasmas têm retrocompatibilidade.



segunda-feira, 14 de setembro de 2026

💳 BELLACARD — Como seria um sistema de cartões de crédito dentro de um IBM Mainframe?

 

Bellacosa Mainframe e o processamento do cartão de credito

☕ Um Café no Bellacosa Mainframe

💳 BELLACARD — Como seria um sistema de cartões de crédito dentro de um IBM Mainframe?

Do “BIP!” da maquininha ao COBOL, CICS, Db2, MQ, JCL, RACF, criptografia, antifraude, clearing, settlement e bilhões de transações que ninguém percebe.

Imagine a cena.

Você entra numa cafeteria, pede um café, aproxima o cartão da maquininha e...

BIP!

TRANSAÇÃO APROVADA
R$ 17,50

Você guarda o cartão, pega o café e continua a vida.

Talvez tenham se passado dois segundos.

Para o consumidor, acabou.

Para um programador mainframe curioso, porém, aconteceu uma pequena maravilha tecnológica.

Aqueles poucos segundos podem envolver terminal de pagamento, adquirente, rede de cartões, banco emissor, sistemas de autorização, criptografia, verificação do cartão, consulta de limites, regras de segurança, sistemas antifraude, bancos de dados, logs, mensagens entre plataformas e uma resposta que precisa percorrer boa parte desse caminho no sentido contrário.

E ainda não acabou.

Mais tarde haverá processamento financeiro, clearing, settlement, conciliação, lançamento da compra, fechamento da fatura, eventual parcelamento, pagamento, contabilização, estorno, contestação e talvez até um chargeback.

A humilde compra do café abriu uma pequena saga computacional.

E é exatamente por isso que cartões de crédito são um excelente laboratório para entender por que mainframes existem.

Então coloque café na caneca.

Hoje construiremos mentalmente o:

💳 BELLACARD — Credit Card Processing System for z/OS



Não será o projeto real de nenhum banco ou bandeira. Será uma arquitetura didática para entendermos como tecnologias como COBOL, CICS, Db2, MQ, JCL/JES2, RACF, criptografia, SMF, WLM e Parallel Sysplex podem participar de um grande sistema financeiro.



🏪 Capítulo 1 — Tudo começa com R$ 100

Imagine uma compra:

CLIENTE:       JOÃO
VALOR:         R$ 100,00
ESTABELECIMENTO: CAFÉ DO MAINFRAME
FORMA:         CARTÃO

O cartão é apresentado.

A maquininha não conhece necessariamente o saldo da conta do cliente.

O estabelecimento também não.

A adquirente não é necessariamente quem concedeu o crédito.

Existe uma cadeia.

Simplificando:

CARDHOLDER
    │
    ▼
MERCHANT
    │
    ▼
ACQUIRER
    │
    ▼
CARD NETWORK
    │
    ▼
ISSUER

Visa e Mastercard, por exemplo, operam redes que conectam os participantes do ecossistema.

O banco emissor é quem conhece o cartão, sua situação, conta relacionada, limite e diversas regras necessárias para decidir se aquela operação pode prosseguir.

Portanto, eventualmente surge uma pergunta:

“Banco, você autoriza esta compra?”

É aí que nosso BELLACARD acorda.



📨 Capítulo 2 — Uma mensagem bate à porta

Imagine que recebamos uma representação simplificada da operação:

TRANSACTION TYPE : PURCHASE
CARD TOKEN        : 987654321
AMOUNT            : 100.00
CURRENCY          : BRL
MERCHANT ID       : 785932
MCC               : 5812
COUNTRY            : BRA
ENTRY MODE         : CONTACTLESS
DATE               : 20260914
TIME               : 031700

Sim.

03:17.

Quem acompanha o Bellacosa Mainframe sabe que esse horário nunca aparece por acidente.

😏

Nosso primeiro easter egg já foi registrado.

Em sistemas reais, mensagens de cartões podem utilizar padrões e protocolos próprios do setor, incluindo famílias baseadas em ISO 8583, além de APIs e formatos modernos dependendo da integração.

Para nosso iniciante COBOL, entretanto, vamos imaginar simplesmente um registro chegando ao mainframe.



🖥️ Capítulo 3 — CICS, atenda a porta!

Dentro do z/OS poderíamos possuir uma transação CICS:

AUTH

Sua missão:

processar uma solicitação de autorização.

Conceitualmente:

REQUEST
   │
   ▼
 CICS
   │
   ▼
AUTHORIZATION PROGRAM
   │
   ├── VALIDATE CARD
   ├── CHECK STATUS
   ├── CHECK LIMIT
   ├── CHECK RULES
   ├── CHECK RISK
   │
   ▼
APPROVE / DECLINE

Um pseudocódigo COBOL extremamente simplificado poderia parecer:

       PROCEDURE DIVISION.

           PERFORM VALIDATE-REQUEST
           PERFORM READ-CARD
           PERFORM CHECK-CARD-STATUS
           PERFORM CHECK-AVAILABLE-LIMIT
           PERFORM CHECK-RISK

           IF WS-AUTHORIZED
               PERFORM CREATE-AUTHORIZATION
               PERFORM RESERVE-LIMIT
               MOVE '00' TO WS-RESPONSE-CODE
           ELSE
               MOVE '05' TO WS-RESPONSE-CODE
           END-IF.

Não copie isso para instalar amanhã no banco. 😁

Estamos construindo um modelo didático.

O importante é compreender o fluxo.


💳 Capítulo 4 — O cartão existe?

Nossa primeira pergunta parece ridícula:

O cartão existe?

Mas sistemas robustos começam validando o básico.

Podemos possuir algo conceitualmente semelhante a:

CARD
---------------------------
CARD_ID
ACCOUNT_ID
CARD_TOKEN
STATUS
EXPIRATION_DATE
PRODUCT_CODE
BLOCK_CODE

O programa consulta:

SELECT STATUS,
       ACCOUNT_ID,
       EXPIRATION_DATE
FROM CARD
WHERE CARD_TOKEN = :WS-CARD-TOKEN

E descobre:

STATUS = ACTIVE

Ótimo.

Mas poderia encontrar:

BLOCKED
CANCELLED
EXPIRED
LOST
STOLEN

Nesse caso, dependendo das regras:

DECLINED

Observe algo importante para quem está aprendendo COBOL.

O programa não está simplesmente “fazendo contas”.

Ele está implementando regras de negócio.

Essa é uma das essências do COBOL empresarial.


🏦 Capítulo 5 — A conta e o limite

Encontramos a conta:

ACCOUNT_ID       = 100238
CREDIT_LIMIT     = 10000.00
AVAILABLE_LIMIT  = 5800.00
CURRENT_BALANCE  = 3400.00
PENDING_AUTH     = 800.00

A compra solicitada é:

100.00

Temos limite.

Mas cuidado.

Não deveríamos simplesmente fazer:

SUBTRACT 100 FROM AVAILABLE-LIMIT.

Por quê?

Porque provavelmente existem milhares de transações concorrentes.

Imagine duas compras quase simultâneas.

AVAILABLE LIMIT = R$ 500

COMPRA A = R$ 400
COMPRA B = R$ 400

Dois programas consultam:

R$ 500 disponível.

A conclui:

aprovado.

B conclui:

aprovado.

Parabéns.

Acabamos de autorizar R$ 800 usando R$ 500.

Bem-vindo ao maravilhoso universo da concorrência transacional.


🔒 Capítulo 6 — COMMIT e ROLLBACK não são frescura

Aqui começamos a compreender por que sistemas transacionais possuem mecanismos tão sofisticados.

Nossa operação poderia ser tratada como uma Unit of Work.

BEGIN UOW
    │
    ├── READ ACCOUNT
    │
    ├── CHECK LIMIT
    │
    ├── CREATE AUTHORIZATION
    │
    ├── RESERVE LIMIT
    │
    └── WRITE AUDIT
           │
           ▼
         COMMIT

Mas imagine:

CREATE AUTHORIZATION → OK
RESERVE LIMIT        → OK
WRITE SOMETHING      → ERROR

Não podemos deixar metade da operação concluída.

Precisamos de:

ROLLBACK

A ideia fundamental é:

Ou a unidade lógica de trabalho acontece de maneira consistente, ou voltamos ao estado apropriado.

Esse é um dos conceitos que um programador COBOL iniciante deveria tatuar mentalmente.

Em aplicações financeiras, inconsistência pode significar dinheiro.


🧠 Capítulo 7 — O limite existe, mas devemos autorizar?

Não necessariamente.

Imagine:

LIMITE DISPONÍVEL: R$ 20.000
COMPRA:            R$ 7.000

Matematicamente:

7000 < 20000

Então aprova?

Talvez.

Agora acrescente:

CLIENTE NORMALMENTE COMPRA: Brasil
HORÁRIO:                     03:17
VALOR MÉDIO:                 R$ 80
COMPRA ATUAL:                R$ 7.000
PAÍS:                        outro país
MERCHANT:                    desconhecido

🚨

Entra o Risk/Fraud Engine.


🚨 Capítulo 8 — O Sherlock Holmes das transações

O sistema antifraude pode observar dezenas ou centenas de sinais.

Por exemplo:

VALUE
TIME
COUNTRY
MERCHANT
MCC
DEVICE
TRANSACTION VELOCITY
HISTORICAL BEHAVIOR
AUTHENTICATION
PREVIOUS DECLINES
GEOGRAPHICAL PATTERNS

Imagine:

23:10 São Paulo
R$ 37,50

23:18 São Paulo
R$ 83,00

23:22 Tokyo
R$ 9.700

Não precisamos ser Hercule Poirot para levantar uma sobrancelha.

Nosso sistema poderia calcular:

RISK SCORE = 947

E possuir regras como:

000-300   LOW
301-700   MEDIUM
701-850   HIGH
851-1000  DECLINE/REVIEW

Atualmente esse ambiente pode combinar regras determinísticas, estatística, análise comportamental e machine learning.

Mas COBOL continua perfeitamente capaz de executar regras determinísticas essenciais.

IF WS-RISK-SCORE > 850
    MOVE 'N' TO WS-AUTHORIZED
END-IF.

Às vezes não precisamos de inteligência artificial.

Precisamos apenas de:

IF COISA-ABSURDA
   NÃO-FAÇA
END-IF

Uma tecnologia revolucionária conhecida desde tempos imemoriais como bom senso programado.


⚡ Capítulo 9 — Tudo isso precisa ser rápido

Esse é um requisito extraordinário.

O consumidor está esperando.

Ele não quer ver:

PROCESSANDO...

PROCESSANDO...

PROCESSANDO...

enquanto o sistema gera um relatório gerencial de 400 páginas.

Por isso workloads diferentes possuem prioridades diferentes.

Entra o WLM — Workload Manager.

Conceitualmente:

AUTHORIZATION     CRITICAL
PAYMENT           HIGH
CUSTOMER QUERY    HIGH
REPORTING         MEDIUM
ANALYTICS BATCH   LOWER

Quando existe competição por recursos, o sistema operacional precisa compreender que:

autorizar a compra do cliente é mais urgente do que imprimir o relatório do chefe.

Embora alguns chefes possam discordar.


📨 Capítulo 10 — MQ: nem todo mundo precisa esperar

Imagine que a compra foi aprovada.

Precisamos responder imediatamente.

Mas também queremos:

  • registrar eventos;

  • enviar notificação;

  • alimentar analytics;

  • avisar sistemas antifraude;

  • atualizar outros ambientes;

  • produzir informações para aplicações móveis.

Seria absurdo fazer o consumidor esperar tudo isso.

Então:

CICS AUTH
    │
    ├──────────────► RESPONSE
    │
    │
    └──────────────► MQ
                         │
               ┌─────────┼─────────┐
               ▼         ▼         ▼
             FRAUD    ANALYTICS   ALERT
                                   │
                                   ▼
                           "Compra aprovada"

Aqui aparece uma das grandes ideias de arquitetura:

separe o caminho crítico das tarefas que podem acontecer assincronamente.

IBM MQ encaixa-se maravilhosamente nesse tipo de integração.


🧾 Capítulo 11 — APPROVED não significa “acabou”

Esse é provavelmente um dos conceitos mais interessantes do sistema.

A compra foi autorizada:

AUTHORIZATION

VALUE  = 100.00
STATUS = PENDING

Mas autorização e lançamento financeiro definitivo são coisas diferentes.

Posteriormente chegam informações financeiras que precisam ser conciliadas com aquela autorização.

Simplificando:

AUTHORIZATION
      │
      ▼
PRESENTMENT
      │
      ▼
MATCHING
      │
      ▼
POSTING

Finalmente:

POSTED TRANSACTION

Por que essa separação?

Porque o mundo real é bagunçado.


🏨 Capítulo 12 — O hotel de R$ 1.000 que virou R$ 873,42

Você chega a um hotel.

Pode ocorrer uma autorização inicial:

R$ 1.000

Sua conta final acaba sendo:

R$ 873,42

Agora nosso sistema precisa compreender que existe relacionamento entre as operações.

Situações semelhantes aparecem em:

  • hotéis;

  • locadoras;

  • restaurantes;

  • postos;

  • cancelamentos;

  • ajustes;

  • estornos.

Portanto:

AUTHORIZATION ≠ FINAL TRANSACTION

Esse é um daqueles detalhes que parecem insignificantes até você precisar construir o sistema.

Então tornam-se gigantescos.


📦 Capítulo 13 — E das profundezas surge o BATCH

Durante o dia, imagine:

CICS
CICS
CICS
CICS
CICS
CICS
CICS

Transações chegando continuamente.

Em paralelo ou em determinados ciclos, precisamos executar processamento massivo.

Entra:

JES2 + JCL + COBOL Batch

Poderíamos possuir uma cadeia didática:

RECEIVE CLEARING
       │
       ▼
VALIDATE
       │
       ▼
MATCH AUTHORIZATION
       │
       ▼
POST TRANSACTION
       │
       ▼
UPDATE ACCOUNT
       │
       ▼
BILLING
       │
       ▼
SETTLEMENT
       │
       ▼
RECONCILIATION

Um JCL fictício:

//BELCARD JOB ...
//STEP010 EXEC PGM=BCLR001
//STEP020 EXEC PGM=BVAL001
//STEP030 EXEC PGM=BMAT001
//STEP040 EXEC PGM=BPOS001
//STEP050 EXEC PGM=BBIL001
//STEP060 EXEC PGM=BSET001

Cada programa possui responsabilidade específica.

Isso permite restart, controle, auditoria e operacionalização muito melhores do que construir um monstro chamado:

FAZTUDO.CBL

com 187 mil linhas.

Embora algum arqueólogo de sistemas provavelmente já tenha encontrado algo parecido.


🧮 Capítulo 14 — A fábrica de faturas

Chegamos ao billing.

Para cada conta precisamos considerar:

SALDO ANTERIOR
+
COMPRAS
+
PARCELAS
+
ENCARGOS
+
JUROS
-
PAGAMENTOS
-
CRÉDITOS
-
ESTORNOS
=
NOVO SALDO

Em COBOL:

COMPUTE WS-NEW-BALANCE =
        WS-PREVIOUS-BALANCE
      + WS-PURCHASES
      + WS-INSTALLMENTS
      + WS-FEES
      + WS-INTEREST
      - WS-PAYMENTS
      - WS-CREDITS.

E aqui COBOL está em casa.

Valores decimais, regras empresariais, processamento de registros e grandes volumes de dados são precisamente o tipo de problema para o qual COBOL nasceu.


🇧🇷 Capítulo 15 — A entidade brasileira chamada PARCELAMENTO

Agora compramos:

R$ 1.200 em 12x

Nosso sistema registra:

PURCHASE_ID = 9838172
TOTAL       = 1200.00
QTY         = 12

E teremos:

01/12  100
02/12  100
03/12  100
...
12/12  100

Parece simples.

Até alguém perguntar:

“E se houver estorno na parcela 7?”

Ou:

“E se for estorno parcial?”

Ou:

“E se o cliente contestar a compra?”

Ou:

“E se houver renegociação?”

Ou:

“E se existir juros?”

Ou:

“E se o comerciante fizer refund?”

É assim que programas pequenos envelhecem e viram programas COBOL de 30 mil linhas.

Não necessariamente porque os programadores antigos eram malucos.

Frequentemente porque 30 anos de realidade foram sendo incorporados ao código.

Essa é uma lição importantíssima para quem entra hoje no mainframe.

Código legado muitas vezes é também:

regra de negócio fossilizada.

Não apague antes de descobrir por que existe.


🔐 Capítulo 16 — RACF: não, estagiário, você não pode consultar todos os cartões

Nosso BELLACARD contém informações extremamente sensíveis.

Precisamos controlar:

WHO
CAN DO WHAT
TO WHICH RESOURCE
UNDER WHICH CONDITIONS

RACF pode participar do controle de acesso ao ambiente z/OS.

Podemos proteger datasets, transações, usuários, grupos e diversos recursos.

Conceitualmente:

USER VAGNER
    │
    ├── AUTH → READ/EXECUTE
    ├── BILL → READ
    └── ADMIN → NO ACCESS

O princípio essencial é:

LEAST PRIVILEGE.

Um programa deve possuir apenas os acessos necessários.

Um operador também.

Um desenvolvedor também.

E definitivamente ninguém deveria possuir acesso porque:

“Vai que um dia eu precise.”


🔑 Capítulo 17 — E as chaves criptográficas?

Agora entramos em território ainda mais sensível.

Cartões envolvem criptografia, autenticação, tokens, PINs e material criptográfico.

A regra de ouro é:

chaves críticas não devem virar variáveis COBOL espalhadas pela aplicação.

Algo como:

01 SUPER-SECRET-KEY PIC X(32)
   VALUE 'MINHACHAVE123...'.

é praticamente uma carta de demissão escrita em COBOL.

😂

Ambientes financeiros utilizam infraestrutura criptográfica especializada e HSMs — Hardware Security Modules — para determinadas operações e proteção de chaves.

A aplicação solicita uma operação criptográfica.

O segredo permanece protegido.


🕵️ Capítulo 18 — “Eu não fiz essa compra.”

Três meses depois o cliente telefona:

Eu nunca fiz essa compra.

O sistema precisa reconstruir o passado.

Queremos saber:

QUANDO?
QUAL CARTÃO?
QUAL MERCHANT?
QUAL VALOR?
QUAL CANAL?
QUAL RESPOSTA?
QUAL SISTEMA?
QUAL REGRA?
QUAL RESULTADO?

Logs e trilhas de auditoria tornam-se fundamentais.

No universo z/OS, SMF e informações produzidas pelos subsistemas ajudam a construir observabilidade e auditoria.

Nosso sistema deveria conseguir reconstruir algo como:

03:17:00.103 REQUEST RECEIVED
03:17:00.108 CARD VALIDATED
03:17:00.112 STATUS ACTIVE
03:17:00.119 LIMIT OK
03:17:00.127 RISK SCORE 214
03:17:00.133 AUTH CREATED
03:17:00.139 LIMIT RESERVED
03:17:00.145 COMMIT
03:17:00.151 APPROVED

E aí descobrimos outra característica dos sistemas financeiros:

não basta fazer certo. Precisamos conseguir demonstrar posteriormente o que aconteceu.


🏰 Capítulo 19 — E se o mainframe cair?

Imagine milhões de pessoas tentando pagar almoço e recebendo:

HOST UNAVAILABLE

O problema deixa rapidamente de ser “um incidente de TI”.

Vira problema comercial, financeiro e reputacional.

Daí entram conceitos de alta disponibilidade e arquiteturas como Parallel Sysplex.

Didaticamente:

                 REQUESTS
                     │
                     ▼
               WORKLOAD ROUTING
                     │
          ┌──────────┴──────────┐
          ▼                     ▼
       z/OS A                 z/OS B
        CICS                   CICS
          │                     │
          └──────────┬──────────┘
                     ▼
                   Db2
               Data Sharing

Falhou um componente?

A arquitetura é desenhada para evitar que isso necessariamente signifique:

TODO MUNDO PARA.

É aqui que redundância, recuperação, data sharing, workload management, automação operacional e engenharia de resiliência deixam de ser palavras bonitas de PowerPoint.


🏙️ Capítulo 20 — As duas cidades do cartão

Eu gosto de imaginar o BELLACARD dividido em duas grandes cidades.

⚡ Cidade Online

Seu prefeito é o CICS.

Sua pergunta principal:

POSSO COMPRAR?

REQUEST
   │
   ▼
CICS
   │
   ▼
CARD
LIMIT
RISK
RULES
   │
   ▼
YES / NO

Velocidade, disponibilidade e consistência dominam essa cidade.


🏭 Cidade Financeira

Aqui vivem:

Db2 + COBOL Batch + JES2 + MQ + sistemas contábeis.

Sua pergunta é diferente:

O QUE ACONTECEU COM O DINHEIRO?

AUTHORIZATION
      ↓
TRANSACTION
      ↓
POSTING
      ↓
ACCOUNT
      ↓
STATEMENT
      ↓
PAYMENT
      ↓
ACCOUNTING
      ↓
RECONCILIATION

Aqui cada centavo precisa encontrar seu destino.


🧩 Capítulo 21 — Afinal, onde cada tecnologia entra?

Agora nosso iniciante consegue enxergar o tabuleiro inteiro.

COBOL
│
├── business rules
├── authorization
├── billing
├── posting
└── batch processing

CICS
│
├── online transactions
├── transaction management
└── units of work

Db2
│
├── accounts
├── cards
├── authorizations
├── transactions
└── statements

MQ
│
├── asynchronous messaging
├── events
├── integration
└── notifications

JCL/JES2
│
├── batch
├── billing
├── reconciliation
└── settlement processing

RACF
│
└── access control

CRYPTO/HSM
│
└── sensitive cryptographic operations

SMF/MONITORING
│
├── auditing
└── observability

WLM
│
└── workload priorities

PARALLEL SYSPLEX
│
└── availability/scalability

Percebe a diferença?

Agora COBOL, CICS, Db2, MQ e JCL deixaram de ser matérias isoladas de um curso.

Cada tecnologia apareceu porque tínhamos um problema para resolver.

É assim que eu gosto de ensinar mainframe.


🎓 Capítulo 22 — Construindo o BELLACARD como projeto educacional

Eu transformaria essa arquitetura numa trilha prática.

O aluno começa pequeno.

Nível 1 — COBOL

Criar:

CUSTOMER
CARD
ACCOUNT

Depois:

PURCHASE
PAYMENT
LIMIT

Finalmente:

STATEMENT

Nível 2 — Arquivos

Guardar clientes e contas.

Começar sequencialmente.

Depois introduzir VSAM.

Agora o aluno entende por que acesso indexado importa.


Nível 3 — Db2

Migramos para:

CUSTOMER
ACCOUNT
CARD
AUTHORIZATION
TRANSACTION
PAYMENT
STATEMENT

Aprendemos:

SELECT
INSERT
UPDATE
DELETE
COMMIT
ROLLBACK

Não como comandos aleatórios de SQL.

Mas porque nosso banco precisa deles.


Nível 4 — CICS

Criamos:

AUTH = Authorization
ACCT = Account Inquiry
PAYM = Payment
BLCK = Block Card

Agora nosso COBOL deixou de ser apenas batch.

Temos um pequeno sistema transacional.


Nível 5 — MQ

A compra aprovada produz:

CARD.PURCHASE.APPROVED

Outro consumidor recebe.

Depois outro.

Aprendemos arquitetura assíncrona.


Nível 6 — Batch

Criamos:

POSTING
BILLING
PAYMENT PROCESSING
STATEMENT GENERATION
RECONCILIATION

Finalmente o aluno entende por que empresas ainda executam workloads batch gigantescos.


Nível 7 — Segurança

Introduzimos:

RACF
AUDIT
CRYPTOGRAPHY
TOKENIZATION

Agora nosso brinquedo começa a parecer uma plataforma empresarial.


Nível 8 — Operação

Provocamos problemas.

DB2 TIMEOUT
MQ QUEUE FULL
CICS ABEND
JOB RC=12
DATASET FULL
AUTHORIZATION LATENCY

E perguntamos:

O que o suporte N2 faria?

Depois:

E o N3?

Agora nasceu uma pequena War Room BELLACARD.


🔥 Capítulo 23 — O exercício mais importante: quebrar o sistema

Eu faria questão de criar erros propositalmente.

Por exemplo:

AVAILABLE LIMIT = 500

Disparamos simultaneamente:

PURCHASE A = 400
PURCHASE B = 400

Se ambas forem aprovadas incorretamente, descobrimos uma falha de concorrência.

Outro teste:

INSERT AUTHORIZATION = SUCCESS
UPDATE LIMIT         = FAILURE

O sistema ficou inconsistente?

Se sim:

faltou tratar corretamente a unidade de trabalho.

Outro:

MQ unavailable

A autorização precisa parar?

Talvez não.

Essa pergunta ensina arquitetura melhor que vinte slides.


👻 Capítulo 24 — O fantasma das 03:17

Chegamos ao easter egg.

Todos os dias exatamente às:

03:17

o BELLACARD começa a apresentar:

AUTH RESPONSE TIME
120ms
180ms
350ms
900ms
2.1s

Nenhum erro.

CPU normal.

Db2 aparentemente normal.

MQ normal.

CICS sem ABEND.

Mas a latência explode durante sete minutos.

Nosso programador iniciante recebe seu primeiro chamado:

INCIDENT #0317

SEVERITY: HIGH
DESCRIPTION:
Intermittent authorization latency.

Começa a investigação.

RMF.

SMF.

CICS statistics.

Db2 accounting.

WLM.

JES2.

Até descobrir...

Um antigo job chamado:

//MONSTR17 JOB

executado diariamente às 03:17, realizando uma consulta monstruosa contra tabelas utilizadas pelo sistema online.

O programa foi criado em 1997.

O comentário no topo:

      * DO NOT REMOVE.
      * BUSINESS REQUIREMENT.
      * JSMITH - 1997-04-13

Ninguém sabe quem é JSMITH.

Ninguém sabe qual era o requisito.

Mas todos têm medo de remover.

🤣

Bem-vindo ao mainframe corporativo.


🧠 Curiosidade — O verdadeiro patrimônio não é apenas o código

Esse é talvez o conhecimento mais importante de todo o artigo.

Quando alguém encontra um programa COBOL com milhares de linhas, pode pensar:

“Que coisa velha.”

Mas aquele programa pode conter décadas de:

  • regras;

  • exceções;

  • regulamentações;

  • incidentes;

  • fraudes descobertas;

  • produtos descontinuados;

  • produtos ainda ativos;

  • acordos comerciais;

  • tratamentos especiais;

  • correções;

  • conhecimento empresarial.

É quase arqueologia.

Um comentário de 1997 pode explicar por que determinada operação de 2026 ainda funciona.

Por isso modernização responsável começa com:

compreender antes de substituir.


🏛️ Capítulo 25 — O mainframe como cidade invisível

Voltamos finalmente à cafeteria.

Você aproximou o cartão.

BIP!

Apareceu:

APROVADO

Você levou seu café.

Talvez nunca pense novamente naquela transação.

Mas atrás daquele pequeno momento poderia existir conceitualmente uma cidade inteira:

                   💳 CARD
                      │
                      ▼
                 POS / APP
                      │
                      ▼
                  ACQUIRER
                      │
                      ▼
               CARD NETWORK
                      │
                      ▼
╔══════════════════════════════════════╗
║               IBM Z                  ║
║                                      ║
║              CICS                    ║
║                │                     ║
║       ┌────────┼────────┐            ║
║       ▼        ▼        ▼            ║
║     CARD     LIMIT     RISK          ║
║       │        │        │            ║
║       └────────┼────────┘            ║
║                ▼                     ║
║               Db2                    ║
║                │                     ║
║               MQ                     ║
║                                      ║
║   COBOL • JCL • JES2 • RACF • SMF   ║
║        WLM • CRYPTO • SYSPLEX        ║
╚══════════════════════════════════════╝
                      │
                      ▼
                   APPROVED

O consumidor viu:

APROVADO.

O mainframer vê:

arquitetura.


☕ Conclusão — o BIP que esconde uma catedral

Talvez essa seja uma das melhores maneiras de explicar mainframe para alguém que está começando.

Não comece dizendo:

“COBOL possui DIVISION, SECTION e PARAGRAPH.”

Comece dizendo:

“Você acabou de passar um cartão. Quer descobrir o que pode existir atrás daquele BIP?”

Então COBOL ganha propósito.

CICS ganha propósito.

Db2 ganha propósito.

MQ ganha propósito.

JCL ganha propósito.

RACF ganha propósito.

SMF ganha propósito.

WLM ganha propósito.

Parallel Sysplex ganha propósito.

O iniciante deixa de decorar siglas e começa a compreender problemas.

E tecnologia empresarial é exatamente isso:

uma coleção de soluções para problemas que ficaram grandes demais para serem resolvidos de qualquer jeito.

Da próxima vez que aproximar seu cartão e ouvir:

BIP!

talvez você enxergue algo diferente.

Não apenas uma compra.

Mas uma mensagem atravessando redes, chegando a sistemas que verificam identidade, estado, crédito e risco; uma unidade de trabalho sendo protegida; registros sendo preservados; eventos sendo produzidos; sistemas financeiros preparando o que acontecerá depois.

Tudo isso para devolver uma pequena palavra:

       ┌────────────────────────┐
       │                        │
       │       APPROVED         │
       │                        │
       │         RC=00          │
       │                        │
       └────────────────────────┘

E talvez exista, em algum canto de algum sistema que ninguém ousa desligar, um programa COBOL escrito décadas atrás, trabalhando silenciosamente para que seu café seja pago.

Sem aplausos.

Sem interface bonita.

Sem ninguém perceber.

Como tantas outras coisas no mainframe.

Porque a melhor infraestrutura é aquela que desaparece atrás do serviço que presta.

E enquanto o mundo vê apenas o BIP, nós sabemos que atrás dele pode existir uma verdadeira catedral transacional construída byte por byte, regra por regra e geração por geração de programadores.

Um Café no Bellacosa Mainframe

Onde até uma compra de R$ 17,50 pode acabar em CICS, Db2, COBOL e uma War Room às 03:17.



☕ Um Café no Bellacosa Mainframe

🕵️ The Mentalist no Mainframe — O Caso dos R$ 100 que Atravessaram um Sistema de Cartões

Entenda como uma compra de R$ 100 atravessa POS, adquirente, bandeira, emissor, autorização, plafond, clearing, settlement, cobrança, contabilidade e reconciliação em um ambiente bancário e mainframe.

💳 Como funciona uma transação de cartão de crédito?

Uma compra aparentemente simples percorre diversos participantes e sistemas. O cliente apresenta o cartão ao estabelecimento, a maquininha envia a transação ao adquirente, a rede encaminha a solicitação ao emissor e o banco verifica cartão, conta, produto, plafond, regras e risco antes de autorizar ou recusar.

Depois da autorização, a transação ainda pode passar por reversal, clearing, settlement, faturamento, cobrança, contabilização, reconciliação, disputa e chargeback.

Principais assuntos: IBM Mainframe, IBM Z, COBOL, CICS, Db2, cartões de crédito, POS, adquirente, emissor, autorização, plafond, clearing, settlement, tarifas, cobrança, contabilidade e reconciliação.

🔎 Ler o artigo original: The Mentalist no Mainframe

Bellacosa Mainframe — conteúdo educacional sobre IBM Z, COBOL, CICS, sistemas bancários e processamento de cartões.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...