Segurança de Redes e Sistemas de Computadores

Objetivos

Conhecimentos

  • Frameworks de segurança e conceitos-chave: modelo de adversário; vetores de ataque; superfície de ataques; exploração de vulnerabilidades;
  • Contramedidas de segurança em sistemas e redes de computadores: propriedades de segurança, mecanismos de segurança, serviços de segurança e meios de defesa de perímetros em redes e sistemas de computadores
  • Normalização de serviços de segurança e modelos de segurança para sistemas distribuídos, redes de computadores e sistemas suportados na Internet
  • Métodos, ferramentas  e algoritmos criptográficos
  • Princípios de concepção de serviços e protocolos de segurança para redes, sistemas de computadores e sistemas distribuídos
  • Protocolos e serviços de segurança na pilha TCP/IP e segurança de aplicações na Internet 
  • Proteção contra intrusões: meios de prevenção, deteção e recuperação de intrusões; soluções de tolerância a intrusões.
  • Segurança ao nível do sistema de operação
  • Segurança em soluções de virtualização, contenção e isolamento de componentes críticos 
  • Bases de computação confiável e ambientes seguros para execução isolada e confiável de software
  • Princípios e fundamentos da computação confidencial

Aquisição de aptidões e competências práticas

  • Saber usar meios de avaliação de vulnerabilidades e desenvolver prática de uso de ferramentas em casos concretos
  • Adquirir competências para desenho, implementação e ensaio experimental de protocolos e serviços de segurança para redes de computadores e para canais de comunicação em sistemas distribuídos.
  • Saber como implementar de propriedades de segurança para sistemas distribuídos e aplicações Internet
  • Adquirir prática de desenvolvimento de protocolos de comunicação e componentes de software com utilização de métodos e algoritmos criptográficos
  • Saber inspecionar, auditar e analisar a conformidade, operação e adequação de protocolos de segurança normalizados na pilha TCP/IP e de serviços remotos acessíveis na Internet
  • Adquirir competência para gestão e utilização prática dos mecanismos de proteção de recursos ao nível do sistema de operação e seus meios de suporte de autenticação, integridade e controlo de acessos
  • Adquirir prática de desenho e implementação de soluções de segurança para proteção de bases de dados e de sistemas de armazenamento seguro de dados na nuvem, com garantias de preservação de privacidade
  • Saber como usar meios para proteção de componentes de software com recurso a tecnologias de isolamento ao nível do hardware e suporte de ambientes de execução confiável

Caracterização geral

Código

11619

Créditos

6.0

Professor responsável

Henrique João Lopes Domingos

Horas

Semanais - 4

Totais - 52

Idioma de ensino

Português

Pré-requisitos

Os alunos devem possuir conhecimentos anteriores sobre:

  • Fundamentos de redes de computadores e conhecimento anterior spbre protocolos da pilha TCP/IP e programação de aplicações suportadas em redes TCP/IP-
  • Fundamentos, paradigmas e prática de programação em Sistemas Distribuídos, com domínio e autonomia de ambientes de programação, programação distribuída e debugging em Java 
  • Fundamentos de Sistemas Operativos

É importante que os alunos possuam autonomia e conhecimento prático no uso de ferramentas de desenvolvimento  de software (ex., Eclipse IDE ou outro e desenvolvimentos de projetos Java e Maven), prática de utilização de sistemas de operação (ex., Linux ou Mac OS X ou Windows), conhecimentos, instalação e utilização de ambientes de virtualização envolvendo o uso de máquinas virtuais (ex., VBox ou VMWare) ou ambientes de  isolamento de aplicações e componentes (ex., Docker, Docker-Composing). A prática de utilização e programação em ambiente Shell/Linux ou OS X é também recomendada. Os alunos devem possuir experiência anterior de programação e autonomia no uso de linguagens de programação (ex., Java, C# ou C++). O desenvolvimento de trabalhos práticos irá requerer prática de programação para redes TCP/IP e Internet e aplicações distribuídas, como por exemplo: programação com Sockets TCP/IP, RMI, programação REST e desenvolvimento de serviços WEB.

Bibliografia

  • W. Stallings, L. Brown, Computer Security: Principles and Practice, Pearson, 4/E e.b. (2021)
  • W. Stallings, Network Security Essentials - Applications and Services, Pearson, 6/E, e.b. (2021)

Comp.:

  • W. Stallings,Cryptography and Network Security - Principles and Practice, Pearson 8/E (2020)
  • P. C. van Oorschot, Computer Security and the Internet
  • D. Gollmann,Computer Security, 3rd Ed, Wiley (2011)
  • B. Schneier, Applied Cryptography, Wiley (1996)
  • A. Zúquete, Segurança em Redes Informáticas, 5/E, FCA (2018)
  • M. Correia, P. Sousa, Segurança no Softwarem , 2/E, FCA (2017)

Método de ensino

O funcionamento da unidade curricular envolve aulas teóricas, onde são transmitidos e discutidos os conceitos fundamentais e são discutidos os tópicos do programa e aulas práticas, desenvolvidas em ambiente laboratorial e onde os alunos realizam trabalhos práticos que incluem os trabalhos de avaliação obrigatória.

Nas aulas práticas são feitas apresentações de técnicas de segurança, podendo envolver demonstrações dessas técnicas (de acordo com o programa das aulas práticas) e realizados exercícios básicos relacionados com essas técnicas. Algumas aulas práticas serão dedicadas aos trabalhos práticos de avaliação a realizar pelos alunos, incluindo o esclarecimento de dúvidas, apresentação ou demonstração de resultados bem como discussão de possíveis soluções.

Componentes de avaliação

  • 2 testes de frequência cobrindo a matéria do programa: T1, T2 
    • Duração de referência (2h30): 
      • 1h-1h30m: questões sem consulta
      • 1h-1h30m: questões com consulta (informação individual impressa), poendo incluir questões práticas decorrentes de exercícios em laboratório ou relativas à realização de trabalhos práticos de avaliação
  • 2 trabalhos práticos: TP1,  TP2 desenvolvidos como mini projetos
  • Trabalhos podem ser desenvolvidos individualmente ou em grupo (máximo 2 alunos)
    • Para a avaliação ser feita em grupo, será necessária presença regular dos membros do grupo em pelo menos 65% das aulas 
    • A avaliação dos trabalhos (por ter uma componenet individual) será individualizada
  • A submissão de trabalhos para avaliação desenvolvimento, prova de implementação, autoavaliação e reporte

Regras de aprovação1

Obs) As regras abaixo são iniciais e de referência. Estas regras podem ser alteradas pontualmente em função de orientações ou alterações decorrentes da situação pandémica (Covid-19)

- Obtenção de frequência (AF)

  • Avaliação de frequência AF = 40% (TP1) + 60% (TP2)
  • Obtenção de frequência (AF): AF maior ou igual a 9,5/20 e média das frequências maior ou igual a 9,5/20

- Aprovação com frequência (AC)

  • Obtenção de Frequência
  • Avaliação Contínua AC  = 35% AF +  30% (T1) + 35% (T2)
  • Aprovação com avaliação contínua (AC): AC maior ou igual a 9.5/20

- Aprovação com exame de recurso (ER)

  • Obtenção de frequência
  • Avaliação com Exame de Recurso AER = 40% AF + 60% ER
  • Condições de Aprovação com Exame de Recurso (AER): AER maior ou igual a 9,5/20

1) Alunos com frequência e acesso ao exame obtidos em 2018/2019, poderão usar a avaliação de frequência já obtida para efeitos de acesso ao exame.

Método de avaliação

Métodos e regras de avaliação

  • 2 testes presenciais de frequência cobrindo a matéria do programa: T1, T2 
    • Testes de frequência com realização presencial, cobrindo o estudo da bibliografia e materiais das aulas teóricas e práticas
    • Os testes possuem duas partes:
      • Parte sem consulta 
      • Parte com consulta de elementos individuais de cada aluno
    • Realização da parte sem consulta: não é permitido usar dispositivos eletrónicos, computadores, telemóveis/smart phones,  tablets ou qualquer equipamento com capacidade de computação ou comunicação)
  • 2 trabalhos práticos: TP1,  TP2 (mini projetos)
    • Trabalhos podem ser desenvolvidos individualmente ou em grupo (máximo 2 alunos) 
    • Submissão nas datas requeridas envolve o preenchimento com um formulário de questões com anexos que podem cobrir código desenvolvido/ e relatório em formato pré-definido bem como prova em arquivo de código (em projeto GitHub)
    • A avaliação prática dos trabalhos pode ser complementada por testes práticos sempre que necessário (inicialmente previstos para realização presencial) que pode abranger até 20% da avaliação dos trabalhos e que podem ser realizadas nas datas de realização dos testes de frequência ou outras.
    • A avaliação final dos trabalhos envolve ainda Informação de participação nas aulas (exercícios, atividades práticas) que pode ser usada como fator complementar de ajustamento da avaliação prática, individualizada.

 Regras de aprovação

- Obtenção de frequência (AF)

  • Nota de frequência AF = 40% (TP1) + 60% (TP2)
  • Condição de frequência (AF): AF maior ou igual a 9,5/20 e TP2 >= 9,5/20
  • Alunos com frequência anterior obtida no ano letivo de 2020/2021 poderão manter a frequência.

Aprovação com frequência (AC)

  • Obtenção de condição de frequência (AF)
  • Avaliação Contínua AC  = 40% AF +  25% T1 + 35% T2 (final weights will be def
  • Aprovação com frequência: AC maior ou igual a 9.5/20 e média dos testes superior a 9,5/20 

- Aprovação com exame de recurso (ER)

  • Obtenção de frequência
  • Avaliação com Exame de Recurso AER = 40% AF + 60% ER
  • O exame de recurso cobre toda a matéria, tendo uma organização semelhante à dos testes de frequência
  • Condições de Aprovação com Exame de Recurso (AER): AER maior ou igual a 9,5/20

Nota: todos os componentes de avaliação terão avaliação na escala de 0 a 20 valores (uma casa decimal). No cálculo da not final usam-se as regras corretas de arredondamento para obter a nota num valor inteiro.

Conteúdo

Tópicos do programa (resumo)

  • Introdução: conceitos, terminologia, modelos e normalização de propriedades, mecanismos e serviços de segurança para sistemas e redes de computadores e sistemas distribuídos
  • Criptografia aplicada: fundamentos, ferramentas, algoritmos e métodos; normalização, correção e segurança na concepção e utilização de construções criptográficas; distribuição e estabelecimeto seguro de chaves criptográficas e associações de segurança para métodos criptográficos; métodos criptográficos emergentes para segurança e preservação de privacidade
  • Autenticação: métodos e protocolos para sistemas de autenticação; autenticação de utilizadores; Gestão segura de identidades digitais; distribuição autenticada de chaves criptográficas e associações de segurança; protocolos de autenticação e métodos de atestação de software. 
  • Controlo de acesso: métodos, modelos, políticas e meios de controlo de acesso.
  • Proteção de comunicações em redes TCP/IP e segurança na Internet: protocolos de segurança nos diferentes níveis da pilha TCP/IP. Critérios e soluções para seguraça fim a fim.
  • Segurança de sistemas: segurança do sistema operativo; segurança da virtualização; mecanismos e sistemas de defesa de perímetro para redes e sistemas distribuídos; deteção, prevenção e recuperação de intrusões; critérios e meios oara tolerância a intrusões; segurança e isolamento de computações com ambientes de execução confiável; suportes para computação confidencial

 


Programa em detalhe

  • Introdução
    • Conceitos e terminologia
    • Quadros de referência para normalização de propriedades, mecanismos e serviços de segurança para sistemas e redes de computadores
    • Vulnerabiliades, níveis de ataque, modelos de segurança e meios de proteção em máquinas de sistemas distribuídos
    • Definição de modelos de ameaça, árvore de ataque, superfícies de ataque e tipologias de contramedidas
    • Modelo de segruança para sitemas na internet e sistemas distribuídos
  • Criptografia aplicada e ferramentas criptográficas
    • Ferramentas, métodos, algoritmos e técnicas: OTPs, Randomness, PRGs and TRGs
    • Fundamentos, critérios, propriedades e modelos de análise de segruança e robustez de métodos criptopgráficos
      • Critérios para segurança computacional
      • Segurança em oráculo aleatório
      • Modelos e métodos de criptanálise
      • Segurança e maleabilidade de algoritmos criptográficos
    • Criptografia simétrica
      • Métodos e algoritmos de cifras em cadeia e análise de algoritmos (RC4, VEST)
      • Métodos e algoritmos de cifras de blocos 
      • Segurança de modos de operação de cifras de blocos
      • Análise de algoritmos (AES, RC6, Twofish)
      • Modos de operação de cifras de blocos
        • Estudo dos modos ECB, CBC, OFB, CFB, CTR 
          • Análise comparativa: segurança, eficiência e tolerância a falhas 
        • Modos AEAD, CCM e GCM
        • Padding seguro e normalizado para cifras de blocos
      • Construções seguras para cifras em cadeia basadas em cifras de blocos
    • Criptografia assimétrica
      • Construções normalizadas para cifras assimétricas
      • Type of algorithms 
      • Algoritmos: RSA, ElGammal, ECC 
      • Padding seguro em RSA: padrões PKCS e OAEP
      • Security of elliptic curves
    • Métodos de síntese
      • Security properties and criteria
      • SHA 2 vs SHA 3 
      • Outros algoritmos
      • Construções compostas híbridas e suas vantagens
    • Construções para métodos de síntese com autenticação: MACs, HMACs e CMACs
    • Assinaturas digitais e assinaturas digitais classificadas
      • Construções criptográficas e sua normalização
      • Assinaturas RSA e normalização das sínteses e padding (PKCS, PSS)
      • DSA
      • Assinaturas com curvas elípticas: padrão ECDSA
    • Estabelecimento de chaves criptográficas e estabelecimento de associações de segurança
      • Autenticação com distribuição de chaves e associações de segurança
        • Use de métodos de criptografia simétrica e assimétrica
        • Sistema Kerberos e variantes PKINIT Kerberos
        • Diffie Hellman e Diffie Hellman em grupo
        • Padrão ECDH
    • PKI / Certificação e gestão de chaves públicas (PKIs e framework PKIX)
    • Autenticação com certificação X509
      • Autenticação e distribuição de chaves com PKIs e certificação X509
    • Métodos e ténicas complementares:
      • Cifras encadeadas com e sem diversidade; cifras em múltiplas camadas
      • Métodos de partilha de segredos
      • Provas de conhecimento nulo
      • Criptografia de limiar
      • Outros métodos emergentes pra segurança e preservação de privacidade
  • Autenticação 
    • Autenticação de utilizadores
      • Diferentes fatores de autenticação
      • Autenticação com múltiplos fatores
      • Dispositivos e soluções para autenticação de utilizadores
    • Autenticação OAuth
    • Gestão da autenticação e federação de identidades digitais: FIM
    • Protocolos de autenticação: PAP, RADIUS e CHAP
  • Controlo de acesso
    • Modelos, mecanismos e meios de controlo de acesso
    • Modelos DAC, MAC, RBAC e ABAC
    • Utilização do modelo MAC e DBAC em sistemas operativos
    • Utilização do modelo RBAC e ABAC em aplicações
    • Controlo de acesso em sistemas e serviços WEB
  • Protocolos de segurança e proteção de comunicações
    • Segurança na Internet e proteção de comunicações extremo-a-extremo
    • Protocolos, normas e serviços de segurança na Internet e pilha TCP/IP
      • LAN and WLAN Security standards
      • IEEE 802.1x, IEEE 802.11i
      • Authentication EAP
      • IPSec, TLS, HTTPS e QUIC/HTTPS
      • VPNs e comunicação com túneis de segurança 
      • DNSSEC
      • Segurança ao nível aplicação
        • Protocolos de segurança para correio eletrónico 
        • Protocolo SSH
        • Correio Eletrónico seguro: protocolos e padrões relevantes
          • POP3S, IMAP, STARTTLS, DANE e DMARC
          • Encaminhamento seguro EMAIL: interdependências SNMP, RPKI e DNSSEC
          • Framework SPF e segurança anti-spam
    • Auditoria e adequabilidade de práticas de segurança em serviços na Internet
    • Proteção contra negação de serviço
      • Rapto e indisponibilização de sessões TCP
      • DoS and DDoS attacks
  • Segurança de sistemas
    • Segurança ao nível do sistema de operação
    • Segurança da virtualização : tipologias e isolamento de componentes
    • Técnicas, meios e sistemas de controlo e defesa de perímetro
    • Sistemas de prevenção, deteção e recuperação de intrusões
      • Métodos e modelos de detecção de intrusões
      • Detecção de intrusões: soluções HIDS, NIDS, WIDS e HDIDS
      • Estudo das soluções OSSEC, SNORT, SURICATA
      • Plataformas SIEM
    • Métodos, técnicas e mecanismos pra sistemas tolerantes a intrusões
    • Mecanismos de isolamento para computação confiável e computação confidencial
    • Isolamento e execução confiável assistida pelo Hardware 

Cursos

Cursos onde a unidade curricular é leccionada: