Se você precisasse criptografar e compactar dados durante a transmissão, o que faria primeiro e por quê?
A compactação visa usar padrões nos dados para reduzir o tamanho deles.
A criptografia visa randomizar os dados para que fiquem ininterpretáveis sem uma chave secreta.
Se você criptografar primeiro e depois compactar, sua compactação será inútil. A compactação não funciona com dados aleatórios.
Se você compactar primeiro e depois criptografar, um atacante pode encontrar padrões no comprimento da mensagem (Taxa de Compressão) para aprender algo sobre os dados e potencialmente frustrar a criptografia (como o CRIME)
Quais são as várias maneiras de lidar com ataques de força bruta?
Bloqueios de conta/timeouts
Limitação de taxa de API
Restrições de IP
Fail2ban
...etc
O que é Cross-Site Request Forgery? E como se defender contra ela?
Quando um atacante faz o navegador da vítima realizar requisições com as credenciais da vítima
Exemplo: se uma tag de imagem (``) aponta para uma URL com uma ação associada, por exemplo, https://foo.com/logout
As defesas incluem, mas não se limitam a:
verificar o cabeçalho de origem e o cabeçalho Referer
verificar tokens CSRF ou nonce
O que é Cross-Site Scripting? Quais são os diferentes tipos de XSS? Como se defender contra XSS?
XSS é quando atacantes fazem o navegador da vítima executar algum código (geralmente JavaScript) dentro do navegador
Tradicionalmente, os tipos foram categorizados em ataques XSS Armazenado (Stored) e Refletido (Reflected).
XSS armazenado é algum código que um atacante conseguiu persistir em um banco de dados e que é recuperado e apresentado às vítimas (por exemplo, fórum)
XSS refletido geralmente assume a forma de uma URL criada maliciosamente que inclui o código malicioso. Quando o usuário clica no link, o código é executado no navegador
Recentemente, tem havido discussões sobre XSS baseado em DOM, que ocorre quando atacantes podem controlar elementos do DOM, alcançando assim XSS sem enviar nenhuma requisição ao servidor
As categorias de XSS tendem a se sobrepor; portanto, é muito melhor descrever XSS em termos como XSS Armazenado no Servidor, XSS Refletido no Servidor, XSS Armazenado no Cliente (por exemplo, XSS armazenado baseado em DOM) ou XSS Refletido no Cliente (por exemplo, XSS refletido baseado em DOM)
As defesas incluem:
Codificação de saída (mais importante)
Validação de entrada (menos importante)
Como o HTTP lida com estado?
HTTP é stateless (sem estado)
O estado é armazenado em cookies
Arquiteto
Você já projetou medidas de segurança que abrangem domínios de informação sobrepostos?
Pode me dar alguns exemplos de requisitos de arquitetura de segurança?
Quais desafios de segurança especiais a Arquitetura Orientada a Serviços (SOA) apresenta?
Você já arquitetou uma solução de segurança que envolvia componentes SaaS? Quais desafios você enfrentou?
Você já trabalhou em um projeto no qual as partes interessadas optaram por aceitar riscos de segurança identificados que o preocupavam? Como você lidou com a situação?
Como você lida com demandas de diferentes partes interessadas que têm requisitos conflitantes?
Como você garante que arquitetos de solução desenvolvam soluções seguras?
Como você garante que uma solução continue resiliente diante de ameaças em evolução?
Qual você acha que é a tecnologia mais importante no momento? Como vamos protegê-la?
Blue Team
Dado um log de tráfego HTTP entre uma máquina da sua rede e um site de terceiros (por exemplo, Google), como seriam as portas de origem e destino?
A porta de origem pode ser algum número acima da porta 1024 (também conhecida como porta efêmera)
A porta de destino pode ser 80 (HTTP) ou 443 (HTTPS)
Criptografia
Qual é a diferença entre codificação, criptografia e hashing?
A codificação garante a integridade da mensagem. Pode ser facilmente reversível. Exemplo: base64
A criptografia garante a confidencialidade da mensagem. Reversível apenas usando as chaves de descriptografia apropriadas. Exemplo: AES256
Hashing é uma função de via única. Não pode ser revertida. A saída tem comprimento fixo e geralmente é menor que a entrada.
O TLS usa criptografia simétrica ou assimétrica?
Ambas.
A troca inicial é feita usando criptografia assimétrica, mas a criptografia de dados em massa é feita usando criptografia simétrica. Veja a próxima pergunta para informações adicionais.
Descreva o processo de estabelecimento de uma sessão TLS quando alguém visita um site seguro.
O cliente envia uma mensagem hello que lista informações criptográficas, como a versão SSL/TLS e a ordem de preferência de suítes de cifras do cliente. A mensagem também contém uma sequência aleatória de bytes que é usada em cálculos subsequentes. O cliente também pode incluir métodos de compactação de dados na mensagem hello.
O servidor responde com uma mensagem hello que contém a suíte de cifras escolhida pelo servidor, o certificado digital do servidor e outra sequência aleatória de bytes. Se o servidor exigir autenticação por certificado do cliente, ele também enviará client certificate request ao cliente.
O cliente verifica o certificado digital do servidor.
O cliente envia uma sequência aleatória de bytes criptografada com a chave pública do servidor para permitir que cliente e servidor calculem a chave secreta usada na criptografia subsequente entre cliente e servidor.
Forense
Geral
Projetos de código aberto são mais ou menos seguros do que projetos proprietários?
Ambos os modelos têm prós e contras.
Há exemplos de projetos inseguros que saíram de ambos os campos.
O modelo de código aberto incentiva "muitos olhos" em um projeto, mas isso não necessariamente se traduz em produtos mais seguros
O que importa não é código aberto vs. proprietário, mas o controle de qualidade do projeto.
Quem você admira no campo da Segurança da Informação? Por quê?
De onde você obtém suas notícias de segurança?
Resposta a Incidentes
Redes
Red Team
Gerenciamento de Vulnerabilidades
Qual classificação de vulnerabilidades é a mais explorada?
Com que frequência você deve escanear?
Qual é a diferença entre uma varredura externa e uma interna?
Qual é a diferença entre uma varredura autenticada e uma não autenticada?
Como uma varredura pode identificar (fingerprint) um sistema operacional?
O que é uma pontuação CVSS?
Como você deve dividir as varreduras?
Como você aconselharia as diferentes organizações sobre o que elas devem aplicar patch primeiro?
O que é uma vulnerabilidade?
Você está familiarizado com alguma das formas padrão da indústria de rastrear vulnerabilidades?
O que é CVE e por que a padronização que ela fornece é importante?
Onde você iria para encontrar informações adicionais sobre uma vulnerabilidade?
Qual é a diferença entre um exploit e uma vulnerabilidade?
Se existe uma ameaça, mas nenhuma vulnerabilidade, você diria que ainda há risco? E se houver uma vulnerabilidade, mas nenhuma ameaça?
Você pode listar vulnerabilidades sobre as quais tenha ouvido falar recentemente?
Você está familiarizado com alguma das ferramentas usadas para escanear vulnerabilidades? Se não, pode citar alguma?
Você pode listar ferramentas usadas para aplicar patch em vulnerabilidades em uma empresa?
O que é SCCM?
Você está familiarizado com alguma das ferramentas de código aberto comumente usadas para explorar vulnerabilidades?
Você pode listar algum software conhecido por ter vulnerabilidades de forma consistente?
Com que frequência os patches da Microsoft são lançados (não emergenciais?
Se o servidor solicitou um certificado do cliente, o cliente envia uma sequência aleatória de bytes criptografada com a chave privada do cliente junto com o certificado digital do cliente ou um "alerta de ausência de certificado digital". Esse alerta é apenas um aviso, mas algumas implementações farão o handshake falhar se a autenticação do cliente for obrigatória.
O servidor verificou o certificado digital do cliente.
O cliente envia a mensagem finished criptografada com a chave secreta calculada
O servidor envia a mensagem finished criptografada com a chave secreta calculada
Durante a duração da sessão TLS, o servidor e o cliente agora podem trocar mensagens criptografadas simetricamente com a chave secreta compartilhada
Forward Secrecy é um sistema que usa chaves de sessão efêmeras para fazer a criptografia real dos dados TLS, de modo que, mesmo que a chave privada do servidor fosse comprometida, um atacante não poderia usá-la para descriptografar dados capturados que foram enviados àquele servidor no passado.