Upload
adriano-souza
View
10
Download
4
Embed Size (px)
Citation preview
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
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
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
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.
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
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.
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;
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.
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.