Tag Archive: Web development


Open Web Application Security Project (OWASP) é uma comunidade aberta dedicada a capacitar as organizações para conceberem, desenvolverem, adquirirem, operarem e manterem aplicações confiáveis.

A comunidade OWASP inclui corporações, organizações educacionais e indivíduos de todo o mundo que trabalham na criação de artigos, metodologias, documentação, ferramentas e tecnologias disponíveis de forma livre e aberta.

Nesta senda, o OWASP Top Ten Project produz anualmente o  OWASP Top Ten, um documento onde são descritas as vulnerabilidades mais críticas identificadas com frequência nas aplicações web, orientando-nos como encontrá-las e o que fazer para protegermo-nos delas.

No Top 10 de 2010 foram contempladas as seguintes ameaças:

1 – Injecção

As falhas de injecção, tais como injecção de SQL, de S.O. e de LDAP, ocorrem quando dados não confiáveis são enviados para um interpretador como parte de um comando ou consulta. Os dados do ataque hostil pode iludir o interpretador para que este possa executar comandos não desejáveis ou aceder a dados não autorizados.

2 – Cross Site Scripting (XSS)

As falhas XSS ocorrem sempre quando uma aplicação recebe dados não confiáveis e os envia para um navegador Web sem que os tenha validado ou …filtrado convenientemente. O XSS permite aos atacantes a execução de scripts no navegador da vítima que podem ser usados para sequestrar informações da sessão do utilizador, alterar sítios de Web de forma perniciosa ou redireccionar o utilizador para sítios maliciosos.

3 – Quebra da Autenticação e da Gestão de Sessões

 As funções de uma aplicação relacionadas com autenticação e gestão de sessões são muitas vezes implementadas de forma incorrecta, permitindo aos atacantes o  de senhas, chaves, identificadores de sessão ou, ainda, explorar outras de implementação para assumirem a identidade de outro utilizador.

4 – Referência Insegura e Directa a Objectos

Uma referência directa a um objecto ocorre quando um programador expõe uma referência para um objecto interno da implementação, como um …ficheiro, uma directoria ou chave de uma base de dados. Sem uma verificação de controlo de acesso ou outra protecção semelhante, os atacantes podem manipular estas referência para acederem a informação não autorizada.

5 – Cross Site Request Forgery (CSRF)

 Um ataque CSRF força o navegador de uma vítima que tenha uma sessão activa a enviar um pedido HTTP forjado, o cookie da sessão bem como outras da sessão como informação de autenticação para uma aplicação Web. Esta falha permite ao atacante forçar o navegador da vítima gerar requisições que a aplicação vulnerável aceite como pedidos legítimos oriundos da vítima.

6 – Configuração Incorrecta de Segurança

A segurança depende também da existência de configurações seguras específicas definidas e usadas na aplicação, frameworks, servidor aplicacional, servidor de Web. Todas estas configurações devem ser definidas, implementadas e mantidas por que muitas vezes elas não vêm aplicadas directamente do fornecedor das mesmas. Isto inclui igualmente possuir todo o software actualizado, incluindo todas as bibliotecas de código usadas pela aplicação.

7 – Armazenamento Criptográfico Inseguro

Muitas aplicações Web não protegem devidamente dados sensíveis, tais como cartões de créditos, SSNs e credenciais de autenticação com algoritmos de cifra ou de resumo. Os atacantes podem roubar ou modificar estes dados, protegidos de forma deficiente, para realizar roubos de identidade, fraude com cartões de crédito ou outros crimes.

8 – Falha na Restrição de Acesso a URL

Muitas aplicações Web verificam os direitos de acesso a uma URL antes de mostrarem ligações e botões protegidos. No entanto, as aplicações devem realizar verificações de controlos de acesso semelhantes de cada vez que estas páginas são acedidas, caso contrário, os atacantes podem forjar URLs e aceder a estas páginas escondidas, sem qualquer controlo.

9 – Insuficiente Protecção ao Nível do Transporte

As aplicações falham frequentemente na autenticação, cifra, e protecção da confidencialidade e integridade do tráfego de rede sensível. Quando o fazem, fazem-no muitas vezes com recurso a algoritmos fracos, usam certificados inválidos ou expirados, ou não os usam correctamente.

10 – Redireccionamentos e Encaminhamentos Inválidos

As aplicações Web redireccionam e encaminham frequentemente utilizadores para outras páginas e sítios de Web, e usam dados não confiáveis para determinar  as páginas de destino. Sem uma validação adequada, os atacantes podem redireccionar as vítimas para sítios de phishing ou de malware, ou usar o encaminhamento para aceder a páginas não autorizadas.

Baixar o Documento Oficial

Semestre “terminado” (entre aspas por existirem ainda as benditas provas da CISCO na fila, aguardando por processamento ;-)), e vamos dar início a meia-maratona de informações que, felizmente, para uns ou, infelizmente, para outros, será dominada pelas tecnologias livres e de código aberto.

Nos próximos dias serão apresentados temas relactivos  a três importantes áreas das tecnologias de informação, sendo o desenvolvimento de software, a administração de sistemas e a administração de base de dados.

Como aperitivo, começo hoje por apresentar o conceito de LAMP. LAMP é um acrônimo para um conjunto de soluções de software livre, formado pelas primeiras letras de Linux (sistema operativo), Apache HTTP Server, MySQL (software de banco de dados relacional) e PHP (linguagem de programação interpretada), juntos contituem os principais componentes para implementação de um servidor web robusto.

O conjunto de software incluso no pacote LAMP pode variar, especialmente no que diz respeito à linguagem de programação, podendo ser substituida por Java, Python, Perl, entre outras. Existem ainda termos similares para descrever o conjunto de softwares “AMP” em execução em outros sistemas operativos, tais como o MS Windows  (WAMP),  Mac OS  (MAMP),  Solaris  (SAMP), ou OpenBSD  (OPAMP).

Esta combinação de software tornou-se popular porque é gratuita, de código aberto e, portanto, facilmente adaptável, e por causa da omnipresença de seus componentes que são empacotados com a mais actuais distribuições Linux.

Fonte: Wikipedia (adaptado)

Começo este post com um singelo pedido de desculpas pela demora em apresentar as minhas ilações resultantes da participação do 1.º Tech Meeting. Os culpados até que não são tantos, mas deixarei para outra ocasião a crucificação dos mesmos. lol

Retomando ao foco principal deste post, eis aqui uma pequena operação matemática que é motivo certo de orgulho para todos que tornaram possível o primeiro “passo” do Tech Meeting:

Responsabilidade + Competência = Sucesso

Dissecando, a responsabilidade esteve patente em todo o processo organizativo do evento: antes, no decorrer e no culminar do mesmo. Recepção calorosa, e com distribuição individual das “ferramentas” necessárias para o acompanhamento e reprodução dos exemplos apresentados pelos distintos oradores; cumprimento do horário e total coerência com a agenda de actividades.

A competência reflectiu-se nos oradores ao, da melhor forma, transmitirem os conhecimentos e ao deliciarem-nos com o que de mais actual há em termos de metodologias de desenvolvimento de software em ambiente profissional.

Tal como anunciado, o foco principal do evento foi o desenvolvimento de aplicações web usando a tecnologia Java e, nesta ordem de ideias, decorreram os trabalhos, à excepção das apresentações sobre CSS vs CSS Sprite, tratando-se esta de uma linguagem de estilo, e sobre Importância de Testes em Software.

Em destaque estiveram as apresentações que se debruçaram essencialmente nas tecnologias JavaServer Pages (JSP), JavaServer Faces (JSF) e Java Persistence API (JPA),  inclusas na plataforma Java EE 6 e apresentadas nas suas mais recentes versões: JSP 2.2, JSF 2.0 e JPA 2.0.

E assim, de forma bem resumida, decorreu a primeira edição do tech meeting, superando expectativas e alcançando o sucesso merecido. Caso esteja interessado em obter mais informações referente a esta edição (apresentações, trabalhos produzidos e fotos), bem como das edições subsequentes, visite o site oficial:

www.tmangola.net

Website acabadinho, publicação efectuada, orgulho no auge  mas, quando menos esperamos, aquele nosso fiel amigo das  incessantes buscas não apresenta nos seus resultados o fruto mais recente do nosso trabalho. E então, o que fazer nesta hora!?

Uma das formas para que o nosso recém criado website apareça como resultado nos motores de busca  consiste em fazer o registo manual em cada um dos motores de busca  gratuitos pretendidos. Apesar de parecer mais trabalhosa  esta é a forma que garante maior eficácia.

Para tal, basta preencher um formulário específico a cada motor de busca e esperar algumas semanas para o motor registar na sua base de dados todas as páginas do website.

Para além deste processo de registo, a maior parte dos motores possui aplicações que visitam os sites e recolhem a informação. Porém, desta forma, não há qualquer garantia que o sítio de Internet venha um dia a constar das suas listagens.

Saiba mais em Portal da Empresa