Get Started. It's Free
or sign up with your email address
Rocket clouds
SI by Mind Map: SI

1. Conceitos de Segurança no Desenvolvimento de Software

1.1. ISO/IEC 15.408

1.1.1. Common criteria for information Technology

1.1.2. TCSEC - 1980 - "Orange Book" - Avalição de Segurança

1.2. Oragen book

1.2.1. Divisão D - proteção mínina

1.2.2. Divisão C - Proteção arbitrária

1.2.3. Divisão B - Proteção obrigatória

1.2.4. Divisão A - Proteção verificada

1.2.5. Cons

1.2.5.1. Fixava atributos de segurança em níveis estátivos

1.2.6. Pros

1.2.6.1. Bastante utilizado e difundido

1.3. Common Criteria

1.3.1. É um framework

1.3.2. Security Target

1.3.2.1. indica aspectos de segurança que foram considerados importantes e porque eles têm importância determinada sistema, é o documento que define os objetivos de segurança para o TOE. Cada objetivo deve ser avaliado com base nas implementações do sistema.

1.3.3. Protect Profile

1.3.3.1. Especifica uma classe de sistemas, descreve um conjunto de requisitos de segurança para uma classe ampla de dispositivos de segurança

1.3.4. Target of Evaluation

1.3.4.1. Esse sistema deve ter funções de segurança que são o conjunto de rotinas responsáveis por garantir a política de segurança do TOE

1.3.5. Evaluation Assurance Level

1.3.5.1. EAL-1

1.3.5.2. EAL-2

1.3.5.3. EAL-3

1.3.5.4. EAL-4

1.3.5.5. Extramente Rígidos

1.3.5.5.1. EAL-5

1.3.5.5.2. EAL-6

1.3.5.5.3. EAL-7

2. Desenvolvimento Seguro

2.1. Segurança do ambiente de desenvolvimento

2.1.1. Restrições de entrada e saída

2.1.2. Máquina de build específica

2.1.3. Processo definido de liberação de versões

2.1.4. Controle de acesso físico

2.1.5. proteção lógica de servidores

2.1.6. Equipe de testes capacitada

2.2. Segurança da aplicação desenvolvida

2.2.1. Aplicar as boas práticas de programação

2.2.2. Verificação de erros

2.2.3. Utilizar funções intrinsecamente seguras. Tratar variáveis de entrada.

2.2.4. Verificar o tamanho de buffers e arrays

2.3. Segurança para o cliente

2.3.1. Garantir a segurança para o cliente significa oferecer não só uma aplicação segura, mas também possibilitar que o cliente também se assegure de que o sistema é seguro.

2.4. Garantia de segurança

2.4.1. Escopo

2.4.2. Profundidade

2.4.3. Rigor

2.5. Os níveis de Garantia

2.6. Requisitos de Segurança

2.6.1. EAL-1

2.6.1.1. Nesse nível, as ameaças à segurança ainda não são vistas como sérias, e a avaliação é feita com base na aplicação entregue ao consumidor. A avaliação toma como base testes independentes, feitos de acordo com a especificação, e o exame da documentação de ajuda fornecida.

2.6.2. EAL-2

2.6.2.1. O nível de garantia EAL-2 é aplicado quando se requer a cooperação do desenvolvedor para fornecer informações de projeto e resultados de testes, de acordo com as práticas comerciais padrão (best practices). O nível EAL-2 ainda não requer um aumento substancial com relação aos investimentos financeiro e de tempo.

2.6.3. EAL-3

2.6.3.1. O EAL-3 possibilita que uma equipe de desenvolvimento obtenha o máximo de garantia de segurança, ainda no estágio de projeto do sistema, sem no entanto alterar suas práticas habituais de desenvolvimento. Esse nível de segurança requer uma investigação completa a respeito da aplicação e de seu desenvolvimento, sem a necessidade de uma reengenharia.

2.6.4. EAL-4

2.6.4.1. nível de garantia de segurança EAL-4 permite que a equipe de desenvolvimento obtenha o máximo de segurança através da engenharia de segurança, baseada em boas práticas de desenvolvimento. Mas, apesar do rigor, não requerem conhecimento especialista substancial, habilidades e outros recursos. De qualquer forma, esse é o mais alto nível de garantia a ser aplicado de forma economicamente viável.

3. Testes funcionais de segurança

3.1. Cobertura dos testes

3.1.1. Consiste em estabelecer a completude dos testes realizados, ou seja, se os testes realizados são ou não suficientes para demonstrar que a aplicação funciona da maneira como foi especificada.

3.2. Profundidade dos testes

3.2.1. Testes profundos são capazes de comprovar que a aplicação funciona corretamente com relação às suas funções que foram fornecidas externamente e também que os mecanismos internos de segurança estão operando como projetado.

3.3. Testes funcionais de segurança

3.3.1. Os testes funcionais são executados pelos desenvolvedores da aplicação. Eles têm a finalidade de garantir com que as funcionalidades de segurança realmente exibam as propriedades necessárias para satisfazer os requisitos funcionais da aplicação. Com a aplicação desses testes, garante-se no mínimo a satisfação dos requisitos funcionais de segurança, uma vez que os comportamentos não esperados (que é um conjunto infinito de situações) podem apenas ser reduzidos.

3.4. Testes independentes

3.4.1. Entretanto, o principal objetivo aqui é conter o risco de avaliações incorretas feitas por parte da equipe de desenvolvimento. Naturalmente, em função do conhecimento estrutural a respeito do funcionamento da aplicação, é comum que os desenvolvedores de software estejam mais propensos a deixar passar falhas e vulnerabilidades na aplicação que estão desenvolvendo.

4. Aceitação de Software

5. Avaliação de Vulnerabilidades

5.1. Análise de ameaças

5.1.1. Nesse caso, o papel do avaliador envolve identificar, estimar a capacidade, monitorar e analisar os cenários de exploração dos recursos e canais.

5.2. Uso inapropriado

5.2.1. Minimizar a probabilidade de que a aplicação seja configurada ou instalada de forma insegura, sem que o administrador ou usuário sejam capazes de detectar o problema. Minimizar o risco de que erros operacionais (humanos ou não) sejam capazes de desativar, desabilitar ou provocar falhas em funcionalidades de segurança, capazes de levar o sistema a um estado de insegurança não detectável.

5.3. Análise de documentação de ajuda