• Nenhum resultado encontrado

Guia de Preparação. EXIN Secure Programming Fundamentos

N/A
N/A
Protected

Academic year: 2021

Share "Guia de Preparação. EXIN Secure Programming Fundamentos"

Copied!
16
0
0

Texto

(1)

Guia de Preparação

EXIN Secure

Programming

Fundamentos

(2)

Copyright © 2015 EXIN

Todos os direitos reservados. Nenhuma parte desta publicação pode ser publicada, reproduzida, copiada ou armazenada num sistema de processamento de dados ou transmitida em qualquer forma por impressão, impressão de fotos, microfilme, ou quaisquer outros meios sem permissão por escrito do EXIN.

(3)

Conteúdo

1. Visão Geral 4

2. Requisitos do exame 6 3. Lista de conceitos básicos 10

(4)

1. Visão Geral

Secure Programming Foundation (SPF) Resumo

Cibercrime, vazamento de dados e segurança de informações recebem mais atenção que nunca nos noticiários. Governos e empresas dedicam mais e mais recursos a essas áreas. No entanto, a maioria dessa atenção parece estar focada em medidas reativas (“Como pegar os criminosos cibernéticos?”) em vez de em medidas preventivas (“Como podemos tornar nossos sistemas seguros?”). Embora seja difícil medir, relatórios de pesquisa indicam que a construção da

segurança vale o investimento. A educação é fundamental no processo de construção de software. Se os programadores não entendem a segurança do software que estão construindo, qualquer investimento adicional no processo é inútil.

O exame Secure Programming Foundation (Fundação da Programação Segura) da EXIN testa o conhecimento do candidato sobre os princípios básicos da programação segura. Os temas deste módulo são Gerenciamento de Sessão e Autenticação; Manejo de Entrada de Usuário;

Autorização; Configuração, Manejo e Registro de Erros; Criptografia; e Engenharia Segura de Software.

Contexto

O exame Secure Programming Foundation faz parte da qualificação Secure Programming. O conteúdo está relacionado com o Framework Secure Software, que pode ser baixado em

www.securesoftwarefoundation.org. (Isso não é literatura de exame) Grupo alvo

Esse certificado se destina a:

- programadores e desenvolvedores de software interessados no desenvolvimento de aplicativos (de web) seguros;

- auditores que trabalharão com o Framework Secure Software. Pré-requisito(s)

Um treinamento Secure Programming Foundation e conhecimento de desenvolvimento de software é altamente recomendado.

Tipos de exame

Questões de múltipla escolha on-line ou em papel Tempo de estudo recomendado

60 horas, depende do conhecimento existente. Exercício(s) prático(s)

Não aplicável Duração do exame 60 minutos

(5)

Detalhes do exame

Número de perguntas: 40

Nota para aprovação: 65% (26 de 40) Livro aberto / consultas: não

Equipamentos eletrônicos permitidos: não Amostra de perguntas/Simulado

Faça o download de um simulado do exame no site www.exin.com.

Treinamento

Tamanho do grupo

O número máximo de participantes é 25.

(Isso não é válido para cursos de treinamento on-line.) Carga horária

A carga horária mínima para este treinamento é de 15 horas. Isso inclui exercícios em grupo, preparação para o teste e breves intervalos. Esse número de horas não inclui tarefas para casa, logística para preparação do exame e intervalos para almoço.

Provedores de Treinamentos

(6)

2. Requisitos do exame

Os requisitos do exame estão detalhados na especificação do exame. A tabela abaixo lista os tópicos dos módulos (requisitos do exame). O peso dos diferentes tópicos contidos no exame é expresso como uma porcentagem do total.

Requisitos do

Exame Especificação do exame Peso (%)

1. Introdução 10

1.1 Consciência de Segurança 1.2 Princípios Básicos 1.3 Segurança da Web

2. Gerenciamento de Sessão e Autenticação 15

2.1 Senhas

2.2 Gerenciamento de Sessão

2.3 Cross-Site Request Forgery (Falsificação de Solicitação Cruzada entre Sites – CSRF/XSRF) e Clickjacking

3. Manejo de Entrada de Usuário 22.5

3.1 Ataques de Injeção 3.2 Validação de Entrada 3.3 Estouros de Buffer

3.4 Cross-Site-Scripting (Scripts Cruzados entre Sites – XSS)

4. Autorização 7.5

4.1 Autorização

4.2 Envenenamento de Sessão e Condições de Corrida

5. Configuração, Manejo e Registro de Erros 15

5.1 Componentes de Terceiros, Configuração e Endurecimento 5.2 Vazamentos de Informação

5.3 Manejo e Registro de Erros 5.4 Recusa de Serviço

6. Criptografia 10

6.1 O Princípio de Kerckhoff, Manejo de Chaves e Aleatoriedade

6.2 Criptografia de Chave Pública 6.3 HTTPS

7. Engenharia de Software Seguro 20

7.1 Requisitos de Segurança 7.2 Design Seguro

7.3 Codificação Segura 7.4 Testes de Segurança

(7)

Especificações do teste

1. Introdução (10%)

1.1 Consciência de Segurança (2,5%) O candidato pode:

1.1.1 Reconhecer a tensão entre as exigências do mercado e a segurança. 1.2 Princípios Básicos (2,5%)

O candidato pode:

1.2.1 Explicar o jargão de segurança e STRIDE. 1.3 Segurança da Web (5%)

O candidato pode:

1.3.1 Descrever questões de segurança HTTP. 1.3.2 Explicar o modelo de segurança do navegador.

2. Gerenciamento de Sessão e Autenticação (15%)

2.1 Senhas (5%) O candidato pode:

2.1.1 Identificar problemas envolvidos no uso de senha. 2.1.2 Aplicar princípios de gerenciamento de senhas. 2.2 Gerenciamento de Sessão (7,5%)

O candidato pode:

2.2.1 Explicar como funciona o gerenciamento de sessão. 2.2.2 Reconhecer problemas em gerenciamento de sessão.

2.2.3 Reconhecer as melhores soluções para problemas em gerenciamento de sessão.

2.3 Cross-Site Request Forgery (Falsificação de Solicitação Cruzada entre Sites – CSRF/XSRF) e Clickjacking (2,5%)

O candidato pode:

2.3.1 Reconhecer problemas e soluções de CSRF e Clickjacking.

3. Manejo de Entrada de Usuário (22,5%)

3.1 Ataques de Injeção (7,5%) O candidato pode:

3.1.1 Reconhecer os problemas de ataques de injeção.

3.1.2 Explicar a diferença entre consultas diretas e parametrizadas. 3.1.3 Aplicar soluções para ataques de injeção SQL.

3.2 Validação de Entrada (7,5%) O candidato pode:

3.2.1 Explicar a diferença entre filtros de lista branca (whitelist) e lista negra (blacklist). 3.2.2 Aplicar validação de entrada.

3.2.3 Reconhecer quando aplicar normalização de entrada e codificação. 3.3 Estouros de Buffer (2,5%)

O candidato pode:

(8)

3.4 Cross-Site-Scripting (Scripts Cruzados entre Sites – XSS) (5%) O candidato pode:

3.4.1 Reconhecer a diferença entre ataques XSS refletidos e armazenados e as mitigações.

3.4.2 Aplicar soluções para ataques XSS.

4. Autorização (7,5%)

4.1 Autorização (5%) O candidato pode:

4.1.1 Reconhecer a diferença entre autorização horizontal e vertical. 4.1.2 Reconhecer a diferença entre referências diretas e indiretas. 4.2 Envenenamento de Sessão e Condições de Corrida (2,5%)

O candidato pode:

4.2.1 Reconhecer envenenamento de sessão e condições de corrida.

5. Configuração, Manejo e Registro de Erros (15%)

5.1 Componentes de Terceiros, Configuração e Endurecimento (5%) O candidato pode:

5.1.1 Justificar a necessidade de endurecimento. 5.1.2 Reconhecer métodos de endurecimento. 5.2 Vazamentos de Informação (2,5%)

O candidato pode:

5.2.1 Reconhecer diferentes vazamentos de informação. 5.3 Manejo e Registro de Erros (5%)

O candidato pode:

5.3.1 Explicar a importância do registro para a segurança. 5.3.2 Explicar o princípio de ‘Falhar com Segurança’. 5.4 Recusa de Serviço (2,5%)

O candidato pode:

5.4.1 Reconhecer ataques por recusa de serviço e mitigações.

6. Criptografia (10%)

6.1 O Princípio de Kerckhoff, Manejo de Chaves e Aleatoriedade (2,5%) O candidato pode:

6.1.1 Explicar a importância do Princípio de Kerckhoff, Manejo de Chaves e Aleatoriedade.

6.2 Criptografia de Chave Pública (2,5%) O candidato pode:

6.2.1 Descrever a criptografia de chave pública, ataques de homem do meio e certificados.

6.3 HTTPS (5%) O candidato pode:

6.3.1 Reconhecer as ameaças a SSL/TLS/HTTPS. 6.3.2 Aplicar HTTPS corretamente.

(9)

7. Engenharia de Software Seguro (20%)

7.1 Requisitos de Segurança (5%) O candidato pode:

7.1.1 Identificar requisitos de segurança em falta.

7.1.2 Reconhecer ambiguidades e pressupostos ocultos em determinadas condições e contextos.

7.2 Design Seguro (5%) O candidato pode:

7.2.1 Reconhecer ameaças que são inerentes a uma arquitetura específica. 7.2.2 Reconhecer soluções adequadas a ameaças e as imperfeições nessas

soluções.

7.3 Codificação Segura (2,5%) O candidato pode:

7.3.1 Reconhecer o escopo, objetivo e vantagens da revisão de código para as práticas de desenvolvimento.

7.4 Testes de Segurança (7,5%) O candidato pode:

7.4.1 Lembrar diferentes métodos para testes de segurança. 7.4.2 Reconhecer o melhor teste para um determinado cenário.

7.4.3 Identificar formas de melhorar o desenvolvimento de software e processos de testes, incorporando resultados de testes.

(10)

3. Lista de conceitos básicos

Este capítulo contém os conceitos básicos com os quais os candidatos devem estar familiarizados.

Observe que o conhecimento desses termos por si só não é suficiente para o exame. Além disso, o candidato deve compreender os conceitos e ser capaz de fornecer exemplos.

Os termos estão relacionados em ordem alfabética. Para os conceitos cuja abreviação e nome por extenso estejam incluídos na lista, será possível examiná-los separadamente.

Os termos marcados com um * devem ser familiares antes da preparação para o exame. Se você sentir que você não está familiarizado com esses termos, familiarize-se com eles antes de fazer o exame.

Inglês

Português do Brasil

Architectural risk analysis

Análise de risco de arquitetura

Asymmetric cryptography

Criptografia assimétrica

Attack surface

Superfície de ataque

Authentication

Autenticação

Authorization

Autorização

Blacklisting

Lista negra

*Brute force attack

*Ataque de força bruta

Buffer overflow

Transbordamento de buffer

Certificate authority

Autoridade de certificados

Certificate chaining

Encadeamento de certificados

Certificate revocation

Revogação de certificados

*Checksums

*Checksums (Verificações de somatório)

*Cipher

*Cifra

Clickjacking

Clickjacking

Code review

Revisão de código

*Core dump leaks

*Vazamentos de core dump

*Cracking

*Cracking (Quebra de códigos)

Cryptography

Criptografia

Cross-site Request Forgery

(CSRF/XSRF)

Cross-Site Request Forgery (Falsificação

de Solicitação Cruzada entre Sites –

CSRF/XSRF)

(11)

Cross-site Scripting (XSS)

Scripts Cruzados entre Sites (XSS)

Data flow diagram

Diagrama de fluxo de dados

Direct queries

Consultas diretas

*Domain Name System (DNS)

*Sistema de Nomes de Domínio (DNS)

Denial-of-Service (DoS)

Recusa de Serviço (DoS)

Elevation of privilege

Elevação de privilégio

Exploit

Explorar

*Framebusting

*Framebusting (Falha de estrutura)

*Framework Secure Software

*Framework Secure Software

Fuzzing

Fuzzing

Greedy and non-greedy matching

Greedy matching e non-greedy matching

*Hacking

*Hacking

Hardening

Endurecimento

Hashing

Hashing

Information disclosure

Divulgação de informações

Kerckhoffs' principle

Princípio de Kerckhoff

Logging

Registro

*MAC-address

*Endereço MAC

*Malware

*Malware

Man-in-the-middle attack

Ataque de homem do meio

*Meta information

*Meta informações

Mitigation

Mitigação

Nonce

Nonce

Nonrepudiation

Não rejeição

Parameterization

Parametrização

*Parsing (input validation)

*Parsing (validação de entrada)

Password salting

Falsificação de senha

*Phishing

*Phishing

Private key

Chave privada

Privilege escalation

Escalonamento de privilégios

Public key

Chave pública

*Randomness

*Aleatoriedade

(12)

*Secure Development Lifecycle SDLC) *Ciclo de Vida de Desenvolvimento

(S-SDLC)

Session management

Gerenciamento de sessão

*Simple Object Access Protocol (SOAP)

*Protocolo Simple de Acesso a Objetos

(SOAP)

Spoofing

Forjamento

SQL injection

Injeção SQL

Stack overflow

Transbordamento de pilha

Static analysis

Análise estática

STRIDE (Spoofing identity – Tampering

with data – Repudiation – Information

disclosure – Denial-of-Service – Elevation

of privilege)

STRIDE (Spoofing identity – Tampering

with data – Repudiation – Information

disclosure – Denial-of-Service – Elevation

of privilege, ou seja, Forjamento de

Identidade – Adulteração de dados –

Rejeição – Divulgação de informações –

Recusa de Serviço – Elevação de

privilégio)

Symmetric cryptography

Criptografia simétrica

Tampering

Adulteração

Threat modeling

Modelagem de ameaça

*Timing attack

*Ataque temporizado

Trust boundary

Limite de confiança

Trust zone

Zona de confiança

Whitelisting

Lista branca

(13)

4. Literatura

A Hemel, T., & Witmond, G.

EXIN Secure Programming Foundation – Workbook (R. Pisaturo, M. Hubregtse, & E. Kleijer, Eds.)

Utrecht, The Netherlands: EXIN Holding B.V., 2014 (1st ed.) ISBN: 978-90-820388-6-6

(14)

Literatura e especificações do exame

Requisitos do exame Especificação do exame Id da

literatura Referência da literatura

1 1.1 A Capítulo 1, § 1.1 1 1.2 A Capítulo 1, § 1.2 1 1.3 A Capítulo 1, § 1.3 2 2.1 A Capítulo 2, § 2.1 2 2.2 A Capítulo 2, § 2.2 2 2.3 A Capítulo 2, § 2.3 3 3.1 A Capítulo 3, § 3.1 3 3.2 A Capítulo 3, § 3.2 3 3.3 A Capítulo 3, § 3.3 3 3.4 A Capítulo 3, § 3.4 4 4.1 A Capítulo 4, § 4.1 4 4.2 A Capítulo 4, § 4.2 5 5.1 A Capítulo 5, § 5.1 5 5.2 A Capítulo 5, § 5.2 5 5.3 A Capítulo 5, § 5.2 5 5.4 A Capítulo 5, § 5.2 6 6.1 A Capítulo 6, § 6.1 6 6.2 A Capítulo 6, § 6.1 6 6.3 A Capítulo 6, § 6.1 7 7.1 A Capítulo 7, § 7.1 7 7.2 A Capítulo 7, § 7.2 7 7.3 A Capítulo 7, § 7.3 7 7.4 A Capítulo 7, § 7.4

(15)
(16)

Contato EXIN

www.exin.com

Referências

Documentos relacionados