PRÁTICAS DE SEGURANÇA PARA O DESENVOLVIMENTO DE SISTEMAS WEB
Ensaios: PRÁTICAS DE SEGURANÇA PARA O DESENVOLVIMENTO DE SISTEMAS WEB. Pesquise 861.000+ trabalhos acadêmicosPor: baiano2014 • 3/11/2014 • 3.124 Palavras (13 Páginas) • 504 Visualizações
PRÁTICAS DE SEGURANÇA PARA O DESENVOLVIMENTO DE SISTEMAS WEB
Eric Komiyama Aoki1
Prof. MSc. Alan Henrique Pardo de Carvalho2 Resumo: A escalabilidade, portabilidade e fácil acesso providos pela plataforma Web têm popularizado seu uso no desenvolvimento de diversas aplicações. Porém, o crescente número de incidentes de segurança levanta preocupações quanto à sua seguridade. Uma parte destes incidentes decorrem da falta de consideração de segurança durante o processo de desenvolvimento. Este trabalho tem como objetivo propor práticas de segurança a serem aplicadas durante o processo de desenvolvimento de software Web que minimizem os riscos, aumentando a qualidade e confiabilidade do produto final. Nele serão apresentados: conceitos de segurança da informação, as vulnerabilidades mais comuns existentes em software Web e algumas práticas que devem ser aplicadas durante o desenvolvimento. Palavras chave: Web; segurança; desenvolvimento; vulnerabilidade. Abstract: Scalability, portability and easy access provided by the Web plataform has popularized its use in the development of various application. However, the growing number of security incidents raised concerns about its safety. One reason for these incidents is the lack of security consideration during the development process. This paper aims to propose security practices to be applied during the development process of Web software that minimize risks, enhancing quality and reliability of the final product. It will be presented: information security concepts, the most common vulnerabilities on Web software and some practices that should be applied during the development. Keywords: Web; security; development; vulnerability.
1. Introdução
Nos últimos anos, o desenvolvimento de aplicações voltadas à Web vem sendo expandido por apresentar vantagens sobre software instalado localmente, tais como: não
1 Aluno de Iniciação Científica do Curso de Bacharelado em Análise de Sistemas e Tecnologia da Informação da FATEC-São Caetano do Sul. 2 Professor da FATEC-São Caetano do Sul (Orientador do Trabalho).
Fasci-Tech
Fasci-Tech – Periódico Eletrônico da FATEC-São Caetano do Sul, São Caetano do Sul, v. 1, n. 5, Out/Dez 2011, p.
56 a 66.
necessidade de instalação local, atualização rápida, fácil escalabilidade e acesso de qualquer local com conexão à Internet. Porém, o aumento no número de incidentes de segurança na Web gera preocupação quanto à confiabilidade desses sistemas. As estatísticas do Centro de Estudos, Reposta e Tratamento de Incidentes de Segurança no Brasil mostram que o número de incidentes notificados mais que dobraram de 2005 (68.000) a 2010 (142.844). Os investimentos em infraestrutura na área de segurança, com o uso de firewalls e antivírus, por exemplo, fornecem alguma proteção às redes e aos servidores, embora sejam insuficientes frente às necessidades de segurança no nível da aplicação. Para suprir essa lacuna existem práticas que podem ser utilizadas durante o desenvolvimento dos sistemas, embora acabem sendo negligenciadas por muitos desenvolvedores em favor do tempo de entrega, da usabilidade e do design gráfico, como relatado por Scott e Sharp (2002).
2. Segurança da informação
A segurança de sistemas é cada vez mais importante para empresas e indivíduos, especialmente com o constante aumento do número de serviços prestados via Internet e de incidentes de segurança, segundo Sommerville (2007). Para Fiorio et al. (2007), a segurança em sistemas computacionais consiste em empregar conceitos, metodologias e técnicas que protejam o sistema de ataques, sobretudo externos, que venham a gerar prejuízos tanto de ordem financeira quanto social. De acordo com Bishop (2008), a segurança da informação é composta por três pilares, que são: Confidencialidade: é manter informações ou recursos em segredo. Exemplo: o uso de nome de usuário e senha que permite que somente um usuário acesse o e-mail. Integridade: é a confiabilidade na origem da informação. Exemplo: um usuário recebe um e-mail de seu amigo que foi alterado por um interceptador, perdendo a integridade.
Fasci-Tech
Fasci-Tech – Periódico Eletrônico da FATEC-São Caetano do Sul, São Caetano do Sul, v. 1, n. 5, Out/Dez 2011, p.
56 a 66.
Disponibilidade: é a garantia de que as informações estarão disponíveis aos usuários autorizados quando necessário. Exemplo: a sobrecarga nos servidores da Receita Federal compromete a disponibilidade do sistema de envio de declarações de impostos.
Em aplicações Web, a manutenção dos três pilares pode ser mais difícil do que naquelas rodadas localmente. Isso se deve ao fato de estarem disponíveis em uma rede aberta, o que pode comprometer a confiabilidade e integridade, e de dependerem, muitas vezes, da infraestrutura de terceiros, o que pode comprometer a disponibilidade. Para Pinto e Stuttard (2008), o maior problema de segurança das aplicações Web é o fato de que os usuários podem fazer entradas arbitrárias, ou seja, podem transmitir tipos de dados não previstos no software, como parâmetros, comandos e cookies, que podem comprometer a aplicação e a seguridade de seus dados. Isso é reforçado por Scott e Sharp (2002), que afirmam que a maioria dos problemas de segurança no nível de aplicação são causados pelo fato de que o aplicativo assume que os dados transmitidos pelos usuários são confiáveis. Uma das estratégias adotada pelos desenvolvedores para lidar com esses problemas é a de pensar que o usuário irá abusar do sistema de alguma maneira. É o que Van der Stock et al. (2005) definem como processo "Thinking Evil™", colocar-se como atacante para pensar nos meios de proteção.
3. Vulnerabilidades da Web
De acordo com a classificação do The Open Web Application Security Project (2010), as dez vulnerabilidades mais críticas da Web são:
1) Injeção de códigos: inserção de códigos arbitrários, como SQL injection, em um sistema que pode permitir a um atacante realizar operações não autorizadas.
2) Cross-site scripting (XSS): inserção de códigos arbitrários em pontos falhos de uma aplicação que são executados quando os usuários a acessam. Estes pensam
Fasci-Tech
Fasci-Tech – Periódico Eletrônico da FATEC-São Caetano do Sul, São Caetano do Sul, v. 1, n. 5, Out/Dez 2011, p.
56
...