ATPS DESENVOLVIMENTO SOFTWARE SEGURO
DESENVOLVIMENTO DE SOFTWARE SEGURO
SÃO PAULO
2015
DIEGO MOTA PEREIRA - RA: 6438266397
FABIO FRANCISCO DE ARRUDA - RA: 6601453018
RODRIGO DE JESUS FEERIRA – RA: 7682750344
RONALDO NOGUEIRA DE OLIVEIRA - RA: 7411616601
ROSIDELMA APARECIDA KREMPEL – RA: 7419627578
WILLIAM AMARAL YANO – RA: 1299717596
DESENVOLVENDO SOFTWARE SEGURO
EVITANDO ESTOURO DE BUFFER
UTILIZANDO CRIPTOGRAFIA
PROF. EDCLEISSON ZANARDI
SÃO PAULO
2015
SUMÁRIO
RELATÓRIO 01 – DESENVOLVENDO SOFTWARE SEGURO 4
1.1 Passo 1 (A necessidade de investir em segurança no desenvolvimento de sistemas) 4
1.2 Passo 2 (Princípios de Segurança) 5
RELATÓRIO 02 – EVITANDO ESTOURO DE BUFFER 6
2.1 Breve História 6
2.2 Buffer Overflow 7
2.3 Stack Buffer Overflow 7
2.4 Heap Buffer Overflow 7
2.5 Off-by-One erros 8
2.6 Return-to-libc attack 8
2.7 Exemplo de estouro de buffer 9
2.8 Evitando o estouro de buffer 10
2.8.1 Escrever código seguro 10
2.8.2 Invalidar a execução de código na pilha 10
2.8.3 Ferramentas do Compilador 11
2.8.4 Verificações na altura da execução 11
2.8.5 Runtime dinâmica 12
RELATÓRIO 03 – UTILIZANDO CRIPTOGRAFIA 12
3.1 Base64 - Conceito 12
3.2 MD5 - Conceito 13
3.3 SHA1 - Conceito 13
3.4 Base64 – Na linguagem PHP 14
3.5 MD5 – Na linguagem PHP 14
3.6 SHA1 – Na Linguagem PHP 14
3.7 Base64 – Na Linguagem Java 15
3.8 SHA1 – Na Linguagem Java 15
3.9 MD5 – Na Linguagem Java 15
3.10 Base64 – Na Linguagem ASP 16
3.11 MD5 – Na Linguagem ASP 19
3.12 SHA1 – Na Linguagem ASP 19
3.12 Conclusão – Comparação entre os métodos 20
BIBLIOGRAFIA 21
RELATÓRIO 01 – DESENVOLVENDO SOFTWARE SEGURO
1.1 Passo 1 (A necessidade de investir em segurança no desenvolvimento de sistemas)
A falta de segurança em projetos de software é uma das principais preocupações das organizações. É por meio das vulnerabilidades presentes em projetos de software que ocorre a quebra de sigilo e roubo de informações. Devido a esse fator, as organizações estão buscando adotar medidas cada vez