atps
TRANSCRIPT
ATIVIDADES PRÁTICAS
SUPERVISIONADAS
Sistema de Informação
5ª Série Desenvolvimento de Software Seguro
A atividade prática supervisionada (ATPS) é um procedimento metodológico de
ensino-aprendizagem desenvolvido por meio de um conjunto de etapas
programadas e supervisionadas e que tem por objetivos:
Favorecer a aprendizagem.
Estimular a corresponsabilidade do aluno pelo aprendizado eficiente e
eficaz.
Promover o estudo, a convivência e o trabalho em grupo.
Desenvolver os estudos independentes, sistemáticos e o autoaprendizado.
Oferecer diferentes ambientes de aprendizagem.
Auxiliar no desenvolvimento das competências requeridas pelas Diretrizes
Curriculares Nacionais dos Cursos de Graduação.
Promover a aplicação da teoria e conceitos para a solução de problemas
práticos relativos à profissão.
Direcionar o estudante para a busca do raciocínio crítico e a emancipação
intelectual.
Para atingir estes objetivos a ATPS propõe um desafio e indica os passos a
serem percorridos ao longo do semestre para a sua solução.
A sua participação nesta proposta é essencial para que adquira as
competências e habilidades requeridas na sua atuação profissional.
Aproveite esta oportunidade de estudar e aprender com desafios da vida
profissional.
AUTORIA:
Walter Gima
Faculdades Anhanguera de Limeira
Sistema de Informação – 5ª Série – Desenvolvimento de Software Seguro
Walter Gima
Pág. 2 de 8
COMPETÊNCIAS E HABILIDADES
Ao concluir as etapas propostas neste desafio, você terá desenvolvido as competências e habilidades que constam, nas Diretrizes Curriculares Nacionais, descritas a seguir. Compreender tecnologias relacionadas à comunicação e ao processamento de dados e
informações. Iniciar, projetar, desenvolver, implementar, validar e gerenciar soluções, usando a
tecnologia de computação em organizações privadas e públicas, aplicando metodologias para análise e desenvolvimento de projetos de sistemas.
Identificar, analisar e documentar oportunidades, problemas e necessidades passíveis de solução via computação e para empreender na concretização dessa solução.
Produção Acadêmica
Ao decorrer do desenvolvimento dessa atividade deverão ser entregues os seguintes documentos:
Relatório 1: Desenvolvendo Softwares Seguros. Relatório 2: Evitando Estouro de Buffer. Relatório 3: Utilizando Criptografia. Relatório 4: Evitando Ataques SQL INJECTION. Relatório 5: Evitando ataques RPC E DDOS. Relatório 6: Testes de Segurança e Instalação de Softwares Seguros.
Participação
Essa atividade será, em parte, desenvolvida individualmente pelo aluno e, em parte, pelo grupo. Para tanto, os alunos deverão:
organizar-se, previamente, em equipes de 3 a 5 participantes; entregar seus nomes, RAs e e-mails ao professor da disciplina e observar, no decorrer das etapas, as indicações: Aluno e Equipe.
Padronização
O material escrito solicitado nessa atividade deve ser produzido de acordo com as normas da ABNT1, com o seguinte padrão:
em papel branco, formato A4; com margens esquerda e superior de 3cm, direita e inferior de 2cm; fonte Times New Roman tamanho 12, cor preta; espaçamento duplo entre linhas; se houver citações com mais de três linhas, devem ser em fonte tamanho 10, com
um recuo de 4cm da margem esquerda e espaçamento simples entre linhas; com capa, contendo:
nome de sua Unidade de Ensino, Curso e Disciplina; nome e RA de cada participante; título da atividade; nome do professor da disciplina; cidade e data da entrega, apresentação ou publicação.
1 Consulte o Manual para Elaboração de Trabalhos Acadêmicos. Unianhanguera. Disponível em:
<http://www.unianhanguera.edu.br/anhanguera/bibliotecas/normas_bibliograficas/index.html>.
Sistema de Informação – 5ª Série – Desenvolvimento de Software Seguro
Walter Gima
Pág. 3 de 8
DESAFIO
O processo de desenvolvimento de software aborda diversas prioridades para produzir um produto com excelência, para atender aos requisitos de seus usuários, interface inteligente e intuitiva, boa usabilidade além de implementar requisitos de Segurança da Informação.
A Segurança da Informação visa à garantia da integridade e confiabilidade de sistemas e dados de uma organização, evitando que informações importantes sejam danificadas ou acessadas de forma indevida.
Para evitar problemas de Segurança da Informação, há diversos conceitos e técnicas a serem utilizados no desenvolvimento de softwares seguros. Essas técnicas são utilizadas tanto nas fases de projeto e análise do sistema quanto na sua implementação.
No desafio proposto, verifica-se a situação em que uma empresa de desenvolvimento de software sofreu diversos ataques em seus sistemas de informações, esses ataques causaram vários prejuízos materiais, comprometendo sua credibilidade no mercado de softwares. Para corrigir as falhas de segurança dos sistemas, essa empresa contratou uma equipe de consultores para auxiliá-la.
Essa equipe, tem como objetivo, identificar e corrigir possíveis falhas de segurança nos sistemas da empresa e implantar os conceitos de desenvolvimento de software seguro desde as primeiras fases de criação de seus Sistemas de Informações.
A atividade deve ser realizada em grupo para troca de conhecimento e experiências e, para isso, o professor irá definir o número de integrantes. Considere que a equipe foi contratada por um colaborador da empresa representada pelo professor.
No decorrer do desenvolvimento dessa atividade, deverão ser entregues, ao representante da empresa, os seguintes documentos:
Relatório 1: Desenvolvendo Softwares Seguros. Relatório 2: Evitando Estouro de Buffer. Relatório 3: Utilizando Criptografia. Relatório 4: Evitando Ataques SQL INJECTION. Relatório 5: Evitando ataques RPC E DDOS. Relatório 6: Testes de Segurança e Instalação de Software Seguros.
Objetivo do Desafio
Elaborar um conjunto de relatórios sobre um estudo a ser realizado para identificar e corrigir possíveis falhas de segurança em sistemas de informação e implantar os conceitos de desenvolvimento de software seguro.
ETAPA 1 (tempo para realização: 4 horas) Aula-tema: Segurança Atualmente. Técnicas Seguras de Codificação: Estouro de
Buffer, Controle de Acesso Apropriado. Essa atividade é importante para que você conheça os princípios de segurança, saiba planejar políticas de segurança preventiva e usar técnicas para evitar estouros de buffer. Para realizá-la, é importante seguir os passos descritos.
Sistema de Informação – 5ª Série – Desenvolvimento de Software Seguro
Walter Gima
Pág. 4 de 8
PASSOS Passo 1 (Aluno)
Ler atentamente os capítulos do livro-texto ou complementar sobre a importância do Desenvolvimento de Software Seguro. Passo 2 (Equipe)
Criar uma lista descrevendo pelo menos cinco Princípios de Segurança. Essa lista deve descrever cada princípio e destacar em qual fase de desenvolvimento pode ser empregada, pode-se basear o conjunto de fases do Modelo em Cascata (figura 1):
Figura1: Modelo em Cascata
Passo 3 (Equipe)
Elaborar o Relatório 1: Desenvolvendo Softwares Seguros, abordando a necessidade de investir em segurança no desenvolvimento de sistemas (Passo 1) e a lista com os princípios de segurança (Passo 2). O professor da disciplina irá informar aos grupos a metodologia e datas de entrega das atividades. Passo 4 (Equipe)
Pesquisar nos livros-texto ou complementar sobre o tratamento de estouro de Buffer. A partir da pesquisa elaborar o Relatório 2: Evitando Estouro de Buffer: contendo pelo menos cinco erros comuns e como corrigi-los. O professor da disciplina irá informar aos grupos a metodologia e datas de entrega das atividades.
ETAPA 2 (tempo para realização: 4 horas) Aula-tema: Técnicas Seguras de Codificação: Criptografia.
Essa atividade é importante para que você compreenda a utilização de diversas técnicas de criptografia em diferentes linguagens. Para realizá-la, é importante seguir os passos descritos.
REQUISITOS
PROJETO/ANÁLISE
IMPLEMENTAÇÃO
MANUTENÇÃO
TESTE
Sistema de Informação – 5ª Série – Desenvolvimento de Software Seguro
Walter Gima
Pág. 5 de 8
PASSOS Passo 1 (Aluno)
Ler atentamente os capítulos do livro-texto ou complementar sobre Criptografia, principalmente, sobre os diversos métodos de criptografia e sua utilização. Passo 2 (Equipe)
Analisar o código-fonte escrito na linguagem PHP (Hypertext Preprocessor) a seguir:
<?php $texto_criptografado = base64_encode("senha"); echo $texto_criptografado; ?>
O código acima demonstra a utilização do método de criptografia Hash base64. Pesquise como utilizar na linguagem PHP outros dois métodos de criptografia que sejam mais fortes que a criptografia base64, justificando por que são mais seguras. Passo 3 (Equipe)
Pesquisar como utilizar os métodos de criptografia utilizados no Passo 2, nas linguagens Java e ASP (Active Server Pages). Observar que nessa pesquisa teremos três métodos de criptografia (base64 e outros dois métodos resultado da pesquisa anterior). Passo 4 (Equipe)
Elaborar o Relatório 3: Utilizando Criptografia, abordando o conteúdo dos passos anteriores. O professor da disciplina irá informar aos grupos a metodologia e datas de entrega das atividades.
ETAPA 3 (tempo para realização: 4 horas) Aula-tema: Técnicas Seguras de Codificação: Entrada Mal-intencionada, Entrada no
Banco de Dados, Entrada Específicas da Web. Essa atividade é importante para que você compreenda alguns métodos de entrada mal-intencionada e formas de acesso indevido ao banco de dados. Para realizá-la, é importante seguir os passos descritos.
PASSOS Passo 1 (Aluno)
Ler atentamente os capítulos do livro texto ou complementar sobre Metodologia de Hacking e Ataques em aplicações Web.
Sistema de Informação – 5ª Série – Desenvolvimento de Software Seguro
Walter Gima
Pág. 6 de 8
Passo 2 (Equipe)
Analisar o trecho da linguagem SQL (Structured Query Language) a seguir. Em seguida pesquisar mais três exemplos de ataques utilizando SQL INJECTION.
Esse trecho de SQL é uma das formas de realizar um ataque a banco de dados de sistemas Web chamado SQL INJECTION.
Passo 3 (Equipe)
Pesquisar como evitar ataques SQL INJECTION utilizando as linguagens PHP, ASP e JSP (JavaServer Pages).
Passo 4 (Equipe)
Elaborar o Relatório 4: Evitando Ataques SQL INJECTION, abordando o conteúdo dos passos anteriores. O professor da disciplina irá informar aos grupos a metodologia e datas de entrega das atividades.
ETAPA 4 (tempo para realização: 4 horas) Aula-tema: Técnicas de Codificação ainda mais Seguras: RPC, Controles ActiveX e
DCOM. Técnicas de Codificação ainda mais Seguras: Proteção de Ataques de Negação de Serviço.
Essa atividade é importante para que você tenha habilidades para utilizar técnicas de desenvolvimento de códigos seguros utilizando RPC, Active X e conhecimento sobre formas de ataques DDOS (Ataques de Negação de Serviços) e como evitá-los . Para realizá-la, é importante seguir os passos descritos.
PASSOS Passo 1 (Aluno)
Ler atentamente os capítulos do livro texto ou complementar sobre RPC (Remote Procedure Call), Active X e proteção a ataques DDOS (Distributed Denial-of-Service Attack). Passo 2 (Equipe)
Pesquisar sobre as melhores técnicas para trabalhar com RPC (Remote Procedure Call), Active X, visando desenvolver códigos seguros.
Passo 3 (Equipe)
Descrever as técnicas possíveis utilizadas para evitar um ataque DDOS, representado pela figura abaixo:
' or 1 = ' 1
Sistema de Informação – 5ª Série – Desenvolvimento de Software Seguro
Walter Gima
Pág. 7 de 8
Figura 2: Esquema DDOS
Passo 4 (Equipe)
Elaborar o Relatório 5: Evitando ataques RPC E DDOS, abordando o conteúdo dos passos anteriores. O professor da disciplina irá informar aos grupos a metodologia e datas de entrega das atividades.
ETAPA 5 (tempo para realização: 4 horas) Aula-tema: Teste de Segurança. Instalação de Softwares Seguros.
Essa atividade é importante para que você conheça os métodos de realizar e documentar os testes de segurança de um sistema e preparar o ambiente para implantação e instalação do software. Para realizá-la, é importante seguir os passos descritos.
PASSOS Passo 1 (Aluno)
Ler atentamente o artigo científico sobre: Metodologia OSSTMM para Teste de Segurança
em TI. Disponível em: <https://docs.google.com/open?id=0B9e1nJ9U5ACjR3B2Y01xcXgzQ0k>. Acesso em: 15 abr. 2012.
Sistema de Informação – 5ª Série – Desenvolvimento de Software Seguro
Walter Gima
Pág. 8 de 8
Passo 2 (Equipe)
Construir um Plano de Teste para representar os seguintes testes das ameaças abaixo:
SQL INJECTION.
XSS (CROSS SITE SCRIPTING).
Buffer OverFlow. Passo 3 (Equipe)
Pesquisar sobre como realizar as atribuições de privilégios necessários para a instalação e execução de um software em 2 plataformas diferentes (por exemplo: Windows e Linux), levando em consideração os conceitos de segurança. Passo 4 (Equipe)
Elaborar o Relatório 6: Testes de Segurança e Instalação de Software Seguros, abordando o conteúdo dos passos anteriores. O professor da disciplina irá informar aos grupos a metodologia e datas de entrega das atividades.
Livro Texto da Disciplina HOWARD, Michael; LEBLANC, David. Escrevendo Código Seguro. 2ª ed. Porto Alegre: Bookman, 2005.