Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Apresentao
Professor
Nome:
Professor
Atuao
Profissional:
Distribuio de Pontos
Primeiro
Bimestre
Tipo
Pontos
Prova
ATPS
Pesquisas Complementares
0,5*
Segundo
Bimestre
Tipo
Pontos
Prova
ATPS
Pesquisas Complementares
0,5*
Contato
thiagoaalves@gmail.com
No assunto utilizar:
Funalodetal_Diciplina_Turma(Ou dia da
semana que temos aula).
Disciplina
Desenvolvimento
Seguro
de Software
FERREIRA,
STALLINGS,
Bibliografia
Complementar
Noticias
a relacionados ao tema;
Artigos relacionados ao tema;
Sites de autores relacionados ao
tema.
Contedo Programtico
Apresentao
da disciplina.
Segurana Atualmente.
Tcnicas Seguras de Codificao:
Estouro de Buffer, Controle de Acesso
Apropriado.
Tcnicas Seguras de Codificao:
Privilgios de Execuo: Executando
com o Menor Privilgio.
Tcnicas Seguras de Codificao:
Criptografia.
Contedo Programtico
Tcnicas
Seguras de Codificao:
Protegendo Dados Secretos.
Tcnicas Seguras de Codificao: Entrada
Mal-intencionada, Entrada no Banco de
Dados, Entrada Especficas da Web.
Tcnicas Seguras de Codificao:
Questes de Internacionalizao.
Tcnicas de Codificao ainda mais
Seguras: Segurana de Soquete.
Tcnicas de Codificao ainda mais
Seguras: RPC, Controles ActiveX e DCOM.
Contedo Programtico
Tcnicas
de Codificao ainda
mais Seguras: Proteo de
Ataques de Negao de Servio.
Teste de Segurana.
Instalao de Softwares Seguros.
Escrevendo Documentao sobre
Segurana e Mensagens de Erro.
Tema
Entrega e Apresentao das
Etapas 1,2 e 3 do ATPS
Primeira Avaliao
Entrega e Apresentao das
Etapas 4,5 e 6 do ATPS
Segunda Avaliao
Prova Substituta
ATPS
Grupos
com de 2 a 4 pessoas;
Entregar os nomes dos
integrantes do grupo por e-mail;
Cada grupo deve escolher um nome
para o Projeto, Ex: Projeto XYZ;
Livro
Texto da Disciplina.
PLT do Curso.
ATPS - Desafio
O
processo de desenvolvimento de
software aborda diversas prioridades para
produzir um produto com excelncia, para
atender aos requisitos de seus usurios,
interface inteligente e intuitiva, boa
usabilidade alm de implementar requisitos
de Segurana da Informao.
A Segurana da Informao visa garantia
da integridade e confiabilidade de sistemas
e dados de uma organizao, evitando que
informaes importantes sejam danificadas
ou acessadas de forma indevida.
ATPS - Desafio
Para
ATPS - Desafio
Essa
ATPS - Desafio
Produo
Acadmica
Reflexo
O
Por
Se
Segurana
Segundo
como:
1 Ato ou efeito de segurar.
2 Qualidade do que ou est seguro.
3 Conjunto das aes e dos recursos utilizados para proteger
algo ou algum.
4 O que serve para diminuir os riscos ou os perigos.
5 Aquilo que serve de base ou que d estabilidade ou apoio.
6 Sentimento de fora interior ou de crena em si mesmo.
7 Afoiteza, ousadia.
8 Fora ou convico nos movimentos ou nas aes.
9 Certeza demonstrada.
10 Cauo.
11 Pessoa cuja atividade profissional consiste em proteger
pessoas, instalaes ou bens, ou em controlar o acesso de
pessoas a determinado local.
12 segurana social: sistema pblico de proteo dos
cidados, segundo a legislao produzidas, os direitos, os
deveres e as contribuies efetuadas, notadamente em caso
de doena, desemprego, reforma, etc.
Segurana Atualmente
Necessidade
de sistemas
seguros;
O processo desenvolvimento:
segurana preventiva;
Princpios de Segurana a serem
seguidos.
Aplicativos na Internet
Em
A Necessidade de uma
Computao Confivel
A
A Necessidade de uma
Computao Confivel
Belo
Horizonte
So
Paulo
Rio de Janeiro
Ganhei!
!!!
Itlia
Paris
A Necessidade de uma
Computao Confivel
Produto Seguro =
Produto com
Qualidade
Software de
Qualidade
Software
Seguros
Software
Confiveis
Reflexo
O
que e considerado um
Software Seguro?
que e considerado um
Software Confiaveis?
A Necessidade de uma
Computao Confivel
As
Coordenao da correo
Desenvolvedores que descobrem o cdigo vulnervel
Desenvolvedores que corrigem o cdigo
Testadores que testam o cdigo
Publicar a correo no site
Escrever a documentao de suporte
Tratar as relaes pblicas arruinadas
Microsoft
A Cultura da Segurana
nas Empresas
A cultura
Invasor
Defensor
Deve defender
todos os pontos
O castelo medieval
Investigar
vulnerabilidades
desconhecidas
Defender somente de
ataques conhecidos
Cavalo de Tria
Monitoramento do
sistema
Firewalls
Logs de auditoria
Aprimoramento do
Processo
Questes sobre
segurana nas
entrevistas
Fase de Projeto
Modelagem
das ameaas
Diretrizes
seguras de
codificao
Processo de
resposta
Reviso
externa
Fase de
Desenvolvimento
Fase de Testes
Fase de Distribuio e
manuteno
Educao
sobre
segurana
Reviso da
equipe de
segurana
Campanha
de segurana
Fase de Projeto
Quem o
pblico do
aplicativo?
Onde o
aplicativo ser
executado?
O usurio precisa
ser protegido de
suas prprias
aes?
O que voc
esta tentando
proteger?
Quais as necessidades
de comunicao do
produto?
Quem vai
gerenciar o
aplicativo?
Fase de Desenvolvimento
Reviso de
segurana
por outro
analista
Diretrizes seguras
codificao:
buffers, dados no
confiveis,
criptografia
Conscientizao
em segurana
em toda equipe
Acompanhamento
de bugs de
segurana
Reviso
externa da
segurana
Fase de Testes
Verificar se o cdigo e o projeto do
Fase de Manuteno e
Distribuio
Processo
de Resposta
todos os bugs.
Simplifique o cdigo e o seu modelo de segurana.
Aps o aplicativo pronto, instale servidores de teste e
convide uma equipe externa para tentar quebr-lo.
Princpios de Segurana
Aprenda com os erros
Minimize sua rea de ataque
Princpios de Segurana
Utilize a defesa com profundidade, por exemplo o
Banco:
Sempre existe um guarda na porta do banco
Sempre existem guardas dentro do banco
Vrias cmeras em circuito fechado monitoram os
movimentos das pessoas
Os caixa no tem acesso aos cofres privilgio
Acesso ao cofre:
S abre em determinados horrios
fabricado com metal grosso
Mltiplos compartimentos para acesso dentro do cofre
Princpios de Segurana
Utilize o menor privilgio
Se descobrir um
Estouro
de Buffer
Arquitetura interna do
computador Placa Me
UNIDADE CENTRAL
DE PROCESSAMENTO
(CPU Microprocessador)
Unidade de Controle
Unidade Lgica e Aritmtica
MEMRIA PRINCIPAL
ROM Read Only
Memory
RAM Random
Acess Memory
BUFFER
BARRAMENTO
UNIDADE DE ENTRADA E SADA
Memria RAM
RAM
Memria RAM
Sistema
Operacion
al
Microsoft
Word
Buffer
Microsoft Excel
Sistema Folha de Pagamento
Buffer
Estouro de Buffer
Buffer Overflow
Ocorre
Estouro de Buffer
Buffer Overflow
Os
Sobrescrever
Estouro de Buffer
Buffer Overflow
Sistemas
em linguagem C e C++
so propensos a estouros, pois
no fornecem nenhuma proteo
para parar o acesso ou a
sobrescrio de dados em
qualquer parte da memria e no
verificam automaticamente se os
dados gravados em uma matriz
de buffer interna esto dentro
dos limites dessa matriz.
Estouro de Buffer
Buffer Overflow
Dados do NIST (National Institute of Standards and
Estouro de Buffer
Buffer Overflow
Os
Stack
Overflow
Estouro de Buffer
Buffer Overflow
Alocadas dinamicamente (heap)
armazenadas variveis alocadas
dinamicamente e variveis globais.
Em determinado circunstncias, a
quantidade de memria a alocar s se
torna conhecida durante a execuo
do programa. Para lidar com essa
situao preciso recorrer alocao
dinmica de memria. A alocao
dinmica gerenciada pelas funes
malloc (memory allocation)
e free,
Heap Overflow
Estouro de Buffer
Buffer Overflow
Estouro de Pilha
Estouro de Heap
Erros de indexao de array
Bugs de string de formatao
Estouro de nmeros inteiros
Estouro de Pilha
Ocorre
quando um buffer
declarado na pilha sobrescrito
copiando-se um volume de dados
maior do que o buffer.
Estouro de Pilha
#include <stdio.h>
#include <string.h>
int main()
{ char palavra[10];
char destino[5];
printf ("Digite uma palavra: ");
gets (palavra);
strcpy(destino,palavra);
printf ("\n\nVoce digitou: %s",palavra);
printf ("\n\nDestino tem agora: %s",destino);
printf ("\n\nA primeira letra: %c\n",palavra[0]);
return(0);
}
Estouro de Pilha
#include <stdio.h>
#include <string.h>
int main()
{ char palavra[10];
char destino[5];
printf ("Digite uma palavra: ");
gets (palavra);
strcpy(destino,palavra);
printf ("\n\nVoce digitou: %s",palavra);
printf ("\n\nDestino tem agora: %s",destino);
printf ("\n\nA primeira letra: %c\n",palavra[0]);
return(0);
}
Erros de Indexao de
Array
for (i = 0; ; i++)
O programa deve ser
{
desenvolvido verificando
array[i] = 5;
os limites do array,
}
o programa ao lado
}
est incorreto:
Erros de Indexao de
Array
O
Bugs de string de
formatao
!!!!
programa
funcionou !!!!
!
int a, b, c;
a = 2147483646;
b = 1;
c = a + b;
tbC.Text = c.ToString();
} no Visual Studio
E agora
C#
o problema foi resolvido?
Este
programa
private void button1_Click(object sender,
no
EventArgs e)
{
funcionou !!!!!
int a, b, c;
a = 2147483646;
b = 10;
c = a + b;
tbC.Text = c.ToString();
}
O resultado foi truncado
novamente, houve um
overflow no resultado
65
Referncias
Barbato, Luiz Gustavo C.; Duarte, Luiz Otvio, Montes, antnio. Artigo:
Referncias
67
Obrigado