0% acharam este documento útil (0 voto)
26 visualizações9 páginas

Dev Sec Ops

Enviado por

ngreskiv
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
26 visualizações9 páginas

Dev Sec Ops

Enviado por

ngreskiv
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 9

Curso de Bacharelado em Cibersegurança (Turma 8° U)

Prof.: Pedro Horchulhack


Aluno: Nicolas Greskiv, Nilson Junior
DevSecOps

Planejamento e análise de requisitos

Curitiba-Pr, 08 de setembro de 2024


1. Requisitos Funcionais

1. Autenticação de Usuários: O sistema deve permitir que os usuários se


autentiquem por meio de login e senha.

2. Recuperação de Senha: O sistema deve permitir a recuperação de


senha via e-mail.

3. Cadastro de Usuários: O sistema deve permitir o cadastro de novos


usuários.

4. Edição de Usuário: O sistema deve permitir a edição de informações


de perfil do usuário.

5. Exclusão de Usuário: O sistema deve permitir a exclusão de contas de


usuários, com uma confirmação de exclusão.

6. Gerenciamento de Perfis: O sistema deve permitir que os usuários


editem seus perfis, incluindo informações pessoais e de contato.

7. Exclusão de Perfis: O sistema deve permitir que os administradores


excluam perfis de usuários, caso necessário.

8. Cadastro de Perfil: O sistema deve permitir o cadastro de perfis


associados aos usuários.

9. Autorização por Nível de Acesso: O sistema deve permitir diferentes


níveis de acesso, como usuários comuns e administradores.

10. Listagem de Dados: O sistema deve listar registros de uma entidade


(por exemplo, produtos ou usuários) com paginação para facilitar a
navegação.

11. Criação de Registros: O sistema deve permitir a criação de novos


registros, como adicionar novos produtos ou entradas de dados.

12. Edição de Registros: O sistema deve permitir a edição de registros


existentes para atualizar informações.

13. Exclusão de Registros: O sistema deve permitir a exclusão de


registros, com confirmação antes da exclusão definitiva.

14. Sistema de Auditoria: O sistema deve registrar todas as atividades de


usuários, como login, alterações de dados e exclusão de registros, em
logs.
15. Visualização de Logs: O sistema deve permitir que administradores
visualizem logs de atividades para auditorias e verificações.

16. Segurança na Transmissão de Dados: Todos os dados sensíveis


devem ser transmitidos utilizando protocolos seguros, como HTTPS.

17. Validação de Formulários: Todos os formulários devem realizar


validações no lado cliente (ex.: campos obrigatórios) e no servidor (ex.:
verificação de dados).

18. Integração com Sistemas Externos: O sistema deve se integrar com


APIs de terceiros para funcionalidades como pagamento ou
autenticação via redes sociais.

19. Comentários em Postagens: Os usuários devem poder comentar em


postagens ou artigos disponibilizados na plataforma.

20. Sistema de Feedback: O sistema deve permitir a coleta de feedback


dos usuários sobre sua experiência no uso da aplicação.

2. Requisitos Não Funcionais

1. Escalabilidade: O sistema deve suportar o aumento de usuários e


dados sem comprometer o desempenho.

2. Desempenho: A aplicação deve carregar as páginas em menos de 2


segundos para usuários com conexão de internet de alta velocidade.

3. Compatibilidade de Navegador: Suporte para os principais


navegadores (Chrome, Firefox, Edge, Safari).

4. Responsividade: A interface deve ser otimizada para diferentes


resoluções de tela, incluindo dispositivos móveis e tablets.

5. Manutenibilidade: O código deve ser modular e bem documentado


para facilitar futuras manutenções.

6. Conformidade com LGPD: O sistema deve seguir as diretrizes da Lei


Geral de Proteção de Dados (LGPD) para coleta, armazenamento e
processamento de dados.

7. Monitoramento de Uso: O sistema deve incluir uma infraestrutura de


monitoramento para analisar o desempenho e detectar problemas em
tempo real.
3. Modelo de Adversário

1. Sequestro de Sessão:

o Descrição: Um atacante rouba ou se apodera do token de sessão


de um usuário para assumir a identidade deste usuário na
aplicação.

2. Phishing de Login:

o Descrição: Um atacante cria uma página de login falsa para


capturar credenciais de usuários ao enganá-los a inserir suas
informações de login.

3. Falsificação de IP:

o Descrição: Um atacante falsifica o endereço IP das requisições


para parecer que está se conectando a partir de uma fonte
confiável.

4. Injeção de SQL:

o Descrição: Um atacante injeta comandos SQL maliciosos nas


entradas de dados da aplicação para manipular o banco de
dados.

5. Manipulação de Dados no Lado do Cliente:

o Descrição: Um atacante altera os dados enviados pelo lado do


cliente para modificar o comportamento da aplicação ou
comprometer dados.

6. Falta de Logs Adequados:

o Descrição: A ausência de registros detalhados de atividades pode


permitir que ações maliciosas passem despercebidas e não
sejam auditadas.

7. Exposição de Dados Sensíveis:

o Descrição: Dados confidenciais podem ser expostos devido a


falhas na segurança ou configuração inadequada de acesso aos
dados.

8. Escalada de Privilégios:
o Descrição: Um atacante usa vulnerabilidades ou erros de
configuração para obter privilégios elevados dentro da aplicação,
além daqueles que lhe foram inicialmente concedidos.

4. Contexto da Aplicação

O projeto é uma aplicação web que requer funcionalidades robustas para


autenticação, gerenciamento de dados e interação social. O sistema é
projetado para ser seguro, escalável e eficiente, com suporte a múltiplos
navegadores e dispositivos.

5. Arquitetura Utilizada

A arquitetura escolhida para este projeto é a Arquitetura MVC (Model-View-


Controller). Esta arquitetura divide a aplicação em três camadas principais:

1. Model: Representa a camada de dados e lógica de negócios,


responsável pela manipulação e persistência dos dados.

2. View: Responsável pela apresentação dos dados ao usuário e pela


renderização da interface da aplicação.

3. Controller: Atua como intermediário entre o Model e a View,


processando solicitações do usuário e atualizando a View com base nas
alterações no Model.

6. Tecnologias e Bibliotecas

Backend (Java)

• Spring Framework:

o Spring Boot: Simplifica a configuração e o desenvolvimento da


aplicação.

o Spring MVC: Implementa o padrão MVC para separar a lógica de


negócios da apresentação.

o Spring Data JPA: Facilita a persistência de dados com uma


abordagem orientada a objetos.

o Spring Security: Gerencia autenticação e autorização de


usuários.

• Banco de Dados:

o MySQL ou PostgreSQL: Sistemas de gerenciamento de banco de


dados relacionais para a persistência de dados.
o Hibernate: Alternativa para ORM (Mapeamento Objeto-
Relacional), se não usar o Spring Data JPA.

• Outras Bibliotecas:

o JUnit e Mockito: Para testes unitários e de integração.

o Log4j ou SLF4J: Para logging.

Frontend

• HTML/CSS:

o HTML5: Estrutura a página web.

o CSS3: Define o estilo e layout da aplicação.

• Bootstrap:

o Bootstrap: Framework para criar uma interface responsiva e


moderna, com componentes e estilos pré-construídos.

• JavaScript:

o jQuery: Manipulação de DOM e chamadas AJAX (se necessário).

o Axios ou Fetch API: Para chamadas HTTP assíncronas.

Integração

• RESTful APIs:

o Spring Boot: Criação de APIs RESTful que podem ser


consumidas pelo frontend.

• Ferramentas de Build e Gerenciamento:

o Maven ou Gradle: Para gerenciamento de dependências e


construção do projeto.

o Git: Controle de versão do código.

• Ambiente de Desenvolvimento e Implantação:

o IDE: IntelliJ IDEA ou Eclipse para desenvolvimento em Java.

o Docker: Containerização da aplicação, facilitando


desenvolvimento e deployment.

o Jenkins ou GitHub Actions: Para integração contínua e pipelines


de CI/CD.
7. Estrutura de Diretórios

A estrutura recomendada para o projeto é a seguinte:

• Camada de Apresentação: HTML, CSS, Bootstrap

• Camada de Controle: Spring MVC Controllers

• Camada de Serviço: Serviços Spring para lógica de negócios

• Camada de Persistência: Repositórios Spring Data JPA/Hibernate

8. Criar repositório no GitHub para o projeto

o Criar quadro Kanban no GitHub para delegar funções aos


integrantes

https://github.com/users/NicolasGreskivasd/projects/2/views/1

9. Banco de Dados

CREATE TABLE usuarios (

id_usuario INT AUTO_INCREMENT PRIMARY KEY,

nome VARCHAR(255) NOT NULL,

email VARCHAR(255) NOT NULL UNIQUE,

senha VARCHAR(255) NOT NULL,

perfil VARCHAR(50) NOT NULL, -- Ex: 'usuario', 'administrador'

data_criacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP,


data_modificacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP
);

CREATE TABLE perfis (

id_perfil INT AUTO_INCREMENT PRIMARY KEY,

id_usuario INT,

descricao TEXT,

FOREIGN KEY (id_usuario) REFERENCES usuarios(id_usuario)

);

CREATE TABLE logs (

id_log INT AUTO_INCREMENT PRIMARY KEY,

id_usuario INT,

acao VARCHAR(255),
data_acao TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

ip_usuario VARCHAR(45),
FOREIGN KEY (id_usuario) REFERENCES usuarios(id_usuario)

);

CREATE TABLE comentarios (


id_comentario INT AUTO_INCREMENT PRIMARY KEY,

id_usuario INT,

id_postagem INT,

comentario TEXT,
data_criacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (id_usuario) REFERENCES usuarios(id_usuario)

);

CREATE TABLE feedback (

id_feedback INT AUTO_INCREMENT PRIMARY KEY,

id_usuario INT,

comentario TEXT,
data_feedback TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

FOREIGN KEY (id_usuario) REFERENCES usuarios(id_usuario)

);

Você também pode gostar