9
UNIVERSIDADE ESTADUAL DE CIÊNCIAS DA SAÚDE DE ALAGOAS UNCISAL Trabalho de Segurança de Software Curso - Analise e Desenvolvimento de Sistemas Disciplina Segurança de Software Professor Ebe Ernani Aluno Bruno Zago Aluno Eduardo Douglas Aluno José Adriano Pereira de Souza Aluna Márcia Adriana Alves Tamarindo de Souza Aluno Victor Lemos MACEIÓ 2013

Trabalho Segurança de Software

Embed Size (px)

Citation preview

Page 1: Trabalho Segurança de Software

UNIVERSIDADE ESTADUAL DE CIÊNCIAS DA SAÚDE DE ALAGOAS – UNCISAL

Trabalho de

Segurança de Software

Curso - Analise e Desenvolvimento de Sistemas Disciplina – Segurança de Software Professor – Ebe Ernani Aluno – Bruno Zago Aluno – Eduardo Douglas Aluno – José Adriano Pereira de Souza Aluna – Márcia Adriana Alves Tamarindo de Souza Aluno – Victor Lemos

MACEIÓ 2013

Page 2: Trabalho Segurança de Software

Bruno Zago

Eduardo Douglas

José Adriano Pereira de Souza

Márcia Adriana Alves Tamarindo de Souza

Victor Lemos

Levantamento de Requisitos para a implantação de portal WEB

Este trabalho é para Avaliação Parcial da Disciplina de Segurança de Software do Curso de

Análise e Desenvolvimento de Sistemas Sob a orientação do professor Ebe Ernani.

MACEIÓ 2013

Page 3: Trabalho Segurança de Software

Sumário

Resumo ........................................................................................................................................ 4

ABSTRACT ................................................................................................................................. 4

Introdução .................................................................................................................................... 5

Ambiente de produção ............................................................................................................... 5

Hardware ..................................................................................................................................... 5

Segurança ................................................................................................................................... 6

Escalabilidade ............................................................................................................................. 6

Tolerância a Falhas .................................................................................................................... 7

Energia ................................................................................................................................. 7

Conexão ............................................................................................................................... 7

Fontes redundantes ........................................................................................................... 7

Rede ..................................................................................................................................... 7

Monitoramento .................................................................................................................... 7

Disponibilidade ............................................................................................................................ 8

Conclusão .................................................................................................................................... 9

Page 4: Trabalho Segurança de Software

Resumo Levantamento de requisitos para atender ao cliente em demanda de montar um servidor web, disponibilizando arquivos de multimídia que atenda a largura de banda dos clientes, com controle de acesso por pacotes e com a possibilidade de aumento de demanda em virtude da crescente publicidade do serviço, não deixando de lado os fatores como ( Segurança, Escalabilidade, Tolerância a falhas e Disponibilidade de acesso ). Nosso objetivo é fornece os melhores serviços e práticas para manter toda a estrutura de forma confiável e funcional.

Palavras Chaves: Segurança, Escalabilidade, Tolerância a Falhas,

Disponibilidade de Acesso.

ABSTRACT Survey to meet customer requirements in setting up a web server providing

multimedia files that meets the bandwidth of clients with access control packet

and the possibility of increased demand due to the increasing publicity of

service, leaving no side factors as (Security, Scalability, fault tolerance and

availability of access).

Our goal is to provide the best services and practices to keep the whole

structure in a reliable and functional.

Key Words: Security, Scalability, Fault Tolerance, Availability Access.

Page 5: Trabalho Segurança de Software

Introdução

Neste trabalho, destacaremos os principais pontos para se montar um servidor de acordo com os requisitos solicitados pelo cliente. Falaremos sobre, Ambiente de produção, Hardware, Segurança, Escalabilidade, Tolerância à falha, Disponibilidade.

Ambiente de produção

Toda a parte de lógica dos serviços de software

Sistema Operacional – S.O: Linux Centos 6.4

Servidor HTTP: Nginx 1.5

Acelerador HTTP: Varnish 3.0

Banco de dados: Percona Server 5.5

Linguagem: Python ou Java

Monitoramento: Zabbix Server 2.0.6

Backup: Bacula 5.2.6

Hardware

2 Servidores para execução da aplicação web

o 32Gb Ram

o Intel Xeon e5-2407

o 2 HD’s 1Tb Raid 1

2 Servidores para execução do banco de dados

o 48Gb Ram

o Intel Xeon e5-2407

o 2 HD’s 1Tb Raid 1

1 Storage para armazenamento dos arquivos multimídias

o 12 Unidades SAS de 1Tb cada disco de 7.200 RPM

Page 6: Trabalho Segurança de Software

Segurança

Os requisitos de segurança de software são o conjunto de necessidades

de segurança que o software deve atender, sendo tais necessidades

influenciadas fortemente pela política de segurança da organização, e

compreendendo aspectos funcionais e não funcionais. Os aspectos funcionais

descrevem comportamentos que viabilizam a criação ou a manutenção da

segurança e, geralmente, podem ser testados diretamente. Na maioria dos

casos, remetem a mecanismos de segurança como, por exemplo, controle de

acesso baseado em papéis de usuários (administradores, usuários comuns,

entre outros.), autenticação com o uso de credenciais (usuário e senha,

certificados digitais, entre outros.), dentre outros. Os aspectos não funcionais

descrevem procedimentos necessários para que o software permaneça

executando suas funções adequadamente mesmo sob uso indevido. São

exemplos de requisitos não funcionais: validação de dados de entrada e o

registro eventos em log de auditoria com informações suficientes para análise

forense.

A elicitação de requisitos de segurança de software consiste na definição das

necessidades de proteção exigidas pelo software. Tal atividade exige uma

colaboração intensa entre os interessados no software, especialmente

daqueles com visão negocial, que podem ter consciência das consequências

no negócio decorrentes de incidentes de segurança, cujo vetor de ataque se

localize no software.

Algumas das técnicas mais usadas no levantamento de requisitos de

segurança incluem:

Escalabilidade

Para obter sucesso no negócio devemos estar sempre preparados para

atender a todos os nossos clientes, seja num fluxo normal (aquele que a já costumamos registrar) ou nos fluxos sazonais (aqueles onde a demanda aumenta decorrente de promoções ou datas especiais para o comércio, como dia das Mães e Natal, ou no lançamento de alguma promoção, por exemplo).

À capacidade de um sistema de adequar-se a novos fluxos de clientes, sem prejudicar os seus serviços, chamamos de escalabilidade. Isso se alcança através da otimização dos recursos de forma a extrair o máximo possível das máquinas com alta performance. E com este pátio tecnológico o cliente terá todos os recursos necessários para atender a demanda crescente.

Page 7: Trabalho Segurança de Software

Tolerância a Falhas

Para contornar qualquer falha que possamos ter, projetamos um sistema

redundante em todos os quesitos possíveis.

Energia

o Serão utilizadas duas fontes redundantes de energia dentro

do nosso ambiente de produção, ou seja, dois no-breaks serão

responsáveis pela alimentação de toda nossa estrutura, caso

alguns desses no-breaks venha a ter algum problema o outro

irá garantir o funcionamento do nosso sistema;

Conexão

o Serão utilizados dois links diferentes (provedores de internet)

para garantir 100% da conectividade dos nossos serviços,

assim caso um venha ficar instável ou venha a cair o outro irá

assumir mantendo assim os serviços online;

Fontes redundantes

o Todos os servidores devem possuir fontes redundantes, cada

uma ligada a um sistema de energia diferente (no-breaks

diferentes), assim iremos ter a garantia que caso uma dessas

fontes de energia ou no-breaks venha ter algum problema não

irá causar uma parada nestes servidores;

Rede

o Serão utilizados dois switches/roteadores na estrutura de rede,

caso algum venha ter algum problema o outro irá assumir o

lugar do defeituoso assim não comprometendo toda a rede de

servidores, para que está funcionalidade seja satisfatória todas

os servidores devem ter ao menos duas de suas placas de

redes conectadas a cada um do switch/roteador;

Monitoramento

o Os servidores serão monitorados 24/7 utilizando o Zabbix

Server, que irá alertar para os administradores via e-mail e

sms, qualquer problema anormal nos servidores, como

aquecimento, alto uso dos processadores, possíveis erros de

memoria, erros nos processos monitorados entre outros,

assim sendo possível ser feita uma correção do problema o

mais rápido possível e não afetando a execução da aplicação;

Page 8: Trabalho Segurança de Software

Disponibilidade

Foi pensando na disponibilidade que escolhemos o uso de dois

servidores para cada serviços (aplicação e banco);

Teremos um servidor principal de aplicação (APP Master01) e um para o

banco de dados (DB Master01), os outros dois servidores (APP Slave01) e (DB

Slave01) ficaram em stand-by caso algum problema critico afete os servidores

principais, nessa situação os servidores slaves irão assumir o lugar do servidor

principal até que o mesmo tenha seu problema resolvido e volte à operação;

Para este tipo de operação iremos fazer uso de um serviço existente

para a plataforma Linux chamado de Heartbeat;

O Heartbeat será responsável por monitorar diversos serviços nos

servidores principais de produção e em caso de falha de algum destes serviços

ele irá realizar os diversos procedimentos configurados para manter o

funcionamento de todo o sistema;

Um exemplo, caso o serviço HTTP do servidor "APP Master01" para de

funcionar o heartbeat que faz o monitoramento deste serviço irá configurar

automaticamente o servidor "APP Slave01" para que assuma o lugar do

servidor principal, ele pode fazer a troca de IP's entre os servidores e em

seguida iniciar o serviço HTTP, assim o tempo de "parada" será tão pequeno

que nem será notado pelo usuário que está navegando no site;

O sincronismo de dados entre os servidores HTTP para que em

qualquer momento seja necessário o slave assumir, pois o slave fica "parado",

sem nenhuma operação até que o mesmo seja colocado em produção e não

haja perda de dados por conta de sincronismo de informações, arquivos, etc,

será feito utilizando o serviço DRBD que faz o espelhamento de uma ou mais

unidades de discos definidas, seria como um RAID-1 porém via rede, assim

todas as operações de escrita feitas no servidor "APP Master01" enquanto o

mesmo estiver em funcionamento serão feitas automaticamente via DRBD no

servidor "APP Slave01", mantendo os dois idênticos.

O mesmo conceito do uso de Heartbeat + DRBD utilizado nos servidores

de aplicação serão replicados e utilizados no servidor de banco de dados "DB

Master01" e "DB Slave01", assim mantendo a disponibilidade no serviço de

banco.

Page 9: Trabalho Segurança de Software

Conclusão

A eficiência em um portal na Web, inicia-se com um bom levantamento

de requisitos, baseados nas necessidades e perfil do cliente e seu negócio, explorar com eficiência, toda a tecnologia disponível para uma página dinâmica, com acessibilidade para atingir todos os clientes, com suas necessidades e perfis diversos, sempre inovando para atender as constantes mudanças que ocorrem no mundo WEB.