☕ 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

sábado, 8 de novembro de 2025

🕶️ DIABOLIK NO MAINFRAME — Red Team e a Arte de Atacar as Certezas

 

Bellacosa Mainframe e diabolik entra no redt eam

☕ Um Café no Bellacosa Mainframe

🕶️ DIABOLIK NO MAINFRAME — Red Team e a Arte de Atacar as Certezas

O melhor Red Team não pergunta apenas como invadir o mainframe. Pergunta quais certezas precisam deixar de ser verdade para que o próprio ambiente abra caminho para o incidente.



Imagine a cena.

São 03:17.

O IBM Z continua funcionando.

As LPARs estão ativas. CICS responde. Db2 está disponível. JES2 continua processando sua fila. RACF permanece de pé. O SIEM está recebendo eventos. Há redundância de rede. Existe um segundo caminho. Os operadores estão na sala.

No dashboard, quase tudo continua verde.

Então alguém pergunta:

— Estamos seguros?

E Diabolik sorri.

Porque essa é a pergunta errada.

A pergunta interessante é:

Quais coisas precisam deixar de funcionar simultaneamente para transformar uma arquitetura aparentemente segura em uma arquitetura vulnerável?

Bem-vindo ao Red Team.

E, principalmente, bem-vindo ao Red Team visto sob a tutela de Diabolik, o criminoso fictício que não ficou famoso simplesmente pela força bruta.

Diabolik observa.

Planeja.

Estuda pessoas.

Entende rotinas.

Explora confiança.

Procura exceções.

E espera.

Esse último verbo é importantíssimo.

Porque um atacante sofisticado não precisa encontrar um sistema permanentemente vulnerável.

Ele pode esperar pelo momento em que o sistema temporariamente se torna vulnerável.

No mainframe isso muda completamente nossa maneira de pensar segurança.



🕶️ CAPÍTULO 1 — Diabolik não começa pelo RACF

Imagine que contratamos uma equipe para realizar um exercício autorizado de Red Team em uma grande organização que utiliza IBM Z.

A abordagem superficial começaria perguntando:

Qual versão do z/OS?

Existe RACF?

Existe MFA?

Como está a rede?

Quais aplicações estão expostas?

Existem APIs?

Existe USS?

Existe Zowe?

Tudo isso importa.

Mas Diabolik provavelmente começaria antes.

Ele colocaria sobre a mesa uma folha em branco e escreveria:

ASSET

O que realmente estamos protegendo?

Talvez:

CORE BANKING
CARD AUTHORIZATION
PIX
CUSTOMER DATA
PAYROLL
SECURITIES
INSURANCE
CLEARING
SETTLEMENT

Agora outra pergunta:

THREAT ACTORS

De quem estamos protegendo esses ativos?

Depois:

TRUST

Em quem o funcionamento desses sistemas confia?

Finalmente:

ASSUMPTIONS

Quais condições acreditamos que sempre serão verdadeiras?

É aqui que a investigação começa a ficar interessante.

Porque podemos descobrir que a organização possui milhões investidos em tecnologia, mas toda aquela arquitetura depende de algumas premissas extremamente humanas.

Por exemplo:

O operador seguirá o procedimento.

A conta privilegiada será usada corretamente.

O segundo link estará disponível.

O backup será recuperável.

O certificado será renovado.

O alerta será investigado.

A mudança será registrada.

O fornecedor continuará confiável.

A conta de serviço permanecerá protegida.

Alguém interromperá o processo se algo der errado.

Diabolik circula essa última frase.

"Alguém interromperá."

Será?



🎭 CAPÍTULO 2 — Red Team não é apenas invasão

Existe uma caricatura bastante comum de Red Team.

Alguém de moletom preto diante de seis monitores digitando furiosamente:

ACCESS GRANTED

Pronto.

Invadimos.

Mas Red Team maduro é muito mais interessante.

O exercício autorizado tenta colocar determinadas premissas defensivas sob pressão.

Pergunta:

Se um adversário real estivesse estudando nossa organização, quais caminhos poderiam levá-lo aos ativos importantes?

Isso envolve tecnologia, mas também:

  • identidade;

  • processos;

  • segregação de funções;

  • configuração;

  • monitoramento;

  • fornecedores;

  • procedimentos;

  • comportamento;

  • contingência;

  • comunicação;

  • resposta a incidentes;

  • governança.

Nosso estudo anterior chegou exatamente a esse ponto: o Red Team deixa de olhar apenas para o controle isolado e começa a investigar a arquitetura de confiança.

No mainframe isso é extraordinariamente importante.

Porque IBM Z raramente vive sozinho.

Temos algo parecido com:

USER
  ↓
DEVICE
  ↓
NETWORK
  ↓
IDENTITY
  ↓
APPLICATION
  ↓
CICS / IMS
  ↓
COBOL
  ↓
DB2 / VSAM

Mas existem dezenas de arestas laterais:

APIs
MQ
FTP/SFTP
z/OS Connect
USS
Zowe
Schedulers
DevOps
CI/CD
Cloud
Distributed Systems
Service Accounts
Vendors
Automation

Segurança é um grafo.

E cada aresta representa alguma forma de confiança.



🕸️ CAPÍTULO 3 — Diabolik desenha o grafo

Pegue um programa COBOL aparentemente inocente:

BILLING01

Talvez ele leia:

CUSTOMER
ACCOUNT
TRANSACTION
PRODUCT

e atualize:

INVOICE

O iniciante poderia pensar:

PROGRAM → DATABASE

Diabolik desenharia:

                    USER
                      │
                      ▼
                   RACF ID
                      │
               ┌──────┴──────┐
               ▼             ▼
             CICS           BATCH
               │             │
               ▼             ▼
            BILLING01      JCL/JES
               │             │
          ┌────┴────┐        │
          ▼         ▼        ▼
        DB2        VSAM    DATASET
          │
          ▼
       CUSTOMER

Depois continuaria:

CI/CD ──────► LOADLIB
                ▲
                │
DEVELOPER ──────┘

SERVICE ACCOUNT ──► AUTOMATION

API ──► z/OS Connect ──► CICS

MQ ──► APPLICATION

Agora temos algo muito mais interessante.

Porque a pergunta deixou de ser:

O Db2 está protegido?

Passou a ser:

Quantos caminhos diferentes podem produzir uma alteração relevante no estado desse negócio?

Esse é pensamento de Red Team.



🔐 CAPÍTULO 4 — RACF não protege contra todas as formas de confiança

RACF é extraordinariamente importante.

Mas existe uma armadilha conceitual:

RACF = SEGURANÇA

Não.

RACF é uma parte da arquitetura de segurança.

Imagine:

USER01
READ   DATASET.A

USER01
UPDATE DATASET.B

USER01
EXECUTE TRANSACTION.C

USER01
SUBMIT JOB.D

Cada permissão individualmente pode ter justificativa.

Auditor pergunta:

READ A?
OK.

UPDATE B?
OK.

CICS C?
OK.

JOB D?
OK.

Quatro verdes.

Diabolik pergunta:

READ A
+
UPDATE B
+
TRANSACTION C
+
JOB D
=
?

Essa é uma pergunta completamente diferente.

Não estamos mais analisando permissões isoladas.

Estamos analisando capacidade acumulada.

O usuário talvez não possua uma permissão perigosa.

Pode possuir uma combinação perigosa de permissões legítimas.

Essa diferença é fundamental.



🧩 CAPÍTULO 5 — Compartmentalization

Aqui aparece um princípio antigo de segurança e inteligência: compartimentalização.

Compare:

USUÁRIO A
├── desenvolvimento
├── aprovação
├── implantação
├── produção
├── auditoria
└── rollback

com:

DEV      → desenvolvimento
APPROVER → aprovação
OPS      → implantação
SEC      → segurança
AUDIT    → auditoria

Por que dividir?

Porque comprometimento possui blast radius.

Se uma identidade conhece, controla ou executa tudo, comprometer aquela identidade potencialmente compromete tudo.

O mesmo raciocínio vale para pessoas.

Vale para contas técnicas.

Vale para pipelines.

Vale para fornecedores.

Vale para APIs.

Vale para certificados.

Vale até para informações aparentemente banais.

Não precisamos transformar cada funcionário em suspeito.

O objetivo é exatamente o contrário: construir um sistema no qual a confiança em uma única pessoa não seja suficiente para destruir o modelo inteiro.


👤 CAPÍTULO 6 — Insider Threat não significa vilão

Quando falamos em insider threat, muita gente imediatamente imagina:

FUNCIONÁRIO TRAIDOR

Esse é apenas um cenário.

Insider risk pode envolver:

malícia
erro
negligência
coerção
engenharia social
credencial comprometida
procedimento inadequado
excesso de privilégio
informação excessiva
automação mal configurada

Imagine um analista autorizado.

Ele não deseja prejudicar ninguém.

Mas possui:

PRODUCTION ACCESS

Recebe uma solicitação aparentemente normal.

Executa determinada atividade.

O problema talvez não seja:

BAD EMPLOYEE

Pode ser:

BAD PROCESS

Um sistema resiliente deve presumir que humanos eventualmente erram.

Por isso temos segregação.

Aprovação.

Logging.

Monitoring.

Least privilege.

Dual control.

Change management.

Não porque todo mundo seja criminoso.

Porque confiança absoluta é um controle de segurança péssimo.


🎬 CAPÍTULO 7 — A fotografia virou filme

Aqui chegamos ao nosso Risk Scoring.

A segurança tradicional frequentemente produz fotografias:

USER01 = LOW RISK

Diabolik pergunta:

Quando?

08:00?

11:30?

03:17?

O contexto muda.

Por isso deveríamos pensar:

RISK(t)

Risco como função do tempo.

Imagine:

08:00

USER01
LOCATION = NORMAL
DEVICE   = MANAGED
ACTION   = NORMAL
RISK     = 20

Agora:

03:17

USER01
UNUSUAL CONTEXT
PRIVILEGED ACTION
CHANGE WINDOW
MULTIPLE FAILURES
RISK = ?

O usuário continua sendo USER01.

Mas o contexto deixou de ser o mesmo.

É exatamente por isso que comportamento importa.

Não perguntamos apenas:

WHO ARE YOU?

Perguntamos:

IS WHAT YOU ARE DOING
CONSISTENT WITH
WHAT WE EXPECT?

🧮 CAPÍTULO 8 — Risk Score não é sentença

É importante não transformar Risk Scoring em numerologia.

Podemos imaginar pedagogicamente:

BASELINE.................... 20
privileged operation........ +15
unusual context............. +10
change detected............. +10
control degraded............ +15
unexpected dependency....... +10
-------------------------------
RISK........................ 80

Esses números são ilustrativos.

O princípio importa mais que o peso.

Cada evento altera contexto.

Portanto:

EVENT
   ↓
CONTEXT
   ↓
RISK RECALCULATION
   ↓
DECISION

Isso permite decisões graduais:

ALLOW

CHALLENGE

REQUIRE APPROVAL

LIMIT

ESCALATE

STOP

Diabolik detestaria principalmente a última.


🚨 CAPÍTULO 9 — CHANGE é um evento de segurança

Mainframe conhece Change Management muito bem.

Mudou:

JCL
COBOL
PARMLIB
PROCLIB
LOADLIB
RACF
DB2
CICS
IMS
MQ
NETWORK
CERTIFICATE

Registramos.

Aprovamos.

Testamos.

Ou deveríamos.

Mas Red Team acrescenta outra pergunta:

O que mais mudou como consequência dessa mudança?

Imagine:

PRIMARY LINK DOWN

Temos backup.

Ótimo.

Então:

BACKUP LINK DEGRADED

Ainda funciona.

Então:

MONITORING DELAY

Ainda funciona.

Então:

SECURITY ALERT

Provavelmente falso positivo.

Então alguém diz:

BYPASS

Separadamente:

LINK FAILURE       = manageable
BACKUP DEGRADED    = manageable
MONITORING DELAY   = manageable
ALERT              = manageable
BYPASS             = manageable

Juntos:

FAILURE
+
DEGRADATION
+
BLINDNESS
+
ALERT
+
BYPASS
=
CRITICAL STATE

Esse é o filme que a fotografia não mostra.


🧀 CAPÍTULO 10 — O queijo suíço chegou à LPAR

Existe uma metáfora maravilhosa para isso: o Swiss Cheese Model.

Imagine várias barreiras.

IDENTITY
████████○████

NETWORK
███○█████████

RACF
█████████○███

APPLICATION
█████○███████

MONITORING
██○██████████

Cada camada possui imperfeições.

Normalmente os buracos não se alinham.

Uma camada compensa a outra.

Mas existe uma condição perigosa:

○
○
○
○
○
│
▼
INCIDENT

Diabolik não precisa destruir todas as fatias.

Precisa encontrar o momento em que os buracos se alinham.

Essa é uma maneira extraordinária de ensinar defesa em profundidade.


💥 CAPÍTULO 11 — Ataque a redundância

Temos:

LPAR A
LPAR B

Excelente.

Mas:

LPAR A ─┐
        ├── DEPENDENCY X
LPAR B ─┘

Temos realmente redundância?

Talvez tenhamos dois componentes com single point of failure compartilhado.

Isso aparece em inúmeras arquiteturas:

2 SERVERS
1 NETWORK

2 APPLICATIONS
1 DATABASE

2 LINKS
1 PROVIDER

2 ADMINS
1 PRIVILEGED ACCOUNT

2 SYSTEMS
1 CERTIFICATE

Diabolik procura exatamente isso.

Não necessariamente:

WHAT IS MISSING?

Mas:

WHAT DO ALL THESE THINGS
SECRETLY DEPEND ON?

Essa pergunta deveria estar pendurada em toda War Room.


🧠 CAPÍTULO 12 — Normalization of Deviance

Agora aparece um inimigo extremamente humano.

Primeiro:

"Hoje vamos fazer uma exceção."

Nada acontece.

Depois:

"Fizemos isso semana passada."

Nada acontece.

Mais tarde:

"Fazemos sempre assim."

Finalmente:

"Nem sei por que existe essa regra."

Parabéns.

A exceção virou processo.

Isso é normalização do desvio.

E existe um erro lógico perigosíssimo associado:

FIZEMOS 100 VEZES
E NADA ACONTECEU

Portanto:

É SEGURO

Não.

A conclusão correta é:

100 EXECUÇÕES
SEM INCIDENTE

Somente isso.

Ausência histórica de desastre não prova ausência de risco.


🛑 CAPÍTULO 13 — Quem pode apertar STOP?

Essa talvez seja uma das perguntas mais importantes de toda esta história.

Imagine:

NORMAL OPERATION
       ↓
     CHANGE
       ↓
  RISK INCREASE
       ↓
       ???

Quem pode dizer:

STOP

?

Existe autoridade?

Existe procedimento?

Existe pressão para continuar?

O operador consegue interromper uma operação crítica?

O gerente aceitará?

O negócio pressionará?

Existe escalation path?

Esse componente organizacional pode ser mais importante que determinado produto de cybersecurity.

O fluxo saudável seria:

CHANGE DETECTED
       ↓
     STOP
       ↓
    ASSESS
       ↓
  RECALCULATE
       ↓
   ┌───┴───┐
   ▼       ▼
CONTINUE  ABORT

Não:

CHANGE
 ↓
"VAI ASSIM MESMO"

⏳ CAPÍTULO 14 — Temporal Attack Surface

Aqui está um conceito delicioso para nossa investigação.

Superfície de ataque normalmente é apresentada como:

PORTS
APIs
SERVICES
USERS
DEVICES
NETWORKS

Mas existe também uma dimensão temporal.

Imagine:

00:00 ───────────────────────── 23:59
                 │
             03:17
                 │
          ATTACK WINDOW

Talvez durante alguns minutos aconteçam simultaneamente:

CHANGE WINDOW
+
REDUCED STAFF
+
DEGRADED CONTROL
+
PRIVILEGED ACTIVITY
+
MONITORING NOISE

Às 09:00 alguém audita:

RACF.......... OK
NETWORK....... OK
CICS.......... OK
DB2........... OK
MONITORING.... OK

Tudo verde.

Mas isso é uma fotografia das 09:00.

O incidente ocorreu às 03:17.

Precisamos reconstruir:

02:55
03:01
03:07
03:12
03:16
03:17
03:18
03:25

Agora temos um filme.


🕵️ CAPÍTULO 15 — Diabolik procura combinações

Uma auditoria convencional pode produzir:

CONTROL A = PASS
CONTROL B = PASS
CONTROL C = PASS
CONTROL D = PASS

Diabolik pergunta:

A + B + C + D = ?

Melhor ainda:

A DEGRADED
+
B BYPASSED
+
C DELAYED
+
D MISINTERPRETED
=
?

Esse é o coração do exercício.

Não testar apenas controles.

Testar interações entre controles.


🔬 CAPÍTULO 16 — Como transformar isso em exercício defensivo

Uma organização pode estruturar um exercício autorizado sem sair tentando "hackear tudo".

Primeiro:

1. IDENTIFY ASSETS

Quais serviços não podem parar?

Depois:

2. MAP TRUST

Quem e o que possui acesso?

Depois:

3. MAP DEPENDENCIES

De que cada componente depende?

Depois:

4. IDENTIFY ASSUMPTIONS

O que estamos assumindo que nunca falhará?

Depois:

5. CREATE SAFE SCENARIOS

Por exemplo:

E se o link primário desaparecer?

E se uma conta privilegiada precisar ser bloqueada?

E se o SIEM ficar temporariamente indisponível?

E se o operador principal não estiver presente?

E se uma mudança emergencial acontecer?

E se um fornecedor estiver indisponível?

E se o segundo caminho compartilhar a mesma dependência?

Depois:

6. OBSERVE RESPONSE

Finalmente:

7. IMPROVE CONTROLS

Esse é Red Team gerando engenharia.

Não espetáculo.


🖥️ CAPÍTULO 17 — O COBOL também entra na investigação

Nosso programador COBOL iniciante talvez esteja pensando:

— Mas eu apenas programo.

Não existe "apenas programo" em sistemas críticos.

Imagine:

IF AUTHORIZED
    PERFORM UPDATE-ACCOUNT
END-IF.

A pergunta tradicional é:

AUTHORIZED funciona?

Red Team pergunta:

Quem determina AUTHORIZED?

De onde vem esse estado?

Ele pode ficar obsoleto?

Existe contexto?

Existe logging?

Existe override?

Quem aprova?

O que acontece em erro?

FAIL OPEN ou FAIL CLOSED?

Uma pequena condição COBOL pode representar uma enorme decisão de negócio.

Por isso segurança não termina no RACF.

Ela atravessa aplicação, dados e processo.


🧪 CAPÍTULO 18 — O teste mais perigoso é o pressuposto

Faça uma reunião.

Pergunte:

O que nunca pode acontecer aqui?

Alguém responderá:

"Os dois links nunca cairão juntos."

Anote.

Outro:

"Ninguém compartilha essa conta."

Anote.

Outro:

"Produção nunca recebe alteração sem aprovação."

Anote.

Outro:

"Se o monitoramento parar, perceberemos."

Anote.

Outro:

"Nosso fornecedor cuida disso."

Circule duas vezes.

Essas frases são excelentes candidatas para exercícios defensivos.

Red Team é, em grande parte, uma máquina de transformar:

EU ACHO

em:

NÓS TESTAMOS

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

Nos artigos Bellacosa Mainframe, 03:17 aparece quando alguma coisa resolveu acontecer justamente na hora em que ninguém queria.

Aqui ele ganha significado especial.

Às 03:17 não precisamos imaginar um invasor cinematográfico digitando furiosamente.

Podemos imaginar:

03:17:00 CONTROL A DEGRADED

03:17:03 DEPENDENCY B UNAVAILABLE

03:17:07 AUTOMATION RETRY

03:17:12 OPERATOR OVERRIDE

03:17:18 SECURITY EVENT

03:17:21 ALERT DELAYED

Diabolik não criou necessariamente nenhuma dessas condições.

Ele apenas adoraria descobrir que elas podem coexistir.

E esse é o Easter Egg:

O momento mais perigoso de uma arquitetura talvez não seja quando alguma coisa quebra. É quando várias coisas continuam funcionando mal o suficiente para ninguém decidir parar.


🕶️ CAPÍTULO 20 — A verdadeira lição de Diabolik

Diabolik não deveria nos ensinar a ser criminosos.

Como metáfora de Red Team, deveria ensinar-nos a pensar como adversários para construir sistemas melhores.

Ele não pergunta apenas:

COMO QUEBRO O RACF?

Pergunta:

POR QUE PRECISARIA QUEBRÁ-LO?

Não:

COMO DERRUBO A REDUNDÂNCIA?

Mas:

ELA É REALMENTE INDEPENDENTE?

Não:

COMO ENGANAR O OPERADOR?

Mas:

O PROCESSO DEPENDE DEMAIS DE UMA PESSOA?

Não:

COMO DESATIVAR O ALERTA?

Mas:

O QUE ACONTECE QUANDO O ALERTA
APARECE NO PIOR MOMENTO POSSÍVEL?

Essa mudança de mentalidade é enorme.


☕ EPÍLOGO — O mainframe que confiava demais

Às 03:17 daquela noite imaginária, nosso mainframe não estava sem segurança.

Esse é justamente o problema.

Ele possuía:

RACF
SIEM
MFA
NETWORK SECURITY
SEGREGATION
CHANGE MANAGEMENT
BACKUP
REDUNDANCY
MONITORING
PROCEDURES

Tudo existia.

Mas segurança não é a soma dos produtos instalados.

Segurança é o comportamento da arquitetura quando o mundo deixa de colaborar com nossas premissas.

É por isso que Red Team importa.

Blue Team pergunta:

Estamos detectando ataques?

Purple Team aproxima ataque e defesa.

Auditoria pergunta:

Os controles estão implementados?

Operações pergunta:

O serviço está disponível?

Risk Management pergunta:

Qual é nossa exposição?

E nosso Diabolik imaginário entra silenciosamente na War Room, olha para aquele enorme painel verde e faz outra pergunta:

"Qual dessas coisas verdes precisa ficar amarela para fazer as outras perderem valor?"

Silêncio.

Essa é a pergunta.

Porque o adversário sofisticado não precisa derrotar todas as nossas defesas.

Não precisa derrubar o IBM Z.

Não precisa destruir RACF.

Não precisa comprometer cada aplicação.

Não precisa vencer cada operador.

Pode precisar apenas encontrar:

FAILURE
+
CHANGE
+
EXCEPTION
+
TRUST
+
PREDICTABILITY
+
TIMING

e esperar que essas condições se encontrem.

Por isso eu resumiria toda a filosofia do Bellacosa Red Team Mainframe numa única equação:

SECURITY ≠ CONTROLS

Segurança real é:

SECURITY =
CONTROLS
+
CONTEXT
+
RESILIENCE
+
OBSERVABILITY
+
SEGREGATION
+
GOVERNANCE
+
ABILITY TO STOP

E o Risk Scoring completa:

RISK = RISK(t)

O risco de ontem não é necessariamente o risco de agora.

O usuário continua sendo o mesmo.

O programa COBOL continua sendo o mesmo.

A LPAR continua sendo a mesma.

O RACF continua sendo o mesmo.

Mas alguma coisa mudou.

E CHANGE pode transformar uma arquitetura.

Essa talvez seja a maior lição de Diabolik para quem trabalha com IBM Mainframe:

Não procure somente a vulnerabilidade. Procure a combinação de condições que transforma controles individualmente fortes em uma arquitetura coletivamente fraca.

Porque uma fortaleza não precisa perder todas as muralhas para ser penetrável.

Basta existir uma noite em que a ponte esteja abaixada, o guarda esteja olhando para outro lado, a contingência tenha sido improvisada e alguém diga:

"Está funcionando.

Pode continuar."

E, em algum lugar da War Room, o relógio muda silenciosamente para:

03:17

Diabolik sorri.

O Red Team anota.

E o Blue Team, na manhã seguinte, transforma aquela descoberta em uma arquitetura melhor.

☕ Gostou deste café?
Siga o Bellacosa Mainframe e acompanhe os próximos artigos.
SEGUIR O BLOG

Sem comentários:

Enviar um comentário

De Fã para Fã. Conteúdo não oficial produzido como homenagem, comentário, análise ou paródia. Personagens, marcas e obras eventualmente mencionados pertencem aos seus respectivos titulares.
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...