You are on page 1of 34

FACNET Faculdade de Negcios e Tecnologias da Informao SESLA Sociedade de Ensino Superior do Lago Curso de Bacharelado em Sistemas da Informao Disciplina:

a: Desenvolvimento de Software Seguro Turma: BSI 5AD Professora Mestre: Leandro Vaguetti

ATPS Etapas 1, 2, 3, 4 e 5

Daniel Rodrigues Araujo Priscila Nunes da Silva Rafael Santos Caduda Thiago Farias Da Silva

Braslia, 06 de Dezembro de 2011.

ATPS Etapas 1, 2, 3, 4 e 5

Daniel Rodrigues Araujo Priscila Nunes da Silva Rafael Santos Caduda Thiago Farias Da Silva

Professor Mestrado: Leandro Vaguetti Desenvolvimento de Software Seguro

FACNET Faculdade de Negcios e Tecnologias da Informao Dezembro de 2011.

ETAPA 01 Passo: 01 A melhor maneira de desenvolver software seguro incorporar a segurana desde o incio do desenvolvimento de software. O desenvolvedor deve conhecer as vulnerabilidades em diferentes artefatos do ciclo de vida do desenvolvimento do software para que estes possam ser removidos assim que possvel. Caso contrrio, a remoo as vulnerabilidades, numa fase posterior ir aumentar o custo significativamente. Vulnerabilidades em software nos afetam quase diariamente, nos foraram a mudar a forma como usamos computadores, alm de ser o centro de algumas das mais espetaculares e caras falhas em computadores. Por exemplo, o custo total do vrus Code Red foi estimado em 2.6 bilhes de dlares, e o vrus Nachi afetou operaes da companhia area do Canad e da CSX ferrovias. Os dois exploraram buffer overflows, uma classe de vulnerabilidades que conhecida desde 1988. Esforos esto comeando a reduzir as vulnerabilidades em software, mas a indstria certamente ainda tem um longo caminho a percorre. O BSI busca alterar o caminho com o qual o software desenvolvido, tendo assim menores vulnerabilidades de ataques atravs da construo de segurana desde inicio do desenvolvimento do projeto. O SSDP est dividido em quatro fases: Engenharia de Requisitos; Design; Implementao; Garantia. Cada uma dessas fases est dividida em uma seqncia de atividades que devem ser seguidas, alm do relacionamento entre as fases. Passo: 02 Requisitos A necessidade de considerar a segurana "de baixo para cima" um princpio fundamental do desenvolvimento de sistemas seguros. Embora vrios projetos de desenvolvimento produzam "prximas verses" baseadas nas verses anteriores, a fase de requisitos e o planejamento inicial de uma nova verso oferecem a melhor oportunidade para criar software seguro. Durante a fase de requisitos, a equipe de produto entra em contato com a equipe de segurana central para solicitar a designao de um supervisor de segurana (chamado de o "cara da segurana" na implementao) que serve como um ponto de contato, pesquisa e orientao durante o planejamento. O supervisor de segurana ajuda a equipe de produto revisando os planos, fazendo recomendaes e garantindo que a equipe de segurana planeje recursos apropriados para dar suporte ao cronograma da equipe de produto. O supervisor de segurana aconselha a equipe de produto sobre os marcos de segurana e os critrios de sada que sero exigidos com base no tamanho, na complexidade e no risco do projeto. O supervisor de segurana continua sendo o ponto de contato da equipe de produto com a equipe de segurana, desde o incio do projeto at a concluso da Reviso final de segurana e o lanamento do software. O supervisor de segurana tambm serve como ponto de contato entre a equipe de segurana e a gerncia da equipe de produto, e aconselha a gerncia da equipe quanto ao controle do elemento de segurana de seus projetos, de forma a evitar surpresas relacionadas segurana posteriormente durante o processo. A fase de requisitos a oportunidade para a equipe de produto considerar como a segurana ser integrada no processo de desenvolvimento, identificar os objetivos-chave de segurana e maximizar a segurana de software, minimizando a quebra de planos e cronogramas. Como parte desse processo, a equipe precisa considerar como os recursos de segurana e as medidas de controle de seu software sero integrados com outros softwares que provavelmente sero usados com ele. (A interface com outros softwares uma considerao essencial para atender s necessidades dos usurios de integrao de produtos individuais em sistemas seguros.) A perspectiva geral da equipe de produto sobre os objetivos, os desafios e

os planos de segurana deve se refletir nos documentos de planejamento produzidos durante a fase de requisitos. Embora os planos estejam sujeitos a alteraes conforme o andamento do projeto, a articulao precoce desses planos ajuda a garantir que nenhum requisito seja desconsiderado ou estabelecido na ltima hora. Cada equipe de produto deve considerar os requisitos de recursos de segurana como parte dessa fase. Embora alguns requisitos de recursos de segurana sejam identificados em resposta modelagem de ameaas, provvel que os requisitos do usurio determinem a incluso de recursos de segurana em resposta s exigncias do cliente. Os requisitos dos recursos de segurana tambm sero definidos de acordo com a necessidade de obedecer aos padres da indstria e dos processos de certificao, como os Critrios comuns. A equipe de produto deve reconhecer e refletir esses requisitos como parte de seu processo de planejamento normal. Anlise/ Projetos o estudo dos objetivos do sistema como um todo, dos procedimentos que o envolvem, da sua estrutura, dos fluxos de informao que estabelece o seu desempenho e as suas deficincias. Atividades da Analise do Sistema: Uma vez compreendido como um sistema interage com os outros, o analista deve preocupar-se com o sistema em si. Identificar cada um dos seus componentes, examinandoos com cuidado de forma a levantar todos os detalhes respeitantes sua natureza, funcionamento e relao com outros componentes. Etapas necessrias para identificao: 1. Determinao dos Objetivos: Antes de qualquer anlise necessrio estabelecer uma base para decidir o que se pretende que o sistema faa tendo em conta os objetivos de cada um dos setores da organizao. Com estes objetivos e as relaes entre departamentos, pode-se estabelecer os objetivos do sistema como um todo. 2. Levantamento de informaes sobre os mtodos utilizados: Antes de se tirar concluses sobre os problemas ou deficincias do sistema pr-existente, deve-se compreender e documentar todos os fatos relacionados execuo dos procedimentos, manuteno das informaes e ao processo de tomada de deciso. 3. Anlise das inter-relaes: Os dados encontrados devem agora ser organizados, analisados e comparados com os de sistemas similares, de forma a serem facilmente entendidos. Os fatores crticos para o desempenho da organizao vo ser identificados e passar a merecer toda a ateno. 4. Determinao dos dados necessrios: Determinar a melhor disposio do fluxo de informao. Quem precisa de qual informao? Quem fornece os dados? Quem processa os dados e obtm os resultados? Fazer por qu? 5. Definio dos procedimentos necessrios: So propostas vrias alternativas pelas quais os processos poderiam ser realizados; um ou mais cursos de ao devem ser apresentados. 6. Ferramentas para a Anlise de Sistemas: Para se fazer uma anlise necessria se recorrer utilizao de ferramentas e tcnicas prprias, de forma a garantir a obteno de dados completos e acertados de modo a que se possa chegar a concluses corretas. Implementao A fase de implementao, a equipe de produto gera o cdigo, testa e integra o software. As etapas seguidas para remover falhas de segurana ou evitar sua insero inicial durante essa fase tm um aproveitamento alto; elas reduzem significativamente a probabilidade de que vulnerabilidades de segurana estejam presentes na verso final do software que lanada para os clientes. Os resultados da modelagem de ameaas fornecem uma orientao particularmente importante durante a fase de implementao. Os desenvolvedores dedicam ateno especial em corrigir o cdigo de

modo a atenuarem as ameaas de alta prioridade e os testadores concentram seus testes na garantia de que essas ameaas estejam de fato bloqueadas ou atenuadas. Os elementos do SDL que so aplicados na fase de implementao so:

Aplicar padres de codificao e teste. Os padres de codificao ajudam os desenvolvedores a evitar a introduo de falhas que podem levar a vulnerabilidades de segurana. Por exemplo, a utilizao de construes de manipulao de seqncias e de buffer mais consistentes e seguras pode ajudar a evitar a introduo de vulnerabilidades de saturao do buffer. As prticas recomendadas e os padres de testes ajudam a garantir que os testes se concentrem na deteco de possveis vulnerabilidades de segurana e no apenas na operao correta de funes e recursos do software. Aplicar ferramentas de testes de segurana, incluindo ferramentas de difuso. A "difuso" oferece entradas estruturadas, mas invlidas para APIs (interfaces de programao de aplicativo) de software e interfaces de rede, de forma a maximizar a probabilidade de detectar erros que podem levar a vulnerabilidades de software. Aplicar ferramentas de verificao de cdigo de anlise esttica. As ferramentas podem detectar alguns tipos de falhas de cdigo que resultam em vulnerabilidades, incluindo saturaes do buffer, de nmeros inteiros e variveis no inicializadas. Realizar revises de cdigo. As revises de cdigo complementam os testes e as ferramentas automatizadas; para isso, elas aplicam os esforos de desenvolvedores treinados no examine do cdigo-fonte e na deteco e remoo de possveis vulnerabilidades de segurana. Elas so uma etapa essencial no processo de remoo de vulnerabilidades de segurana do software durante o processo de desenvolvimento.

Teste O teste tambm conhecido como fase de verificao o ponto em que o software est funcionalmente concludo e entra em testes beta por usurios. Durante essa fase, enquanto o software passa por testes beta, a equipe de produto realiza um "esforo de segurana" que inclui revises do cdigo de segurana alm das concludas na fase de implementao, bem como testes de segurana direcionados. Houve dois motivos para a introduo do esforo de segurana no processo:

O ciclo de vida do software para as verses em questo alcanou a fase de verificao, e essa fase estava em um ponto apropriado para realizar as revises de cdigo e os testes orientados necessrios. Realizar o esforo de segurana durante a fase de verificao garante que a reviso de cdigo e os testes tenham como objetivo a verso final do software, e oferece uma oportunidade para revisar o cdigo desenvolvido ou atualizado durante a fase de implementao e o "cdigo herdado" que no foi modificado.

O primeiro desses motivos reflete um acidente histrico: a deciso de iniciar um esforo de segurana ocorreu inicialmente durante a fase de verificao. Onde foi possvel concluir que realizar um esforo de segurana durante a fase de verificao realmente uma prtica recomendada para garantir que o software final preencha os requisitos e permitir uma reviso mais profunda do cdigo herdado que tenha sido transferido de verses anteriores do software. importante notar que as revises de cdigo e os testes do cdigo de alta prioridade (aquele que parte da "superfcie de ataque" do software) so crticos para vrias partes do SDL. Por exemplo, essas revises e esses testes devem ser exigidos na fase de implementao para permitir a correo precoce de quaisquer problemas, alm da identificao e da correo da origem desses problemas. Eles tambm so crticos na fase de verificao, quando o produto est perto de ser concludo. Manuteno

Apesar da aplicao do SDL durante o desenvolvimento, as prticas de desenvolvimento mais avanadas ainda no do suporte ao fornecimento de software completamente livre de vulnerabilidades, e h bons motivos para acreditarmos que isso nunca acontecer. Mesmo que o processo de desenvolvimento pudesse eliminar todas as vulnerabilidades do software fornecido, novos ataques seriam descobertos e o software que era "seguro" estaria vulnervel. Assim, as equipes de produto devem se preparar para responder a vulnerabilidades recm-descobertas no software fornecido aos clientes. Parte do processo de resposta envolve a preparao para avaliar relatrios de vulnerabilidades e lanar orientaes e atualizaes de segurana quando apropriado. O outro componente do processo de resposta a conduo de um post-mortem das vulnerabilidades relatadas e a adoo de medidas, conforme necessrio. As medidas em resposta a uma vulnerabilidade variam de emitir uma atualizao para um erro isolado at atualizar as ferramentas de verificao de cdigo e iniciar revises do cdigo dos principais subsistemas. O objetivo durante a fase de resposta aprender a partir dos erros e utilizar as informaes fornecidas em relatrios de vulnerabilidade para ajudar a detectar e eliminar mais vulnerabilidades antes que sejam descobertas no campo e utilizadas para colocar os clientes em risco. O processo de resposta tambm ajuda a equipe de produto e a equipe de segurana a adaptar processos de forma que erros semelhantes no sejam introduzidos no futuro. Passo: 03 O investimento em segurana no desenvolvimento uma viagem obrigatria, com apenas estao de partida, que toda organizao, cujo negcio software, se ainda no entrou, ter que entrar. Essa obrigatoriedade est ligada curva crescente de perdas causadas por explorao de falhas de segurana. Essa viagem est obviamente muito mais avanada nos EUA e pases, cujo rigor com questes de segurana maior. No Brasil, por exemplo, a onde de busca solues de segurana para atender o padro PCI (Payment Card Industry), mais especificamente parece ainda nem ter comeado. Algumas alternativas para segurana de ciclo de desenvolvimento, como anlise esttica de cdigo, firewall de aplicao sairo do status de recomendao PCI para obrigatrio em julho/08. O mercad americano mostra boas perspectivas acerca dessas mudanas de mentalidade, basta observar os movimentos das empresas, como por exemplo, a integrao entre Sentinel (Scan) da WhiteHar com o Ounce5 (Source Code Analyzer) da Ounce Labs e outros. Obviamente, eles esto prevendo alta demanda caminho. Voltando questo do negcio em si, hoje as organizaes (pelo menos as grandes) j reconhecem a importncia de desenvolver software com segurana desde o princpio, e que o custo dessa alternativa , sem dvida, menor que os custos associdos incerteza sobre o nvel de segurana do produto final. Essa percepo sobre o nvel de segurana diretamente influenciada pelas evidncias de aes de segurana recolhidas ao longo do desenvolvimento. Cita-se, como exemplo, os touch points da Cigital. No h outro elemento mais importante na segurana do que o recurso humano quer seja no desenvolvimento ou na operao. Acontece, que as instituies de ensino em geral, continuam a no dar tanta importncia ao assunto de software seguro. Quem paga a conta est comeando a agir para mitigar esse problema. Como? Solicitando oficialmente s universidades para que ensinem seus alunos como desenvolver com segurana. Para finalizar, fica destacado que a segurana no desenvolvimento no deve ser o objetivo de negcio de nenhuma organizao (exceto quelas onde esse o negcio em si), mas que seu resultado pode suportar ou no os objetivos de negcio dela. Com essa mentalidade, a resistncia a embarcar dessa viagem passa a ser dirigida pela anlise de risco e custo da oportunidade. Passo: 04 Estouro de Buffer

Estouro de buffer a forma de ataque baseado na explorao do mal uso de funes que manipulam arrays. Esta vulnerabilidade pode estar presente em linguagens que no verificam automaticamente se os limites de memria alocada para uma varivel foram respeitados durante a execuo do programa. Stack-Smashing Protector (SSP) uma das ferramentas mais utilizadas atualmente para impedir ou dificultar a explorao de estouros de buffer para a linguagem C. Sistemas operacionais modernos o utilizam como ferramenta padro para evitar brechas de segurana em programas copilados em seu domnio. Normalmente, o ataque consiste na descoberta de algum parmetro de entrada vulnervel de um sistema que possa ser manipulado de tal forma que permita a injeo de comandos de mquinas maliciosos. Tais comandos, se bem formulados, podem ser usados para comprometer a mquina hospedeira de tal forma que o atacante receba privilgios no antes alcanveis. Em qualquer situao a vulnerabilidade pode ser evitada com boa praticas de programao. O mal uso de funes que trabalham com arrays a principal causadora de brechas na segurana de um sistema. Funes tais que permitam a escrita de um dado em memria alem dos limites estabelecidos pelo o compilador devem ser usadas com um cuidado especial, pois podem estar inserindo vulnerabilidade passiveis de explorao. Aps ter sido tornada pblica a tcnica de buffer overflow por alephone (1998), diversos mtodos surgiram para automaticamente evitar que a explorao fosse executada com sucesso. Solues foram apresentadas tanto para os compiladores como para os sistemas operacionais, visando dificultar ao mximo o uso dessas falhas para maus fins. Porm, no existe atualmente uma tcnica definitiva que evite a explorao dos estouros de buffer sem adicionar overhead significativo ao programa definido. Dentre as tcnicas em compiladores existentes para proteo de cdigo escrito em C, destaca-se o Stack-Smashing Protector (ou SSP, ou ainda Pro Police). Desenvolvido por Hiroaki Etoh, ele uma evoluo do conceito apresentado no Stack Guard por Crispin Cowan. Atualmente, o mtodo padro em diversos sistemas operacionais conhecidos, como Ubuntu e OpensBSD, ele se demonstra muito eficiente em impedir a explorao de buffer overflows. Etapa 02 Passo 01 PHP uma linguagem interpretada livre e utilizada para gerar contedo dinmico na World Wide Web. A linguagem surgiu por volta de 1994, como um pacote de programas CGI criados por Rasmus Lerdorf. Com o nome Personal Home Page Tools, para substituir um conjunto de scripts Perl que ele usava no desenvolvimento de sua pgina pessoal. Em 1997 foi lanado o novo pacote da linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, um interpretador SQL. Mais tarde, Zeev Suraski desenvolveu o analisador do PHP 3 que contava com o primeiro recurso de orientao a objetos, que dava poder de alcanar alguns pacotes, tinha herana e dava aos desenvolvedores somente a possibilidade de implementar propriedades e mtodos. Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4, abandonando por completo o PHP 3, dando mais poder mquina da linguagem e maior nmero de recursos de orientao a objetos. O problema srio que apresentou o PHP 4 foi a criao de cpias de objetos, pois a linguagem ainda no trabalhava com apontadores ou handlers, como so as linguagens Java, Ruby e outras.

O problema fora resolvido na verso atual do PHP, a verso 5, que j trabalha com handlers. Caso se copie um objeto, na verdade copiaremos um apontador, pois, caso haja alguma mudana na verso original do objeto, todas as outras tambm sofrem a alterao, o que no acontecia na PHP 4.[4] Trata-se de uma linguagem extremamente modularizada, o que a torna ideal para instalao e uso em servidores web. Diversos mdulos so criados no repositrio de extenses PECL (PHP Extension Community Library) e alguns destes mdulos so introduzidos como padro em novas verses da linguagem. muito parecida, em tipos de dados, sintaxe e mesmo funes, com a linguagem C e com a C+ +. Pode ser dependendo da configurao do servidor, embarcada no cdigo HTML. Existem verses do PHP disponveis para os seguintes sistemas operacionais: Windows, Linux, FreeBSD, Mac OS, OS/2, AS/400, Novell Netware, RISC OS, AIX, IRIX e Solaris. Construir uma pgina dinmica baseada em bases de dados simples com PHP, (em parte, vale lembrar), este prov suporte a um grande nmero de bases de dados: Oracle, Sybase, PostgreSQL, InterBase,MySQL, SQLite, MSSQL, Firebird, etc., podendo abstrair o banco com a biblioteca ADOdb, entre outras. A Wikipdia funciona sobre um software inteiramente escrito em PHP, usando bases de dados MySQL: oMediaWiki. PHP tem suporte aos protocolos: IMAP, SNMP, NNTP, POP3, HTTP, LDAP, XML-RPC, SOAP. possvel abrir sockets e interagir com outros protocolos. E as bibliotecas de terceiros expandem ainda mais estas funcionalidades. Existem iniciativas para utilizar o PHP como linguagem de programao de sistemas fixos. A mais notvel a PHP-GTK. Trata-se de um conjunto do PHP com a biblioteca GTK, portada do C+ +, fazendo assim softwares inter-operacionais entre Windows e Linux. Na prtica, essa extenso tem sido muito pouco utilizada para projetos reais.

Passo 02 e 03 Exemplo:01

MD5
A criptografia Md5 mais comum, que um algoritmo de um hash de 128 bits. Voc pode usar o md5 na sua aplicao. O md5 gera uma string alfa-numrica de 32 caracteres, no importa se voc t gerando o md5 de duas letras ou de um texto de 20 pargrafos. O md5 gerado sempre vai gerar 32 caracteres. Voc pode usar o md5 na hora de salvar um dado sigiloso (senhas) o banco. Com isso, ningum tem acesso senha original do cliente. Depois s comparar o md5 do que foi digitado no campo senha (na hora do login) com o que est armazenado no banco, se bater, t tudo certo. Infelizmente o md5 tem um problema. Voc pode, com muita dificuldade (preste ateno: muita dificuldade), gerar dois md5 iguais. Duas strings diferentes que acabem como um mesmo md5. Isso rarssimo, mas pode acontecer. Pra usar o md5 no PHP s usar da seguinte forma: view source print? 1 $string = 'O rato reu a ropa do rei de Roma';

2 $codificada = md5($string); 3 echo "Resultado da codificao usando md5: " . $codificada; 4 // 54cf74d1acdb4037ab956c269b63c8ac Criptografia crypt() Sua sintaxe string crypt(valor); Retorna uma string e em geral implementa o algoritmo de encriptao Unix Standard DES-based. E tambm no tem decodificao. Exemplo: $texto = "edson"; echo crypt($texto); // RESUTADO: $1$fs2.68/.$VM9iirUeSlJvl4WPWZZmx0 // para voltar: // sem volta ?>

Criptografia BASE64
Base64 um mtodo para codificao dos dados para transferncia na Internet. Ela uma codificao de mo dupla, e usando uma segunda funo voc pode descobrir a string original de uma string codificada. Para usar ela no PHP voc tem as duas formas so elas:
01 $string = 'O rato reu a ropa do rei de Roma'; 02 03 $codificada = base64_encode($string); 04 05 echo "Resultado da codificao usando base64: " . $codificada; 06 // TyByYXRvIHJldSBhIHJvcGEgZG8gcmVpIGRlIFJvbWE= 07 08 echo "<br /><br />"; 09 10 $original = base64_decode($codificada); 11 12 echo "Resultado da decodificao usando base64: " . $original; 13 // O rato reu a ropa do rei de Roma 14

15 // Note que $original vai ser idntica a $string

Com esses recursos possvel deixar a aplicao bem mais segura e, por fim, organizada.

Relatrio de Criptografia Relatrio 3: Utilizando Criptografia base64_encode Codifica com base64, para decodificar basta usar a funo: base64_decode(). md5 Retorna um hash em um nmero hexadecimal de 32 caracteres, no h funo de decodificao. crypt Retornar uma string criptografada usando o algoritmo de encriptao Unix Standard DES-based ou algoritmos alternativos disponveis no sistema. No h funo de decodificao, desde que crypt utiliza uma algorimo de um s caminho. Vejamos agora exemplo de uso de cada um: Usando base64_encode:
<?php $texto = "texto"; echo base64_encode($texto); // RESUTADO: dGV4dG8= // para voltar: $texto1 = "dGV4dG8="; echo base64_decode($texto1); // RESUTADO: texto ?>

Usando md5;
<?php $texto = "texto"; echo md5($texto); // RESUTADO: 62059a74e9330e9dc2f537f712b8797c // para voltar: // sem volta ?>

Usando crypt:
<?php $texto = "texto"; echo crypt($texto); // RESUTADO: kg7fvdoKjsNQs // para voltar: // sem volta ?>

A grande Vantagem dos dois segundos modos se d a partir da afirmativa que os valores codificados por elas no retornam ao estagio anterior da codificao, "Os modos md5 e crypt no pode voltar o valor da varivel normal depois de criptografado." crypt - nico caminho de codificao de string (hashing). Descrio: string crypt ( string str [, string salt] ) crypt() retornar uma string criptografada usando o algoritmo de encriptao Unix Standard DESbased ou ou algoritmos alternativos disponveis no sistema. Os argumentos so uma string para ser criptografada e uma string opcional para basear em qual encriptao est. Etapa 03 Passo 02 Mtodos de ataque O ataque de SQL Injection consiste em injetar cdigo de SQL (Structure Query Language) em informaes que podem ser manipuladas pelo usurio. Estas informaes podem ser campos de formulrios, variveis de URL ou at mesmo valores descontrole de sesso dos navegadores. O objetivo alterar a lgica do comando SQL para executar comandos arbitrrios. Tem-se visto diversas empresas e rgo do governo sendo vtimas dessa vulnerabilidade. Primeiro exemplo de cdigo vulnervel a SQL Injection est em uma no filtragem dos parmetros passados no formulrio HTML para um cdigo da linguagem de programao PHP. <?php include "db_conecta.php"; $cUsuario = $_GET ('usuario']; $cSenha = $_GET ('senha']; // Monta o comando SQL preenchendo as variaveis com o valor dos campos $cSQL=" SELECT * FROM usuarios WHERE login=' {$cUsuario}' AND senha='{$cSenha}"; $rs = mysql_query ($cSQL); if (!($rs)) { die ("Erro ao executar a comando SQL"); } /** * Se o comando SQL retornar algum registro significa que foi logado */ if ($aDadosUsuario = mysql_fetch_row($rs)) { $lLogado = true;} else { $lLogado = false; } ?> O ataque pode ser efetuado acessando diretamente a URL ou pelo USURIO e SENHA do cdigo

vulnervel preenchendo os parmetros necessrios. Isto ocorre porque os parmetros so passados e verificados atravs do mtodo HTTP-GET onde as variveis e seus valores ficam acessveis pela a URL.

Segundo exemplo de cdigo vulnervel a ataques pelo o SQL Injection. <html> <head> <title>Portal Web </title> </head> <body> <from method="post" action="login01.php"> <table> <tr> <td colspan="2" align="center">Efetue Login</td> </tr> <tr> <td>Usurio</td> <td><input type='text' name="txtUsuario" /></td> </tr> <tr> <td>Senha</td> <td><input type='password' name="txtUsuario" /></td> </tr> <td colspan="2" align="right"> <input type="submit" value="Entrar" /> </td> </tr> </table> </from> </body> </html>

O principal problema neste cdigo que torna a explorao desta falha extremamente simples ocorre pelo fato do desenvolvedor verificar se houve qualquer registro resultante do comando SQL. Desta forma, um atacante consegue inserir caracteres especiais alterando a lgica da instruo SQL da seguinte forma: Usurio: ' or ''=' Senha: ' or ''=' Assim, o comando SQL ficaria como segue: SELECT id,usuario,senha From tblUsuarios WHERE usuario ='' or ''='' AND senha='' or ''=''

Terceiro exemplo de cdigo vulnervel a ataques pelo o SQL Injection.

$ Query = "SELECT * FROM` pets `WHERE` dono `= '". $ _POST ['Ownername']. "'E = espcies'". $ _POST ['Espcies']. "'"; $ Query = sprintf ("SELECT * FROM` pets `WHERE` dono `= '% s' E 'espcie` ='% s '", $ _POST [' ownername '], $ _POST [' espcies ']); Passo 03 Evitando ataques SQL INJECTION utilizando as linguagens PHP, ASP e JSP (JavaServer Pages). A melhor funo para proteger os sistemas em PHP e MySQL contra SQL Injection a mysql_real_escape_string(), ela escapa os caracteres especiais como aspas simples e duplas antes de enviar para o banco de dados. Porm esta funo no funciona em todas as verses do PHP, ento na funo que iremos criar temos quer verificar se ela existe, e caso no exista vamos utilizar a funo mysql_escape_string(). Tambm devemos ter em mente que se a diretiva get_magic_quotes_gpc() estiver ON ele ir acrescentar barras invertidas automaticamente antes de aspas simples e duplas, o problema que ele ir enviar para o banco de dados com as barras invertidas, estragando o texto. Para contornar isso basta usar a funo stripslashes() para remover essas barras invertidas. Ento vamos montar a nossa funo com o nome de anti_sql_injection(): 1 2 3 function anti_sql_injection($str) { if (!is_numeric($str)) { $str = get_magic_quotes_gpc() ? stripslashes($str) : $str;

4 $str = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($str) : mysql_escape_string($str); 5 6 7 } return $str; }

Podemos verificar que a funo primeiro verifica se a o valor informado no numrico, ou seja, que precisa ser tratado, em seguida verificamos se a diretiva get_magic_quotes_gpc() est ativada, se estiver usamos a funo stripslashes() conforme falado anteriormente. Em seguida verificamos se existe a funo mysql_real_escape_string(), se existir usamos ela, caso contrrio usamos a funo mysql_escape_string(). Um exemplo de como usar a funo: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 $query = mysql_query($sql) or die('Erro na consulta: ' . mysql_error()); $total = mysql_result($query, 0); if ($total > 0) { echo 'Usurio e senha corretos.'; } else { echo 'Usurio e/ou senha invlidos.'; } } $sql = 'SELECT COUNT(id_usuario) '; $sql .= 'FROM usuarios '; $sql .= 'WHERE usuario = \'' . anti_sql_injection($usuario) . '\' '; $sql .= 'AND senha = \'' . anti_sql_injection($senha) . '\' '; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $usuario = trim($_POST['usuario']); $senha = trim($_POST['senha']);

Atravs desde mtodo possvel criar um defesa contra ataques SQL Injection, enfim vacinados contra ataques de SQL Injection, e o melhor de tudo, sem destruir o contedo dos nossos sistemas. Evitando ataques SQL INJECTION utilizando as linguagem ASP: 1- Estabelea uma poltica de segurana rgida e criteriosa limitando o acesso dos seus usurios. Isto quer dizer que voc deve dar somente os poderes necessrios aos seus usurios. No de acesso de escrita a tabelas e d somente acesso s tabelas que o usurio vai precisar. 2- A validao da entrada de dados no formulrio e no permita os caracteres invlidos como : (') , (--) e (;) nem de palavras maliciosas como insert, drop, delete, xp_. Algumas funes que voc pode mos usar: Substituindo o apstrofe(') pelo duplo apstrofe ('') <% Function ExpurgaApostrofe(texto)

ExpurgaApostrofe = replace( texto , "'" , "''") End function %> Substituindo os caracteres e palavras maliciosas por vazio("") <% Function LimpaLixo( input ) dim lixo dim textoOK lixo = array ( "select" , "drop" , ";" , "--" , "insert" , "delete" , "xp_") textoOK = input for i = 0 to uBound(lixo) textoOK = replace( textoOK , lixo(i) , "") next LimpaLixo = textoOK end Function %> Rejeitando os dados maliciosos <% Function ValidaDados( input ) lixo = array ( "select" , "insert" , "update" , "delete" , "drop" , "--" , "'") ValidaDados = true for i = lBound (lixo) to ubound(llixo) if ( instr(1 , input , lixo(i) , vbtextcompare ) <> 0 ) then ValidaDados = False exit function end if next end function %> 3- sempre bom limitar o limite de entrada de texto para o usurio no formulrio de entrada de dados. Se o campo nome deve ter somente 10 caracteres restrinja a isto a entrada de dados no formulrio. O mesmo vale para a senha. 4- Como o tratamento adequado de erros no permitindo que mensagens de erros exponham informaes sobre a estrutura dos seus dados. 5- sempre bom fazer um log para auditoria dos erros ocorridos e das operaes mais importantes da aplicao. Evitando ataques SQL INJECTION utilizando as linguagens JSP (JavaServer Pages). view plaincopy to clipboardprint? 1. 2. 3. 4. 5. 6. /usr/java/resin-3.0.14/webapps/intrateste/WEB-INF/classes/loginintra/b_loginintra.java:39: cannot resolve symbol symbol : method append (java.lang.String) location: class java.lang.String sql.append( "where USU_LOGIN like "+login+" "); ^

7. /usr/java/resin-3.0.14/webapps/intrateste/WEB-INF/classes/loginintra/b_loginintra.java:40: 8. cannot resolve symbol 9. symbol : method append (java.lang.String) 10. location: class java.lang.String 11. sql.append( "and USU_SENHA like "+senha+" "); 12. ^ 13. /usr/java/resin-3.0.14/webapps/intrateste/WEB-INF/classes/loginintra/b_loginintra.java:41: 14. cannot resolve symbol 15. symbol : method append (java.lang.String) 16. location: class java.lang.String 17. sql.append( "and USU_ATIVO like S "); 18. ^ 19. /usr/java/resin-3.0.14/webapps/intrateste/WEB-INF/classes/loginintra/b_loginintra.java:46: 20. cannot resolve symbol 21. symbol : method setSTring (int,java.lang.String) 22. location: interface java.sql.PreparedStatement 23. pstmt.setSTring(2, "teste"); 24. ^ 25. 4 errors
1) Onde para evitar esses erros jamais podemos deixar a amostra os erros da sua aplicao! Deslige o debug info! Estes erros interessam somente voc e a ningum mais, por isso trate de usar tratamento de erros ou ento deixar o servidor CF fazer isso por voc por meio do Site-wide Error Handler; Na seqncia algumas outras (mais diretamente aplicadas ao ColdFusion). 2) Sempre vlidar os dados que a sua aplicao recebe. A melhor maneira de se fazer isso atravs do uso de stored procedures. Se no puder usar stored procedures ou seu uso no faa sentido, use a tag <CFQUERY> com segurana! O melhor receber e passar para o BD os valores de strings pela tag <CFQUERYPARAM>. Veja o exemplo abaixo: SELECT * FROM noticias WHERE NoticiaID=<CFQUERYPARAM VALUE=#url.id# CFSQLTYPE=CF_SQL_INTEGER> Isso inclusive aumenta a performance da sua query pois o CFServer j saber de antemo qual o tipo de dado a ser enviado ao BD. 3) Use um user especfico para cada datasource que voc tem nesse servidor. Eu costumo criar, para uma mesma aplicao/banco de dados, duas datasources distinas. Nas minhas aplicaes de notcias, por exemplo, eu tenho sempre o user noticias_reader e o user noticias_writer. Um poder (com base nas permisses de acesso do prprio DB) apenas ler e o outro ler e escrever. Dessa forma terei que me preocupar em validar apenas as queries que faam alteraes e inseres no BD, j que qualquer operao de alterao ou deleo forada no primeiro datasource ser negada pelo banco de dados. Em sites abertos ao pblico, temos tipicamente apenas operaes de leitura de dados. J a alterao/insero ocorre em sistemas internos (os famosos admins), o que j elimina uma camada de vulnerabilidade. Mas mesmo assim SEMPRE VALIDE as entradas de dados da sua aplicao; 4) Jamais use uma conta com privilgios de administrador para conectar-se ao banco de dados (a conta sa do MSSQL, por exemplo). Alm de tornar a sua aplicao/vulnervel, voc poder estar

comprometendo TODO um sistema. O mesmo vlido para a trusted connection. Normalmente a conta usada nesse tipo de autenticao a de Administrador. 5) Sempre fazer um backup para guardar as suas informaes em mos.

Passo 04 Relatrio 4: Evitando Ataques SQL INJECTION A segurana das informaes um assunto que exige ateno especial, principalmente em se tratando de informaes armazenadas em bancos de dados acessados via web. Uma das tcnicas de fraude mais conhecida pelos desenvolvedores web a SQL Injection. Trata-se da manipulao de uma instruo SQL atravs das variveis quem compem os parmetros recebidos por um script server-side, tal como PHP, ASP, ColdFusion e entre outros. O principal motivo pelo qual deve-se impossibilitar a utilizao da SQL Injection est no fato de que, atravs de uma simples instruo SQL, como por exemplo, uma projeo de dados, outras operaes podem ser executadas, podendo impactar sobre o esquema das tabelas, os dados armazenados, e at mesmo sobre elementos do sistema operacional, tendo em vista que alguns bancos de dados permitem a execuo de comandos do shell do prprio sistema operacional. Como possvel detectar a vulnerabilidade de um sistema Para ilustrar o conceito de SQL Injection, a seguinte simulao pode ser realizada. Imaginemos que um script de validao de acesso de usurios tenha sido desenvolvido como segue:

Nas linhas 3 e 4, as variveis $usuario e $senha, respectivamente, recebem o contedo submetido por um formulrio atravs do mtodo POST. Eis a fonte do problema. Suponha que a seguinte entrada tenha sido informada no campo usurio no formulrio chamador do script de validao.

Logo, a query string resultante ser:

Se nenhuma outra validao for realizada, o usurio mal intencionado ter efetuado login no sistema, sem ao menos informar um usurio contido na tabela. Isto foi possvel pois o valor de entrada informado no recebeu o tratamento devido, sendo adicionado instruo para ser executado. Vale ressaltar que as

validaes apresentadas no exemplo so apenas ilustrativas, havendo a necessidade de checagens mais eficazes para um script de validao de acesso. Impossibilitando o uso de SQL Injection Para que se esteja livre da utilizao da SQL Injection, certas providncias devem ser tomadas. Algumas das aes sero realizadas no servidor de banco de dados, outras devem ser garantidas pelo cdigo fonte. Deve-se tomar cuidado com a configurao do usurio que estabelece a conexo com o banco de dados. O ideal que as permisses de acesso deste usurio estejam restritamente limitadas s funes que ir realizar, ou seja, para a exibio de um relatrio, a conexo com o banco de dados deve ser realizada por um usurio com permisses de leitura e acesso somente s tabelas necessrias para sua operao. T odos os valores originados da coleta de dados externos, devem ser validadas e tratadas a fim de impedir a execuo de eventuais instrues destrutivas ou operaes que no sejam as esperadas. Um tratamento bsico para a execuo de querys com variveis contendo valores informados pelo usurio:

Com a utilizao da funo addslashes() ser adicionada uma barra invertida antes de cada aspa simples e aspa dupla encontrada, processo conhecido como escape. Se a diretiva de configurao do PHP magic_quotes_gpc estiver ativada, o escape realizado automaticamente sobre os dados de COOKIES e dados recebidos atravs dos mtodos GET e POST. Neste caso, no deve ser efetuado o tratamento com addslashes(). A funoget_magic_quotes_gpc(), disponvel nas verses do PHP a partir da 3.0.6, retorna a configurao atual da diretiva magic_quotes_gpc. Abaixo, a query string resultante da aplicao do tratamento mencionado:

Muitos bancos de dados, existem funes especficas para o tratamento de variveis em query strings, o que diminui a compatibilidade do cdigo fonte para operao com outros sistemas de banco de dados. sempre bom evitar a exibio das mensagem de erro em um servidor de aplicao em produo, pois geralmente nos erros ou alertas so exibidos caminhos de diretrios do sistema de arquivos e informaes respeito do esquema do banco de dados, podendo comprometer a segurana do sistema. Para ocultar a exibio de erros e alertas do PHP, necessria a configurao da diretivadisplay_errors para Off no arquivo de configuraes do PHP. Onde cabe ao desenvolvedor estar atento s possveis brechas de segurana existentes nos cdigos fonte que produz, principalmente quando o que est em jogo um bem de grande valia: a informao. Tenha conscincia. Isto evita futuras dores de cabea e atritos desnecessrios com o cliente.

Etapa 04 Passo 02 AS MELHORES TCNICAS PARA TRABALHAR COM O RPC (Remote Procedure Call), Active X, Visando desenvolver cdigos seguros.O RPC (Remote Procedure Call) define um protocolo para execuo remota de procedures em computadores ligados em rede. O protocolo RPC pode ser implementado sobre diferentes protocolos de transporte. No cabe ao RPC especificar como a mensagem enviada de um processo para outro, mas somente especific-la (com XDR) e interpret-la. A sua implementao depende, portanto, de sobre qual protocolo de transporte vai operar. Sobre TCP No necessrio preocupar-se com time-outs, retransmisses, duplicatas. Sobre UDP necessrio preocupar-se com time-outs, retransmisses, duplicatas. Uma mensagem RPC tem trs campos inteiros: Remote Program Number; Remote Program Version Number; Remote Procedure Number. Alm, claro, dos parmetros especficos chamada. A operao do RPC pode ser descrita nos seguintes passos: Coleta os dados dos parmetros; Forma a mensagem; Envia a mensagem; Espera a resposta; Devolve a resposta atravs dos parmetros. Pode ser mantida a analogia entre chamadas remotas e as chamadas locais com as seguintes ressalvas: Manipulao de Erros Falhas no servidor remoto ou na rede devem ser explicitamente manipuladas quando usamos RPC; Variveis Globais Como o servidor no tem acesso ao lado cliente ( a seu espao de endereamento), no podemos usar variveis globais, somente parmetros. Performance Chamadas remotas operam normalmente a uma ou mais ordens de magnitude mais lentamente. Autenticao Pelo fato das chamadas remotas trafegarem sobre redes inseguras, a autenticao das mensagem pode (deve) ser necessria. ACTIVE X Os Componentes ActiveX tratam-se de objetos programados de acordo com o padro COM (Component Object Model) j mencionados. Este padro define uma serie de interfaces (servios) que os objetos devem implementar para que possam ser reutilizados em aplicaes diversas. O padro COM utiliza o formato de objetos OLE para implementar as suas interfaces. Os objetos ActiveX expem para o mundo externo um conjunto de atributos e operaes (servios) que ele pode realizar. Pelo fato de seguirem o padro COM eles podem ser executados em qualquer aplicao que suporte este padro. Hoje em dia, possvel utilizar objetos COM no Internet Explorer, Servidor WEB IIS ou no desktop do prprio WINDOWS. Nem todas as interfaces especificadas no padro COM so implementadas nos componentes ActiveX. Assim, estes tornam-se menores e mais rpidos, de forma que a sua transferncia na rede e execuo so otimizadas.

ActiveX Scripting podem ser embutidos em paginas HTML e seus atributos e servios podem ser acessados atravs das linguagens de script, como o VBScript. Os componentes ActiveX tambm podem ser utilizados no servidor WEB atravs das linguagens de script. A diferena maior entre os componentes ActiveX que rodam no browser dos que rodam no servidor que os primeiros podem possuir interface com o usurio, enquanto que os ltimos no devem possuir este recurso. Cada objeto ActiveX, inserido em uma pagina HTML, recebe uma identificao e acessado pelo VBScript atravs desta identificao, assim como qualquer campo de um formulrio. O tratamento dos eventos que ocorrem nos componentes ActiveX tambm pode ser feito em VBScript na prpria pagina HTML. O tratamento destes eventos similar ao tratamento de eventos no Visual Basic: basta definirmos funes que tenham o mesmo nome do componente seguido do evento a ser tratado. O objeto acima identificado pelo nome CommandButton3. A funo abaixo trata o evento do clique do mouse sobre o boto. Carga de Componentes ActiveX encontrado em uma pagina HTML, o browser verifica se aquele componente j encontra-se instalado na maquina do cliente e se a verso existente compatvel com a verso especificada na pagina. Se estas condies so satisfeitas, o browser utiliza o componente j instalado, sem a necessidade de transferncias pela rede. Caso contrario, o browser inicia a transferncia do objeto. Os componentes ActiveX podem ser disponibilizados em arquivos DLL (Bibliotecas de Ligao Dinmica) ou arquivos OCX (ActiveX Component Object). Este arquivo instalado na maquina do usurio, e o objeto instanciado e colocado na apresentao da pagina HTML. Os componentes ActiveX podem realizar qualquer operao na maquina do usurio. Por isto, algumas medidas de segurana devem ser tomadas para evitar possveis desastres. Os componentes ActiveX possuem uma assinatura que identifica a sua procedncia. O usurio tem a capacidade de aceitar ou rejeitar componentes ActiveX de procedncia duvidosa. Este controle feito atravs de opes de configurao do browser. Caractersticas Principais dos Componentes ActiveX Os componentes ActiveX podem ser implementados em qualquer linguagem de programao, seja JAVA, C++ ou Visual Basic, desde que atendam aos padres especificados e implementem as interfaces necessrias. Os componentes ActiveX podem ser reutilizados em inmeras aplicaes, trazendo vantagens no s no desenvolvimento de software, como tambm na sua manuteno. O desenvolvimento de aplicaes tende a tornar-se uma atividade de reutilizao do que de criao de novos componentes. A manuteno destes sistemas pode ser feita de forma localizada atravs da alterao de seus componentes. A alterao de um componente que utilizado em varias aplicaes faz com que todas as aplicaes sejam automaticamente atualizadas. O browser garante que sero utilizadas sempre as ultimas verses de cada componente. Os componentes ActiveX podem ser distribudos pela rede e utilizados como se fossem objetos locais. O padro DCOM (Distributed Component Object Model) especifica as interfaces que os objetos devem implementar para poder funcionar de forma distribuda. A localizao dos objetos na rede dever ser transparente para as aplicaes que os utilizam. Cada componente ActiveX pode ser especializado para a realizao de atividades referentes a cada um dos nveis da arquitetura cliente servidor multitier. Podemos ter componentes que implementam servios de interface, lgica de negcios e acesso aos dados. Os componentes de interface so objetos com representao visual para interao com o usurio. Os objetos de interface sero utilizados no browser. Os objetos que implementam a lgica do negocio sero utilizados por diversas aplicaes, pois neles que reside a "inteligncia" dos programas. Alteraes nas regras do negocio da empresa devero ser feitas nestes objetos e estaro, automaticamente, disponveis para todas as aplicaes. Os objetos de negocio podero residir no browser, no servidor Web ou podero estar distribudos pela rede. Os objetos que implementam o acesso aos dados devero esconder os detalhes de formato do armazenamento dos dados para os objetos de negocio, que sero os seus principais usurios. Os dados podero vir de fontes diversas, tais como bancos de dados relacionais, arquivos texto, arquivos VSAM e outros, de forma transparente. Os objetos de acesso aos dados podero residir no servidor WEB ou podero estar distribudos pela rede.

JAVA uma linguagem de programao orientada a objetos que permite a criao de aplicaes que so independentes de arquitetura. Ou seja, possvel executar o mesmo programa JAVA (cdigo binrio) em maquinas com hardware e sistemas operacionais diferentes. Uma aplicao em JAVA executa em cima de uma maquina virtual, que chamada de Java Virtual Machine. A maquina virtual JAVA especifica os componentes de um computador, incluindo memria, registradores, pilha, etc. Os programas em JAVA, quando compilados, geram cdigo que seria executado nesta maquina. Este cdigo compilado conhecido como byte code (Java Byte Codes). Como no existe nenhum hardware que seja igual `a maquina virtual JAVA, esta maquina implementada em software e embutida nos principais browsers da atualidade. Existem tambm implementaes da maquina virtual JAVA, independente de browsers, para diversas plataformas. Isto faz com que um programa JAVA execute hoje nas principais plataformas existentes. Para encaixar as applets JAVA (aplicaes em JAVA que rodam em um browser) no paradigma ActiveX, elas esto sendo tratadas como componentes ActiveX. As applets podem ter atributos e operaes disponveis para ser utilizadas pelas linguagens de script. At aqui, foram discutidos os elementos que esto presentes do lado do cliente WEB, o browser. Foram vistas as linguagens de script, representadas pelo VBScript, os componentes ActiveX e as applets JAVA. A partir da prxima seo, sero vistos os elementos que trabalham do lado do servidor para compor as aplicaes WEB. Passo 03 TCNICAS POSSVEIS UTILIZADAS PARA EVITAR ATAQUE DDOS O que um ataque DDOS? Ataques do tipo DoS (Denial Of Service) tambm conhecidos como negao de servio, consistem em uma sobrecarga de um servidor ou computador comum, evitando que o mesmo atenda aos seus clientes, para fazer essa sobre carga, so usadas tcnicas em que o atacante, no caso um hacker ou cracker, envie diversos pedidos de pacotes para o alvo de tal forma que o mesmo fique sobrecarregado e no consiga responder a mais nenhum pedido de pacote, dessa forma usurios comuns no conseguiro mais acessar os dados do servidor por ele no responder mais a pedidos. Exemplificando de forma ilustrativa, imagine uma loja em que voc sempre vai, essa loja tem uma certa capacidade de clientes que ela pode abrigar em seu espao e que ela possa atender ao mesmo tempo. Em dias normais voc vai at a loja, compra o que quer e vai embora. Agora imagine vrias e vrias pessoas entrando nessa mesma loja, ao mesmo tempo, apenas para pedir diversas informaes sobre os produtos de forma que a loja fique extremamente lotada, se isso acontecer, voc no vai conseguir entrar na loja, ou se conseguir entrar, no conseguir pedir informaes e nem comprar nada, mais ou menos isso que ocorre em um ataque DoS. No caso de ataques DoS, existe apenas um atacante, ou seja, um nico computador faz vrios pedidos de pacotes para o alvo, sendo assim, o atacante poder derrubar apenas servidores fracos ou computadores comuns sem muito preparo e com pouca banda. Existem diversas ferramentas que conseguem fazer pedidos contnuos de pacotes de vrios protocolos, uma dessas ferramentas a T50 Sukhoi PAK FA Mixed Packet Injector, desenvolvida por um brasileiro (Nelson Brito), com essas ferramentas o atacante pode fazer o ataque ao servidor. O que DDoS? Os ataques DoS so feitos por um atacante, por isso quase impossvel derrubar um servidor robusto, ai que entra o DDoS (Distributed Denial Of Service). Os ataques do tipo DDoS consistem em vrios computadores fazendo um ataque DoS ao mesmo tempo contra o mesmo alvo, ou seja, alm do computador do atacante, vrios outros computadores faro o mesmo ataque ao servidor alvo. Para conseguir fazer com que vrios computadores ataquem um mesmo alvo, os hackers e crackers infectam vrios computadores com trojans que contm o programa utilizado para o ataque DoS mesclado,

dessa forma, assim que o atacante der uma ordem, todos os computadores infectados iro atacar o mesmo alvo, ao mesmo tempo. Os computadores que so infectados por hackers e utilizados para ataques DDoS so chamados de zumbis. Antigamente os Hackers e Crackers preferiam infectar servidores, para ataques DDoS, mas com a evoluo da banda larga e a popularizao da mesma entre usurios domsticos, hoje em dia mais vivel para um hacker ou cracker, infectar computadores domsticos, por ser mais fcil e por ter 80% de chances do computador ter uma banda larga de pelo menos 1 MB. Um exemplo da hierarquia de um ataque DDoS:

O atacante o mais alto na hierarquia, ele que da ordem de ataque para os computadores mestres, essa ordem consiste em ip ou domnio do alvo e informaes extras como horrio do ataque, quantidade de solicitaes de pacotes, tamanho de pacotes, etc. Os computadores mestres repassam a ordem de ataque para o seu grupo de zumbis, feito isso os zumbis fazem o ataque. Essa hierarquia tem como objetivo dividir o servio e esconder o atacante, no caso do exemplo acima, ao invs do atacante dar 6 ordens de ataque para os zumbis, ele da apenas 2 para os mestres que do outras trs para os seus zumbis. Como so vrios zumbis atacando um mesmo alvo e por trs deles ainda h um mestre, quando um ataque DDoS ocorre quase impossvel descobrir quem o verdadeiro autor do ataque, por isso na maioria das vezes o hacker ou cracker sai impune. Hoje em dia grupos hackers mantm grandes redes com mais de 1 milho de computadores zumbis, prontos para receberem ordens e atacarem um alvo em especifico, essas redes so chamadas debotnets e crescem a cada dia com a infeco de outros computadores que se juntam a rede de zumbis. Com o ataque de vrios computadores zumbis, por exemplo 1 milho deles, at mesmo um servidor robusto no agentaria as solicitaes de todos os zumbis + os usurios comuns, ento o servidor acaba caindo. Em 2010 empresas grandes foram alvos de ataques DDoS como a Visa, Mastercard e Paypal. Nesse ano (2011) vrios sites do governo brasileiro sofreram esse mesmo tipo de ataque e ficaram fora do ar. Tanto em casos de ataques DoS quanto ataques DDoS, os atacantes no conseguem obter acesso a base de dados ou arquivos do servidor alvo, esses ataques tem como finalidade apenas derrubar o servidor sobrecarregando-o. Como saber se o meu computador um zumbi?

Os trojans que so usados para tornar computadores zumbis, no so comuns e fceis de ser de detectados quanto os trojans ultrapassados que tem na Internet, ao contrrio, eles so bem sofisticados e utilizam tcnicas para se esconder dos antivrus e anti-spywares, por tanto mesmo com um bom antivrus o seu computador ainda pode se tornar um zumbi. Para saber se o seu computador um zumbi ou no, voc precisa ficar de olho no trfego da sua rede. Veja abaixo alguns sintomas de um computador zumbi: O computador fica enviando pacotes sem que o usurio esteja acessando algum servio da Internet. O computador fica baixando pacotes sem que o usurio tenha autorizado. Internet lenta mesmo sem estar fazendo tarefas simultneas na Internet. Computador lento sem estar sendo usado Algumas medidas que podem evitar que o seu computador se torne um zumbi: Desligar o computador quando no estiver utilizando-o. Usar um bom Firewall (recomendo o COMODO). Usar um bom antivrus (melhor com do que sem ). Nunca baixar arquivos de sites suspeitos. Nunca baixar arquivos anexos a emails de remetentes que voc no conhea. Tomar cuidado com os arquivos baixados por torrent ou compartilhadores P2P. Como se prevenir? At o momento no existe uma "soluo mgica" para evitar os ataques DDoS, o que sim possvel aplicar certas estratgias para mitigar o ataque, este o objetivo desta seo. Dentre as estratgias recomendadas pode-se considerar as seguintes: Incrementar a segurana do host Sendo que a caracterstica principal deste ataque a formao de uma rede de mquinas comprometidas atuando como masters e agentes, recomenda-se fortemente aumentar o nvel de segurana de suas mquinas, isto dificulta a formao da rede do ataque. Instalar patches Sistemas usados por intrusos para executar ataques DDoS so comumente comprometidos via vulnerabilidades conhecidas. Assim, recomenda-se manter seus sistemas atualizados aplicando os patches quando necessrio. Aplicar filtros "anti-spoofing" Durante os ataques DDoS, os intrusos tentam esconder seus endereos IP verdadeiros usando o mecanismo de spoofing, que basicamente consite em forjar o endereo origem, o que dificulta a identificao da origem do ataque. Assim, se faz necessrio que: Os provedores de acesso implementem filtros anti-spoofing na entrada dos roteadores, de modo que ele garanta que as redes dos seus clientes no coloquem pacotes forjados na Internet. As redes conectadas Internet, de modo geral, implementem filtros anti-spoofing na sada dos roteadores de borda garantindo assim que eles prprios no enviem pacotes forjados na Internet. Limitar banda por tipo de trfego Alguns roteadores permitem limitar a banda consumida por tipo de trfego na rede. Nos roteadores Cisco, por exemplo, isto possvel usando CAR (Commited Access Rate). No caso especfico de um ataque DDoS que lana um flood de pacotes ICMP ou TCP SYN, por exemplo, voc pode configurar o sistema para limitar a banda que poder ser consumida por esse tipo de pacotes. Prevenir que sua rede seja usada como "amplificadora" S endo que algumas das ferramentas DDoS podem lanar ataques smurf (ou fraggle), que utilizam o mecanismo de envio de pacotes a endereos de broadcasting, recomenda-se que sejam implementadas em todas as interfaces dos roteadores diretivas que previnam o recebimento de pacotes endereados a tais endereos. Isto evitar que sua rede seja usada como "amplificadora". Estabelecer um plano de contingncia Partindo da premisa que no existe sistema conectado Internet totalmente seguro, urge que sejam

considerados os efeitos da eventual indisponibilidade de algum dos sistemas e se tenha um plano de contingncia apropriado, se necessrio for. Planejamento prvio dos procedimentos de resposta Um prvio planejamento e coordenao so crticos para garantir uma resposta adequada no momento que o ataque est acontecendo: tempo crucial! Este planejamento dever incluir necessariamente procedimentos de reao conjunta com o seu provedor de backbone. Como reagir? Se ferramentas DDoS forem instaladas nos seus sistemas Isto pode significar que voc est sendo usado como master ou agente. importante determinar o papel das ferramentas encontradas. A pea encontrada pode prover informaes teis que permitam localizar outros componentes da rede de ataque. Priorize a identificao dos masters. Dependendo da situao, a melhor estratgia pode ser desabilitar imediatamente os masters ou ficar monitorando para coletar informaes adicionais. Se seus sistemas forem vtimas de ataque DDoS O uso do mecanismo de spoofing nos ataques DDoS dificulta em muito a identificao do atacante. Assim, se h um momento em que pode-se fazer um backtracing e chegar ao verdadeiro responsvel no exato momento em que est ocorrendo o ataque. Isto significa que imprescindvel a comunicao rpida com os operadores de rede do seu provedor de acesso/backbone. Considere que, devido magnitude do ataque, no recomendvel confiar na conectividade Internet para comunicao durante um ataque. Portanto, certifque-se que sua poltica de segurana inclua meios alternativos de comunicao (telefone celular, pager, sinais de fumaa, etc). Mas, por favor, aja rpido, tempo crucial! Consideraes finais No existe "soluo mgica" para evitar os ataques DDoS, no com a tecnologia atual. No lugar, existem certas estratgias que podem ser aplicadas pelos administradores e gerentes de rede para mitig-lo. Sem dvida, sem se conhecer o que acontece nos bastidores ser uma tarefa difcil. Assim, o motivo deste artigo foi justamente desmistificar o ataque de modo que estes profissionais, conhecendo melhor o inimigo, se preparem melhor para combat-lo. Passo 04 Relatrio 5: Evitando ataques RPC E DDOS A segurana de redes passou a fazer parte da ordem do dia na imprensa falada e escrita. Na pauta das conversas nos cafs e esquinas das cidades tornou-se comum falar sobre os hackers, os mais recentes ataques que deixaram inacessveis alguns dos mais famosos web sites, e at mesmo se ouvia falar em ataques de "negao de servio" (Denial of Service, DoS). Os ataques DoS so bastante conhecidos no mbito da comunidade de segurana de redes. Estes ataques, atravs do envio indiscriminado de requisies a um computador alvo, visam causar a indisponibilidade dos servios oferecidos por ele. Fazendo uma analogia simples, o que ocorre com as companhias de telefone nas noites de natal e ano novo, quando milhares de pessoas decidem, simultaneamente, cumprimentar meia-noite parentes e amigos no Brasil e no exterior. Nos cinco minutos posteriores virada do ano, muito provavelmente, voc simplesmente no conseguir completar a sua ligao, pois as linhas telefnicas estaro saturadas. Ao longo do ltimo ano, uma categoria de ataques de rede tem-se tornado bastante conhecida: a intruso distribuda. Neste novo enfoque, os ataques no so baseados no uso de um nico computador para iniciar um ataque, no lugar so utilizados centenas ou at milhares de computadores desprotegidos e ligados na Internet para lanar coordenadamente o ataque. A tecnologia distribuda no completamente nova, no entanto, vem amadurecendo e se sofisticando de tal forma que at mesmo vndalos curiosos e sem muito conhecimento tcnico podem causar danos srios. A este respeito, o CAIS tem sido testemunha do crescente desenvolvimento e uso de ferramentas de ataque distribudas, em vrias categorias: sniffers, scanners, DoS.

Seguindo na mesma linha de raciocnio, os ataques Distributed Denial of Service, nada mais so do que o resultado de se conjugar os dois conceitos: negao de servio e intruso distribuda. Os ataques DDoS podem ser definidos como ataques DoS diferentes partindo de vrias origens, disparados simultnea e coordenadamente sobre um ou mais alvos. De uma maneira simples, ataques DoS em larga escala. Os primeiros ataques DDoS documentados surgiram em agosto de 1999, no entanto, esta categoria se firmou como a mais nova ameaa na Internet na semana de 7 a 11 de Fevereiro de 2000, quando vndalos cibernticos deixaram inoperantes por algumas horas sites como o Yahoo, EBay, Amazon e CNN. Uma semana depois, teve-se notcia de ataques DDoS contra sites brasileiros, tais como: UOL, Globo On e IG, causando com isto uma certa apreenso generalizada.

Etapa 05 Passo 02 Buffer OverFlow: Buffer overflow ou Buffer overrun acontece quando o tamanho de um buffer ultrapassa a sua capacidade mxima de armazenamento.

SQL Injection SQL injection um tipo de ataque muito simples, baseia-se na execuo de comandos SQL. Comandos de manipulao de dados - DML (select, insert, update, delete) ou comandos de definio de dados - DDL ( create, drop, alter). Os comandos so injetados em campos de formulrios que so disponibilizados para o usurio inserir/tratar informaes.

XSS (Cross Site Scripting) Uma falha no servidor que leva a um comprometimento do cliente. A falha simplesmente ecoar input do usurio sem uma validao adequada.

Por que teste de seguranas?

* Os teste "tradicionais" buscam avaliar as funcionalidades do software. * Testes de segurana buscam garantir: - No repudio - Controle de acesso adequado - Que informaes no sejam "vazadas". O papel do testador de segurana? * Participar de todo o processo de desenvolvimento de software * Ter capacidade tcnica e conhecimento de segurana para testar software * Acompanhar o desenho e implementao dos controles para garantir a segurana do software * Atestar que o software est pronto para ser distribudo. Abordagens para teste de segurana? * White-Box * Black Box * Fuzzing White - Box Teste onde o testador tem amplo conhecimento do software e acesso a cdigo fonte Vantagens * Permite um teste completo de todas as caractersticas do software Desvantagens * O teste pode ficar invivel com um nmero grande de linhas de cdigo. Black Box Teste onde o testador tem o mesmo conhecimento e privilgios de acesso de um usurio comum. Vantagens * Pode ser executado sem acesso a "solution" (cdigo fonte compilvel) * possvel testar controles em "run-tyme"

Desvantagens * O testador necessita de conhecimentos avanados em segurana de software * Pode ser necessrio realiazar um engenharia reversa do software Fuzzing * Tcnica para injeo de falhas * Escalvel - Funciona com qualquer linguagem * Verstil - Host ou rede

Passo 03 BIOS o Sistema Bsico de Entrada/Sada ("Basic Input/OutputSystem") o sistema de ativao de entradas e sadas, ou seja, o programa bsico do computador, encarregado de ativar seus recursos como processador, placa de vdeo, unidades de disco (disco rgido, CD, disquete, Pendrive) mouse, teclado, monitor, memria. Portanto, o BIOS inicializa todos os dispositivos bsicos do sistema e, logo a seguir entrega o comando ao sistema operacional.

O BIOS gravado em memria ROM, pois, logo que se liga o computador o microprocessador ainda no pode dispor de seus recursos bsicos, assim o BIOS gravado em memria permanente e programado em cdigo de mquina, de modo a inicializar o computador, sem depender de qualquer outro programa. Para manter as configuraes da BIOS, uma bateria de nquel-cdmio ou de ltio usada. Portanto, mesmo com o computador desligado, o relgio e as configuraes de hardware so mantidos ativos. Assim, ao ligar o computador o BIOS executa o auto teste inicial do sistema. Boot - a inicializao do sistema A palavra "boot", (em ingls = botina) aplicada ao procedimento de inicializao do sistema operacional, pois h um ditado nos E.U.A."Rising oneself up pulling their own bootstraps" que significa levantar-se puxando para cima os cordes das prprias botinas. Ou seja, algum que consegue realizar uma tarefa muito difcil sozinha, sem qualquer ajuda externa. O computador executa ao semelhante ao ser ligado: por si mesmo aciona seus circuitos, testa cada um deles, carrega o sistema operacional e se pe disposio do usurio, sem ajuda externa. Na mesma memria ROM onde o BIOS fica armazenado, tambm esto mais dois programas: o Setup e o POST. O Setup um programa de configurao do BIOS, que permite configurar parmetros como ordem de boot, tamanho dos discos instalados... A seguir o POST ("Power On Self Test") faz um auto teste de partida, ou seja executa uma srie de testes sempre que se liga o sistema, inclusive o teste de contagem de memria. Se tudo estiver em ordem, o sistema operacional carregado. E, s ento, so carregados os drives e programas auxiliares. (Os drives so extenses do sistema operacional que se destinam a controlar equipamentos e placas). Depois que os recursos bsicos foram ativados pelo BIOS e testados pelo POST o computador fica com o microprocessador disponvel para receber instrues e execut-las. Com o sistema operacional carregado o computador est pronto para executar os comandos e tambm os outros programas. Sistema Operacional O sistema operacional (S.O.) uma espcie de base sobre a qual so executados diversos programas utilizados por um computador. Em portugus europeu denominado sistema operativo. o intermedirio, a interface entre o hardware e o software, ou seja, entre os componentes fsicos do computador com os programas. Essa uma perspectiva do usurio ou do programador (viso "top-down" de cima para baixo). J em uma perspectiva de baixo para cima (viso "bottom-up") um gerenciador de recursos, ou seja, controla quando e quais recursos (memria, disco, perifricos) podem ser utilizados. E quais aplicaes (processos) podem ser executadas. Na prtica, o sistema operacional consiste de uma srie de programas gravados no disco rgido que so carregados na memria (ou seja, so levados memria RAM) e so executados ( "rodam" ) assim que o computador ligado. Portanto, logo que o sistema operacional entra em funcionamento feito um ajuste e, tambm, a verificao de todos os perifricos existentes. Ento, o sistema fica esperando comandos do usurio. Ao emitir um comando desencadeia-se a execuo de tarefas bem determinadas (exemplos: ler a tecla pressionada no teclado, gravar na memria de vdeo o cdigo de um caracter, transferir um arquivo de uma mdia externa (por exemplo: um disquete, um CD ou de um pendrive) para a memria principal, apagar um byte gravado na memria etc.) O S.O. uma plataforma sobre a qual se pode executar vrios tipos de programas, como aplicativos e jogos. Assim, um sistema operacional utilizado para operar e gerenciar a ao dos outros programas e coorden-los com a atividade do equipamento, inclusive os perifricos (teclado, monitor, mouse, impressora...). Portanto, o S.O. que recebe as ordens do usurio, traduzindo-as para uma linguagem compreensvel pelo computador. Ele tambm traduz, em uma linguagem mais acessvel, a resposta da mquina aos comandos do usurio. Ou seja, o sistema operacional pode ser considerado um intrprete entre o usurio e o computador, alm de ser um gerenciador das atividades realizadas pela mquina. Atualmente so usadas interfaces grficas, ou seja, na tela do sistema aparecem imagens (cones)

que, quando clicadas, do acesso a funes de programas instalados e do sistema, por meio do teclado ou de simples cliques de mouse. Portanto, a funo de um S.O. controlar todos os equipamentos instalados na mquina, permitindo que se possa executar as tarefas bsicas de um computador, por meio da ativao de elementos na tela, tais como: cones, opes de menus, janelas, opes em janelas etc. Alguns exemplos de sistema operacional so: Linux (em suas vrias distribuies: Debian, Conectiva, Mandrake, Red Hat, Kurumin, Ubuntu , SUSE, ...), OS/2, Windows (verses 95, 98, ME, 2000, XP, Vista), DOS, etc. Processamento e classificao Se considerarmos o processamento, pode-se classificar os computadores de acordo com: 1. Quantidade de processos simultneos Mono tarefa: pode executar apenas um processo em cada vez. Exemplo: DOS. Multitarefa: diversos processos de utilizador (tarefas) so carregados em memria alm do S.O. Nesse caso, o compartilhamento de tempo no processador distribudo. Assim, como o computador trabalha muito rapidamente, o usurio tem a impresso que vrios processos esto sendo executados simultaneamente. Mas um dos processos ocupa o processador enquanto os outros ficam enfileirados, aguardando a sua vez. Exemplos: OS/2, Windows, Linux, FreeBSD e o Mac OS X. Multiprocessamento: o S.O. distribui as tarefas entre dois ou mais processadores. Multiprogramao: o S.O. mantm o processador sempre ocupado, dividindo o tempo de processamento entre diversos processos. 2. Arquitetura Tanenbaum (1999) classificou os computadores de acordo com seu projeto ( ou arquitetura): Kernel monoltico ou monobloco: H um nico processo sendo executado em uma memria protegida (espao do kernel) executando as principais funes. Exemplo: Linux, OS/2, FreeBSD, Windows. Microkernel ou modelo cliente-servidor: Funes mnimas, como comunicao e gerenciamento de processos so controladas no ncleo. Outras funes, como sistemas de arquivos e gerenciamento de memria, so executadas no espao do usurio como servios; as aplicaes (programas) so os clientes. Exemplo: GNU Hurd, Mach. Sistema em camadas: H nveis de privilgio de prioridade de execuo dos processos, definidos por camadas. Exemplo: Multics. Monitor de mquinas virtuais: fornece uma abstrao do hardware para vrios sistemas operacionais. Exemplo: VM/370, VMware, Xen. Nomenclatura Alguns nomes so utilizados para dar nfase a programas teis. Utilitrios So programas que atuam sobre o sistema operacional para melhorar o desempenho dos mesmos ou lhes incluir novos recursos, ou seja, ampliam os recursos do sistema facilitando o uso e auxiliando a manuteno de programas. Administram o ambiente oferecendo possibilitando que o usurio organize os discos, verifique a memria, corrija falhas, etc. Exemplos: Formatadores; Programas de backup; Compactadores, Desfragmentadores, Antivrus, Editores de texto, etc.

Softwares aplicativos O sistema operacional pode ser comparado com um palco, em que os aplicativos, que so os atores, atuam. So esses programas que executam as funes desejadas pelo usurio. Sem eles o sistema operacional no passa de um conjunto de drivers e bibliotecas, sem qualquer utilidade prtica. Portanto, os aplicativos so programas especficos para resolver diferentes tarefas par o usurio, como: acessar a internet, enviar e resceber mensagens, criar e editar textos, planilhas e apresentaes etc... Os aplicativos so criados e comercializados por empresas especializadas, que os desenvolvem especificamente para um determinado sistema operacional, por exemplo, h um BrOffice.org para Linux e outro BrOffice.org para Windows. Os aplicativos podem ter utilizao: Geral: so programas que tem vrios tipos de finalidades. Exemplos: editores de texto, como o Writer; grficos e planilhas, como o Calc, apresentao, como o Impress; navegadores, como o Firefox, e a sute Mozilla e gerenciadores de banco de dadosetc... Vrios desses programas, gratuitos ou ad-wares so comentados aqui. (Na pgina que se abrir procure o programa desejado). Especfica: destinam-se exclusivamente a uma nica finalidade. Exemplos: folhas de pagamento, credirio, imposto de renda, cadastro, contas a pagar e receber, etc. PlugIns e AddOns Os plugIns so programas que funcionam anexados a outros programas. Suas caractersticas tornam possvel visualizar vrios tipos de arquivos (geralmente de multimdia como os formatos de vdeo: Avi, Mov, Mpeg, Flash, de som: mp3, midi, apresentaes multimedia). So muito comuns aqueles que so anexados aos navegadores (como o Firefox, sute Mozilla, Netscape, Internet Explorer, Opera etc). Alis alguns plugIns j vm incorporados com o navegador. Assim, quando se acessa um endereo da Internet (htttp://...) e no possvel visualizar ou escutar alguns dos tems ali expostos, certamente, est faltando instalar algum plugin, para visualizar corretamente o contedo da pgina. Eis alguns plugIns muito usados e suas funes: Plugins Adobe Acrobat Reader ( sugesto se substituio: Foxit ) Crescendo Macromedia Flash QuickTime, Quick Time Alternativo Real Player Alternativo Permite: visualizao de arquivos PDF (Portable Document Format). insero de arquivos MIDI em pginas, na Internet. visualizao de pginas feitas parcialmente ou inteiramente em Flash. visualizao de vdeos em vrios formatos, inclusive o mov. execuo de sons e vdeos em tempo real.

Exemplo: "Streaming" uma tecnologia que possibilita a compresso de arquivos de vdeo ou de udio, de modo que eles possam ser visualizados ou ouvidos enquanto vo sendo copiados, no necessitando que o download do arquivo se complete para iniciar a sua execuo. Os Plug-ins necessrios podem ser o Real Player, o VivoActive, o VDO Live, o Crescendo, etc. Um AddOn um programa que adiciona novas funes a um navegador. Exemplo: o navegador Firefox admite vrias extenses (pequenos programas que lhe do mais recursos). Atualizao automtica

Evidentemente a Internet tornou-se o meio mais eficiente e rpido para efetuar atualizaes de verses de qualquer documento eletrnico baseado em arquivos, como sistema operacional, antivrus, navegador, textos, planilhas, apresentaes etc... Devido necessidade de manter esses arquivos sempre atualizados, surgiram ferramentas que fazem a atualizao (update) de modo automtico e frequente, facilitando a vida do usurio, que no precisa se lembrar de faz-las e nem de comandar o processo. Assim, a atualizao automtica feita por um programa instalado no computador do usurio, que deve estar conectado Internet para que esse software possa conectar-se a um servidor que contenha um repositrio dos novos arquivos. Entretanto, a atualizao de arquivos uma tarefa que exige um controle de verses, pois nada pode ser atualizado com verses anteriores ou incompatveis. Um outro problema a segurana, pois esses arquivos podem percorrer grandes distncias e ficar vulnerveis a ataques de vrus, que podem alter-los para propagar programas mal intencionados. Programas como o Mozilla Firefox, e suas extenses, o Mozilla Thunderbird, o BrOffice.org, j trazem recursos de atualizao automtica. Spyware Muitos proprietrios dos direitos de programas inserem "banners" comerciais para ganhar dinheiro com a publicidade. Eles podem disparar uma srie de pop-ups e mensagens indesejadas, deixando a mquina cada vez mais lenta. Assim, Adware("Advertising Supported Software") uma aplicao que submete o usurio publicidade no solicitada. Tambm podem fazer surgir barras no navegador sem sua autorizao, pginas de busca que voc no escolheu, janelas de sites que abrem sozinhas, alterar a pgina inicial do navegador, e causar lentido e/ou travamento do navegador. Nesses programas, que exibem propagandas nas telas dos computadores, comum que banners clicveis fiquem piscando at que se compre algo. Ao clicar um deles, o usurio levado para uma certa oferta e pode ou no comprar algum produto ou servio. Para efetivar a compra, dever informar seu nome, endereo, telefone, e-mail e/ou outros dados pessoais. Spyware um programa que recolhe essas informaes sobre o usurio, sobre seus costumes na Internet e transmite esta informao a uma terceira pessoa, ou empresa que as comercializam, sem o conhecimento e autorizao da primeira. Isso ocorre com frequncia. Apesar de ser uma prtica extremamente anti-tica, considerada legal. Outra preocupao que muitos vrus transportam spywares, que objetivam roubar certos dados confidenciais dos usurios. Podem roubar logins bancrios, montar e enviar histricos sobre as atividades do usurio, roubar certos arquivos ou outros documentos pessoais. Assim, em muitos programas freewares e sharewares so embutidos, alm dos banners pulicitrios, programinhas que se encarregam de coletar e enviar as informaes desejadas a terceiros. Note-se que um Adware pode se constituir em umSpyware, pois, por exemplo, falsrios utilizam tais programas para roubar senhas e dados pessoais. Aureate, TimeSink, Comet Cursor, Cydoor, Web3000 e outros so exemplos desses aplicativos "phone home", programas que depois de instalados, se conectam algum ou empresa que os criou, invadindo a privacidade do usurio. Note-se que adwares nem sempre so necessariamente maliciosos. Mas o seu funcionamento o principal problema. Por exemplo: - Vrios usam nomes aleatrios para dificultar sua remoo. - Outros no incluem uma entrada funcional no "Adicionar/Remover Programas" do painel de controle do Windows, o que faz com que sua identificao seja difcil e a sua remoo complicada. Mas, ao contrrio dos spywares, adwares no possuem qualquer uso a no ser suportar os programas instalados no computador. Assim, spyware o nome de programas de computador que recolhem informao pessoal do internauta sem o seu consentimento. O software se auto-instala sem aviso prvio, portanto, sem que o usurio sequer saiba que ser instalado em sua mquina. Depois, se auto executa sempre que o usurio se conecta web, monitorando, capturando e enviando dados sobre os hbitos de navegao para terceiros, ou seja, para servidores onde os dados so armazenados para fins criminosos ou comerciais, sem autorizao. Mesmo se tiver apenas objetivos comerciais ou publicitrios o spyware malfico: quando as

informaes so utilizadas para esses fins, o volume de e-mails recebidos em forma de spam (envio de informaes no solicitadas) cresce vertiginosamente. Os "spywares" chegam ao computador por meio de vrus, ou de arquivos contidos em e-mail ou por download de jogos e de outros programas como GetRight, Gozilla, KaZaa, Grokster. imporante notar que se o spyware for removido alguns desses programas podem no funcionar mais. H outro problema: esse tipo de programa pode deixar o computador mais lento, travar sistemas e lotar a tela com propaganda indesejada. Programas como o Spybot e o Adware auxiliam na remoo de spywares Passo 04 A execuo de um conjunto de operaes mediante todas as entradas possveis. Os resultados obtidos so comparados com os previstos. Pode dar muitos casos de erros, mas no tipicamente no so crticos. Execuo de determinadas operaes com uma combinao especial de entradas. Pode no dar nenhum problema em 99,9% dos casos, mas quando d, dramtico! Copyright Critical Software S.A. 1998-2004 All Rights Reserved. Testes funcionais: Permitem aumentar a confiana no cumprimento dos requisitos (funcionais) do software.

Devem mostrar duas coisas: Que a aplicao faz o que deve fazer Que a aplicao no faz o que no deve fazer Copyright Critical Software S.A. 1998-2004 All Rights Reserved. Reduzem as dvidas sobre a vulnerabilidade do software. No se sabe bem o que devem mostrar. Os testes de segurana devem validar requisitos de segurana. No fcil definir requisitos de segurana. Copyright Critical Software S.A. 1998-2004 All Rights Reserved. Ao contrrio dos testes funcionais em que as entradas e sadas esto bem definidas (2+2=4), nos testes de segurana estamos procura de um comportamento anmalo que no sabemos quando acontece. H uma combinao muito especfica de valores de entrada que activa uma falha de segurana (cavalo de tria, por exemplo). Onde podemos dividir os componentes fundamentais de uma organizao em trs: deciso,

Testes de segurana:

Testes de segurana

informao e operao, que em sentido amplo se designam por processadores devido a sua estrutura ativa e relacionada

Bibliografia

http://www.techoje.com.br http://www.vivaolinux.com.br http://professor.ufabc.edu.br http://www.compsociedade.hpg.com.br http://www.devmedia.com.br http://blog.thiagobelem.net http://www.revistaphp.com.br http://eufacoprogramas.com/desenvolvimento/net-como-evitar-sql-injection/


http://maycon.hacknroll.com/docs/Apostila%20-%20Seguran%C3%A7a%20em%20Web%20(Sem %20Revisao).pdf

http://technet.microsoft.com/pt-br/security/bulletin/ms07-058

You might also like