Escritório Central Rua Marechal Hermes 678 CJ 32 CEP 80530-230, Curitiba, PR T (41) 3095.3986 www.conviso.com.br Conviso Security Training Ementa dos Treinamentos
Apresentação Sobre este Documento Este documento apresenta a ementa dos cursos disponibilizados através do Conviso Security Training. Destacamos as seguintes premissas adotadas para a composição do conteúdo apresentado: A disponibilização de exemplos publicados na mídia, assim como referencias em web sites de fabricantes e organizações e demais informações externas apresentadas ao longo deste documento é feita somente para suportar o entendimento do conteúdo, não sendo a intenção violar direitos autorais sobre marcas registradas ou logotipos de empresas que porventura constem das amostras. Ementa dos Cursos para o Conviso Security Training! 1
Conteúdo Estrutura do Conviso Security Training... 3 Sobre o Conviso Security Training... 3 Módulo 101: Conceitos Básicos em Segurança de Aplicações... 4 Descrição Geral... 4 Requisitos Mínimos... 4 Carga Horária... 4 Conteúdo Programático... 4 Módulo 102: Segurança de Aplicações no PCI DSS... 6 Descrição Geral... 6 Requisitos Mínimos... 6 Carga Horária... 6 Conteúdo Programático... 6 Módulo 201: Secure Development Lifecycle... 8 Descrição Geral... 8 Requisitos Mínimos... 8 Carga Horária... 8 Conteúdo Programático... 8 Módulo 202: Modelagem de Ameaças... 10 Descrição Geral... 10 Requisitos Mínimos... 10 Carga Horária... 10 Conteúdo Programático... 10 Módulos 301: C Secure Code... 12 Descrição Geral... 12 Requisitos Mínimos... 12 Carga Horária... 12 Conteúdo Programático... 13 Módulos 30x: Secure Code... 14 Descrição Geral... 14 Requisitos Mínimos... 14 Carga Horária... 14 Conteúdo Programático... 15 Ementa dos Cursos para o Conviso Security Training! 2
Estrutura do Conviso Security Training Sobre o Conviso Security Training Os profissionais responsáveis pela proteção dos Ambientes Informatizados não podem mais ficar restritos à simples administração de uma ferramenta automatizada. Eles precisam ser capacitados nas mesmas técnicas utilizadas para os ataques, aprendendo a defender seus perímetros de forma eficaz. Como a capacitação dos analistas e programadores passou a incluir requisitos de segurança há poucos anos e em um número restrito de universidades, um grande legado de aplicações foi desenvolvido sem que houvesse uma preocupação com a proteção contra ataques. Desenvolvemos o Conviso Security Testing para atender a esta demanda com abordagens diferentes para duas audiências específicas, os desenvolvedores que precisam criar aplicações de forma segura, e os profissionais de Tecnologia da Informação que dão suporte para estas equipes, seja como gestores que definem a forma como as atividades são desenvolvidas ou os técnicos que garantem uma infraestrutura segura. Security Application Processes Formado por dois cursos que podem ser contratados individualmente ou de forma complementar, apresenta conceitos fundamentais de segurança em aplicações através da conscientização na importância desta prática, aplicabilidade na construção e manutenção de processos para suporte e técnicas ofensivas/defensivas em aplicações web. Secure Code Formado por seis cursos que podem ser contratados individualmente ou de forma complementar, ensina e demonstra como as vulnerabilidades em aplicações deve ser evitadas através de um processo para o desenvolvimento seguro. Caracterizados pelo uso intensivo de exercícios práticos para fixação do conteúdo, a abordagem é inteiramente dedicada para equipes diretamente relacionadas à produção de software. SENSEI Todos os cursos podem ser contratados com acesso ao Sistema de Ensino em Segurança da Informação (SENSEI), um modelo de suporte ao estudo que permite aos alunos darem continuidade às práticas ensinadas durante as aulas de forma dinâmica e interativa. Ementa dos Cursos para o Conviso Security Training! 3
Módulo 101: Conceitos Básicos em Segurança de Aplicações Descrição Geral O Módulo 101 - Conceitos Básicos em Segurança de Aplicações foi desenvolvido para fornecer aos alunos uma visão geral do processo de desenvolvimento seguro, abordando conceitos fundamentais, as falhas descritas pelo OWASP Top 10 2010 e as técnicas básicas para reduzir o nível de risco através da proteção da aplicação. Requisitos Mínimos Para garantir um aproveitamento adequado do conteúdo fornecido, este módulo requer que os alunos tenham conhecimento básico de desenvolvimento de aplicações e inglês técnico para leitura de parte do material de apoio fornecido pelo Conviso Labs. Carga Horária Este módulo tem a carga horária de 8 horas, com intervalos de 1 hora para o almoço e 30 minutos para coffee break, sendo 15 minutos na parte da manhã e 15 minutos no período da tarde. Conteúdo Programático 1. Introdução ao Desenvolvimento Seguro: Apresenta e discute os conceitos primordiais de segurança da informação e como eles são aplicados para garantir a manutenção de um nível aceitável de risco. 1.1. Conceitos para a Segurança da Informação 1.2. Visão Geral da Segurança para Aplicações 2. Visão Geral da Segurança para Aplicações: Discute os processos e técnicas que devem ser utilizados para garantir o planejamento, desenvolvimento, implementação e administração de software dentro de um nível de risco aceitável pela organização. 2.1. Justificativas Operacionais e Estratégicas 2.2. As Fases de um Secure Development Lifecycle 2.3. Conceitos iniciais de Código Seguro 3. OWASP: Apresenta o Open Web Application Security Project (OWASP), uma comunidade aberta, dedicada a capacitar as organizações a desenvolver, adquirir e manter, aplicações que podem ser confiáveis. 3.1. O que é o OWASP 3.2. Histórico do OWASP 3.3. Principais Projetos e Iniciativas 4. As Vulnerabilidades do OWASP Top 10 2010: Apresenta, conceitua e discute cada uma das 10 vulnerabilidades mais comuns em Aplicações Web apresentadas no OWASP Top 10 2010. 4.1. A1: Injection 4.2. A2: Cross-Site Scripting (XSS) 4.3. A3: Broken Authentication and Session Management 4.4. A4: Insecure Direct Object References 4.5. A5: Cross-Site Request Forgery (CSRF) 4.6. A6: Security Misconfiguration Ementa dos Cursos para o Conviso Security Training! 4
4.7. A7: Insecure Cryptographic Storage 4.8. A8: Failure to Restrict URL Access 4.9. A9: Insufficient Transport Layer Protection 4.10. A10: Unvalidated Redirects and Forwards 5. Conclusões: Revisão do conteúdo apresentado, relacionando os conceitos descritos ao longo do módulo e como devem ser empregados em conjunto no processo de proteção do software. 5.1. Revisão do Conteúdo 5.2. Conclusões Ementa dos Cursos para o Conviso Security Training! 5
Módulo 102: Segurança de Aplicações no PCI DSS Descrição Geral Partindo do Requerimento 6 estabelecido pelo PCI DSS v.2.0, este curso aborda as principais questões de segurança em aplicações, estudando instrumentos de análise proativa e como estes devem ser utilizados, como a causa chave das vulnerabilidades pode ser identificada e utilizada em ações corretivas e quais ferramentas e documentos de suporte devem ser utilizados para garantir o atendimento ao que é requerido pelo padrão. Requisitos Mínimos Para garantir um aproveitamento adequado do conteúdo fornecido, este módulo requer que os alunos tenham conhecimentos básicos de desenvolvimento de software e conhecimento básico de inglês técnico para leitura de parte do material de apoio fornecido pelo Conviso Labs. Carga Horária Este módulo tem a carga horária de 8 horas, com intervalos de 1 hora para o almoço e 30 minutos para coffee break, sendo 15 minutos na parte da manhã e 15 minutos no período da tarde. Conteúdo Programático 1. Introdução do Desenvolvimento Seguro: Apresenta os conceitos fundamentais da segurança da informação e como estes devem ser aplicados no desenvolvimento de aplicações. 1.1. Conceitos para a Segurança da Informação 1.2. Visão Geral da Segurança para Aplicações 2. Requerimentos estabelecidos pelo PCI Council: Apresenta um breve histórico do PCI e apresenta como os requerimentos relacionados a segurança de aplicações devem ser cumpridos, abrangendo todos os pontos estabelecidos no Requisito 6 na interpretação e entendimento dos conceitos e aplicação nas operações diárias. 2.1. A Segurança de Software no PCI DSS 2.2. O Requisito 6.1: Administração de Patches de Segurança 2.3. O Requisito 6.2: Ranking de risco 2.4. O Requisito 6.3: Regras básicas para desenvolvimento seguro 2.5. Requisito 6.4: Controle de alterações em software 2.6. Requisito 6.5: Além do OWASP Top 10 2010 2.7. Requisito 6.6: WAF x SDL 3. O Processo de Segurança em Desenvolvimento: Introduz o Secure Development Lifecycle (SDL) apresentando uma visão geral das fases componentes, as principais metodologias utilizadas no mercado e uma base para as estratégias de uso empregadas pelas organizações. 3.1. Fase de Planejamento 3.2. Fase de Design 3.3. Fase de Implementação 3.4. Fase de Administração Ementa dos Cursos para o Conviso Security Training! 6
4. O OWASP Top 10: Apresenta, conceitua e discute cada uma das 10 vulnerabilidades mais comuns em Aplicações Web apresentadas no OWASP Top 10 2010. 4.1. A1 - Injeção 4.2. A2 - Cross Site Scripting (XSS) 4.3. A3 Broken Authentication and Session Management 4.4. A4 Insecure Direct Object Reference 4.5. A5 Cross Site Request Forgery (CSRF) 4.6. A6 Security Misconfiguration 4.7. A7 Insecure Cryptographic Storage 4.8. A8 Failure to Restrict URL Access 4.9. A9 Insufficient Transport Layer Protection 4.10. A10 Unvalidated Redirects and Forwards 5. Processo de Gestão de Vulnerabilidades: Apresenta os conceitos envolvidos e como devem ser empregados pelas organizações para estabelecer e administrar um processo de Gestão de Vulnerabilidades para Software. 5.1. Processo de Resposta a Incidentes de Segurança 5.2. O Papel da Gestão de Vulnerabilidades 6. Conclusões: Revisão do conteúdo apresentado, relacionando os conceitos descritos ao longo do módulo e como devem ser empregados em conjunto no processo de proteção do software dentro do que é esperado pelos requisitos estabelecidos no PCI DSS. 6.1. Sobre a Segurança de Aplicações 6.2. Aplicabilidade no PCI DSS 6.3. O OWASP Top 10 2010 Ementa dos Cursos para o Conviso Security Training! 7
Módulo 201: Secure Development Lifecycle Descrição Geral O Módulo 201 estabelece a capacitação na criação de um Security Development Lifecycle (SDL), possibilitando que o aprendizado seja utilizado para incluir os aspectos necessários de segurança nos processos de desenvolvimento e/ou manutenção das aplicações corporativas. Usando metodologias de mercado, normas internacionais e ferramentas disponíveis na Internet, os alunos serão capacitados nas técnicas de desenvolvimento seguro, análise de riscos e implementação do SDL, possibilitando que o aprendizado seja utilizado para incluir os aspectos necessários de segurança nos processos de desenvolvimento e/ou manutenção de software. Requisitos Mínimos Para garantir um aproveitamento adequado do conteúdo fornecido, este módulo requer que os alunos tenham conhecimento de desenvolvimento de software e conhecimento básico de inglês técnico para leitura de parte do material de apoio fornecido pelo Conviso Labs. Carga Horária Este módulo tem a carga horária de 16 horas, com intervalos de 1 hora para o almoço e 30 minutos para coffee break, sendo 15 minutos na parte da manhã e 15 minutos no período da tarde, em cada um dos dois dias de duração do treinamento. Conteúdo Programático 1. Introdução ao Desenvolvimento Seguro: Apresenta e discute os conceitos primordiais de segurança da informação e como eles são aplicados para garantir a manutenção de um nível aceitável de risco. 1.1. Conceitos para a Segurança da Informação 1.2. Visão Geral da Segurança para Aplicações 2. Por que segurança em desenvolvimento?: Serão discutidos os motivadores e como é esperado o retorno sobre o investimento em segurança em desenvolvimento de software. 2.1. Justificativas Operacionais e Estratégicas 2.2. Cases de Implementação 2.3. Visão Geral de Regulamentações que demandam segurança em desenvolvimento 3. O processo de segurança em desenvolvimento: Apresenta o Secure Development Lifecycle (SDL) apresentando uma visão geral das fases componentes, as principais metodologias utilizadas no mercado e uma base para as estratégias de uso empregadas pelas organizações. 3.1. Visão Geral do SDL 3.2. A Fase de Planejamento 3.3. A Fase de Design 3.4. A Fase de Implementação 3.5. A Fase de Administração Ementa dos Cursos para o Conviso Security Training! 8
4. Papéis e Responsabilidades: Papéis e responsabilidades que devem ser endereçadas para o incremento e adequação da segurança em aplicações. 4.1. Revisores 4.2. Especialistas 4.3. Auditores 4.4. Facilitadores 5. Introdução a Modelagem de Ameaças: Abordagem para análise de riscos em aplicações, tratando desde o desenvolvimento da análise a técnicas para identificar e quantificar os riscos envolvidos. 5.1. O Processo de Modelagem de Ameaças 6. Métricas de Acompanhamento: Quais métricas devem ser desenvolvidas para medir o processo de segurança em desenvolvimento e como a administração referente pode ser utilizada pelos responsáveis para suportar um processo de maturidade crescente. 6.1. Métricas para o estabelecimento do processo 6.2. Métricas para o acompanhamento do processo 7. Gestão de Vulnerabilidades e Resposta à Incidentes de Segurança: Apresenta os conceitos envolvidos e como devem ser empregados pelas organizações para estabelecer e administrar um processo de Gestão de Vulnerabilidades para Software. 7.1. O Processo de Resposta a Incidentes de Segurança 7.2. O Papel da Gestão de Vulnerabilidades 8. Conclusões: Revisão do conteúdo apresentado, relacionando os conceitos descritos ao longo do módulo e como devem ser empregados em conjunto no processo de proteção do software e conclusão do módulo com discussões sobre conceitos incrementais e fontes de estudo referenciadas para continuidade do aprendizado. Ementa dos Cursos para o Conviso Security Training! 9
Módulo 202: Modelagem de Ameaças Descrição Geral O Módulo 202 estabelece a capacitação na condução de um processo de análise de riscos de um projeto de desenvolvimento de software baseado em Modelagem de Ameaças. Requisitos Mínimos Para garantir um aproveitamento adequado do conteúdo fornecido, este módulo requer que os alunos tenham conhecimento de desenvolvimento de software, segurança em desenvolvimento de software e conhecimento básico de inglês técnico para leitura de parte do material de apoio fornecido pelo Conviso Labs. Carga Horária Este módulo tem a carga horária de 16 horas, com intervalos de 1 hora para o almoço e 30 minutos para coffee break, sendo 15 minutos na parte da manhã e 15 minutos no período da tarde, em cada um dos dois dias de duração do treinamento. Conteúdo Programático 1. Introdução a Modelagem de Ameaças: Abordagem para análise de riscos em aplicações, tratando desde o desenvolvimento da análise a técnicas para identificar e quantificar os riscos envolvidos. 1.1. O Processo de Modelagem de Ameaças 2. Princípios da Elaboração de Modelos de Ameaças: Serão discutidos e definições usadas em modelagem de ameaças. 2.1. Recurso 2.2. Ameaça 2.3. Vulnerabilidade 2.4. Ataque 2.5. Controle 3. Identificar os Riscos: Apresenta o passo 1 do processo de modelagem de ameaças. 3.1. Que recursos devo proteger 4. Criar uma Arquitetura: Apresenta o passo 2 do processo de modelagem de ameaças. 4.1. Identificar o que a aplicação faz 4.2. Criar um diagrama de arquitetura 4.3. Identificar as tecnologias 5. Decompor a Aplicação: Apresenta o passo 3 do processo de modelagem de ameaças. 5.1. Identificar limites de confiança 5.2. Identificar o fluxo de dados 5.3. Identificar os pontos de entrada 5.4. Identificar código privilegiado 5.5. Documentar o perfil de segurança Ementa dos Cursos para o Conviso Security Training! 10
6. Identificar as Ameaças: Apresenta o passo 4 do processo de modelagem de ameaças. 6.1. STRIDE 6.2. Identificar ameaças de rede 6.3. Identificar ameaças de hosts 6.4. Identificar ameaças de aplicação 7. Documentar as Ameaças: Apresenta o passo 5 do processo de modelagem de ameaças. 7.1. Documentar as ameaças 8. Estimar as Ameaças: Apresenta o passo 6 do processo de modelagem de ameaças. 8.1. DREAD 8.2. Estimar as ameaças 9. Conclusões: Revisão do conteúdo apresentado, relacionando os conceitos descritos ao longo do módulo e como devem ser empregados em conjunto no processo de proteção do software e conclusão do módulo com discussões sobre conceitos incrementais e fontes de estudo referenciadas para continuidade do aprendizado. Ementa dos Cursos para o Conviso Security Training! 11
Módulos 301: C Secure Code Descrição Geral Este treinamento possui como característica comum apresentar uma estrutura com as principais vulnerabilidades, formas de exploração e técnicas de defesa para a linguagem C. Partindo de um modelo de treinamento onde existe interação contínua com a turma através da exposição de conteúdo somada a exercícios interativos e desafios para aplicação do conhecimento adquirido na sala de aula, estes treinamentos foram desenvolvidos para técnicos especializados em desenvolvimento de software, exigindo conhecimento na linguagem de programação referente. Requisitos Mínimos Para garantir um aproveitamento adequado do conteúdo fornecido, este módulo requer que os alunos tenham conhecimento na linguagem referente e conhecimento básico de inglês técnico para leitura de parte do material de apoio fornecido pelo Conviso Labs. Carga Horária Cada módulo componente do Secure Code tem a carga horária de 8 horas, com intervalos de 1 hora para o almoço e 30 minutos para coffee break, sendo 15 minutos na parte da manhã e 15 minutos no período da tarde. Ementa dos Cursos para o Conviso Security Training! 12
Conteúdo Programático 1. Introdução: Uma breve introdução sobre aspectos de segurança no desenvolvimento de software. 1.1. A importância da segurança por configuração e codificação segura 2. As Vulnerabilidades segundo o Commom Weakness Enumeration 2.1. Falhas de Lógica 2.2. Erros Númericos 2.3. Conversão de Signed para Unsigned 2.4. Uncontrolled Format String 2.5. Information Exposure 2.6. Buffer Overflows 2.7. Race Condition (TOCTOU) 2.8. Covert Timing Channel 2.9. Cryptographic Problems 3. Melhores Práticas 3.1. Principle of Least Privilege 3.2. Access Permissions 4. Ferramentas 4.1. Valgrind 4.2. RATS 4.3. Flaw-Finders 4.4. Compiler Flags 5. Conclusões: Revisão do conteúdo apresentado, relacionando os conceitos descritos ao longo do módulo e como devem ser empregados em conjunto no processo de proteção do software, com o fechamento do módulo através de discussões sobre conceitos incrementais e fontes de estudo referenciadas para continuidade do aprendizado. Ementa dos Cursos para o Conviso Security Training! 13
Módulos 30x: Secure Code Descrição Geral O Secure Code são treinamentos específicos para cada linguagem, os seguintes treinamentos estão disponíveis: Módulo 301 C Módulo 302 Cold Fusion Módulo 303 Java Módulo 304 PHP Módulo 305.Net Módulo 306 Ruby on Rails Estes treinamentos possuem como característica comum apresentar uma estrutura com as principais vulnerabilidades, formas de exploração e técnicas de defesa para as principais linguagens utilizadas no mercado. Partindo de um modelo de treinamento onde existe interação contínua com a turma através da exposição de conteúdo somada a exercícios interativos e desafios para aplicação do conhecimento adquirido na sala de aula, estes treinamentos foram desenvolvidos para técnicos especializados em desenvolvimento de software, exigindo conhecimento na linguagem de programação referente. Requisitos Mínimos Para garantir um aproveitamento adequado do conteúdo fornecido, este módulo requer que os alunos tenham conhecimento na linguagem referente e conhecimento básico de inglês técnico para leitura de parte do material de apoio fornecido pelo Conviso Labs. Carga Horária Cada módulo componente do Secure Code tem a carga horária de 8 horas, com intervalos de 1 hora para o almoço e 30 minutos para coffee break, sendo 15 minutos na parte da manhã e 15 minutos no período da tarde. Ementa dos Cursos para o Conviso Security Training! 14
Conteúdo Programático 1. Introdução: Uma breve introdução sobre aspectos de segurança no desenvolvimento de software. 1.1. A importância da segurança por configuração e codificação segura 2. O que é o OWASP: Apresenta o Open Web Application Security Project (OWASP), uma comunidade aberta, dedicada a capacitar as organizações a desenvolver, adquirir e manter, aplicações que podem ser confiáveis. 2.1. Histórico do OWASP 2.2. Principais Projetos e Iniciativas 3. As Vulnerabilidades do OWASP Top 10 2010: Apresenta, conceitua e discute cada uma das 10 vulnerabilidades mais comuns em Aplicações Web apresentadas no OWASP Top 10 2010. 3.1. A1: Injection 3.2. A2: Cross-Site Scripting (XSS) 3.3. A3: Broken Authentication and Session Management 3.4. A4: Insecure Direct Object References 3.5. A5: Cross-Site Request Forgery (CSRF) 3.6. A6: Security Misconfiguration 3.7. A7: Insecure Cryptographic Storage 3.8. A8: Failure to Restrict URL Access 3.9. A9: Insufficient Transport Layer Protection 3.10. A10: Unvalidated Redirects and Forwards 4. Segurança por Configuração: Cuidados com a configuração do ambiente que suporta a aplicação, considerando servidores de aplicação e máquina virtual. 4.1. Configuração do Ambiente 4.2. Segurança na Integração entre soluções 4.3. Firewall de Aplicação e Virtual Patching 5. Segurança por Código: Técnicas para tratar vulnerabilidades e cuidados que devem ser tomados ao se desenvolver software. 5.1. Práticas Gerais de Código Seguro 5.2. Validação de Entradas e Codificação de Saída 5.3. Autenticação e Gerenciamento de Senhas 5.4. Autorização e Gerenciamento de Acesso 5.5. Gerenciamento de Sessão 5.6. Transmissão e Armazenamento de Informações Sensíveis 5.7. Interação com Banco de Dados 5.8. Tratamento adequado de erros 5.9. Logging 6. Suporte na Revisão e Desenvolvimento: Ferramentas que podem ser utilizados para auxiliar o programador a desenvolver códigos com mais qualidade e segurança. 6.1. Ferramentas de Suporte a Análise 6.2. Continuous Delivery 7. Conclusões: Revisão do conteúdo apresentado, relacionando os conceitos descritos ao longo do módulo e como devem ser empregados em conjunto no processo de proteção do software, com o fechamento do módulo através de discussões sobre conceitos incrementais e fontes de estudo referenciadas para continuidade do aprendizado. Ementa dos Cursos para o Conviso Security Training! 15