Uma coleção de perguntas para entrevistas para cargos de Segurança da Informação
Índice
Segurança de Aplicações
-
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)
- Recursos:
-
O que os atacantes poderiam fazer com uma vulnerabilidade de Injeção em Cabeçalhos HTTP?
- Retornos de carro e avanços de linha (ou %0D & %0A) são meios para um fim que permitiriam aos atacantes controlar os cabeçalhos HTTP
- Os atacantes poderiam injetar XSS por meio do cabeçalho Referer
- Os atacantes poderiam definir um cookie com um valor conhecido pelo atacante (fixação de sessão)
- Os atacantes poderiam redirecionar para um servidor malicioso
-
Descreva o último programa ou script que você escreveu. Que problema ele resolveu?
- Apenas buscando indícios de que o candidato tem compreensão básica de conceitos de programação e é pelo menos capaz de escrever programas simples
-
Como você implementaria um campo de login seguro em um site de alto tráfego onde o desempenho é uma consideração?
-
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.
- Recursos:
-
Descreva o processo de estabelecimento de uma sessão TLS quando alguém visita um site seguro.