| Bellacosa Mainframe lab seu cics sob ataque |
🔥💀 COBOL SECURITY LAB — “SEU CICS SOB ATAQUE”
Hands-on prático com CICS + DB2 para aprender segurança na marra
☕ INTRODUÇÃO
Você não vai só aprender…
👉 você vai:
- explorar vulnerabilidade
- corrigir
- validar
💣 exatamente como um atacante faria
🧪 LAB 1 — SQL INJECTION NO DB2
🎯 Objetivo
Mostrar como um COBOL pode ser vulnerável
💻 Código vulnerável
IDENTIFICATION DIVISION.
PROGRAM-ID. LOGIN.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-USER PIC X(20).
01 WS-PASS PIC X(20).
PROCEDURE DIVISION.
EXEC SQL
SELECT NAME INTO :WS-USER
FROM USERS
WHERE NAME = :WS-USER
AND PASSWORD = :WS-PASS
END-EXEC.
💣 Ataque
Input:
' OR '1'='1
💥 Resultado
👉 bypass de autenticação
✅ Correção
IF WS-USER NOT ALPHABETIC
DISPLAY "INVALID INPUT"
STOP RUN
END-IF.
💬 Insight
👉 validação é a primeira defesa
🧪 LAB 2 — BUFFER / TAMANHO DE INPUT
🎯 Objetivo
Evitar overflow e dados inválidos
💻 Problema
01 WS-NAME PIC X(10).
Input:
AAAAAAAAAAAAAAAAAAAAAAAAAAAA
💥 Resultado
👉 truncamento / corrupção
✅ Correção
IF LENGTH OF WS-NAME > 10
DISPLAY "INPUT TOO LONG"
END-IF.
🧪 LAB 3 — HARDCODED PASSWORD
🎯 Objetivo
Eliminar segredo no código
❌ Código
MOVE "DB123456" TO WS-PASS.
💣 Problema
👉 vazamento garantido
✅ Correção
- usar RACF
- usar external security
👉 RACF
🧪 LAB 4 — VALIDAÇÃO DE COMMAREA (CICS)
🎯 Objetivo
Proteger entrada CICS
💻 Código vulnerável
MOVE DFHCOMMAREA TO WS-DATA.
💣 Problema
👉 dados maliciosos
✅ Correção
IF EIBCALEN = 0
DISPLAY "NO DATA"
RETURN
END-IF.
🧪 LAB 5 — LOGGING SEGURO
🎯 Objetivo
Evitar vazamento de dados
❌ Errado
DISPLAY "PASSWORD: " WS-PASS.
💣 Problema
👉 senha em log
✅ Correção
DISPLAY "LOGIN ATTEMPT".
🧪 LAB 6 — CONTROLE DE ACESSO (RACF)
🎯 Objetivo
Simular autorização
💻 Exemplo
CALL 'RACROUTE' USING ...
💬 Resultado
👉 só usuários autorizados acessam
🧪 LAB 7 — INTEGRAÇÃO COM API (RISCO REAL)
🎯 Objetivo
Simular API via CICS
💣 Problema
👉 input externo não confiável
✅ Solução
- validar JSON
- sanitizar campos
🧪 LAB 8 — TRATAMENTO DE ERRO
🎯 Objetivo
Não expor sistema
❌ Errado
DISPLAY SQLCODE.
💣 Problema
👉 revela estrutura interna
✅ Correto
DISPLAY "ERROR OCCURRED".
🧪 LAB 9 — CONTROLE DE TRANSAÇÃO
🎯 Objetivo
Evitar inconsistência
💻 Uso
EXEC CICS SYNCPOINT
END-EXEC.
💬 Importante
👉 protege integridade
🧪 LAB 10 — SIMULAR ATAQUE REAL
🎯 Objetivo
Mentalidade hacker
💻 Faça
- testar inputs inválidos
- tentar bypass
- observar comportamento
💥 Resultado
👉 descobrir falhas reais
🧠 VISÃO FINAL
Você fez:
- ataque
- defesa
- validação
👉 isso é segurança real
💬 FRASE FINAL
“Mainframe não é seguro por ser forte…
é seguro quando você fecha as portas certas.”