Prévia do material em texto
UNIVERSIDADE ANHANGUERA UNIDERP EDUCACIONAL Superior de Tecnologia em Cibersegurança Portfólio de Arquitetura de Segurança SÃO PAULO - SP 2024 Portfólio de Arquitetura de Segurança Introdução: Funções Hash Função Hash Função hash é a função que mapeia dados de entrada de comprimento variável para dados de saída de comprimento fixo, geralmente uma sequência alfanumérica de tamanho fixo. Propriedade de resistência à colisão A função hash ideal deve ser resistente à colisão, o que significa que é altamente improvável que dois conjuntos de dados de entrada diferentes produzam a mesma saída de hash. Isso garante que mesmo pequenas alterações nos dados de entrada resultem em saídas de hash completamente diferentes. Propriedade de ocultação Uma pequena alteração nos dados de entrada deve resultar em uma saída de hash completamente diferente. Dessa maneira, garante que que uma parte dos dados de entrada seja alterado, e a saída de hash será diferente. Propriedade de resistência a pré-imagem Dada uma saída de hash, deve ser computacionalmente inviável encontrar uma entrada que produza essa saída de hash. Não deve ser possível reverter a função hash para recuperar os dados de entrada apenas com a saída de hash. Eficiência As funções hash devem ser eficientes em termos de tempo de computação, ou seja, devem ser rápidas para calcular, especialmente quando aplicadas a grandes volumes de dados. Tipos de ataques às Funções Hash: Ataques de colisão: Nesses ataques, um adversário procura encontrar duas entradas diferentes que produzem a mesma saída de hash. Isso comprometeria a integridade dos dados, especialmente em sistemas onde a verificação de autenticidade é feita com base na igualdade das saídas de hash. Ataques de pré-imagem: O atacante tenta encontrar uma entrada que corresponda com a saída de hash. Se bem-sucedido, isso comprometeria a integridade dos dados, permitindo que o atacante falsificasse os dados originais correspondentes a uma determinada saída de hash. Ataques de força bruta: Tentativas repetidas de encontrar uma entrada que produza uma saída de hash específica por meio de tentativa e erro. Isso é geralmente feito por meio de computação de hashes repetidamente, até que uma correspondência seja encontrada. Como um código hash é constituído: O código hash é composto por uma sequência de caracteres alfanuméricos de comprimento fixo, gerada por uma função hash aplicada aos dados de entrada. A estrutura de um código hash é determinada pela função hash específica utilizada. O processo de criação de um código hash envolve as seguintes etapas: Seleção da função hash: Escolha da função hash apropriada com base nos requisitos de segurança e desempenho do sistema. Processamento dos dados de entrada: Os dados de entrada são processados pela função hash, que pode envolver técnicas como quebra em blocos, transformações matemáticas e iterações. Geração do código hash: A função hash gera um código hash único e irreversível, que representa os dados de entrada. Esse código é geralmente uma sequência alfanumérica de tamanho fixo. Armazenamento ou transmissão: O código hash pode ser armazenado em conjunto com os dados originais ou transmitido separadamente para fins de verificação de integridade autenticidade dos dados. Em resumo, um código hash é constituído pela aplicação de uma função hash aos dados de entrada, resultando em uma representação única e fixa desses dados, que é utilizada para diversos fins, como verificação de integridade, autenticação e segurança da informação. Exemplo de uma função hash convertida para alfanumérico Processos e políticas de segurança Cenário Fictício: Empresa com Informações Confidenciais Imagine uma empresa de tecnologia que armazena dados confidenciais de clientes. Nesse cenário: Risco de Ataque Cibernético: A empresa corre o risco de sofrer ataques cibernéticos, como invasões de hackers ou roubo de dados. Vazamento de Informações: Se os sistemas de segurança forem comprometidos, informações confidenciais dos clientes podem ser expostas. Acesso Não Autorizado: Funcionários desonestos ou mal- intencionados podem acessar dados sensíveis. Falta de Treinamento em Segurança: Se os funcionários não forem treinados adequadamente em práticas de segurança, podem inadvertidamente expor informações confidenciais. Justificativa: O risco de ataque cibernético é real, especialmente para empresas que lidam com dados sensíveis. O vazamento de informações pode prejudicar a reputação da empresa e resultar em perdas financeiras. Acesso não autorizado pode levar à exploração indevida de dados. O treinamento em segurança é essencial para mitigar esses riscos. Resumo: Os fatores de risco e os cenários de ataque devem ser cuidadosamente gerenciados para proteger informações confidenciais e garantir a segurança da empresa. Prática: Configurando um Firewall de Rede com iptables no Linux Passo 1: Acesso ao Sistema Acessar um sistema Linux onde você tenha permissões administrativas (root). Passo 2: Instalação do iptables Em muitas distribuições Linux, o iptables já está instalado por padrão. Caso não esteja, você pode instalá-lo utilizando o gerenciador de pacotes da sua distribuição. Passo 3: Configuração das Regras do Firewall Serão configuradas algumas regras básicas para o firewall. Iremos bloquear todas as conexões de entrada, permitir todas as conexões de saída e permitir conexões relacionadas ou estabelecidas. Abrimos um terminal e inserimos os seguintes comandos: Passo 4: Adicionando Regras Específicas Podemos adicionar regras específicas para permitir ou bloquear tráfego para determinadas portas, protocolos ou endereços IP. Por exemplo, se quisermos permitir conexões SSH na porta 22, podemos usar o seguinte comando: Passo 5: Salvando as Regras Após configurarmos as regras do firewall, devemos salvá-las para garantir que elas sejam aplicadas sempre que o sistema for reiniciado. Podemos fazer isso usando o utilitário iptables-save. No entanto, dependendo da distribuição Linux sendo usada, o método para salvar as regras pode variar. Passo 6: Verificação das Regras do Firewall Para verificar se as regras foram aplicadas corretamente, podemos listar as regras iptables atuais utilizando o comando iptables -L. Deve-se certificar de que as regras configuradas estão presentes na lista. Passo 7: Testando o Firewall Após configurarmos o Firewall, é importante testá-lo para garantir que esteja funcionando conforme o esperado. Podemos tentar acessar seu sistema a partir de outro computador ou usar ferramentas de teste de penetração para verificar se o Firewall está bloqueando o tráfego indesejado. Conclusão Configurar um Firewall de rede é uma parte fundamental da segurança cibernética em qualquer sistema. O iptables é uma ferramenta poderosa e flexível para configurar Firewalls no Linux, permitindo que você defina regras específicas para controlar o tráfego de rede. Devemos nos certificar de revisar regularmente as regras de Firewall, para garantirmos que estejam alinhadas com as políticas de segurança de nossa organização.