diff --git a/Deliverables/Phase1/Use Case 7/US7ThreatTree.svg b/Deliverables/Phase1/Use Case 7/US7ThreatTree.svg new file mode 100644 index 00000000..5eefe775 --- /dev/null +++ b/Deliverables/Phase1/Use Case 7/US7ThreatTree.svg @@ -0,0 +1,4 @@ + + + +
Atacante pode tirar proveito de entradas de dados que interagem com o servidor
Atacante pode tirar proveito de e...
Injetar código SQL nos campos de entrada de dados, aproveitando-se de falhas de validação ou sanitização
Injetar código SQL nos campos de...
Inserir scripts maliciosos, comprometendo a segurança do sistema ou roubando informações confidenciais dos utilizadores
Inserir scripts maliciosos, compr...
Sobrecarregar o sistema com uma grande quantidade de pedidos maliciosos de criação de conta, tornando-o lento ou indisponível
Sobrecarregar o sistema com uma g...
Implementar mecanismos de controlo de tráfego para limitar o número de pedidos que um único utilizador pode fazer num determinado período de tempo
Implementar mecanismos de control...
Implementar validação dos dados de entrada no cliente e no servidor
Implementar validação dos dados d...
Aplicar filtragem de entrada para remover caracteres especiais e evitar a execução de scripts maliciosos
Aplicar filtragem de entrada para...
Intercetar o pedido de criação de conta de forma a guardar os credenciais do novo utilizador
Intercetar o pedido de criação de...
Utilizar protocolo SSL de forma a autenticar o utilizador com o servidor e encriptar os dados constituintes do pedido
Utilizar protocolo SSL de forma a...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/Deliverables/Phase1/Use Case 7/Use Case 7 - Threat Modeling.md b/Deliverables/Phase1/Use Case 7/Use Case 7 - Threat Modeling.md new file mode 100644 index 00000000..675a9962 --- /dev/null +++ b/Deliverables/Phase1/Use Case 7/Use Case 7 - Threat Modeling.md @@ -0,0 +1,66 @@ +# Threat Modeling para "Criar uma conta com os meus credenciais" + +## Descrição do Caso de Uso + +``` +As a User +I want to be able to create an account with my credentials +So that I can use the application +``` + +## Determinar Ameaças + +### Lista de Ameaças STRIDE + +| Tipo | Descrição | Controlo de Segurança | +|------------------------|---------------------------------------------------------------------------------------------------------------------------|-----------------------| +| Spoofing | Ação de ameaça destinada a aceder e usar credenciais de outro utilizador, como nome de utilizador e palavra-passe. | Autenticação | +| Tampering | Ação de ameaça com a intenção de alterar ou modificar maliciosamente dados persistentes. | Integridade | +| Repudiation | Ação de ameaça destinada a realizar operações proibidas num sistema que não possui a capacidade de rastrear as operações. | Não Repúdio | +| Information Disclosure | Ação de ameaça com a intenção de ler um ficheiro ao qual não foi concedido acesso, ou ler dados em trânsito. | Confidencialidade | +| Denial of Service | Ação de ameaça que tenta negar acesso a utilizadores válidos. | Disponibilidade | +| Elevation of Privilege | Ação de ameaça com a intenção de obter acesso privilegiado a recursos. | Autorização | + +## Análise de Ameaças + +### Compreensão das Ameaças + +- **(Denial Of Service):** Sobrecarregar o sistema com uma grande quantidade de pedidos de criação de conta ao servidor, +tornando-o lento ou indisponível. +- **(Tampering):** Injetar código SQL nos campos de entrada de dados, aproveitando-se de falhas de validação ou sanitização. +- **(Spoofing/Tampering):** Inserir scripts maliciosos, comprometendo a segurança do sistema ou roubando informações +confidenciais dos utilizadores. +- **(Spoofing/Information Disclosure):** Interceção do pedido de forma a conseguir ver os credenciais do utilizador que está a +criar a conta. + +### Casos de Uso e Abuso + +#### Casos de Uso: + +- **Criar uma conta com credenciais:** O utilizador utiliza três campos de entrada de dados (E-mail, Password e Repetir +Password) para criar uma conta com os credenciais introduzidos. + +#### Casos de Abuso: + +- **Injeção de Código Malicioso:** Um atacante pode tentar injetar código malicioso nos campos de entrada, explorando +vulnerabilidades de XSS, para comprometer a segurança do sistema ou obter acesso não autorizado a informações sensíveis. +- **Ataques de Sobrecarga:** Um atacante pode tentar sobrecarregar o sistema enviando uma grande quantidade de pedidos +de criação de conta (POST) de forma maliciosa, causando uma negação de serviço/aumento do tempo de resposta temporária +para os utilizadores legítimos. +- **Interceção de pedidos:** Um atacante pode intercetar pedidos de criação de conta e guardar os credenciais do utilizador, +podendo aceder a informação sensível. + +## Contramedidas e Mitigação + +| Tipo de Ameaça | Técnicas de Mitigação | Critério de ameaça | +|---------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------| +| Sobrecarga do sistema com pedidos maliciosas | 1. Implementar rate limiting ou throttling para limitar o número de pedidos por utilizador. | Totalmente Mitigada | +| | 2. Utilizar serviços de proteção contra ataques DDoS para detectar e mitigar ataques em larga escala. | Totalmente Mitigada | +| Injeção de código SQL nas barras de entrada de dados | 1. Implementar validação e sanitização rigorosas dos dados de entrada no cliente e no servidor para garantir que apenas caracteres válidos são aceites. | Totalmente Mitigada | +| Inserção de scripts maliciosos na barra de pesquisa | 1. Aplicar filtragem de entrada para remover caracteres especiais e evitar a execução de scripts maliciosos. | Totalmente Mitigada | +| | 2. Implementar Content Security Policy (CSP) no lado do servidor para restringir o tipo de conteúdo executável em uma página da web. | Totalmente Mitigada | +| Interceção do pedido de forma a guardar os credenciais do novo utilizador | 1. Utilizar SSL para autenticação com o servidor e a encriptação dos dados que são passados nos pedidos. | Totalmente Mitigada | + +## Threat Tree + +![US 7 - Threat Tree.svg](US7ThreatTree.svg) \ No newline at end of file diff --git a/Deliverables/Phase1/Use Case 9/US9ThreatTree.svg b/Deliverables/Phase1/Use Case 9/US9ThreatTree.svg new file mode 100644 index 00000000..5ae17d8b --- /dev/null +++ b/Deliverables/Phase1/Use Case 9/US9ThreatTree.svg @@ -0,0 +1,4 @@ + + + +
Atacante pode tirar proveito de entrada de dados e o envio automático de um e-mail para o utilizador que fez o pedido
Atacante pode tirar proveito de e...
Injetar código SQL no campo do e-mail para recuperação de palavra-passe, aproveitando-se de falhas de validação ou sanitização
Injetar código SQL no campo do e-...
Inserir scripts maliciosos, comprometendo a segurança do sistema ou roubando informações confidenciais dos utilizadores
Inserir scripts maliciosos, compr...
Sobrecarregar o sistema com uma grande quantidade de pedidos maliciosos de recuperação de palavra-passe, tornando-o lento ou indisponível
Sobrecarregar o sistema com uma g...
Implementar mecanismos de controlo de tráfego para limitar o número de pedidos que um único utilizador pode fazer num determinado período de tempo
Implementar mecanismos de control...
Implementar validação dos dados de entrada no cliente e no servidor
Implementar validação dos dados d...
Aplicar filtragem de entrada para remover caracteres especiais e evitar a execução de scripts maliciosos
Aplicar filtragem de entrada para...
Intercetar o pedido de recuperação de palavra~passe de forma a imitar o e-mail gerado e fazer um ataque de phishing
Intercetar o pedido de recuperaçã...
Utilizar protocolo SSL de forma a autenticar o utilizador com o servidor e encriptar os dados constituintes do pedido
Utilizar protocolo SSL de forma a...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/Deliverables/Phase1/Use Case 9/Use Case 9 - Threat Modeling.md b/Deliverables/Phase1/Use Case 9/Use Case 9 - Threat Modeling.md new file mode 100644 index 00000000..e155f652 --- /dev/null +++ b/Deliverables/Phase1/Use Case 9/Use Case 9 - Threat Modeling.md @@ -0,0 +1,65 @@ +# Threat Modeling para "Fazer pedido de recuperação de palavra-passe" + +## Descrição do Caso de Uso + +``` +As a User +I want to be able to request a password forgot request +So that I can recover my account +``` + +## Determinar Ameaças + +### Lista de Ameaças STRIDE + +| Tipo | Descrição | Controlo de Segurança | +|------------------------|---------------------------------------------------------------------------------------------------------------------------|-----------------------| +| Spoofing | Ação de ameaça destinada a aceder e usar credenciais de outro utilizador, como nome de utilizador e palavra-passe. | Autenticação | +| Tampering | Ação de ameaça com a intenção de alterar ou modificar maliciosamente dados persistentes. | Integridade | +| Repudiation | Ação de ameaça destinada a realizar operações proibidas num sistema que não possui a capacidade de rastrear as operações. | Não Repúdio | +| Information Disclosure | Ação de ameaça com a intenção de ler um ficheiro ao qual não foi concedido acesso, ou ler dados em trânsito. | Confidencialidade | +| Denial of Service | Ação de ameaça que tenta negar acesso a utilizadores válidos. | Disponibilidade | +| Elevation of Privilege | Ação de ameaça com a intenção de obter acesso privilegiado a recursos. | Autorização | + +## Análise de Ameaças + +### Compreensão das Ameaças + +- **(Denial Of Service):** Sobrecarregar o sistema com uma grande quantidade de pedidos ao servidor, tornando-o lento ou +indisponível. +- **(Information Disclosure/Tampering):** Pode ser intercetado de forma a ter conhecimento do e-mail do utilizador e +tentar replicar o e-mail de recuperação de palavra-passe para ataques de phishing por exemplo. +- **(Tampering):** Injetar código SQL no campo de e-mail, aproveitando-se de falhas de validação ou sanitização. +- **(Spoofing/Tampering):** Inserir scripts maliciosos, comprometendo a segurança do sistema ou roubando informações +confidenciais dos utilizadores. + +### Casos de Uso e Abuso + +#### Casos de Uso: + +- **Fazer pedido de recuperação de palavra-passe:** O utilizador introduz o seu e-mail para fazer pedido de recuperação +de palavra-passe. + +#### Casos de Abuso: + +- **Ataques de Sobrecarga:** Um atacante pode tentar sobrecarregar o sistema enviando uma grande quantidade de pedidos +de recuperação de palavra-passe de forma maliciosa, causando uma negação de serviço/aumento do tempo de resposta temporária +para os utilizadores legítimos. +- **Injeção de Código Malicioso:** Um atacante pode tentar injetar código malicioso nos campos de entrada, explorando +vulnerabilidades de XSS, para comprometer a segurança do sistema ou obter acesso não autorizado a informações sensíveis. +- **Interceção de pedidos:** Um atacante pode intercetar pedidos de recuperação de palavra-passe e enviar um e-mail que +possa ser confundido com o de recuperação de palavra-passe para um ataque de phishing. + +## Contramedidas e Mitigação + +| Tipo de Ameaça | Técnicas de Mitigação | Critério de ameaça | +|-----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|---------------------| +| Sobrecarga do sistema com solicitações maliciosas | 1. Implementar rate limiting ou throttling para limitar o número de solicitações por utilizador. | Totalmente Mitigada | +| | 2. Utilizar serviços de proteção contra ataques DDoS para detectar e mitigar ataques em larga escala. | Totalmente Mitigada | +| Injeção de código SQL ou scripts no campo de e-mail | 1. Implementar validação e sanitização rigorosas dos dados de entrada no cliente e no servidor para garantir que apenas e-mails sejam aceites. | Totalmente Mitigada | +| | 2. Implementar Content Security Policy (CSP) no lado do servidor para restringir o tipo de conteúdo executável em uma página da web. | Totalmente Mitigada | +| Interceção do pedido de forma a imitar o e-mail de recuperação para ataques de phishing | 1. Utilizar SSL para autenticação com o servidor e a encriptação dos dados que são passados nos pedidos. | Totalmente Mitigada | + +## Threat Tree + +![US 9 - Threat Tree.svg](US9ThreatTree.svg) \ No newline at end of file