Pesquisar este blog

segunda-feira, 3 de junho de 2013

Prevenindo ataques de html injection


Em qualquer aplicação web que desenvolvemos é comum receber dados dos usuários, armazenar no servidor para depois exibi-los a outros usuários. Um CRUD simples, certo? Apesar de simples, uma implementação ingênua pode apresentar uma vulnerabilidade grave e muito explorada por usuários mal intencionados na web: o HTML injection.
Vamos supor que nossa aplicação é um fórum onde os usuários criam posts, cada post tem um título e um texto com a descrição. De maneira simplificada, nosso formulário poderia ser assim:
<form action="/posts" method="post">
<input type="text" name="titulo">
<textarea name="descricao"></textarea>
</form>
No servidor, poderíamos simplesmente receber o post e salva-lo no banco:
@Post("/posts")
public void salva(String titulo, String descricao) {
  postDAO.salva(new Post(titulo, descricao);
}
E depois exibir um post para outros usuários que visitassem o site, com a seguinte jsp:
<h1>${post.titulo}</h1>
<div>${post.descricao}</div>
Uma aplicação simples como essa já está sujeito a ataques de HTML injection. Se o usuário colocasse na descrição de seu post qualquer texto contendo código html como<script>alert("olá");</script>, esse código seria executado no navegador de todos os visitantes do seu post, possibilitando ataques de XSS. Por esse motivo, você nunca deve confiar em dados inseridos pelo seu usuário.
Primeira tentativa: escapando todos os dados
A primeira solução é simples. Usando jsp e a jstl, podemos simplesmente escapar os dados inseridos pelo usuário. Nossa jsp com o seguinte código:
<h1><c:out escapeXml="true" value="${post.titulo}" /></h1>
<div><c:out escapeXml="true" value="${post.descricao}" /></div>
Resolvido, certo? Caso o usuário inserisse a tag <script> ela seria enviada ao navegador como &lt;script&gt;, e portanto não seria interpretada como uma tag html.
Essa solução é suficiente para o título da pergunta, mas suponha agora que gostaríamos de permitir que o usuário pudesse formatar a descrição de seu post. Seria interessante que ele pudesse dar destaque a certos trechos de seu post deixando trechos em negrito ou monospaced, por exemplo (uma feature bastante comum em qualquer aplicação que apresenta conteúdo do usuário).
Nesse caso, apenas escapar todo o html não basta, precisamos de uma solução mais esperta, permitindo que certas tags sejam interpretadas pelo navegador.
Sanitizando o conteúdo
Poderíamos resolver o caso específico do <script>alert("olá")</script> em java fazendo simplesmente: descricao = descricao.replaceAll("<script>", "").replaceAll("</script>", ""). Porém, veja que essa solução é bastante inocente e o problema é mais complexo do que parece. Um usuário mal intencionado pode facilmente entender como sua aplicação está sanitizando os dados testando algumas vezes o seu formulário. Suponha então que ele insira:
<<script>script</script>>alert("olá de novo")</<script>script</script>>
Ao fazer as duas chamadas do replaceAll, o resultado é o seguinte: <script>alert("olá");</script>. Caímos de novo no mesmo problema. Podemos aprimorar nosso algoritmo ingênuo para solucionar esse caso, mas existe uma infinidade de corner cases que podemos esquecer. Além disso, uma solução robusta definitivamente não faz parte das prioridades da aplicação que estamos desenvolvendo.
Considerando a complexidade do problema, diversas bibliotecas foram desenvolvidas para sanitizar conteúdo a ser exibido na web. Uma das bibliotecas mais famosas e robustas é o OWASP-Java. O Sergio Lopes já havia escrito sobre ela nesse post, mas a API mudou bastante. Para utilizar é simples, você especifica quais tags você deseja liberar na entrada e ele constrói o sanitizador:
PolicyFactory policy = new HtmlPolicyBuilder()
 .allowElements("strong", "i")
 .disallowElements("script")
 .toFactory();
Assim, no código da nossa aplicação podemos utilizar o sanitizador na entrada do usuário:
@Post("/posts")
public void salva(String titulo, String descricao) {
  postDAO.salva(new Post(titulo, policy.sanitize(descricao));
}
Agora, na jsp podemos continuar escapando o título do post, já na descrição podemos exibir a descrição da forma como foi salva pelo nosso dao:
<h1><c:out escapeXml="true" value="${post.titulo}"/></h1>
<div>${post.descricao}</div>
Repare que podem haver diversos outros casos, outros pontos onde a injeção pode ser feita. XSS é um assunto que merece sua atenção.

sábado, 9 de junho de 2012

Navegar é preciso, arriscar-se não!

A Cartilha de Segurança para Internet contém recomendações e dicas sobre como o usuário pode aumentar a sua segurança na Internet. O documento apresenta o significado de diversos termos e conceitos utilizados na Internet e fornece uma série de recomendações que visam melhorar a segurança de um computador.
Ajude a divulgar a Cartilha!

Fonte: http://cartilha.cert.br/

quarta-feira, 30 de maio de 2012

Bitdefender lança ferramenta para eliminar arma de espionagem "Flamer"


Sample Image
A Bitdefender® lançou uma ferramenta que permite encontrar e remover a aplicação de espionagem mais complexa e perigosa encontrada até hoje, o recentemente descoberto toolkit de ataque Flamer.

O Flamer, também conhecido como Skywiper, pode roubar dados, copiar palavras-chave, gravar conversas de voz, criar capturas de ecrã e até analisar aparelhos bluetooth que estejam perto do computador infetado. A ferramenta, que se pensa terá dado origem a outras ferramentas de espionagem como Stuxnet e Duqu, pode ser difundida através de redes locais ou em equipamentos amovíveis como USBs.

"O Flamer é a ferramenta de ciberespionagem mais assustadora que encontramos até hoje. Vai a locais onde qualquer outro spyware não consegue, recolhe informação que outros não conseguem recolher, e assegura que o computador infetado não possuem qualquer tipo de privacidade", diz Catalin Cosoi, Chief Security Researcher da Bitdefender. "Felizmente, a ferramenta de remoção da Bitdefender torna fácil a sua eliminação do computador."

O Flamer não é uma ferramenta de espionagem simples, mas sim uma autêntica caixa de ferramentas ao comando dos atacantes. Em termos de tamanho de ficheiro, é a maior ferramenta vista até ao momento. A própria dimensão significa que os investigadores poderão passar semanas a analisar o Flamer até conseguirem descobrir todas as suas funções.

Para que o utilizador consiga descobrir se o seu computador está infetado com o Flamer, pode descarregar a ferramenta de remoção da Bitdefender através dos links que disponibilizamos de seguida :

  Download : BitDefender ferramenta de remoção do "Flamer" [32 Bits] 
  Mais Informações : BitDefender 


Fonte: http://wintech.com.pt/content/view/12099/1/

sexta-feira, 25 de maio de 2012

Google lança sistema de segurança que alerta usuários com máquinas infectadas


Google 
Google anunciou nesta terça-feira (22/05) que irá alertar usuários em todo o mundo caso suas máquinas estejam infectadas com o código malicioso DNSChanger.

De acordo com o blog Google Online Security, mais de 500 mil computadores estão infectados com o malware em todo o planeta. Para entender melhor, o Domain Name System (DNS) é quem traduz os endereços da web para um código numérico que leva os browsers para o local desejado pelo usuário. O que o DNSChanger faz é modificar as configurações de DNS para alterar o endereço, levando para sites falsos hospedados em servidores maliciosos, podendo infectar máquinas e até roubar dados pessoais. Além disso, o software malicioso pode modificar as configurações de redes domésticas, causando problemas em PCs, tablets e smartphones.

O sistema de segurança proposto pelo Google vai funcionar da seguinte maneira: ao realizar uma pesquisa no site de buscas da empresa, o usuário que estiver com o trojan na máquina ou na rede doméstica receberá um aviso no topo da página do navegador (como na imagem abaixo), podendo ser encaminhado para um site que o ajudará a solucionar o problema.

 

Caso as máquinas não sejam "vacinadas" até o dia 9 de julho, data que os servidores DNS serão desligados, é possível que o usuário não consiga mais acessar a internet.

Um detalhe importante é que o FBI e a polícia da Estônia prenderam um grupo de pessoas envolvidas na disseminação do DNSChanger, em novembro de 2011. Segundo o próprio FBI, o malware atinge computadores em mais de 100 países, incluindo meio milhão de PCs só nos Estados Unidos.

quarta-feira, 23 de maio de 2012

Guia : Como eliminar o “Vírus da Polícia” ou “Vírus da PSP”?


Respondendo a um aumento massivo na circulação de uma nova variante de uma ameaça já conhecida por muitos utilizadores como o “Vírus da Polícia”, ou “Vírus da PSP”, a Panda Security publicou um pequeno guia que ajuda os utilizadores infetados por este malware a remover a ameaça.

WinTech considera que esta informação é de extrema importancia e transcreve aqui o guia que pode ser encontrado também no blog oficial da empresa, aqui .

Para quem não conhece este "Virus da PSP" então podemos dizer que normalmente os utilizadores afetados são confrontados com uma imagem semelhante à que é apresentada :
 
O instinto leva os utilizadores a pressionar as teclas ESC ou a combinação ALT+F4, mas sem grande sucesso, já que a mensagem bloqueia o computador deixando-o inutilizado.
A mensagem é aparentemente proveniente da Polícia de Segurança Pública (PSP) e informa que foi detetada atividade ilegal no computador do utilizador afetado. Mais especificamente, a mensagem refere que o endereço IP utilizado pelo computador para se ligar à Internet foi detetado em acessos a websites proibidos contendo pornografia e violência infantil, e que para o desbloquear terá que ser paga uma multa de 100€. O texto demonstra um português pouco correto, que é um pormenor extremamente útil na identificação deste tipo de mensagens fraudulentas. Contudo, dado o carácter de gravidade da mensagem, os utilizadores tendem a não prestar a atenção devida a estas pistas.

Esta nova variante do conhecido “Vírus da Polícia” chamado Trj/Ransom.ab, pertence a uma categoria de malware denominada ransomware, alusivo à palavra inglesa para “resgate” (ransom). Existem inúmeras variantes destinadas a países distintos que se fazem passar por diversas autoridades locais (mais informação emhttp://pandalabs.pandasecurity.com/the-rise-of-the-ransomware /). O objetivo dos autores deste malware é intimidar e chantagear as vítimas cujos PCs sejam infetados, e persuadi-las a pagar pela remoção do malware. O esquema é semelhante ao que é utilizado por rogueware (falsos antivírus), com a diferença de que neste caso o burlão se tenta passar pelas autoridades legais em vez de um fabricante de antivírus. Para os utilizadores que estão a ser confrontados (ou possam vir a ser) com esta ameaça, a Panda Security fornece as Instruções para remoção do “Vírus da Polícia”, o Trj/Ransom.ab:

1. Crie um disco de recuperação para desinfetar completamente o Trj/Ransom.ab analisando o seu computador. Para tal, transfira a ferramenta PandaRescueDisk (www.pandasecurity.com/resources/sop/safecd/pandarescuedisk.iso) para um computador livre de vírus.
2. Desinfete o computador com a ferramenta PandaRescueDisk.iso:
2.1. Após transferir a ferramenta, grave o ficheiro ISO (imagem de disco) para um CD através do seu software de gravação habitual.
2.2. Após gravar o CD, introduza-o no leitor de CD e reinicie o computador de modo a que o arranque seja realizado a partir desse CD.
NOTA: Se surgirem problemas ao tentar reiniciar o sistema arrancando a partir do CD, consulte o artigo de ajuda Como arrancar a partir de um CD-Rom? (http://www.pandasecurity.com/homeusers/support/card?id=950011&IdIdioma=2 )
3. Analisar com o Panda RescueDisk:
3.1. Após iniciar o sistema a partir da unidade de CD, verá o ecrã do Panda RescueDisk que o guiará ao longo do processo de análise e desinfeção:
 
3.2. Quando o processo terminar, remova o CD e pressione ENTER para reiniciar o computador.
3.3. Abra o seu antivírus e execute uma análise completa para confirmar a desinfecção definitiva do Trj/Ransom.ab.

Para terminar, recordamos alguns conselhos práticos para vos ajudar a protegerem-se contra este tipo de malware:
1. Utilize o senso comum. Nenhuma organização governamental poderá bloquear-lhe o acesso ao seu próprio computador. Não pague a “multa” a que se referem sob quaisquer circunstâncias, porque se trata de uma fraude.
2. Instale um antivírus eficaz. Teste gratuitamente uma solução Panda durante 1 mês em http://www.pandasecurity.com/portugal/homeusers/solutions e evite surpresas desagradáveis.
3. Mantenha o seu sistema operativo atualizado com as últimas correções dos principais fabricantes.
4. Nunca abra um e-mail de um remetente desconhecido. Fique atento a mensagens com temas e assuntos demasiado atrativos, cujo objetivo pode ser potenciar a propagação de um vírus pelo maior número de utilizadores possível.
5. Evite navegar em páginas Web inseguras. Em muitos casos basta visitar um website afetado, mesmo que legítimo, para ficar infetado sem se aperceber. Se no entanto necessitar de aceder a websites duvidosos, tente fazê-lo num ambiente livre de malware, como uma máquina virtual ou a ferramenta Panda SafeBrowser (http://www.pandasecurity.com/homeusers/solutions/safebrowser ).

terça-feira, 22 de maio de 2012

Kaspersky alerta para novo perigo online : o Malvertising




A publicidade online tornou-se numa ferramenta fundamental para que as empresas promovam os seus produtos e os utilizadores conheçam os descontos ou as oportunidades de compra que oferecem. A Internet ganha cada vez mais espaço no mercado publicitário, revolucionando o modo como as pessoas se relacionam e comunicam com as marcas e ameaçando superar os investimentos publicitários nos chamados meios tradicionais. 

E, como não podia deixar de ser, os cibercriminosos estão também atentos a este fenómeno, aproveitando os anúncios online como veículo de difusão de vírus e spyware. Quando isto acontece, e os anúncios se tornam maliciosos, passam a ter a denominação de malvertising, um perigo cada dia mais presente na Internet.

Os cibercriminosos empregam diferentes técnicas para fazer uso do malvertising: exploits embutidos em banners flash, redirecionamento para websites maliciosos, entre outros esquemas. Todas estas ações têm um único objetivo: roubar dados pessoais, informação do PC ou controlar os dispositivos infetados de forma remota, seja o computador, o smartphone ou o tablet.

O principal problema reside no facto de o malvertising estar presente em sites por onde navegamos frequentemente, páginas totalmente legítimas. “Isto acontece porque os cibercriminosos pagam pela colocação dos seus banners publicitários nesses websites legais como qualquer outra empresa ou, em alguns casos, da mesma forma que são capazes de comprometer um site legítimo, fazem o mesmo com os banners lá existentes, injetando-lhes um código malicioso”, explica Dmitry Bestuzhev, Analista Senior da Kaspersky Lab.

É muito difícil para o utilizador final reconhecer este tipo de ataques, pois apresentam-se como banners publicitários comuns e a pessoa afetada geralmente só deteta a ameaça quando o antivírus a bloqueia. 

Alguns conselhos para evitar o risco: 

1.    Não confiar às cegas: Muitos dos ataques através de malvertising vão acompanhados de engenharia social. “Convém aprender o que é e como funciona a engenharia social para evitar ser uma presa fácil dos cibercriminosos”, recomenda o analista da Kaspersky Lab.

2.    Usar browsers capazes de gerir suplementos (addons) do tipo No-Script que bloqueiam os scripts externos ou alheios aos recursos Web. “Isto pode reduzir a zero a probabilidade de ser infetado através de SWF maliciosos e Action scripts maliciosos neles inseridos”, diz Bestuzhev. 

3.    Ter uma solução de segurança nos dispositivos, com capacidade para detetar de forma proativa as ameaças, para detê-las antes que prejudiquem os equipamentos e que, ainda, permita filtrar os sites maliciosos e utilize mecanismos de deteção de intrusões ao nível do host.

Fonte: http://wintech.com.pt/content/view/12015/1/