☕ 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

segunda-feira, 10 de setembro de 2018

TETSUDO OTAKU – CONFISSÕES DE UM FERROVIÁRIO DE ALMA

 

Bellacosa Mainframe e a alma ferroviaria 

TETSUDO OTAKU – CONFISSÕES DE UM FERROVIÁRIO DE ALMA
Um post Bellacosa Mainframe para o El Jefe Midnight Lunch





Há coisas na vida que a gente não escolhe.
Elas simplesmente aparecem, acendem uma luz dentro da gente e… pronto.
Viramos devotos. Seguidores. Apaixonados incuráveis.



No meu caso, meu amigo, essa chama tem forma de locomotiva.
Tem cheiro de óleo quente.
Tem som metálico que vibra no peito.
E produz vapor — muito vapor — como se fosse um dragão mecânico pronto pra acordar mundos adormecidos.



Sim, e para minha surpresa, não estou sozinho.
O Japão inventou um termo pomposo, um nome pra isso: Tetsudō Otaku (鉄オタ).
O ferro-nerd, o train geek, o devoto das trilhas de aço.
Mas a verdade?
Antes de existir termo japonês, já existia eu, o Bellacosa apaixonado por trilhos no hemisfério sul.
Eles só demoraram pra documentar.

Herdado e iniciado neste gosto pelo meu pai, desde que me lembro como gente, esse gosto , esse interesse, seja naqueles antigos western-spaghetti com suas poderosas ferrovias e locomotivas a vapor, ou seja, no antigo e decadente trem da CBTU. Transporte em que ia e voltava do trabalho nos anos 1980/1990 e na sua versão evoluída como um Pokémon a CPTM do século XXI.




O Código-Fonte da Paixão

Desde pequeno eu já tinha o kernel configurado pra isso.
Enquanto outras crianças se fascinavam por carrinhos, bonecos ou videogames, eu tinha outra fofura na cabeça:

A liturgia do trem.

E não era amor superficial, não.
Era amor de quem entende o cheiro da lenha molhada na fornalha,
o ronco das máquinas elétricas dos anos 50,
a beleza suja e poética da diesel.
Amor de quem olha pra uma BR-8, uma Baldwin, uma Henschel e vê história gritando na lataria.

Amor de quem sabe que uma locomotiva não é só um veículo.
É uma criatura viva — aço, fogo e memória.

Meu sonho dourado de infância, era ganhar um Ferrorama da Estrela, porém família pobre, este desejo ficava perdido, nas das cartinhas, que o papai noel não tinha condições de responder e atender.




Ferrovias Paulistas – Suas Primeiras Catedrais

E como todo bom devoto, eu tinha minhas “igrejas” prediletas:

  • A Companhia Paulista, a rainha da qualidade.

  • A Mogiana, a estrada dos vales, das serras e dos desafios.

  • A SPR (São Paulo Railway), a linha que rasgou a serra do mar e levou o café ao mundo.

  • A Central do Brasil, esteio do sudeste, veia principal de quem sonhava chegar ao Rio, São Paulo ou além.

O meu templo, melhor dizer CATEDRAL e grande local mágico é a Estação da Luz em São Paulo, em estilo inglês, clássica torre do Relógio, passagens secretas, ferro fundido, tijolos ingleses e suor brasileiro, mão de obra escrava, livre e imigrante. Todos deram sua força nesta obra única sob a batuta dos lendários ingleses das ferrovias.

São linhas que hoje dormem, quase fantasmas, mas que lutam contra o esquecimento através de pessoas como eu, um aficionado, amalucado e que ama o tec tec das rodas de ferro sobre os trilhos. Hoje quando posso uso os trens suburbanos das CBTU/CPTM, para ir a capital como um caipira de outros tempos.

Afinal, enquanto alguém lembra…
uma ferrovia nunca morre.




O Dia em que Busquei o FIM DOS TRILHOS

A aventura de 600 km até Santa Fé do Sul é um poema por si só.
Quem mais pega estradas de ferro, numa viagem de quase 20 horas, gasta dinheiro, enfrenta calor, poeira, vagões lotados e quilômetros infinitos só para ver… o fim da linha, onde o trilho acaba no Rio Paraná na divisa com Mato Grosso do Sul?

Isso é coisa de Tetsudō Otaku raiz.
Versão brasileira, com sotaque do interior, coragem e uma alma movida por trilhos.

Chegar lá foi como alcançar o final de um livro épico.
Eu não fui como turista.
Fui como arqueólogo sentimental.
Como quem procura o último suspiro de um gigante adormecido.




Do Luxo Europeu ao Vagão Coletivo – Uma vida ferroviária completa

Poucos podem dizer — com propriedade — que experimentaram todas as classes, todos os ritmos e todos os estilos de viagem ferroviária:

  • vagões luxuosos com jantar à luz branda;

  • cabines privadas que lembram hotéis móveis;

  • compartimentos coletivos, barulhentos e cheios de vida;

  • vagões antigos de madeira que rangem como velhos bardos;

  • fronteiras cruzadas ao som hipnótico dos trilhos;

  • restaurantes ferroviários com aquela comida que tem gosto de estrada e poesia.

Eu não só viajei de Trem.
Eu vivi o Trem.

Coisa rara. Coisa nobre.
Coisa de quem tem ferrovia correndo na veia.

Que jovens do século XXI, acostumados com papai e mamãe chofer, ou uber para lá e cá, desconhecem.



Defensor de um Brasil que ainda pode voltar aos trilhos

No fundo, carrego um sonho, meio a Dom Quixote, mas que também é sonho de muitos:

O retorno pleno dos trens de passageiros.
Porque eles são:

  • mais ecológicos;

  • mais baratos;

  • mais rápidos em longas distâncias;

  • mais românticos (sim, admitamos);

  • e absolutamente indispensáveis num mundo que pensa em futuro.

Carro engarrafa.
Avião atrasa.
Ônibus quebra.
Trem vai.

Simples assim.

E talvez um dia, quando este país finalmente voltar a raciocinar como país grande,
alguém bata na mesa e diga:

“Voltem os trilhos! Voltem os trens!”

E quando isso acontecer, Bellacosa, irei sorrir sabendo que defendia essa bandeira desde sempre.




Conclusão: A Ferrovia Mora em meu Coração

Ser Tetsudō Otaku não é ser estranho.
É ser parte de uma linhagem rara de apaixonados pelo movimento, pela história e pela poesia do mundo real.

É ser guardião de um patrimônio.
É carregar no peito o som dos trilhos.
É sentir o coração acelerar ao ouvir o apito distante.
É saber que existe beleza no rumo certo, no tempo certo, na linha certa.

Alguns amam o mar.
Outros amam o céu.
Eu amo o caminho entre um lugar e outro,
a promessa do horizonte,
a certeza de que sempre existe mais trilho lá adiante.

E isso — meu amigo — não é excentricidade.

É vocação.
É alma.
É legado.



É um amor de uma pessoa, que viajou de trem as Santos vendo a Serra do Mar, posterior me desci o mesmo trajeto a pé como andarilho, que conhece Morretes e seu lendario trem, que luta para atrair padawans para o Mundo das Ferrovias.





domingo, 9 de setembro de 2018

Arsène Lupin, COBOL e o Dia em que o Hacker Descobriu que Era Mais Fácil Pedir a Senha do que Quebrar o Cofre

 

Bellacosa Mainframe e o arsene lupin e as fraudes

☕ Um Café no Bellacosa Mainframe

Arsène Lupin, COBOL e o Dia em que o Hacker Descobriu que Era Mais Fácil Pedir a Senha do que Quebrar o Cofre

🎩 Engenharia Social Bancária, autenticação, autorização, Zero Trust, insiders, IA, UEBA e o estranho caso do atacante que entrou pela porta da frente usando um crachá perfeitamente válido

Imagine a cena.

Paris.

Madrugada.

Um casarão silencioso.

No segundo andar existe um cofre cercado por fechaduras, alarmes, sensores e provavelmente algum aristocrata francês convencido de que ninguém jamais conseguirá atravessar aquele sistema de proteção.

Pela janela?

Grades.

Pelo telhado?

Sensores.

Pela porta?

Dois guardas.

Pelo cofre?

Uma combinação impossível.

Arsène Lupin observa tudo isso, ajeita o monóculo imaginário e conclui:

— Que trabalho desnecessário.

Então toca a campainha.

Cinco minutos depois, o mordomo abre a porta.

Bem-vindo à engenharia social.

No mundo bancário moderno, gastamos fortunas criando sistemas capazes de impedir que pessoas não autorizadas entrem.

Firewalls.

MFA.

SIEM.

EDR.

IAM.

Criptografia.

RACF.

Monitoramento.

Segmentação.

SOC.

Machine Learning.

Zero Trust.

E tudo isso é necessário.

Mas existe um detalhe desconfortável.

O atacante nem sempre precisa quebrar a fechadura.

Às vezes ele convence alguém que possui a chave a abrir a porta.

E esse detalhe muda completamente a arquitetura de segurança.


🎭 Capítulo 1 — O ataque que chega usando gravata

Quando pensamos em “hacker”, é fácil imaginar alguém digitando freneticamente numa tela preta:

ACCESS DENIED
ACCESS DENIED
ACCESS DENIED
ACCESS GRANTED

Bonito no cinema.

Só que muitos ataques reais começam de maneira muito menos cinematográfica.

Um telefonema.

Um e-mail.

Uma mensagem.

Um chamado de suporte.

Uma solicitação urgente.

Algo como:

“Bom dia, aqui é da equipe de infraestrutura. Estamos detectando inconsistência no seu acesso. Você poderia validar a solicitação no autenticador?”

A vítima olha o celular.

Existe realmente uma notificação.

Ela aperta:

APPROVE

Pronto.

Nenhum firewall foi quebrado.

Nenhum algoritmo criptográfico foi derrotado.

Nenhum buffer overflow foi necessário.

A barreira foi atravessada utilizando algo que computadores ainda possuem dificuldade de compreender completamente:

a confiança humana.

Esse é o primeiro conceito importante:

Engenharia social não ataca apenas pessoas. Ela explora o relacionamento entre pessoas, processos, autoridade e tecnologia.

O atacante não precisa perguntar:

“Qual é sua senha?”

Pode perguntar:

“Você pode confirmar a solicitação que acabei de enviar?”

Parece uma pequena diferença.

Na segurança, é um abismo.


🧠 Capítulo 2 — O cérebro humano é também um parser

Programador COBOL iniciante, guarde esta comparação.

Seu programa recebe entrada.

ACCEPT WS-DATA.

Depois interpreta essa entrada.

Se houver uma validação insuficiente, alguma coisa inesperada pode acontecer.

O cérebro humano também recebe entradas.

Só que elas chegam assim:

voz
texto
autoridade
pressão
urgência
contexto
medo
confiança

O atacante cria uma mensagem especificamente desenhada para produzir uma resposta.

Em termos quase computacionais:

INPUT
  ↓
INTERPRETAÇÃO
  ↓
DECISÃO
  ↓
AÇÃO

Uma mensagem de phishing sofisticada funciona quase como um exploit.

O exploit técnico procura uma vulnerabilidade de software.

A engenharia social procura uma vulnerabilidade de julgamento.

Veja:

BUG TÉCNICO

entrada maliciosa
      ↓
programa interpreta
      ↓
comportamento inesperado
      ↓
acesso

Agora:

ENGENHARIA SOCIAL

informação manipulada
      ↓
humano interpreta
      ↓
decisão induzida
      ↓
acesso

A elegância quase lupiniana está justamente aí.

O ladrão não arromba o cofre.

Ele faz o dono acreditar que abrir o cofre é uma excelente ideia.


🎩 Curiosidade Lupin nº 1 — O melhor disfarce é parecer esperado

Um atacante competente raramente deseja parecer extraordinário.

Ele deseja parecer normal.

O e-mail precisa parecer corporativo.

A linguagem precisa parecer interna.

A solicitação precisa parecer razoável.

O horário precisa fazer sentido.

O nome da equipe precisa existir.

O atacante estuda a organização.

LinkedIn.

Organogramas.

Vagas publicadas.

Tecnologias anunciadas.

Nomes de departamentos.

Eventos.

Fornecedores.

Padrões de e-mail.

Projetos divulgados.

Esse processo é frequentemente chamado de reconhecimento.

E aqui nasce um pequeno paradoxo.

Quanto mais uma organização publica sobre sua própria estrutura, mais fácil pode ficar construir mensagens convincentes.

Não significa que empresas devam desaparecer da internet.

Significa que segurança também precisa considerar quais informações públicas ajudam um criminoso a representar alguém de dentro.


🏦 Capítulo 3 — O banco é diferente porque o funcionário já está dentro

Num ambiente bancário, a questão torna-se ainda mais séria.

Um invasor externo começa assim:

ATACANTE
    |
    X
PERÍMETRO

Mas um usuário interno legítimo começa assim:

FUNCIONÁRIO
    |
    V
AUTENTICAÇÃO
    |
    V
REDE
    |
    V
APLICAÇÃO

Se esse funcionário for convencido, comprometido ou tiver sua sessão sequestrada, o atacante pode aproveitar privilégios legítimos.

Isso é muito diferente de arrombar uma porta.

É roubar a identidade de alguém que já possui autorização para atravessá-la.

Imagine:

USER = FUNC001
PASSWORD = CORRECT
MFA = SUCCESS
DEVICE = CORPORATE
VPN = ACTIVE

Tudo parece perfeito.

Só que existe uma pergunta que esses controles isoladamente não respondem:

O que esse usuário está fazendo é coerente?

Essa pergunta nos conduz para uma das ideias mais importantes da segurança contemporânea.


🔐 Capítulo 4 — Autenticação não significa confiança eterna

Vamos transformar isso em COBOL mental.

Autenticação pergunta:

QUEM É VOCÊ?

Autorização pergunta:

O QUE VOCÊ PODE FAZER?

Mas segurança moderna precisa perguntar também:

FAZ SENTIDO VOCÊ FAZER ISSO AGORA?

Suponha que João trabalhe diariamente assim:

LOGIN: 08:00
LOGOUT: 17:30
DEVICE: LAPTOP-431
LOCATION: CAMPINAS
SYSTEMS: A, B, C
TRANSACTIONS/DAY: 240

Numa terça-feira:

02:53 LOGIN
DEVICE: UNKNOWN
LOCATION: UNUSUAL
SYSTEM: Z
PRIVILEGE CHANGE
EXPORT: 70000 RECORDS

A senha pode estar certa.

O MFA pode até ter sido aprovado.

A autorização pode existir.

Mas o contexto está gritando:

ALGO-ESTA-ERRADO = TRUE

☕ Capítulo 5 — O velho IF do COBOL encontra o Zero Trust

Durante muito tempo, muitos sistemas foram mentalmente construídos assim:

IF USER-AUTHENTICATED
   PERFORM ACCESS-SYSTEM
END-IF.

Mas a filosofia Zero Trust adiciona mais perguntas.

Conceitualmente:

IF USER-AUTHENTICATED
   AND DEVICE-TRUSTED
   AND LOCATION-EXPECTED
   AND BEHAVIOR-NORMAL
   AND PRIVILEGE-VALID
   AND RISK-SCORE < MAXIMUM-RISK
       PERFORM BUSINESS-TRANSACTION
ELSE
       PERFORM ADDITIONAL-VERIFICATION
END-IF.

Claro que nenhum banco implementa Zero Trust literalmente dessa maneira.

Mas como modelo mental funciona maravilhosamente.

A confiança deixa de ser:

TRUE

e passa a ser:

CONTEXTUAL
TEMPORARY
RECALCULATED

O usuário foi autenticado?

Ótimo.

Mas continua sendo observado.

O dispositivo mudou?

Reavalie.

O local mudou?

Reavalie.

O comportamento mudou?

Reavalie.

O recurso ficou mais sensível?

Reavalie.

Em outras palavras:

Autenticação não deveria ser uma coroação.

Ela deveria ser apenas mais uma evidência.


🎩 Curiosidade Lupin nº 2 — O ladrão mais perigoso pode possuir a chave verdadeira

Existe uma distinção importante entre três tipos de insider threat.

INSIDER
   |
   +--- MALICIOUS
   |
   +--- NEGLIGENT
   |
   +--- COMPROMISED

O insider malicioso possui intenção deliberada.

Ele possui acesso e decide abusar dele.

O insider negligente não deseja causar dano, mas pode violar procedimentos ou ser descuidado.

E o insider comprometido talvez seja o mais interessante.

É um funcionário completamente inocente.

Só que:

credencial roubada
sessão sequestrada
MFA aprovado indevidamente
endpoint comprometido
engenharia social

transformaram sua identidade em instrumento de ataque.

O sistema enxerga:

JOAO

Mas talvez quem esteja dirigindo seja Lupin.


🧱 Capítulo 6 — Least Privilege: não é falta de confiança, é controle de explosão

O princípio do menor privilégio costuma ser ensinado assim:

Usuários devem possuir apenas os acessos necessários.

Correto.

Mas existe uma interpretação ainda melhor.

Pergunte:

Se esta conta for comprometida amanhã, qual será o tamanho do estrago?

Esse conceito é chamado informalmente de blast radius, raio de explosão.

Imagine duas contas.

Conta A:

READ

Conta B:

READ
WRITE
DELETE
EXPORT
ADMIN
GRANT

Se ambas forem comprometidas, o impacto será muito diferente.

Menor privilégio não serve apenas para impedir abuso deliberado.

Ele serve para limitar consequências quando inevitavelmente alguma coisa der errado.

É como os compartimentos estanques de um navio.

Você não constrói compartimentos porque acredita que o casco jamais será perfurado.

Você constrói porque sabe que um dia talvez seja.


🚢 Capítulo 7 — Segurança madura não é “nunca falhar”

Esse talvez seja o maior salto conceitual desta conversa.

Organizações imaturas imaginam:

PREVENT
PREVENT
PREVENT
PREVENT

Organizações maduras pensam:

PREVENT
   ↓
DETECT
   ↓
CONTAIN
   ↓
RESPOND
   ↓
RECOVER
   ↓
LEARN

Porque pessoas erram.

Processos falham.

Softwares possuem defeitos.

Credenciais vazam.

Modelos erram.

Alertas são ignorados.

Então a pergunta deixa de ser:

Como podemos garantir que ninguém jamais erre?

E torna-se:

Quando alguém errar, quantas outras barreiras existirão antes da catástrofe?

Isso é defesa em profundidade.


📊 Capítulo 8 — SIEM: de milhares de eventos para uma história

Agora imagine o SOC de um banco.

Milhões de eventos.

LOGIN
LOGOUT
READ
WRITE
DENY
ALLOW
CREATE
DELETE
CONNECT
DISCONNECT

Sozinhos, muitos parecem normais.

Mas veja esta sequência:

02:01 LOGIN SUCCESS
02:03 MFA SUCCESS
02:05 NEW DEVICE
02:07 PRIVILEGE CHANGE
02:11 DATABASE ACCESS
02:14 MASS QUERY
02:18 LARGE EXPORT

Nenhum evento isolado necessariamente prova um ataque.

Mas juntos contam uma história.

Esse é um dos papéis do SIEM:

EVENTOS
   ↓
CENTRALIZAÇÃO
   ↓
CORRELAÇÃO
   ↓
DETECÇÃO
   ↓
ALERTA

O valor não está apenas em guardar logs.

Está em relacioná-los.


🧠 Capítulo 9 — UEBA: quando o sistema começa a observar comportamento

UEBA significa:

User and Entity Behavior Analytics.

A ideia é observar comportamento e procurar desvios.

Exemplo.

Maria geralmente:

SYSTEMS = CUSTOMER-SERVICE
HOURS = 08-18
LOCATION = OFFICE
DATA-VOLUME = LOW

De repente:

SYSTEMS = ADMIN
HOURS = 03
LOCATION = UNKNOWN
DATA-VOLUME = VERY-HIGH

Uma tecnologia de análise comportamental pode perceber:

Esse padrão não combina com Maria.

Mas cuidado.

Diferente não significa malicioso.

Maria pode ter sido convocada para um plantão.

Pode estar viajando.

Pode trabalhar numa mudança excepcional.

É justamente por isso que detecção comportamental precisa considerar contexto.

Caso contrário, o SOC sofre outra doença.


🚨 Capítulo 10 — Alert Fatigue: o alarme que toca tanto que ninguém olha

Imagine uma sala com um alarme.

Primeira vez:

BEEP!

Todo mundo corre.

Centésima vez:

BEEP!

Alguém olha.

Milésima vez:

BEEP!

— Deve ser de novo aquele sensor.

Esse fenômeno é chamado de alert fatigue.

Um SOC inundado por falsos positivos começa inevitavelmente a priorizar.

E em algum momento pode ignorar justamente o alerta importante.

Isso produz um paradoxo:

Um sistema de segurança que gera alertas demais pode diminuir a segurança.

Por isso, IA, SIEM e UEBA deveriam ajudar não a criar mais ruído, mas a aumentar a qualidade da decisão.


🤖 Capítulo 11 — E então chega a inteligência artificial

Agora o jogo fica divertido.

IA pode ajudar defensores em:

detecção de anomalias
classificação de risco
correlação de eventos
priorização
triagem
descoberta de padrões
análise de comportamento

Imagine milhões de eventos entrando.

Um humano jamais analisaria todos.

Um modelo pode tentar encontrar combinações improváveis.

DEVICE + TIME + LOCATION + PRIVILEGE + RESOURCE + VOLUME

e produzir:

RISK SCORE = 92

Então:

IF RISK-SCORE > 80
   REQUIRE STEP-UP-AUTH
   ALERT SOC
   LIMIT SESSION
END-IF

Muito elegante.

Só que aparece outra pergunta.

Quem protege a IA que está protegendo o banco?


☠️ Capítulo 12 — O guarda também pode ser enganado

Um modelo de IA depende de:

DADOS
MODELO
CONFIGURAÇÃO
REGRAS
PROMPTS
PIPELINES
PERMISSÕES

Todos esses componentes possuem superfície de ataque.

Entre os riscos estão:

  • Data Poisoning;

  • Prompt Injection;

  • manipulação de modelos;

  • vazamento de dados;

  • evasão;

  • falsos positivos;

  • falsos negativos;

  • alterações não autorizadas;

  • problemas de governança.

Imagine que o modelo aprende o que significa “normal”.

Agora imagine que o atacante consegue influenciar esse aprendizado.

Pouco a pouco:

ANOMALIA
  ↓
REPETIÇÃO
  ↓
ACEITAÇÃO
  ↓
BASELINE
  ↓
NORMAL

É quase uma normalization of deviance algorítmica.

O comportamento perigoso deixa de chamar atenção porque passou a fazer parte da referência usada pelo próprio sistema.

É Arsène Lupin treinando o guarda para reconhecê-lo como funcionário.


🎩 Easter Egg Lupin nº 1

O ladrão elegante não precisa vencer a máquina.

Ele pode vencer o conceito de normalidade da máquina.

Se o sistema pergunta:

IS THIS NORMAL?

o atacante pode tentar garantir que a resposta futura seja:

YES

Não destruindo o detector.

Mas ensinando-o lentamente.


🧠 Capítulo 13 — O perigo do “a IA disse”

Também existe outro problema.

Suponha que o modelo apresente:

FRAUD PROBABILITY = 97%

O analista inicialmente examina tudo.

Depois de 200 alertas:

— Se a IA deu 97%, bloqueia.

Isso é automation bias.

A presença de um humano no processo não garante que exista julgamento humano.

O fluxo pode virar:

AI
 ↓
HUMAN CLICKS OK
 ↓
ACTION

Formalmente:

Human in the Loop.

Na prática:

Human Rubber Stamp.

O bom HITL exige:

contexto
evidência
explicação
capacidade de contestação
tempo
procedimentos
responsabilidade

Caso contrário, acrescentamos apenas um clique humano numa decisão automatizada.


☕ Capítulo 14 — Um incidente completo, passo a passo

Vamos montar um pequeno romance policial.

08:43.

Funcionário Carlos começa o expediente.

09:17.

Recebe uma ligação.

— Carlos? Aqui é o Rafael da Segurança. Detectamos atividade anômala na sua conta.

O nome “Rafael” foi encontrado pelo atacante no LinkedIn.

09:18.

O criminoso menciona corretamente o nome de um sistema interno obtido numa vaga de emprego publicada meses antes.

Carlos fica preocupado.

09:19.

O atacante diz:

— Vou disparar uma validação.

O celular recebe MFA.

Carlos aprova.

MFA SUCCESS

09:20.

Nova sessão iniciada.

09:23.

Acesso a aplicação.

AUTH SUCCESS

09:27.

Solicitação de privilégio.

PRIVILEGE ESCALATION

09:32.

Consulta a dados sensíveis.

SENSITIVE ACCESS

09:35.

Exportação.

Uma arquitetura simples talvez enxergue:

USER AUTHENTICATED
USER AUTHORIZED

Uma arquitetura contextual enxerga:

NEW SESSION
+
MFA AFTER PHONE CALL
+
NEW RESOURCE
+
PRIVILEGE CHANGE
+
SENSITIVE QUERY
+
DATA EXPORT

E responde:

HIGH RISK

Agora vem uma decisão interessante.

Bloquear tudo?

Talvez.

Mas existem alternativas.

STEP-UP MFA
SECOND APPROVER
EXPORT LIMIT
SESSION MONITOR
SOC ALERT
TEMPORARY RESTRICTION

Isso é segurança adaptativa.


🔐 Capítulo 15 — Segurança não precisa ser sempre ALLOW ou DENY

Programadores gostam de binários.

TRUE
FALSE

Segurança moderna começa a ficar mais sofisticada.

Em vez de:

ALLOW
DENY

podemos pensar:

ALLOW
ALLOW + LOG
ALLOW + MONITOR
ALLOW + LIMIT
STEP-UP
SECOND APPROVAL
ISOLATE
DENY

O objetivo é adicionar fricção proporcional ao risco.

Transação normal?

Continue.

Transação incomum?

Peça nova confirmação.

Ação extremamente sensível?

Exija outro aprovador.

Sequência altamente suspeita?

Suspenda temporariamente.

Essa granularidade reduz dois problemas simultaneamente:

BLOQUEIO EXCESSIVO

e

CONFIANÇA EXCESSIVA

🏦 Capítulo 16 — Onde o mainframe entra nessa história?

No fundo de muitas arquiteturas bancárias pode existir:

APP
 ↓
API
 ↓
MQ
 ↓
z/OS Connect
 ↓
CICS
 ↓
COBOL
 ↓
Db2 / VSAM

Quando uma transação chega ao COBOL, ela pode parecer perfeitamente legítima.

EXEC CICS READ
END-EXEC.

O programa não sabe necessariamente que dez minutos antes alguém telefonou para o funcionário.

Para o sistema:

USER = VALID
TRANSACTION = VALID
AUTHORIZATION = VALID

Mas segurança moderna precisa correlacionar informações ao redor dessa transação.

RACF pode dizer:

Esse usuário pode acessar este recurso.

UEBA pode perguntar:

Esse usuário costuma acessar este recurso?

SIEM pode perguntar:

O que aconteceu antes?

EDR pode perguntar:

O endpoint apresenta comportamento suspeito?

IAM pode perguntar:

Como essa identidade foi autenticada?

Zero Trust pergunta:

Qual é o contexto atual?

É a soma que cria uma visão melhor.


🎩 Easter Egg Lupin nº 2 — A joia não está no cofre

Há uma metáfora interessante.

Imagine que o banco protege perfeitamente seus dados.

Mas o atacante consegue induzir um usuário autorizado a solicitar esses próprios dados.

Nesse caso, o problema não está necessariamente na proteção do cofre.

Está na legitimidade da solicitação.

É como construir o melhor cofre do mundo e depois entregar um formulário chamado:

SOLICITAÇÃO OFICIAL DE ABERTURA

Se o criminoso aprende a produzir o formulário correto, a fechadura continua sendo excelente.

Só que deixou de ser relevante.


🧩 Capítulo 17 — Pessoas + Processo + Tecnologia + Dados + Governança

Treinamento de usuários é importante.

Mas não suficiente.

Uma organização madura combina várias dimensões.

PESSOAS
+
PROCESSOS
+
TECNOLOGIA
+
DADOS
+
GOVERNANÇA

Pessoas precisam reconhecer engenharia social.

Processos precisam impedir que uma única pessoa consiga realizar ações críticas sozinha.

Tecnologia precisa detectar contexto.

Dados precisam ser confiáveis.

Governança precisa assegurar que regras, modelos e acessos sejam auditáveis.

Nenhuma camada deve ser tratada como mágica.


🛡️ Capítulo 18 — Passo a passo para pensar uma defesa

Para um programador COBOL iniciante, aqui vai um roteiro mental.

Primeiro:

Identifique a identidade.

WHO?

Depois:

Valide o privilégio.

CAN?

Depois:

Analise o contexto.

WHEN?
WHERE?
DEVICE?

Depois:

Observe o comportamento.

NORMAL?

Depois:

Avalie o recurso.

HOW SENSITIVE?

Depois:

Calcule risco.

RISK?

Depois:

Escolha resposta proporcional.

ALLOW?
STEP-UP?
LIMIT?
DENY?

Depois:

Registre tudo.

LOG

Depois:

Correlacione.

SIEM

Depois:

Aprenda.

IMPROVE CONTROLS

É quase um ciclo PDCA vestido de sobretudo francês.


🔎 Capítulo 19 — Perguntas práticas que qualquer equipe deveria fazer

Antes de pensar em comprar mais uma ferramenta, pergunte:

Se uma credencial for roubada hoje, o que o atacante consegue fazer?

Se o MFA for aprovado por engano, qual será a próxima barreira?

Se uma conta privilegiada for comprometida, existe limitação?

Mudanças de privilégio são monitoradas?

Exportações massivas chamam atenção?

Logins fora de padrão são correlacionados?

Atividades administrativas possuem dupla aprovação?

Logs críticos podem ser alterados pelo próprio administrador?

Modelos de IA possuem controle de versão?

Quem modifica thresholds?

Quem audita falsos positivos?

Quem decide que determinado comportamento é normal?

A equipe de SOC consegue explicar por que um alerta recebeu determinada prioridade?

Se a resposta para todas for:

NÃO SEI

acabamos de encontrar um excelente backlog.


🎩 Easter Egg Lupin nº 3 — O plano B do ladrão

Um bom atacante pensa:

SE A PORTA NÃO ABRIR
   USE A JANELA
SE A JANELA NÃO ABRIR
   USE O MORDOMO
SE O MORDOMO DESCONFIAR
   USE O GERENTE

Defesa em profundidade deveria pensar ao contrário:

SE O USUÁRIO ERRAR
   MFA
SE MFA FALHAR
   BEHAVIOR
SE BEHAVIOR FALHAR
   LIMIT
SE LIMIT FALHAR
   DETECT
SE DETECT FALHAR
   CONTAIN
SE CONTAIN FALHAR
   RECOVER

A segurança não depende de uma única chance.

Ela cria múltiplas oportunidades para impedir a progressão do incidente.


🧠 Capítulo 20 — O atacante moderno também possui IA

Existe outra transformação importante.

IA não pertence apenas ao defensor.

Atacantes também podem utilizá-la para:

redigir mensagens
personalizar phishing
analisar perfis públicos
traduzir
simular estilos de escrita
automatizar interações
produzir áudio sintético

Isso reduz sinais que antigamente ajudavam vítimas.

O clássico:

“Esse e-mail está escrito errado, deve ser golpe.”

fica menos confiável.

A mensagem pode estar impecável.

A voz pode parecer convincente.

A assinatura pode parecer profissional.

O novo treinamento precisa ensinar:

Credibilidade visual não equivale a legitimidade.


⚠️ Capítulo 21 — O ataque perfeito parece uma terça-feira

O ataque barulhento é mais fácil.

DELETE DATABASE

gera atenção.

O sofisticado tenta parecer rotina.

Um registro hoje.

Outro amanhã.

Uma consulta pequena.

Um privilégio utilizado discretamente.

Isso é chamado frequentemente de comportamento low-and-slow.

Em vez de:

100 GB / 10 MINUTES

pode existir:

50 MB / DAY

durante meses.

O atacante quer ficar abaixo dos thresholds.

Por isso análise de comportamento não pode considerar apenas volume.

Precisa considerar:

sequência
frequência
relação
contexto
histórico

🧙‍♂️ Capítulo 22 — O sysprog paranoico talvez tivesse razão

Veteranos costumam fazer perguntas aparentemente pessimistas:

— E se esse acesso for comprometido?

— E se o batch rodar duas vezes?

— E se alguém tiver permissão demais?

— E se o fallback falhar?

— E se o log estiver errado?

Iniciantes às vezes enxergam isso como excesso de cautela.

Mas sistemas críticos amadurecem justamente porque alguém pensou:

WHAT IF?

Segurança é a disciplina de transformar “e se?” em arquitetura.


☕ Capítulo 23 — A grande lição para quem está começando em COBOL

Você talvez entre no mainframe pensando:

Preciso aprender PIC, COMP-3, PERFORM, JCL, VSAM e Db2.

Sim.

Mas trabalhar em sistemas críticos significa aprender também que uma transação não existe isoladamente.

Por trás daquele:

EXEC SQL
    UPDATE ACCOUNT
END-EXEC

existem perguntas:

Quem chamou?

Por quê?

De onde?

Com qual identidade?

Qual privilégio?

Qual auditoria?

Qual rastreabilidade?

Existe autorização?

Existe segregação?

Existe limite?

Existe rollback?

Existe reconciliação?

Existe monitoramento?

A segurança não começa no firewall.

Ela atravessa toda a aplicação.


🎩 O último truque de Arsène Lupin

Depois de atravessar todo o casarão, Lupin chega diante do cofre.

O dono pergunta:

— Como você abriu a porta?

Lupin responde:

— Eu não abri.

— Então como entrou?

— O senhor abriu para mim.

Esse talvez seja o resumo perfeito da engenharia social.

O atacante moderno nem sempre precisa derrotar nossos controles.

Pode simplesmente encontrar uma maneira de fazer com que nós mesmos os utilizemos em benefício dele.

Por isso, uma arquitetura realmente madura não pergunta apenas:

IS USER AUTHENTICATED?

Nem apenas:

IS USER AUTHORIZED?

Pergunta também:

IS THIS BEHAVIOR EXPECTED?
IS THIS CONTEXT NORMAL?
IS THIS ACTION PROPORTIONAL?
IS THIS SESSION STILL TRUSTWORTHY?

E talvez, principalmente:

IF EVERYTHING ELSE FAILS,
HOW BAD CAN IT GET?

Essa última pergunta separa sistemas frágeis de sistemas resilientes.

Porque segurança bancária não deveria ser construída sobre a esperança de que ninguém jamais erre.

Pessoas erram.

Modelos erram.

Procedimentos falham.

Credenciais são comprometidas.

Ferramentas possuem vulnerabilidades.

Alertas são ignorados.

A verdadeira maturidade aparece quando um desses eventos deixa de significar automaticamente:

GAME OVER

e passa a significar:

CONTROL 1 FAILED
CONTROL 2 ACTIVE
CONTROL 3 MONITORING
SOC ALERTED
DAMAGE CONTAINED

Esse é o coração da defesa em profundidade.

E talvez seja também a maior lição que um programador COBOL pode levar para segurança:

IF USER-AUTHENTICATED
   CONTINUE
ELSE
   STOP RUN
END-IF

era simples demais.

O mundo atual exige algo mais parecido com:

EVALUATE TRUE

   WHEN USER-NOT-AUTHENTICATED
      PERFORM DENY-ACCESS

   WHEN PRIVILEGE-NOT-VALID
      PERFORM DENY-ACCESS

   WHEN CONTEXT-SUSPICIOUS
      PERFORM STEP-UP-VALIDATION

   WHEN BEHAVIOR-ANOMALOUS
      PERFORM SECURITY-REVIEW

   WHEN RESOURCE-CRITICAL
      PERFORM SECOND-APPROVAL

   WHEN OTHER
      PERFORM NORMAL-PROCESSING

END-EVALUATE.

E no comentário do programa talvez exista uma linha que nenhum compilador entende, mas todo profissional de segurança deveria compreender:

*> NÃO CONFUNDA IDENTIDADE VÁLIDA COM INTENÇÃO LEGÍTIMA.

Porque o futuro da segurança bancária não será determinado apenas por quem possui a melhor fechadura.

Será determinado por quem consegue perceber mais rapidamente quando alguém atravessa uma porta perfeitamente autorizado...

...mas não deveria estar entrando naquela sala.

E em algum lugar de Paris, provavelmente Arsène Lupin estaria sorrindo.

Não porque conseguiu quebrar a segurança.

Mas porque ninguém percebeu que ele nunca precisou quebrá-la.

☕ Bem-vindo ao Bellacosa Mainframe.

Onde até o ACCESS GRANTED merece ser interrogado.

sábado, 8 de setembro de 2018

🤒🔥 Infecção de Garganta — Quando o Modo Oni Era Derrubado pelo “Boss Final” da Infância

 


🤒🔥 Infecção de Garganta — Quando o Modo Oni Era Derrubado pelo “Boss Final” da Infância

Bellacosa Mainframe — Blog El Jefe Midnight Lunch

El Jefe, hoje eu volto àquele tempo em que eu, este pequeno Oni que vivia ativado em modo turbo 24x7, tinha um único ponto fraco: a bendita garganta.
Ah, meu tendão de Aquiles…
O ABEND S0C7 do meu corpo.
Aquele bug recorrente que derrubava o sistema inteiro.

Até uns 5 anos, bastava um vento torto, uma mudança de clima, um copo de água meio gelado — pronto. Iniciava o job “infecção_de_garganta.jcl” e lá ia eu pro chão. O modo Oni ficava OFF, congelado, caído no sofá feito processo em wait state, olhos murchos, voz falhando, febrezinha, mau humor e zero travessuras.

Mas junto com a doença vinha algo precioso:
atenção máxima dos meus pais.

Por causa do histórico pesado da família — meus pais perderam dois filhos antes de nós — qualquer febrezinha minha era vista como alerta vermelho nível Data Center pegando fogo.

E apesar de estar caidinho…
como era bom sentir aquele cuidado.



🍵 As comidinhas especiais da Dona Mercedes:

  • bolacha água e sal, simples e salvadora,

  • canjinha de galinha com perfume maternal nível divino,

  • caldinho de arroz que revivia até cadáver de sessão espírita,

  • chá quentinho com aquele carinho que não vem na embalagem.

Eu ficava deitado no sofá, todo murchinho, assistindo TV, vestindo aquele modo "Oni em Hibernação", só olhando a vida passar entre desenhos e programas antigos.

Mas tinha uma parte que eu temia…
A parte que vinha depois da febre, das dores, da garganta fechando…
a parte que fazia qualquer criança virar santo por três dias:

💉 A Benzetacil.



Meu amigo… isso sim era punição divina.
Minha mãe me levava ao velho e respeitado Dr. Pereira, farmacêutico raiz, daqueles que aplicavam injeção com a mesma precisão de um operador JES2 usando punch card.

A agulhada…
Ah, aquela agulhada.

Parecia que entrava em modo I/O direto no osso.
Era dor que até o Oni mais teimoso chorava.

Mas, como num passe de mágica,
no dia seguinte — pá! — o sistema rebootava perfeito.
Modo Oni ON novamente.
Voltava a correr, aprontar, subir em árvore, derrubar coisas, assustar vizinhos e tudo mais que um pequeno Bellacosa fazia para testar os limites da física.

Com o tempo, especialmente depois da mudança para Ibitinga, o ar limpo, o clima diferente e talvez uma boa ajuda do destino fizeram a garganta parar de dar problema.
Fiquei anos sem sofrer com isso.
Quase imune.

E claro, havia a preocupação da minha mãe com o tal do “latex no sangue” — ela mesma, na juventude, sofrera com a garganta e, na roça, não havia antibiótico. Resultado: complicações cardíacas quando adulta. Isso a marcou profundamente, e em casa saúde era assunto sério. Cuidado, zelo, atenção total.

Hoje, olhando pra trás, dá até um nózinho no peito lembrar desses momentos.
A doença era ruim, mas o carinho…
Ah, esse foi o patch mágico que curou a infância inteira.



E assim seguimos, El Jefe.
De garganta inflamada a Oni revivido em 24 horas,
sempre com a Dona Mercedes operando o milagre do cuidado
e o Dr. Pereira aplicando o “patch doloroso” que reiniciava o sistema.

🧡 Bons tempos de dores fortes, mas amores maiores.


quinta-feira, 6 de setembro de 2018

🕶️ FRANK FARMER E O MAINFRAME QUE PRECISAVA DE UM GUARDA-COSTAS

 

Bellacosa Mainframe aprenda a proteger seu mainframe

☕ Um Café no Bellacosa Mainframe

🕶️ FRANK FARMER E O MAINFRAME QUE PRECISAVA DE UM GUARDA-COSTAS

Nmap, Shodan, Burp Suite, Nessus, Wireshark, OSINT, RACF, SAF, SMF, zSecure, CICS, Db2, IMS, MQ, USS, APIs, Zero Trust — e o dia em que um programador COBOL descobriu que proteger o mainframe não significava ficar parado na porta do datacenter.

Sob a tutela de Frank Farmer, de O Guarda-Costas.


 



🎬 PRÓLOGO — EU NÃO PROTEJO A MÁQUINA. EU PROTEJO O CAMINHO ATÉ ELA.

O jovem programador COBOL olhou para o enorme IBM Z instalado atrás do vidro do datacenter.

Portas controladas.

Câmeras.

Crachás.

Biometria.

Seguranças.

Firewalls.

RACF.

Criptografia.

Ele sorriu.

— Frank, ninguém entra aqui.

Frank Farmer não respondeu imediatamente.

Continuou olhando para o ambiente.

Depois perguntou:

— O mainframe conversa com alguma coisa?

— Claro.

— Com o quê?

O programador começou a contar.

— Aplicativos mobile, APIs, servidores Linux, Windows, MQ, parceiros, cloud, estações dos desenvolvedores, VPN, CICS, Db2...

Frank interrompeu:

— Então existem muitas portas.

— Mas o mainframe está protegido.

Frank olhou novamente para ele.

Eu não perguntei se o mainframe estava protegido. Perguntei quantos caminhos chegam até ele.

Silêncio.

Naquele instante começaria uma das aulas mais importantes da carreira daquele jovem programador.

Porque segurança de mainframe não começa necessariamente no mainframe.

Às vezes começa em um e-mail.

Em um notebook.

Em uma API.

Em uma senha.

Em uma configuração esquecida.

Em um certificado.

Em uma biblioteca.

Ou simplesmente em alguém dizendo:

— Confia em mim.

Pegue o café.

Hoje Frank Farmer será nosso guarda-costas.



🏰 CAPÍTULO 1 — O MAINFRAME NÃO É UMA ILHA

Existe uma imagem confortável do mainframe:

          IBM Z
     ┌──────────────┐
     │              │
     │     z/OS     │
     │              │
     └──────────────┘

       INDESTRUTÍVEL

Seria maravilhoso.

Mas um ambiente empresarial moderno parece muito mais com isto:

                INTERNET
                    │
              FIREWALL / WAF
                    │
               API GATEWAY
                    │
        ┌───────────┴───────────┐
        │                       │
      CLOUD                  MOBILE
        │                       │
        └───────────┬───────────┘
                    │
                 TCP/IP
                    │
              ┌─────┴─────┐
              │   IBM Z   │
              └─────┬─────┘
                    │
     ┌──────────────┼──────────────┐
     │              │              │
   CICS            MQ         z/OS Connect
     │              │              │
   COBOL           IMS            APIs
     │
   Db2 / VSAM

Esse desenho muda completamente nossa visão de segurança.

Frank Farmer não protegeria apenas a porta do datacenter.

Ele estudaria:

quem entra, quem sai, quem conversa com quem, quais caminhos existem e quais relações de confiança foram criadas.

Essa é a primeira lição.

A superfície de ataque do mainframe pode existir muito além do próprio mainframe.



🔎 CAPÍTULO 2 — NMAP: FRANK COMEÇA CONTANDO AS PORTAS

Imagine Frank chegando a uma mansão que precisa proteger.

Antes de qualquer coisa ele pergunta:

Quantas portas?

Quantas janelas?

Existe garagem?

Entrada de serviço?

Túnel?

Portão lateral?

No mundo TCP/IP fazemos algo conceitualmente semelhante.

Ferramentas como Nmap ajudam profissionais autorizados a identificar hosts, portas e serviços.

Podemos pensar:

HOST
 │
 ├── 22   SSH
 ├── 443  HTTPS
 ├── xxxx serviço
 └── yyyy serviço

Mas aqui aparece um erro comum do iniciante.

Encontrar:

PORT 22 OPEN

não significa:

SISTEMA VULNERÁVEL

Significa:

Existe alguma coisa ouvindo aqui.

Agora começa a investigação.

Qual serviço?

Qual versão?

Quem pode conectar?

Existe TLS?

Como ocorre autenticação?

Que recurso existe atrás daquele serviço?

É produção?

Desenvolvimento?

Homologação?

Frank diria:

Uma porta não é uma invasão. É uma pergunta.



🌍 CAPÍTULO 3 — SHODAN, CENSYS E O MAINFRAME QUE DEIXOU PEGADAS

Aqui encontramos uma área fascinante: OSINT — Open Source Intelligence.

Informações públicas podem revelar muito sobre uma organização sem qualquer necessidade de acessar seus sistemas.

Imagine encontrar anúncios de emprego dizendo:

Procuramos:

COBOL
CICS
Db2
IBM MQ
RACF
z/OS Connect

Outra página diz:

Projeto de modernização CICS.

Outra:

Experiência em IBM MQ obrigatória.

Outra:

Migração de aplicações COBOL.

Separadamente são informações inocentes.

Juntas:

COBOL
  +
CICS
  +
Db2
  +
MQ
  +
z/OS Connect
  =
MAPA TECNOLÓGICO

É como encontrar pedaços de um COPYBOOK espalhados pela Internet.

Ferramentas e fontes de OSINT ajudam a correlacionar domínios, subdomínios, certificados, endereços, tecnologias e informações publicamente disponíveis.

Frank Farmer chamaria isso de:

conhecer o terreno antes que alguém mal-intencionado o conheça melhor do que você.



🕸️ CAPÍTULO 4 — O ATAQUE PODE COMEÇAR LONGE DO COBOL

Agora imagine:

Smartphone
    │
    ▼
Aplicação
    │
    ▼
API
    │
    ▼
Gateway
    │
    ▼
z/OS Connect
    │
    ▼
CICS
    │
    ▼
COBOL
    │
    ▼
Db2

Pergunta:

Onde está o mainframe?

No final.

Onde está a superfície de ataque?

Em vários pontos.

Essa distinção é importantíssima.

O programa COBOL pode estar perfeito e ainda assim existir um problema na camada web, API, autenticação, autorização ou integração.

É aí que ferramentas como Burp Suite, OWASP ZAP e soluções de teste de aplicações entram no cenário.

Não porque sejam "ferramentas COBOL".

Mas porque podem examinar componentes que levam até aplicações executadas no mainframe.


🧪 CAPÍTULO 5 — BURP SUITE NÃO SABE COBOL. E NÃO PRECISA.

Considere:

REQUEST HTTP
     │
     ▼
API
     │
     ▼
z/OS Connect
     │
     ▼
CICS
     │
     ▼
PROG01

Uma ferramenta de segurança web pode estudar o primeiro trecho desse caminho.

Mas ela não responde automaticamente:

Quem pode executar PROG01?

Quem pode alterar sua biblioteca?

Qual transação chama esse programa?

Que perfil RACF protege o recurso?

Que privilégios existem no Db2?

Que fila MQ ele acessa?

E aqui temos uma diferença essencial entre:

testar uma aplicação conectada ao mainframe

e

auditar profundamente a segurança do mainframe.

São disciplinas relacionadas.

Mas não idênticas.


🛡️ CAPÍTULO 6 — NESSUS NÃO É RACF

Scanners de vulnerabilidade podem encontrar problemas importantíssimos:

TLS obsoleto.

Certificados.

Serviços desnecessários.

Software vulnerável.

Configurações inseguras.

Versões problemáticas.

Tudo isso interessa ao Blue Team.

Mas imagine perguntar ao scanner:

Quais usuários possuem privilégios excessivos no RACF?

Silêncio.

Ou:

Existe uma biblioteca crítica inadequadamente protegida?

Silêncio novamente.

Porque agora saímos do universo de:

NETWORK VULNERABILITY

e entramos em:

MAINFRAME AUTHORIZATION

Precisamos conhecer o território nativo.


🔐 CAPÍTULO 7 — FRANK FARMER CONHECE O RACF

Para o iniciante, RACF muitas vezes parece apenas:

"Aquilo onde fica minha senha."

Não.

Isso seria como dizer que CICS serve para mostrar telas verdes.

RACF participa de um universo muito maior de controle de acesso.

Imagine:

                USER01
                   │
                   ▼
                 RACF
                   │
       ┌───────────┼───────────┐
       │           │           │
    DATASET      CICS         USS
       │           │           │
       ▼           ▼           ▼
     READ       EXECUTE       FILE
    UPDATE

Agora começamos a enxergar segurança.

Não basta perguntar:

Quem é você?

Precisamos perguntar:

O que você pode fazer?

Autenticação responde principalmente:

QUEM É VOCÊ?

Autorização responde:

O QUE VOCÊ PODE FAZER?

Frank imediatamente entenderia a diferença.

Reconhecer alguém não significa entregar-lhe todas as chaves da casa.


🚪 CAPÍTULO 8 — SAF: O SEGURANÇA QUE PERGUNTA AO PORTEIRO

Outro nome que o iniciante precisa guardar:

SAF — System Authorization Facility.

De maneira simplificada, podemos imaginar:

Aplicação/Subsistema
        │
        ▼
       SAF
        │
        ▼
 RACF / Security Manager
        │
        ▼
      PROFILE
        │
        ▼
   DECISÃO DE ACESSO

A ideia é poderosa.

Um componente precisa decidir se determinado usuário pode acessar um recurso.

Em vez de cada aplicação inventar seu próprio sistema de segurança, existe uma arquitetura integrada para solicitar essa decisão.

É quase como Frank dizendo:

— Não decida sozinho quem entra. Pergunte à segurança.


🗝️ CAPÍTULO 9 — QUEBRAR SENHA TALVEZ NEM SEJA O PROBLEMA

A imagem original mostrava ferramentas como Hashcat, John the Ripper e Hydra.

Elas pertencem ao universo de testes de credenciais e senhas em contextos autorizados.

Mas no mainframe aparece uma pergunta ainda mais interessante:

E se a credencial legítima já possuir autoridade demais?

Considere:

USER01
 │
 ├── DATASET.A  READ
 ├── DATASET.B  UPDATE
 ├── CICS       acesso
 ├── USS        acesso
 └── MQ         autoridade

Talvez ninguém precise "quebrar" nada.

O problema pode ser privilégio excessivo.

Esse é um princípio central:

Least Privilege

Cada identidade deve possuir somente as permissões necessárias para desempenhar sua função.

Nem mais.

Nem menos.


🐧 CAPÍTULO 10 — FRANK ENCONTRA UNIX DENTRO DO MAINFRAME

Então nosso programador faz uma descoberta:

$ ls
$ cd
$ grep
$ ssh

— Frank! Colocaram Linux no z/OS!

Não.

😂

Bem-vindo ao UNIX System Services — USS.

O z/OS possui um ambiente UNIX/POSIX integrado.

Isso significa que profissionais de segurança também precisam compreender conceitos como:

directories
files
permissions
processes
shell
SSH
scripts
TCP/IP

Mas existe uma diferença crítica:

USS continua vivendo dentro do ecossistema de segurança do z/OS.

Isso cria uma ponte fascinante entre:

MUNDO UNIX
     ↕
    USS
     ↕
z/OS / SAF / RACF

Para alguém estudando segurança ofensiva e defensiva, USS merece um capítulo inteiro.


📡 CAPÍTULO 11 — WI-FI NÃO PRECISA CHEGAR AO MAINFRAME

A imagem original também apresentava ferramentas de segurança wireless.

O iniciante pode perguntar:

— Meu IBM Z não está no Wi-Fi. Então isso não interessa.

Frank aponta para o notebook do operador.

E desenha:

Wi-Fi
  │
  ▼
Notebook
  │
  ▼
Credenciais
  │
  ▼
VPN
  │
  ▼
Rede corporativa
  │
  ▼
Terminal / SSH / Aplicação
  │
  ▼
IBM Z

Agora ficou interessante.

Uma organização precisa proteger cadeias, não apenas máquinas.

O atacante não necessariamente começa atacando o ativo mais forte.

Pode procurar o elo mais fraco conectado a ele.


🎭 CAPÍTULO 12 — O FIREWALL NÃO PROTEGE CONTRA "CONFIA EM MIM"

Frank Farmer sabe que pessoas também fazem parte da arquitetura.

Imagine:

Firewall        OK
RACF            OK
TLS             OK
MFA             OK
CICS            OK
SIEM            OK

Telefone toca.

— Boa tarde. Estamos resolvendo o incidente INC00317. Preciso confirmar algumas informações...

Espere.

00317?

☕ Easter egg localizado.

03:17.

O horário em que todo incidente importante do Bellacosa Mainframe parece decidir acordar. 😁

O problema agora não é buffer overflow.

É confiança.

Engenharia social procura explorar comportamentos humanos:

autoridade aparente, urgência, medo, curiosidade, confiança e vontade de ajudar.

Por isso segurança também envolve:

PROCESSOS
+
TREINAMENTO
+
SEGREGAÇÃO DE FUNÇÕES
+
APROVAÇÃO
+
VERIFICAÇÃO

Frank Farmer provavelmente resumiria:

Se alguém consegue convencer seu funcionário a abrir a porta, a resistência da fechadura deixou de ser o problema principal.


📜 CAPÍTULO 13 — SMF: A CÂMERA DE SEGURANÇA DO REINO

Agora chegamos a um dos tesouros do z/OS:

SMF — System Management Facilities

Quem trabalha com observabilidade já conhece a importância do SMF.

Na segurança ele também é extremamente relevante.

Pense nele como uma enorme fonte de evidências produzidas pelo sistema e seus componentes.

Dependendo dos registros habilitados e das aplicações envolvidas, podemos reconstruir partes importantes de:

QUEM
 │
 ▼
FEZ O QUÊ
 │
 ▼
QUANDO
 │
 ▼
ONDE
 │
 ▼
COM QUAL RESULTADO

E isso muda completamente uma investigação.


🕵️ CAPÍTULO 14 — FORENSE MAINFRAME NÃO É APENAS PROCURAR ARQUIVOS APAGADOS

No mundo distribuído, ferramentas forenses podem trabalhar com:

memória, discos, imagens, arquivos, tráfego e artefatos.

No z/OS precisamos ampliar nossa visão.

Podemos precisar correlacionar:

SMF
RACF
SYSLOG
OPERLOG
JES spool
CICS
Db2
MQ
TCP/IP
USS
SIEM

Imagine:

02:58 USER01 autentica
03:02 JOBABC inicia
03:04 recurso XYZ é acessado
03:08 programa executa
03:10 conexão externa ocorre
03:17 alerta dispara

Uma informação isolada talvez não conte nada.

Correlacionadas, elas contam uma história.

Isso é investigação.


🔍 CAPÍTULO 15 — zSECURE: FRANK GANHA UMA CENTRAL DE SEGURANÇA

Se RACF é parte fundamental do controle de acesso, precisamos também de instrumentos especializados para analisar esse universo.

Aqui aparece a família IBM zSecure.

Ela possui recursos voltados a administração, auditoria, compliance, análise e alertas de segurança no IBM Z.

O ponto importante para nosso jovem COBOLero é compreender que ferramentas tradicionais de scanner e ferramentas especializadas em z/OS enxergam problemas diferentes.

Compare:

SCANNER DE REDE

porta
TLS
serviço
versão
configuração

com:

ANÁLISE z/OS

identidades
grupos
profiles
autorizações
configurações
exposições
compliance
eventos

Um não substitui o outro.

Eles se complementam.


🧙 CAPÍTULO 16 — CARLa: QUANDO FRANK APRENDE A FAZER PERGUNTAS

Outro nome curioso:

CARLa.

Ela é utilizada no ecossistema zSecure para consulta e análise de informações de segurança.

Para o programador iniciante, podemos fazer uma analogia imperfeita, mas útil:

SQL
 ↓
consulta dados

CARLa
 ↓
consulta/analisa informações
de segurança do ambiente

Não são a mesma coisa.

A analogia serve apenas para criar o primeiro mapa mental.

Em segurança, saber formular perguntas é tão importante quanto possuir ferramentas.

Por exemplo:

Quem possui determinado privilégio?

Quais recursos possuem proteção inadequada?

Quais identidades possuem determinada autoridade?

Onde existem exceções?

O que mudou?

Essa mentalidade transforma segurança em investigação.


🧠 CAPÍTULO 17 — O PENTESTER ENCONTROU COBOL

Agora Frank acompanha um especialista que encontra:

EXEC CICS
   READ FILE('CUSTOMER')
   INTO(WS-CUSTOMER)
   RIDFLD(WS-CUSTOMER-ID)
END-EXEC.

Ele diz:

— Encontrei COBOL.

O programador mainframe responde:

— Você encontrou o começo das perguntas.

Qual transação executa esse programa?

Qual usuário?

Qual região CICS?

Qual FILE?

Quem pode acessar?

Que dataset existe por trás?

Quem pode modificar a load library?

Existe Db2 envolvido?

MQ?

Qual informação é registrada?

Percebeu?

O código não vive sozinho.

Temos:

IDENTIDADE
    │
    ▼
TRANSAÇÃO
    │
    ▼
PROGRAMA
    │
    ▼
RECURSO
    │
    ▼
DADO

E cada ligação possui implicações de segurança.


🕸️ CAPÍTULO 18 — FRANK DESENHA UM GRAFO

Aqui está talvez a ideia mais importante deste café.

Pare de pensar apenas em ferramentas.

Pense em caminhos.

Exemplo:

FUNCIONÁRIO
     │
     ▼
NOTEBOOK
     │
     ▼
VPN
     │
     ▼
USERID
     │
     ▼
RACF GROUP
     │
     ▼
DATASET
     │
     ▼
LOAD LIBRARY
     │
     ▼
PROGRAMA
     │
     ▼
CICS
     │
     ▼
Db2

Outro:

INTERNET
   │
   ▼
MOBILE
   │
   ▼
API
   │
   ▼
z/OS Connect
   │
   ▼
CICS
   │
   ▼
COBOL
   │
   ▼
MQ

Outro:

FORNECEDOR
    │
    ▼
VPN
    │
    ▼
SSH
    │
    ▼
USS
    │
    ▼
SCRIPT
    │
    ▼
JCL
    │
    ▼
BATCH

Isso é Attack Path Analysis em espírito: compreender os caminhos possíveis entre identidades, sistemas, permissões e ativos.


🔵 CAPÍTULO 19 — BLUE TEAM

O Blue Team pergunta:

Como protegemos?

No mainframe podemos pensar em camadas:

                 BLUE TEAM
                     │
        ┌────────────┼────────────┐
        ▼            ▼            ▼
      RACF          SMF         NETWORK
        │            │            │
    ACCESS        EVENTS        TCP/IP
        │            │            │
        └────────────┼────────────┘
                     ▼
                 DETECTION
                     │
                     ▼
                   SIEM

Ele trabalha para:

reduzir exposição, detectar comportamento anormal, fortalecer configurações, controlar privilégios, registrar eventos e responder a incidentes.


🔴 CAPÍTULO 20 — RED TEAM

O Red Team autorizado faz outra pergunta:

Se eu fosse um adversário, quais caminhos tentaria explorar?

Mas isso não significa sair disparando ferramentas contra produção.

Um Red Team profissional trabalha com:

ESCOPO
AUTORIZAÇÃO
REGRAS
LIMITES
EVIDÊNCIAS
SEGURANÇA OPERACIONAL
RELATÓRIO
REMEDIAÇÃO

No mainframe isso é ainda mais importante.

Você não quer descobrir que seu teste de resiliência funcionou derrubando o processamento da folha de pagamento.

😬


🟣 CAPÍTULO 21 — PURPLE TEAM

Agora Frank coloca Red e Blue na mesma sala.

RED TEAM
   │
   │ "encontrei um caminho"
   ▼
PURPLE TEAM
   ▲
   │ "vamos aprender com ele"
   │
BLUE TEAM

O objetivo não é descobrir quem é mais esperto.

É melhorar a defesa.

Red demonstra uma exposição autorizadamente.

Blue verifica se detectaria.

Ambos analisam.

A organização corrige.

Testa novamente.

Isso produz maturidade.


🏗️ CAPÍTULO 22 — PASSO A PASSO PARA O PROGRAMADOR COBOL

Se você está começando agora, não tente aprender cinquenta ferramentas simultaneamente.

Construa o conhecimento em camadas.

Passo 1 — Entenda z/OS.

Aprenda:

TSO
ISPF
JCL
datasets
JES
SDSF

Passo 2 — Entenda aplicações.

COBOL
CICS
Db2
IMS
VSAM
MQ

Passo 3 — Aprenda identidade e autorização.

SAF
RACF
USER
GROUP
PROFILE
RESOURCE
ACCESS

Passo 4 — Entre no USS.

shell
files
directories
permissions
SSH
TCP/IP

Passo 5 — Aprenda observabilidade.

SMF
RMF
logs
SYSLOG
OPERLOG
CICS logs
Db2
MQ

Passo 6 — Estude segurança externa.

OSINT
DNS
TLS
HTTP
APIs
networking
firewalls

Passo 7 — Conheça ferramentas especializadas.

zSecure
SIEM
security analytics
compliance

Somente depois comece a ligar tudo.


🧩 CAPÍTULO 23 — O EXERCÍCIO DE FRANK FARMER

Escolha uma aplicação COBOL fictícia.

Por exemplo:

PAYMENT

Agora pergunte:

Quem chama PAYMENT?

CICS transaction PAY1

Quem chama PAY1?

Talvez:

API

Quem chama a API?

Mobile Banking

Continue:

CLIENTE
   │
   ▼
MOBILE
   │
   ▼
API GATEWAY
   │
   ▼
z/OS CONNECT
   │
   ▼
CICS PAY1
   │
   ▼
COBOL PAYMENT
   │
   ├────► Db2
   │
   └────► MQ

Agora coloque segurança em cada seta.

Pergunte:

Quem autentica?

Quem autoriza?

Existe TLS?

Qual identidade chega ao CICS?

Que autorização existe?

Como o acesso ao Db2 é controlado?

Quem pode alterar PAYMENT?

Onde ficam os logs?

Que SMF é produzido?

Qual alerta seria gerado?

Pronto.

Você deixou de estudar COBOL isoladamente.

Começou a estudar segurança de sistemas empresariais.


💡 CAPÍTULO 24 — CINCO CURIOSIDADES QUE MUDAM A CABEÇA

A primeira: o atacante pode nunca ver ISPF.

Ele pode interagir somente com uma API que termina num programa COBOL.

A segunda: o código mais seguro do mundo não corrige uma autorização excessiva.

A terceira: criptografia não resolve autorização.

TLS pode proteger o caminho enquanto uma identidade perfeitamente autenticada possui permissões inadequadas.

A quarta: logs sem análise não significam detecção.

Registrar milhões de eventos não ajuda se ninguém correlacionar o que importa.

A quinta é talvez a melhor:

segurança não é produto.

Comprar uma ferramenta não instala maturidade.


🕶️ EPÍLOGO — O GUARDA-COSTAS NÃO FICAVA NA PORTA

Algumas semanas depois, o jovem programador encontrou Frank diante do mesmo vidro do datacenter.

O IBM Z continuava ali.

Imponente.

Silencioso.

Processando milhares de transações.

O programador disse:

— Agora entendi.

Frank esperou.

— Segurança do mainframe não é proteger apenas o mainframe.

Frank continuou em silêncio.

— Precisamos proteger identidades, caminhos, interfaces, aplicações, dados e relações de confiança.

Frank finalmente sorriu.

O programador apontou para o IBM Z.

— Então ele precisa de um guarda-costas.

Frank corrigiu:

— Não.

Apontou para todo o datacenter.

Depois para os notebooks.

Depois para a rede.

Depois para o smartphone sobre a mesa.

E finalmente para o programador.

Todos eles precisam.

O relógio do console marcou:

03:17:00

Nenhum ABEND.

Nenhum alerta.

Nenhuma porta misteriosamente aberta.

Dessa vez 03:17 era apenas um horário.

Frank pegou o café.

SECURITY STATUS
---------------

RACF ............ ACTIVE
SAF ............. ACTIVE
SMF ............. RECORDING
CICS ............ RUNNING
MQ .............. RUNNING
COBOL ........... STILL RUNNING

FRANK FARMER .... WATCHING

☕🕶️

E o jovem programador finalmente compreendeu a grande lição daquele café:

Em cibersegurança, a pergunta mais perigosa não é "alguém consegue invadir meu mainframe?". É "quantos caminhos de confiança levam até aquilo que realmente preciso proteger?"

Porque Nmap pode encontrar portas.

Shodan pode encontrar pegadas.

Burp pode examinar aplicações.

Scanners podem descobrir vulnerabilidades.

Wireshark pode observar pacotes.

RACF pode controlar acessos.

SMF pode preservar evidências.

zSecure pode ajudar a analisar a postura de segurança.

Mas nenhuma ferramenta substitui alguém capaz de olhar para todas essas peças e perceber que elas pertencem ao mesmo sistema.

E talvez seja justamente aí que o velho programador COBOL tenha uma vantagem inesperada.

Ele passou décadas aprendendo que um programa nunca vive sozinho.

Existe JCL.

Existe dataset.

Existe CICS.

Existe Db2.

Existe IMS.

Existe MQ.

Existe RACF.

Existe rede.

Existe gente.

E agora existe uma nova missão:

descobrir quem está protegendo quem.

Um Café no Bellacosa Mainframe

Onde até Frank Farmer descobriu que proteger Whitney Houston talvez fosse mais simples do que mapear todas as relações de confiança de uma LPAR.

quarta-feira, 5 de setembro de 2018

🥙 Churrasco Grego Paulistano: o giro sagrado do aço inox

  

🥙 Churrasco Grego Paulistano: o giro sagrado do aço inox

Por Vagner Bellacosa ☕🔥



Dizem que o churrasco grego não é grego.
E é verdade. É paulistano até o osso — ou melhor, até o espeto.

O nome vem de uma tentativa de “sofisticar” o prato lá nos anos 1970–1980, quando começaram a aparecer no centro de São Paulo aquelas máquinas verticais com espetos giratórios, lembrando o tradicional gyro da Grécia, o kebab turco e o shawarma árabe.
Mas, como toda boa invenção tupiniquim, o paulista olhou aquilo e pensou:

“Posso fazer igual, só que mais barato e com pão francês.”

E fez.




🏙️ O império das calçadas

O churrasco grego virou símbolo das avenidas do centro velho — São João, Ipiranga, Largo do Arouche, República.
Lá estão eles: o espeto vertical girando lentamente, uma resistência elétrica no topo, gordura pingando e o cheiro irresistível dominando a rua.
Por uns trocados, o freguês leva o pacote completo: carne cortada na hora, pão, vinagrete, maionese e suco de laranja com corante radioativo.

É uma refeição democrática: alimenta o trabalhador, o motoboy, o estudante, o boêmio e o curioso.
E quando bate aquela fome das 2h da manhã depois do samba, é ele quem está lá — firme, quente e confiável.
Um verdadeiro mainframe da madrugada.




🔥 Mas afinal, o que tem ali?

Originalmente, era uma mistura de carne bovina marinada com temperos simples, disposta em camadas verticais.
Com o tempo, surgiram variações: porco, frango, até soja.
O segredo está no corte fino, no giro constante e no molho que parece ter sido passado de geração em geração, como um código-fonte ancestral.
Ninguém sabe o que tem, mas todo mundo confia.


🧠 Curiosidades e folclores urbanos

  • O apelido “grego” veio de marketing de rua: “kebab” parecia difícil, “churrasco grego” soava exótico e atraía mais freguês.

  • primeiro ponto famoso teria surgido na região da Praça da República, por imigrantes do Oriente Médio.

  • Muitos carrinhos usavam chapas e motores reciclados de ventiladores ou máquinas de lavar para girar o espeto — engenharia raiz!

  • Há quem jure que o molho tem “tempero secreto” vindo da Grécia, mas é só vinagrete com orégano e fé.


☕ Bellacosa comenta

O churrasco grego é o roteador de almas famintas do centro de São Paulo.
Simples, direto e sempre online.
É o código que nunca foi documentado, mas que roda em produção há 40 anos sem downtime.
Cada fatia fininha cortada na hora carrega a essência de uma cidade que nunca dorme, nunca julga e sempre tem troco para o pão.


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...