Style Switcher

Layout options
  • Boxed Layout
  • Full Width Layout
Primary Color

São Paulo

Belo Horizonte

Porto Alegre

No eventos found

Pague em até 4x no Cartão de Crédito

Aceitamos cartões de crédito através do PayPal para pessoas físicas e depósito bancário ou boleto para pessoas jurídicas.
BotãoCheckout
Objetivo: O treinamento tem como objetivo capacitar o treinando a:
• Conhecer os principais vetores de ataque a sistemas de software em execução, a explicação por trás dessas brechas, as consequências e complexidade dos potenciais ataques e as respectivas defesas;
• Conhecer as principais técnicas de programação defensiva;
• Conhecer as principais ferramentas de depuração de software e localização de brechas;
• Conhecer os mecanismos automáticos de proteção contra falhas existentes nos compiladores modernos;
• Conhecer os mecanismos de sanitização de resíduos de execução, de especial importância para software que envolva dados sensíveis, como softwares de criptografia;
• Compreender as potenciais consequências decorrentes da exploração de falhas ou de circunstâncias de execução extremas (corner cases), evitáveis ou não, em software e hardware.

Carga horária: 20 horas

Pré-requisitos: Conhecimento amplo da linguagem C ou C++. Conhecimento superficial de linguagem de montagem (assembly) para a arquitetura IA-32 (processadores da família Intel). Experiência com desenvolvimento de software. Conhecimento básico de arquiteturas de computadores e sistemas operacionais.

Metodologia de ensino
: Exposição teórica seguida de aplicação de exercícios práticos para fixação do conteúdo. 

Conteúdo programático:

1. Definição do conceito de programação segura: uma analogia direta para com direção segura;
2. Breve visão histórica acerca da importância da programação segura ou defensiva:
  • As primeiras falhas: origem do termo bug;
  • As falhas mais catastróficas e emblemáticas ocorridas na indústria de software e hardware;
  • Análise dos prejuízos, e até mesmo vítimas, decorrentes de falhas e fragilidades de software.
3. Introdução às máquinas abstratas ou modelos de execução das diversas linguagens de programação atuais;
4. Análise cuidadosa das vantagens e desvantagens dos diversos modelos de execução e seus mecanismos de tratamento de erros;
5. Delineação precisa do conceito de comportamento não-definido (undefined behavior) nas linguagens C e C++:
  • A origem do conceito e a razão pela qual ele foi criado;
  • As (muitas) condições de ocorrência de comportamento não-definido;
  • As consequências (inócuas e catastróficas) da invocação de comportamento não-definido em diferentes compiladores, sistemas operacionais e arquiteturas;
  • Blindando o código contra comportamento não-definido através de programação defensiva.
6. Estudo de casos de programas contendo falhas sus e graves de programação, com respectivos ataques (exploits) ao programa;
7. Estudo de técnicas de prospecção de falhas utilizando ferramentas de instrumentação, depuração e cobertura de código, e ferramentas de profiling;
8. Programação defensiva no contexto de linguagens interpretadas, linguagens de script e execução em máquinas virtuais;
9. Técnicas de sanitização e verificação robusta de entrada de dados;
10. Técnicas de simplificação de testes através de canonicalização de dados;
11. Técnicas de reescrita (refatoração) de código para aumentar a compreensibilidade e diminuir a carga cognitiva do texto;
12. Técnicas de sanização de memória volátil e não-volátil, com breve introdução às respectivas normas de auditoria;
13. Outros assuntos relacionados de interesse.

Rio de Janeiro

Curitiba

No eventos found

Newsletters

Assinar

Assine nossa newsletter e receba no sei e-mail o calendário de turmas abertas e novos treinamentos!

Onde estamos

Matriz:
Al dos Guatás, 468 sl.55
Saúde - São Paulo
CEP: 04053-041

Telefones:
(11) 4063-6450
(21) 4063-6250
(61) 4063-6350
(11) 3181-5166

Calendário

loader

Visitantes

0373359
Today
Yesterday
This Week
Last Week
This Month
Last Month
All days
470
179
649
2599
9252
8094
373359

Forecast Today
552

22.27%
18.85%
8.14%
6.99%
0.03%
43.71%
Online (15 minutes ago):20
20 guests
no members

Your IP:54.198.102.92