Вы находитесь на странице: 1из 23

-

SUMRIO

1 INTRODUO ..........................................................................................

2 Objetivo......................................................................................................

3 Telecine Mozer............................................................................................. 5
3.1 Segurana no Desenvolvimento de aplicaes WEB.......................

3.2 Diagrama de Atividades UML............................................................

12

3.3 Modelo Relacional Normalizado.......................................................

16

4 CONCLUSO ............................................................................................

5 REFERNCIAS .........................................................................................

1. Introduo

A escalabilidade, portabilidade e fcil acesso provido pela plataforma Web tm


popularizado seu uso no desenvolvimento de diversas aplicaes. Porm, o
crescente nmero de incidentes de segurana levanta preocupaes quanto
sua seguridade. Umas partes destes incidentes decorrem da falta de
considerao de segurana durante o processo de desenvolvimento. Este
trabalho tem como objetivo propor prticas de segurana a serem aplicadas
durante o processo de desenvolvimento de software Web que minimizem os
riscos, aumentando a qualidade e confiabilidade do produto final. Nele sero
apresentados: conceitos de segurana da informao, as vulnerabilidades mais
comuns existentes em software Web e algumas prticas que devem ser
aplicadas durante o desenvolvimento.

2. Objetivo:
Reduzir o risco de ataques e exposio dos ativos das empresas a partir da
melhoria da segurana no ambiente das aplicaes web.
Oferecendo acesso a informaes e suporte para que os tcnicos e
programadores

possam

consultar

ampliar

os

seus

conhecimentos,

esclarecimento de dvidas e melhorando o desenvolvimento de suas aplicaes.

3.1 Segurana no Desenvolvimento de aplicaes WEB:

Levando em considerao as boas linguagens de programao, elas por


si s no podem ser consideradas seguras ou inseguras; a segurana de sua
aplicao depende, sobretudo, de todo o projeto e, mais especificamente, do
cdigo do programa.
A linguagem mais usada no desenvolvimento de sistemas web o PHP
(Hypertext

Preprocessor",

originalmente

Personal

Home

Page).

Usada

originalmente apenas para o desenvolvimento de aplicaes presentes e


atuantes no lado do servidor, capazes de gerar contedo dinmico na World
Wide Web. Figura entre as primeiras linguagens passveis de insero em
documentos HTML, dispensando em muitos casos o uso de arquivos externos
para eventuais processamentos de dados. O cdigo interpretado no lado do
servidor pelo mdulo PHP, que tambm gera a pgina web a ser visualizada no
lado do cliente. A linguagem evoluiu, passou a oferecer funcionalidades em linha
de comando, e alm disso, ganhou caractersticas adicionais, que possibilitaram
usos adicionais do PHP, no relacionados a web sites. possvel instalar o PHP
na maioria dos sistemas operacionais, gratuitamente.
Vantagens do PHP
Alm do fato do PHP ser absolutamente gratuito, uma de suas grandes
vantagens que ele multi-plataforma. Roda no s em servidores Windows,
mas tambm em Linux, Unix, FreeBSD e mais uma dzia de sistemas
operacionais. Imagine o caso de uma grande corporao que resolva mudar de
plataforma, de Windows para Linux ou vise e versa. Como o PHP multiplataforma, bastaria passar os scripts de uma mquina para a outra e pronto. Em
comparao, se os sites tivessem sido escritos em ASP a empresa estaria presa
Microsoft. At existem emuladores de ASP para rodas em sistemas com base
Unix (Como o Linux) mas estas emulaes no so 100% compatveis.O PHP

tem algumas vantagens muito interessantes:


Fcil aprendizado A linguagem PHP pegou elementos do Perl, Java e do C. A
maioria dos programadores para Web conhece ao menos uma destas
linguagens, facilitando o aprendizado.
Acesso a dados O PHP se conecta facilmente a sistemas Sybase, MySQL,
MS-SQL, Oracle e muitos outros compatveis com o padro ODBC.
Velocidade e robustez O ASP tende a deixar o servidor mais lento, o PHP
raramente causa este problema. A diferena entre ambos j foi maior, mas o ASP
foi sendo otimizado pela Microsoft enquanto que o PHP cresceu, aglutinando
mais e mais funes.
Multi-plataforma Como j vimos, o PHP funciona em qualquer plataforma onde
for possvel instalar um servidor Web. S para lembrar, h verses para Linux,
FreeBSD, Solaris, Windows NT, IRIX, HP-UX e at para o Amiga.

Cdigo-fonte aberto Muitas organizaes, principalmente governamentais,


relutam em criar sistemas usando ferramentas da Microsoft pelo fato de serem
proprietrias, isto , no h acesso ao cdigo-fonte. Estas entidades precisam
de extremo cuidado com a segurana e no podem confiar seu destino
cegamente em uma nica empresa. preciso inspecionar o cdigo-fonte dos
programas utilizados no s para garantir que estejam isentos de falhas, mas
tambm para possivelmente modific-lo para cumprir determinadas tarefas.
Trabalhar com PHP to fcil quanto em ASP, inclusive no tocante conexo
com banco de dados.

Desvantagens do PHP
Mas nem tudo so flores no PHP. Veja alguns pontos fracos:
Compatibilidade entre verses Nota-se que falta um pouco de padronizao.
Por exemplo, um comando que funciona em determinada reviso pode no
funcionar em outra.
Documentao incompleta Como a maioria dos programas Open Source,
frequentemente os recursos surgem antes de estarem documentados. O site da
organizao

ajuda

bastante,

mas

comum

encontrar

recursos

sem

documentao e, principalmente, sem exemplos que possam facilitar o


aprendizado. Mas preciso dizer que os recursos sem documentao s sero
importantes para quem usurio bem avanado, ou seja, ele j saber o que
fazer para contornar a falta de documentao.
Suporte a datas Claro que possvel fazer dos os tipos de clculos usando
datas, mas neste ponto o ASP d um banho no PHP.
Existem algumas queixas em relao ao PHP que vm de usurios avanados:
Segurana Segundo os especialistas, o uso de Servelets e do JSP deixa os
cdigos mais seguros, pois so pr-compilados.
Aplicativos de servidor Segundo algumas correntes de pensamento, o Java
leva clara vantagem sobre o PHP, mas isto vem mudando com a implantao
das ferramentas para Web 2.0.
Web services Segundo os mesmos especialistas, o PHP precisava
desenvolver melhor interligao com os servios via Web. Isto j foi feito, hoje o
PHP pode competir de igual para igual com ferramentas da Microsoft e Adobe na

criao de sites dinmicos com todos os requisitos da Web 2.0.

As vulnerabilidades mais comuns no PHP so:


Cross-site Scripting;
SQL Injection;
Incluso de valores em variveis internas;
Exposio de informaes do servidor (mensagens de erro);
Exposio de arquivos do sistema e outros do servidor;
Execuo de programas no servidor.
A segurana das aplicaes, principalmente aquelas conectadas a uma rede
aberta e perigosa como a Internet bastante complexa. Essa complexidade
advm do fato que as aplicaes web, e-commerce, Internet Bank, na realidade
so agrupamentos bastante heterogneos de plataformas, bancos de dados,
servidores de aplicao, etc. Uma aplicao tpica, geralmente, est distribuda
em vrios servidores, rodando diversos aplicativos e para funcionar na
velocidade adequada, a aplicao precisa que as interfaces entre os diversos
sistemas sejam construdas com a premissa que os dados passados atravs da
mesma so confiveis e no hostis. No h tempo hbil para duplas verificaes
nas aplicaes e a necessidade de haver confiana entre os diversos
subsistemas e disso que os hackers e outros ciber criminosos se aproveitam.
Para o sistema aplicativo, frequentemente desenvolvido in house ou por
terceiros, especificamente para a empresa, no existem patches de segurana.
Segundo o Gartner, 75% dos ataques so concentrados nos aplicativos
especficos de cada empresa, pois os atacantes sabem das suas fragilidades.
Vulnerabilidades comuns nestes sistemas complexos, a segurana dos produtos
disponveis no mercado assegurada pelos fabricantes, que fornecem
periodicamente patches que os atualizam. Os ataques que hoje conhecemos so
baseados em vulnerabilidades tpicas de aplicaes web complexas. Mesmo os

sistemas operacionais (Windows, AIX, Solaris) que so mantidos por grandes


empresas, empregando milhares de profissionais, tm vulnerabilidades que so
periodicamente descobertas por hackers e s se transformam em patches
depois que os hackers j atacaram algumas vezes, que o problema foi
comunicado ao fabricante e devidamente corrigido. A Internet agregou outros
componentes de risco, sendo muito importante o efeito comunidade em que os
hackers e outros criminosos se julgam fazendo parte de uma comunidade e
obrigados a compartilhar rapidamente suas descobertas. Isto significa que
qualquer vulnerabilidade descoberta nas suas aplicaes ser rapidamente
divulgada, com as ferramentas necessrias para atac-la, e outros hackers e
cibe criminosos aproveitaro as vulnerabilidades da sua aplicao. Os ataques
podem causar uma srie de problemas, entre os quais se podem citar:
Perdas Financeiras;
Transaes Fraudulentas;
Acesso no autorizados a dados, inclusive confidenciais;
Roubo ou modificao de Dados;
Roubo de Informaes de Clientes;
Interrupo do Servio;
Perda da confiana e lealdade dos clientes;
Dano imagem da marca.

Os tipos mais comuns de ataques so:


1.Cross-Site Scripting
2.SQL Injection
3.Command Injection
4.Cookie/Session Poisoning
5.Parameter/Form Tampering
6.BufferOverflow
7.Directory Traversal/Forceful Browsing
8.Cryptographic Interception

10

9.Cookie Snooping
10.Authentication Hijacking
Utilizaes de firewalls e protocolo HTTPS.
Firewalls A maioria dos firewalls de rede, por se concentrar nas camadas mais
baixas, no protege as aplicaes da maior parte desses ataques, protege sim o
acesso aos recursos de rede. Uma nova gerao de appliances est surgindo
para resolver este e outros problemas, o Aplicativo Firewalls. Fazem parte de um
novo conceito, que a defesa na camada de aplicao. Defesa das aplicaes
dos clientes, no padronizadas, heterogneas, distribudas em vrios sistemas
operacionais, usando diversos servidores de aplicao e de bancos de dados.
Surgiram s agora, por duas razes, primeiro a necessidade de combater
ataques cada vez mais inteligentes e segundo a disponibilidade da tecnologia
necessria para a criao desses appliances que necessitam monstruosa
capacidade de computao. O Gartner Group identificou como uma tendncia
transformao do firewall comuns em commodities, em que a principal diferena
entre os diversos appliances o preo, pois as funcionalidades e a tecnologia
so bastante similares, e o surgimento de novos lideres no Gartner Quadrante
Mgico dos Firewall.
HTTPS: Hypertext Transfer Protocol Secure, uma implementao do protocolo
HTTP's

sobre

uma

camada

adicional

de

segurana

que

utiliza

protocoloSSL/TLS. Essa camada adicional permite que os dados sejam


transmitidos atravs de uma conexo criptografias e que se verifique a
autenticidade do servidor e do cliente atravs de certificados digitais. A porta
TCP usada por norma para o protocolo HTTPS a 443. O protocolo HTTPS
utilizado, em regra, quando se deseja evitar que a informao transmitida entre o
cliente e o servidor seja visualizada por terceiros, como, por exemplo, no caso de
compras on-line. A existncia na barra de tarefas de um cadeado (que pode ficar
do lado esquerdo ou direito, dependendo do navegador utilizado) demonstra a
certificao de pgina segura (SSL). A existncia desse certificado indica o uso
do protocolo HTTPS e que a comunicao entre o browser e o servidor se dar
de forma segura. Para verificar a identidade do servidor necessrio abrir esse

11

certificado com um duplo clique no cadeado para exibio do certificado. Nas


URL's dos Sites o incio ficaria 'https://'. Consulte a ajuda do seu navegador para
mais informaes de como ele avisa sobre sites seguros. Um exemplo de
conexo via HTTPS so os prprios sites da Wikipdia, em que possvel
acessar e editar o contedo dos sites atravs de uma conexo segura. Atravs
da URL possvel editar a Wikipdia em lngua Portuguesa. Conexes HTTPS
so frequentemente usadas para transaes de pagamentos na World Wilde
Web e para transaes sensveis em sistemas de informao corporativos.
Porm, o HTTPS no deve ser confundido com o menos utilizado protocolo
"Secure HTTP" (S-HTTP), especificado na RFC 2660.

12

13

3.2

UML DIAGRAMA DE ATIVIDADES

Um diagrama de atividade essencialmente um grfico de fluxo, mostrando o


fluxo de controle de uma atividade para outra e sero empregados para fazer a
modelagem de aspectos dinmicos do sistema. Na maior parte, isso envolve a
modelagem das etapas sequenciais em um processo computacional;
Enquanto os diagramas de sequncia do nfase ao fluxo de controle de um
objeto para outro, os diagramas de atividades do nfase ao fluxo de controle de
uma atividade para outra;
Uma atividade uma execuo no atmica em andamento em uma mquina
de estados e acabam resultando em alguma ao, formada pelas computaes
atmicas executveis que resultam em uma mudana de estado do sistema ou o
retorno de um valor.

Exemplo 1:
Considere o fluxo de trabalho associado construo de uma casa. Primeiro,
voc seleciona um local. A seguir, contrata um arquiteto para projetar sua casa.
Uma vez definida a planta, seu desenvolvedor determina os custos da casa.
Aps concordar com um preo e com uma forma de pagamento, a construo
pode comear. As licenas so tiradas, o terreno cavado, a fundao
cimentada, as estruturas so erguidas e assim por diante at tudo ficar pronto.
Voc ento recebe as chaves e um certificado de habitse e toma posse da casa.
Embora seja uma grande simplificao do que realmente acontece em um
processo de construo, essa descrio capta o percurso crtico do fluxo de
trabalho correspondente;

14

Figura 1, diagrama de Atividades.


Caractersticas:

Um diagrama de atividades essencialmente um fluxograma que d


nfase atividade que ocorre ao longo do tempo. Voc pode considerar um
diagrama de atividades como um diagrama de seqncia cujo interior
revelado;
Um diagrama de sequncia observa os objetos que passam mensagens;
Um diagrama de atividade observa as operaes passadas entre os
objetos;
Mostra o fluxo de uma atividade para outra;

Uma atividade uma execuo em andamento;

As atividades resultam em uma ao;

As aes abrangem a chamada a outras operaes, enviando um sinal,


criando ou destruindo um objeto;

Exemplo 2:
Por exemplo, o diagrama a seguir mostra um diagrama de atividades para
uma empresa de varejo, que especifica o fluxo de trabalho envolvido quando um
cliente devolve um item de um pedido postal. O trabalho comea com a ao

15

solicitar devoluo do cliente e depois flui por televendas (receber nmero de


devoluo), retorna ao cliente (enviar item) e, a seguir, ao depsito (receber item
e depois Incluir item novamente no estoque) e, por fim, terminando em
contabilidade (creditar conta).
Conforme o diagrama indica, um objeto significativo (i, uma instncia de Item)
tambm acompanha o fluxo do processo, mudando do estado devolvido para o
estado disponvel.
Figura 2 Diagrama de Atividade.

Exemplo 3:

16

Figura 3 Diagrama de Atividade.

3.3 MODELO RELACIONAL NORMALIZADO MRN


Num projeto de banco de dados necessrio identificar os dados e fazer
com que estes representem eficientemente o mundo real. Os SGDB Sistemas
Gerenciadores de Bancos de Dados ou SGBDR Sistemas Gerenciadores de
Bancos de Dados Relacionais so baseados no Modelo Relacional de Dados,
que tem o princpio de que todos os dados so guardados em tabelas. Conceito
criado por Edgar Frank Codd em 1970. Foi o primeiro modelo de dados descrito
teoricamente. O Modelo Entidade Relacionamento apresenta algumas situaes
de difcil implementao prtica. Para resolver isso, Codd props um processo
de Normalizao de Dados (ou normalizao de tabelas) que aplica uma srie
de regras s tabelas de um banco de dados, para verificar se estas esto
corretamente projetadas. O objetivo da normalizao evitar problemas
provocados por falhas no projeto do banco de dados, eliminando redundncias e
evitando problemas com insero, eliminao e atualizao de dados. Com a
normalizao bem sucedida, o espao de armazenamento de dados diminui, as

17

tabelas podem ser atualizadas com maior eficincia. Normalmente aps a


aplicao das Regras de Normalizao, algumas tabelas acabam sendo
divididas em duas ou mais tabelas. Esse processo causa a simplificao dos
atributos de uma tabela, contribuindo significativamente para a estabilidade do
modelo de dados, reduzindo-se consideravelmente as necessidades de
manuteno. Inicialmente Codd estabeleceu trs Formas Normais, chamando-as
de Primeira, Segunda e Terceira Formas Normais. Uma definio mais forte da
Terceira Forma Normal foi depois proposta por Boyce e Codd, chamada Forma
Normal Boyce-Codd. Depois uma Quarta e uma Quinta Formas Normais foram
propostas, baseadas nos conceitos de dependncias multivaloradas e de juno,
respectivamente: Primeira Forma Normal, ou 1FN Segunda Forma Normal, ou
2FN Terceira Forma Normal, ou 3FN Forma Normal Boyce-Codd, ou FNBC ou
BCNF Quarta Forma Normal, ou 4FN
5. 4 Quinta Forma Normal, ou 5FN Cada uma das formas normais
representa uma condio mais forte que a anterior na lista, mas para a maioria
dos efeitos prticos, considera-se que as bases de dados esto normalizadas se
aderirem Terceira Forma Normal. Outro ponto a notar que os projetistas de
um banco de dados no precisam normalizar at a forma normal mais alta
possvel. As relaes podem permanecer em um estado de normalizao mais
baixo, como 2FN, por razes de desempenho. (ELMASRI; NAVATHE, 2005
apud NISHIMURA, 2009, p. 81). O processo sequencial, iniciando pela 1FN.
No possvel pular uma forma normal, assim como no possvel fazer uma
forma normal errada e passar para a prxima. Se uma tabela obedece s regras
de uma forma normal, esta obedece igualmente s regras das formas normais
anteriores. Uma tabela est na Primeira Forma Normal quando seus atributos
no contm grupos de Repetio, ou tambm, a 1FN requer que todos os
valores de colunas em uma tabela sejam atmicos (indivisveis). necessrio
identificar atributos que representam o armazenamento de um mesmo dado em
locais diferentes; atributos repetidos; atributos com mais de uma ocorrncia.
Uma regra de ouro para a 1FN no misturar assuntos em uma mesma tabela
(BATTISTI, 2004). Ao identificar esses erros, os atributos devem ser transferidos
para uma nova tabela (ou tabelas), mantendo um relacionamento com a tabela
original. As tabelas resultantes devem obedecer 1FN. Para aplicar as regras

18

das formas normais seguintes necessrio entender de Dependncia Funcional.


Existe dependncia funcional X Y entre dois atributos X e Y, se os valores de X
determinam os valores de Y. Se em um novo registro da tabela, o valor de X se
repetir, obrigatoriamente o valor de Y tambm se repetir. A Segunda Forma
Normal ocorre quando a chame primria composta por mais de um campo. Se
uma tabela est na 1FN e possui chave primria simples, j est
automaticamente na 2FN. Uma tabela, para estar na 2FN, no pode conter
dependncia funcional entre seus atributos no-chave com apenas parte de sua
chave primria, isto , cada atributo no-chave deve ser dependente da chave
primria inteira. Com as dependncias encontradas, divide-se a tabela em duas
(ou
6. 5 mais) outras tabelas, mantendo as tabelas resultantes na 2FN. Battisti
(2004) explica a Terceira Forma Normal: Na definio dos campos de uma
entidade podem ocorrer casos em que um campo no seja dependente
diretamente da chave primria ou de parte dela, mas sim dependente de outro
campo da tabela, campo este que no a Chave Primria. Para estar na 3FN, a
relao R deve obedecer a 2FN e no pode conter dependncias funcionais dos
atributos no-chave com outros atributos no- chave. Mais uma vez se divide a
tabela em outras para solucionar o problema encontrado. As tabelas resultantes
devem obedecer 3FN. A 3FN aquela que, na maioria dos casos, termina o
processo de normalizao.
PADRO SQL A linguagem SQL (Structured Query Language, ou
Linguagem Estruturada de Consulta) uma linguagem de pesquisa declarativa
para bancos de dados relacionais. Foi desenvolvida pela IBM nos anos 70 como
uma interface para o System R, um sistema experimental de um banco de dados
relacional que tinha por objetivo demonstrar a viabilidade da implementao do
modelo relacional proposto por Codd. A sua grande vantagem sobre os modelos
anteriores, dada sua linguagem no procedural e manipulao de conjuntos de
dados com um nico comando, a torna uma das maiores razes para o sucesso
dos SGBDs comerciais. Embora criada pela IBM, rapidamente surgiram vrios
dialetos desenvolvidos por outros produtores. Essa rpida expanso levou
necessidade de uma padronizao da linguagem. Na dcada de 80, a ANSI
(American National Standards Institute Instituto Nacional Americano de

19

Padres) e a ISO (International Standards Organization Organizao


Internacional de Padres) chegaram verso padro da SQL, chamada SQL-86
ou SQL1. Houve ainda uma reviso em 1992 (SQL-92 ou SQL2) e outra em
1999 (SQL-99 ou SQL3). A adoo da linguagem SQL por vrios SGBDs permite
que os programadores sejam mais independentes do SGBD, podendo escrever
declaraes em um programa aplicativo e acessar os dados em dois ou mais
SGBDs relacionais, sem ter de alterar a SQL em ambos SGBDs. A SQL uma
linguagem abrangente, possuindo comandos que definem e manipulam a
estrutura de armazenamento e procedimentos (DDL) e comandos de
manipulao de dados (DML). Os comandos DDL (Data Definition Language
Linguagem de Definio de Dados) permitem a criao e manuteno da
estrutura de armazenamento de um SGBD, como tabelas, colunas etc. Esses
comandos no acessam dados, mas interferem em sua existncia e forma de
armazenamento ou acesso.
A escalabilidade, portabilidade e fcil acesso provido pela plataforma Web tm
popularizado seu uso no desenvolvimento de diversas aplicaes. Porm, o
crescente nmero de incidentes de segurana levanta preocupaes quanto
sua seguridade. Umas partes destes incidentes decorrem da falta de
considerao de segurana durante o processo de desenvolvimento. Este
trabalho tem como objetivo propor prticas de segurana a serem aplicadas
durante o processo de desenvolvimento de software Web que minimizem os
riscos, aumentando a qualidade e confiabilidade do produto final. Nele sero
apresentados: conceitos de segurana da informao, as vulnerabilidades mais
comuns existentes em software Web e algumas prticas que devem ser
aplicadas durante o desenvolvimento.

20

4 Concluso

Trabalhando h trs anos como tcnico de redes em telecomunicaes, pude


perceber a importncia da segurana no apenas nas camadas da rede, mas
tambm no acesso a aplicaes do usurio final. Essa experincia que ganhei
ao longo desses anos, tambm tem servido para ampliar os meus
conhecimentos nos estudos do curso de Anlises e Desenvolvimento de
Sistemas.
O que pode se notar no decorrer dessa atividade, a grande importncia e
necessidade que uma informao tem, a informao o bem mais preciso hoje
em dia, tudo guardado a sete chaves, informaes essa desde um simples

21

e-mail at dados pessoais como nmeros de documentos, ressaltando tambm a


grande parte que a tecnologia hoje nos beneficia para o sigilo. Portanto a
segurana e a confiabilidade dos dados precisam ser preservadas da melhor
forma possvel. Um erro durante o desenvolvimento pode abrir brechas para
invasores de sistemas, podendo ocasionar perdas de dados ou at mesmo
financeiramente.
O tema escolhido para estudarmos durante esta atividade complementar,
foi bastante propicio, pois ela nos mostra mais uma possibilidade para
ampliarmos nossos conhecimentos.

22

5 Referencias

http://www.martinsfontespaulista.com.br/anexos/produtos/capitulos/254879.pdf
http://pt.wikipedia.org/wiki/Diagrama_de_atividade
REFERNCIAS BATTISTI, Jlio. O modelo relacional de dados parte 04. In:
iMasters, por uma internet mais criativa e dinmica. 2004. Disponvel em
<http://imasters.uol.com.br/artigo/2521/bancodedados/o_modelo_relacional_de_
dad os_-_parte_04/>.

Вам также может понравиться