a7.1 - falhas em programas - vinícius serafim - falhas em programas.pdf · prof. vinícius...
TRANSCRIPT
![Page 2: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/2.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Erro, Falha e Defeito
ErroFalha (PFLEEGER 2006, p. 100)
“O que o desenvolvedor vê”Falha leva ao defeito
Defeito (PFLEEGER 2006, p. 100)Desvio da especificação do sistema“O que o usuário vê”
![Page 3: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/3.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Corrigindo falhas
Qual é o melhor?Um programa em que foram econtradas e corrigidas 100 falhas; ouUm programa em que foram econtradas e corrigidas 20 falhas.
Um programa com muitas falhas iniciais tende a ter muitas outras por serem descobertas. (PFLEEGER 2006, p. 100)
![Page 4: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/4.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Patch“Torna o sistema mais inseguro pois frequentemente introduz novas falhas”(PFLEEGER 2006, p. 100)
Foco na falha em si e não no seu contextoNem todos os efeitos da falha são conhecidosCorreção da falha causa outros problemas em outras partes do códigoCorreção inadequada por questões de
![Page 5: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/5.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Falhas maliciosas, ou nãoNão maliciosas
Não há intenção de induzir uma falhaSão acidentais, resultado de descuido
MaliciosasPropositaisCuidadosamente elaboradas
Independente do caso, temos que tratar seus efeitos (PFLEEGER 2006, p. 101)
![Page 6: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/6.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Para pensarmos
“Erros humanos não intencionais são mais numerosos e causam muito mais estrago.” “Falsas soluções de segurança impedem o progresso real na direção de programação mais segura.” (GASSER 1988, em PFLEEGER, 2006 p. 102) “É quase impossível garantir que um programa faça precisamente o que seu projetista ou usuário esperam que faça e nada mais.” (PFLEEGER 2006, p. 102)
![Page 7: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/7.jpg)
Erros de programação não maliciosos
![Page 8: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/8.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Estouro de buffer
Em linguagem C
?
Buffer Overflow
100 bytes120 bytes
Overflow!
char buffer[100];
buffer[100] = ‘B’;
buffer[i] = ‘B’;
![Page 9: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/9.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Buffer Overflow
O que pode estar depois do buffer?Dados ou código do usuárioDados ou código do sistema
O que o atacante pode fazer?
![Page 10: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/10.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Mediação Incompleta
http://site.com/ordem.php?prod=3928&qtd=10&preun=30&envio=sedex
http://site.com/ordem.php?prod=3928&qtd=10&preun=15&envio=sedex
![Page 11: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/11.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Mediação Incompleta
Falha na checagem dos parâmetros recebidos do usuário ou de outras fontes não controláveis
Ausência de checagemChecagem realizada apenas no lado do cliente (client-side). Ex.: JavaScript e campos escondidos ou bloqueados
![Page 12: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/12.jpg)
Códigos Maliciosos Genéricos
Afetam usuários de sistemas de forma indiscriminada
![Page 13: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/13.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
VírusCapaz de se autorreplicarInfecta programas não maliciosos
Programa original
Vírus
Vírus
Programa original
![Page 14: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/14.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Porém não apenas programas
DocumentosSetor de boot dos discosCódigo residente em memória
![Page 15: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/15.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Como encontrar um vírus?
Assinatura do vírusUm padrão particular no seu códigoUm padrão de armazenamentoUm padrão de execução
Vírus polimórficosTrocam sua aparênciaCódigos equivalentes ou mesmo cifrados
![Page 16: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/16.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
O que um vírus pode fazer?
“O dano é limitado apenas pela criatividade do autor do vírus.” (PFLEEGER 2006, p. 126)
![Page 17: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/17.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Para pensarmos (PFLEEGER 2006, p. 126)
“Vírus afetam somente sistemas Microsoft Windows.”“Vírus podem modificar arquivos escondidos ou somete-leitura.”“Vírus só se espalham por discos ou e-mails.”“Vírus não podem infectar hardware.”
�
✔
✔�
�
![Page 18: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/18.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Outros códigos maliciosos
Worm (verme)Se espalha pela rede e existe de forma independente de um outro arquivo ou programa
Rabbit (coelho)Vírus ou Worm que se autorreplica sem limite
![Page 19: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/19.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Outros códigos maliciososCavalo-de-tróia
Bomba lógica
![Page 20: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/20.jpg)
Códigos Maliciosos Especializados
Escritos com um objetivo específico e especificamente para um sistema, uma aplicação
![Page 21: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/21.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Trapdoor ou Backdoor
“Um ponto de entrada não documentado”Muito usado por desenvolvedores
E depois de esquecidos vão parar em ambiente de produçãoAlgumas vezes deixados intencionalmente
Visando uma futura manutençãoOu visando acesso não autorizado
![Page 22: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/22.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
RootKits
Um programa ou conjunto de programasRealiza atividades como
Esconder processos não autorizadosEsconder arquivos de um invasor
O RootKit intercepta e filtra os resultados dos comandos do sistema
![Page 23: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/23.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
KeyloggerCapturar o que é digitado no tecladoPrograma ou HardwareÀs vezes é instalado pelo atacante em seu próprio computador
![Page 24: A7.1 - Falhas em programas - Vinícius Serafim - Falhas em programas.pdf · Prof. Vinícius Serafim - fim.eti.br Corrigindo falhas Qual é o melhor? Um programa em que foram econtradas](https://reader033.vdocuments.pub/reader033/viewer/2022052715/5c03ab2a09d3f203258d0b0f/html5/thumbnails/24.jpg)
Prof. Vinícius Serafim - http://professor.serafim.eti.br
Outros códigos maliciosos
Ilusões da InterfaceMan-in-the-MiddleEscalada de privilégios