7 dicas para aumentar a segurança no Magento

Acredito que a maioria dos responsáveis por uma loja de e-commerce sabe que é importante manter um sistema seguro (ou pelo menos deveria), pois diversas informações confidenciais são armazenadas na plataforma e isto inclui dados de clientes e informações de compras.

Quando falamos de loja virtual uma das mais utilizadas e conhecidas plataformas de e-commerce é o Magento, e é justamente nessa plataforma que vou focar neste artigo. Como sua utilização é bem difundida, segundo o site da empresa mais de 250 mil lojas utilizam a plataforma, e consequentemente torna-se um alvo visado pelos atacantes.

Confira abaixo as principais dicas para aumentar a segurança da sua loja virtual e aumentar consideravelmente a sua segurança.

1 – Usuário e senha da área administrativa

O primeiro passo para aumentar a segurança do Magento é não utilizar senhas fáceis e que podem ser descobertas facilmente como nome da loja, data de nascimento ou ‘123456789’ e ‘abc123’. Procure utilizar senhas que contenham caracteres especiais (@, %, #, etc) com letras maiúsculas, minúsculas e números.

O usuário também é importante, por isso, evite criar usuários que sejam fáceis de adivinhar como ‘admin’ ou ‘administrador’. Além disso, é importante restringir ao máximo o que cada usuário pode fazer na plataforma.

2 – Endereço de acesso à área administrativa

Por padrão o Magento utiliza o caminho sualoja.com.br/admin para acessar a área administrativa, mas este endereço já é bem conhecido por todos e por isso é importante alterar esse caminho para algo que somente você e sua equipe tenha conhecimento.

Para alterar o caminho /admin no Magento, acesse o arquivo que esta localizado em app/etc/local.xml  e procure pela linha no código que contenha a entrada: <![CDATA[admin]]>, basta alterar a entrada admin por algo que você deseja, como /acessointerno. Neste caso, a nova entrada do arquivo ficaria como <![CDATA[acessointerno]]>.

3 – Utilize Two-Factor Authentication na área administrativa

Uma outra forma que é muito utilizada para aumentar a segurança de todo o sistema é   adicionar uma segunda camada de segurança e isso pode ser feito usando a autenticação de dois fatores (Two-Factor Authentication), onde o sistema exige duas autenticações separadas para permitir o acesso, ou seja, após digitar o usuário e senha será exigido um token, como aqueles utilizados nos bancos.
Há algumas excelentes extensões disponíveis que permitem a autenticação de dois fatores no Magento. Procure no site do Magento por Two-Factor Authentication e você terá diversas opções, sejam elas pagas ou gratuitas.

4 – Utilize conexões criptografas via HTTPS

Uma configuração bastante simples de ser implementada, porém que não é feita por muitas pessoas é permitir o acesso a loja virtual e a interface administrativa apenas através de endereços seguros, ou seja, via HTTPS. Essa configuração permite prevenir o risco que os dados sejam interceptados enquanto estão em trânsito até o servidor.

5 – Listagem de diretórios

A listagem dos diretórios é outro item muito comum encontrado nos servidores. Através dela é possível visualizar e mapear os arquivos que estão nos servidores e com isso descobrir mais informações sobre determinada plataforma.
Parece uma simples configuração, mas eu mesmo já encontrei arquivos vulneráveis graças a listagem de diretórios, por isso não esqueça de desabilitar essa função no arquivo de configuração do seu Apache/Nginx ou caso você não tenha acesso a estes arquivos, desabilite no seu arquivo .htaccess.

6 – Desabilite funções perigosas no PHP

O PHP possui algumas funções que são perigosas e podem ser utilizadas para controlar o seu servidor. Para reduzir o risco que isso aconteça é aconselhado que seja desabilitado algumas funções que podem causar prejuízos no seu servidor. Confira abaixo a configuração que você pode adicionar no arquivo php.ini.

disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

Antes de desabilitar essas funções, verifique se o seu tema e/ou plug-ins não utilizam algumas dessas funções.

7 – Aplicação dos patches de segurança

Como o Magento é um sistema muito utilizado mundialmente, possui um constante desenvolvimento e uma comunidade ativa, é muito comum ocorrer atualizações constantes onde além de corrigir problemas no sistema em geral também irá corrigir problemas de segurança.
Por isso fique atento nas últimas divulgações de patches de segurança que a empresa disponibiliza,

você pode acompanhar isso através do endereço: https://www.magentocommerce.com/download 

O Magento é uma ótima opção de plataforma para lojas virtuais, mas é bom ficar atendo a todos os pontos de segurança para não ser vítima de uma invasão. Verifique constantemente as atualizações e procure configurar o sistema de forma correta, assim você evitará dores de cabeça futuramente.

Essas são algumas dicas básicas para você aumentar a segurança do seu Magento, ainda existem muitas outras opções que você pode configurar como as permissões dos arquivos, restringir o acesso à área administrativa para um único IP e realizar backups diários. Caso você queira ter acesso a um passo a passo completo, baixe o Guia de Segurança do Magento da Site Blindado, lá você encontrará todos detalhes para aumentar a segurança da loja virtual que utiliza Magento.

RASP: O futuro da segurança para aplicações?


O Runtime Application Self-Protection, que é conhecido como RASP, é uma tecnologia de segurança que vêm sendo desenvolvida algum tempo e a principal função dela é atuar de forma inteligente permitindo que uma aplicação detecte e, em seguida, evite ataques em tempo real. A ideia do RASP é impedir ataques utilizando um sistema de autoproteção ou que consiga se reconfigurar automaticamente sem que haja intervenção humana em resposta a determinadas condições, como ameaças, exploração de vulnerabilidades, etc.

O RASP entra em ação no momento que a aplicação é executada e com isso começa um auto monitoramento para detectar entradas e comportamentos maliciosos. Este monitoramento é realizado em tempo real implementando uma verificação contínua da segurança para o sistema identificar e responder a quaisquer ataques conhecidos.

Como funciona

O funcionamento básico do RASP é através da incorporação da segurança na aplicação que se encontra em execução no servidor, com isso ele consegue interceptar todas as chamadas para conseguir avaliar se elas são seguras ou não.

O RASP pode ser aplicado tanto em aplicações web como em não web e não afeta o design da aplicação pois os recursos de detecção e proteção são adicionados aos servidores onde a aplicação é executada.

A proteção acontece quando um determinado evento de segurança acontece e com isso o RASP entra em ação controlando as entradas da aplicação e tomando as medidas necessárias para proteger em tempo real bloqueando o ataque ou gerando um alerta para os responsáveis.

Vantagens e desvantagens

Uma das grandes vantagens dessa tecnologia é que ela irá te fornecer uma visão muito detalhada das ações que a aplicação está realizando, incluindo a parte lógica, configuração e fluxo de dados e com isso você irá melhorar a precisão na identificação dos problemas de segurança que sua aplicação pode apresentar, além de poder atender algumas regulamentações de segurança.

Já a desvantagem é que cada aplicação precisa ser protegida individualmente e também é necessário verificar o impacto na performance, uma vez que a aplicação irá criar um sistema de autoproteção existe uma possibilidade dessa perca no desempenho ser sentida pelo usuário final. Neste caso a melhor opção é sempre testar e verificar possíveis alternativas.

RASP vs WAF

Uma das perguntas que normalmente o pessoal faz é: Qual a diferença do RASP para o WAF? O RASP ele é instalado no servidor onde a aplicação está instalada e vai monitorar as bibliotecas de entrada e saída de dados diretamente no fluxo da aplicação, já o WAF normalmente é uma solução SaaS (Software-as-a-Service) em cloud e trabalha com assinaturas de ataques conhecidos.

Atualmente algumas soluções de mercado oferecem o RASP para as plataformas Java e .NET, já o WAF pode proteger qualquer tipo de linguagem web, porém o WAF protege apenas aplicações WEB, já o RASP pode proteger todos os tipos de aplicações.

Se você já adota técnicas de DevOps e SecDevOps acredito que vale a pena conhecer esse tipo de solução, pois irá ajudar os programadores a identificar as vulnerabilidades de forma mais eficiente e implementar correções na mesma velocidade que os deploys são realizados. Além disso, o melhor de tudo é que além de identificar essas falhas, os ataques também são bloqueados em tempo real.

O RASP não é uma solução definitiva para bloquear todos os tipos de ataques e vulnerabilidades que pode existir em sua aplicação e pode ser um ponto de atenção em relação a performance, mas a melhor opção é você avaliar e testar e sempre utilizar ela em conjunto com outras soluções como um WAF.

Segurança no gerenciamento de sessões web


As aplicações web normalmente utilizam sessões que proporcionam um ambiente amigável para seus usuários e uma forma melhor de gerenciamento por parte da aplicação. A ideia básica por trás do gerenciamento de sessão é que o servidor gera um identificador de sessão (ID) e em algum momento no início da interação do usuário, ele envia esse ID para o navegador do usuário e que deverá retornar este mesmo ID de volta para o servidor junto com cada nova solicitação. Com isso, os sessions IDs tornam-se um token de identificação para os usuários que irá manter os dados da sessão.

Muitas vezes esses IDs de sessão não são apenas os códigos de identificação, mas também autenticadores. Isto significa que após o login, os usuários são autenticados com base em suas credenciais (ex.: usuário/senha) e estes IDs de sessão irão ser utilizados como se fossem senhas estáticas temporárias para acessar suas informações.

Como você pode perceber, isso faz com que os sessions IDs tornem-se um alvo muito visado pelos atacantes que podem realizar dois tipos de ataques o session hijacking e o session fixation. Hoje no OWASP (Open Web Application Security Project), a vulnerabilidade de session management é listada como o segundo item mais perigoso em uma aplicação web e isso acontece porque as proteções básicas de segurança não são aplicadas e existem diversas ferramentas e técnicas que são capazes de realizar esses ataques de forma muito simplificada, sendo uma das técnicas e formas mais conhecidas envolve a exploração das vulnerabilidades de XSS (Cross Site Scripting).

Felizmente existem diversas formas de prevenir e mitigar o problema, com isso você irá reduzir o risco da sua aplicação. Confira abaixo como você pode proteger as sessões de sua aplicação web.

Uso do TLS (Transport Layer Security)

Para proteger essa troca de ID das sessões contra qualquer tipo de ataque que procure interceptar as informações, como o man-in-the-middle, é obrigatório o uso do HTTPS (TLS) para todas as sessões web e não só para o processo de autenticação ou onde as credenciais do usuário são envidas.

Cookies

Os cookies oferecem alguns recursos de segurança que podem ajudar a proteger a troca de informações dos IDs das sessões entre cliente e servidor, confira:

  • Secure: Este atributo instrui o navegador a enviar os cookies somente através do HTTPS;
  • HttpOnly: Este atributo instrui o navegador a não permitir que o cookie seja acessado via DOM (Ex.: JavaScript ou VBscript);
  • Domain e Path: Este atributo instrui o navegador a enviar o cookie para apenas os domínios e subdomínios especificados;


Além dessas opções é altamente recomendado o uso de cookies não persistentes para fazer o gerenciamento de sessões, pois dessa forma o conteúdo não ficará armazenado no computador do usuário.

Ciclo de vida da sessão

Hoje temos dois tipos de gerenciamento de sessões que são utilizados o strict e o permissive, não vou entrar em detalhes de cada um deles, mas o método mais comum e consequentemente mais seguro é o scrict.

Caso os dados da sessão em sua aplicação web sejam enviados através de um GET ou POST, você deve fazer o tratamento e a verificação como qualquer outra variável. Além disso, toda e qualquer mudança de privilégios na aplicação deve ser tratada como nova e a aplicação deve gerar uma nova sessão.

Expiração da sessão

Uma das formas de minimizar os ataques de roubo de sessão é determinar um tempo de expiração da sessão. Essa configuração é praticamente obrigatória para todas as aplicações, pois quanto menor o tempo da sessão inativa, menor será o tempo de ataque.

Outra forma que pode ajudar, mas não é uma solução definitiva é verificar o User Agent do usuário e fixar junto com a atual sessão ou até mesmo verificar sessões simultâneas em uma mesma conta.

Cada aplicação web trabalha de uma forma diferente e lida com informações diferentes, com isso você deve determinar qual o risco e a necessidade de implementar controles mais simples ou mais rigorosos. Normalmente eu recomendo que o básico seja aplicado, isso inclui criptografia, segurança dos cookies, headers, waf e até mesmo algumas configurações na aplicação e/ou servidor, mas cabe a você determinar e calcular qual é o risco aceitável.

3 dicas de segurança para base de dados


Conforme o número de aplicações web e APIs crescem, também cresce a utilização de banco de dados. Hoje em dia, como o grande número de incidentes tem o foco, as aplicações web, os bancos de dados também acabam tendo um papel muito importante na segurança da infraestrutura como um todo.

Os bancos de dados possuem informações valiosíssimas e sensíveis de uma empresa, incluindo dados de clientes e informações financeiras. A segurança dessas informações pode depender de diversos fatores e poderá variar de empresa para empresa, podendo envolver segurança de rede, segurança física, criptografia, backup, etc.

É muito importante proteger esses dados contra ataques internos e externos, seja utilizando controles de acessos efetivos, auditorias periódicas ou análise de vulnerabilidade para verificar as falhas que existem. Confira abaixo, 3 dicas para aumentar a segurança da sua base de dados:

Autenticação

O primeiro passo ao acessar o banco de dados é a processo de autenticação e caso este não seja configurado corretamente, poderá ser facilmente acessado por um atacante. Neste caso, as melhores opções para se prevenir são:

  • Utilizar senhas com no mínimo de 8 caracteres, incluindo números e caracteres especiais;
  • Não utilizar a mesma senha em mais de um servidor, ex.: DEV e Produção.
  • Definir uma senha para a conta de administrador e não utilizar essa conta nas aplicações;
  • Criar usuários e senhas específicos para aplicações/tarefas.


Controle de acesso

Para proteger os dados é importante limitarmos o acesso, após criar um usuário e senha específicos para determinadas tarefas, chegou a hora de determinar qual será o acesso que cada um deles irá ter. Os privilégios devem ser diferentes para cada usuário e deverá ter restrições conforme a sensibilidade que o dado apresenta. 

Um exemplo simples é uma aplicação onde são exibidas informações, o usuário do banco de dados que busca essas informações quando um cliente visita essa página não precisa ter todos os acessos, apenas permissão para leitura dos dados em determinada tabela, já quem é o editor, precisa ter mais permissões, como leitura, escrita e edição, mas apenas em determinadas tabelas e não em toda base.

Quando for definir os controles de acesso na base de dados, tenha em mente que todos os usuários precisam ter o mínimo de permissão necessária para realizar sua tarefa.

Criptografia

A criptografia dos dados é também uma das partes mais importantes para a segurança da base de dados. Neste caso, precisamos pensar em dois pontos para nos preocuparmos com a segurança - são os dados que serão armazenados e os dados que estarão em trânsito.

Em primeiro lugar, vamos falar dos dados em trânsito, infelizmente é muito comum encontrarmos aplicações que transmitem os dados de um servidor para o outro (cliente/server) sem nenhum tipo de criptografia e com isso os dados confidenciais ficam completamente expostos e passíveis de interceptação e alteração, por isso, é muito importante configurar um canal de comunicação seguro entre a base de dados e a aplicação.

Já na criptografia dos dados que serão armazenados, um exemplo muito simples e comum é quando uma aplicação web fornece usuário e senha para seus utilizadores, essas senhas deverão ser armazenadas de forma criptografada, por incrível que pareça, muitas aplicações hoje em dia ainda não fazem isso e armazenam esses dados em texto puro. Se você tem uma loja virtual e pretende armazenar as informações de compras de seus clientes, incluindo dados de cartões de crédito e informações confidenciais, tenha muito cuidado!
Procure seguir as recomendações do PCI DSS 3.1 e as recomendações do OWASP para criptografia de dados, ambos os links encontram-se nas referências no final do texto.

Conclusão

Da mesmo forma que temos um processo contínuo de correção de vulnerabilidades nas aplicações web, na base de dados funciona da mesmo forma. Além de realizar o hardening do sistema operacional, é importante aplicar os patches de segurança que são liberados constantemente e configurar de forma correta o seu servidor SQL, para que, em caso de comprometimento, os impactos sejam minimizados. Além disso, nunca se esqueça: faça backups constantes!

Referências:




OWASP Password Storage Cheat Sheet


Melhores práticas para implementação do TLS


A principal função dos protocolos SSL e TLS é garantir a privacidade e a integridade dos dados que são trocados entre duas aplicações, neste caso estamos falando entre o seu site ou e-commerce e o cliente final. Basicamente esta é a funcionalidade, porém minha ideia não é demonstrar as funcionalidades de ambos os protocolos, mas mostrar as melhores práticas para você configurar o seu servidor de forma correta.

Chave Privada

O primeiro nível de segurança do seu certificado SSL começa na geração da chave privada, você irá definir qual o tamanho da chave criptográfica que será utilizada no servidor e se irá proteger sua chave privada com uma senha de segurança, neste momento:

  • Crie chaves usando no mínimo RSA 2048 bits: esse tipo de chave irá garantir a sua segurança durante um bom tempo, caso você utilize chaves com 1024 bits, considere substituí-las o quanto antes.
  • Defina uma senha de segurança: Criando uma senha ao gerar sua chave privada, irá restringir o acesso a apenas algumas pessoas, o ideal é escolher uma senha forte neste momento. Caso você queira aumentar ainda mais o nível de segurança, você pode escolher dois administradores, sendo cada um responsável por uma parte da senha.
  • Utilize um computador confiável: Quando for gerar a chave privada e a CSR (Certificate Signing Requests)  utilize um computador confiável.
  • Para o armazenamento das chaves privadas, as melhores práticas de segurança aconselham o armazenamento das chaves em hardwares com módulos de criptografia, que são conhecidos como HSM (Hardware Security Module).


Utilize algoritmos fortes

Hoje muitos certificados ainda utilizam e são emitidos com o hash SHA1, que já é considerado inseguro e irá ser substituído até o final de 2016, quando não deverá mais ser aceito. A melhor opção é você já emitir os novos certificados utilizando o hash SHA2, por isso ao solicitar um novo certificado para a sua empresa certificadora, não se esqueça de solicitar que seja emitido como SHA2.

Configuração do servidor

Ao configurar o servidor de forma correta, você irá garantir que o certificado será exibido corretamente para o seu cliente e que você está utilizando protocolos e chaves que são seguras.

Nessa primeira etapa o importante é você escolher quais protocolos serão habilitados em seu servidor HTTPS, hoje temos cinco protocolos: SSL v2, SSL v3, TLS 1.0, TLS 1.1 e TLS 1.2.

Por questão de segurança e devido a diversas vulnerabilidades divulgadas anteriormente a melhor opção é escolher utilizar apenas o protocolo TLS e desabilitar os protocolos SSL. A melhor opção seria apenas utilizar o TLS 1.2, porém devido a compatibilidade com navegadores antigos, você precisará deixar habilitado as versões 1.0 e 1.1.

Além da configuração do protocolo, você precisa ficar atento na configuração das chaves que serão utilizadas no servidor, neste caso a melhor forma de se escolher qual tipo de chave será utilizada é apenas configurar chaves que forneçam criptografia acima de 128 bits, incluindo a exclusão das chaves que utilizam Anonymous Diffie-Hellman (ADH), RC4 e 3DES.

Uma outra configuração importantíssima é desabilitar a opção TLS Compression, que irá prevenir que seu servidor seja alvo de ataques como CRIME e BEAST.
Além disso, é totalmente recomendado que você habilite o HSTS (HTTP Strict Transport Security), pois irá permitir que seu site se torne acessível apenas através de HTTPS.

Caso você não esteja utilizando o HSTS, cuidado com o conteúdo mixado entre HTTP e HTTPS, pois caso o cliente acesse uma área com HTTPS e este código chame um elemento que esteja chamando o protocolo HTTP, isso poderá gerar alertas de segurança.

As opções e configurações apresentadas anteriormente têm como objetivo auxiliar você na aplicação das melhores práticas de segurança para o uso do certificado SSL, sem contar ainda a performance, segurança de cookies ou até mesmo o cache de conteúdo sensível, sendo que todos esses itens também devem ser considerados ao realizar a configuração do seu servidor e/ou aplicação.


Até a próxima.

5 formas para prevenir os ataques XSS


Os ataques de Cross-Site-Scripting (XSS) tem se tornado frequente e afeta milhares de aplicações web. Temos acompanhado essa evolução principalmente no CMS open-source Wordpress e seus plugins, que nos últimos dias os pesquisadores estão divulgando diversas falhas que afetam milhões de instalações.

O ataque de XSS permite a injeção de códigos JavaScript no navegador de outro usuário, o atacante não tem como alvo diretamente sua vítima, em vez disso, ele explora uma vulnerabilidade em um site que o alvo pode visitar com o objetivo de entregar o JavaScript malicioso para ele. No navegador do alvo, o JavaScript malicioso parece ser como parte integrante do site o que torna o ataque efetivo e quase não é percebido pela vítima.

Podemos considerar um JavaScript como sendo malicioso quando ele consegue acessar informações confidenciais dos usuários como os cookies ou quando é enviado requisições HTTP contendo scripts maliciosos que podem usar o XMLHttpRequest. Claro que estes são apenas alguns exemplos, mesmo porque os ataques de XSS permitem uma série de combinações no ataque.

Para entender um pouco melhor, hoje temos 3 tipos de ataques XSS:

Reflected XSS: Acontece quando o servidor reflete o que enviamos sem filtrar o que o usuário colocou, ou seja, ao enviar um determinado parâmetro, o servidor repete no código-fonte da página sem tratar o que foi inserido.

Persistent XSS: Acontece quando o código malicioso a ser injetado não foi filtrado e está armazenado na página ou em algum componente da aplicação.

Dom Based XSS: Este é o tipo mais difícil de ser encontrado entre os três porque depende de uma vulnerabilidades em algum dos componentes da página, sendo que o script faz alterações no HTML atual da página através da manipulação do DOM (Document Object Model). Recentemente o tema TwentyFifteen, que é padrão nas instalações do Wordpress, foi alvo desse tipo de vulnerabilidade e deixou milhões de sites vulneráveis.

As consequências da exploração dessas falhas podem ser muito sérias e permitem que um atacante roube as informações confidenciais que pode conter em um cookie, como os Sessions IDs, habilite um Keylogging em seu servidor, realize ataques de phishing mais elaborados entre outros. Basicamente se o atacante consegue executar códigos JavaScript em seu website, a segurança do seu website e dos seus usuários podem ser comprometidas.

Métodos de prevenção

1 - Encoding e Validation
A função do Encoding é filtrar os dados que o usuário irá inserir para que o navegador interprete ele apena como dado e não como código, um exemplo clássico é a conversão em HTML como “<“ e “>” em “<” e “>”

Além disso, quando falamos de Enconding precisamos pensar tanto do lado cliente-side como do lado server-side, do lado do cliente-side normalmente você utilizará códigos JavaScript para fazer a verificação, já do lado do server-side provavelmente você utilizará algum framework que irá realizar essas tarefas.

Somente a utilização do encoding não é suficiente para bloquear os ataques de XSS e ele não irá prevenir que o atacante insira algo como “< script >” e continue executando códigos, neste caso nós iremos utilizar o Validation.

O objetivo do Validation é filtrar todas as entradas do usuário que podem ser maliciosas para a sua aplicação e este será a sua primeira linha de defesa conta os ataques XSS. Essa validação funciona melhor através da prevenção sobre os dados que possuem limites de valores, um exemplo é uma variável “Int” (inteiro) não precisa conter códigos HTML.

Até mesmo os formulários POST podem conter scripts de XSS. Então, toda vez que você for usar alguma variável com algum valor no site, tente tratar contra o XSS.

2 - Use bibliotecas Anti-XSS
As bibliotecas Anti-XSS fornecem um conjunto de funções que irá facilitar o filtro dos dados para bloquear os ataques XSS. Abaixo vou citar algumas que conheço para .NET, PHP e Java:

HTML Purifier: http://htmlpurifier.org/

3 - Utilize o Content Security Policy (CSP)
O Content Security Policy é um cabeçalho HTTP que fornece uma whitelist de recursos confiáveis que o navegador poderá confiar. Um recurso pode ser um script, CSS, Imagem ou algum outro tipo de arquivo que poderá ser indicado. Isto significa que mesmo se um atacante conseguir injetar um código XSS no seu site, o CSP poderá impedir a sua execução.

Você poderá utilizar o Content Security Policy no Header como mostrado abaixo:

Content-Security-Policy: policy
Sendo que o texto “policy” deverá seguir algumas diretivas, veja abaixo um exemplo:

ContentSecurityPolicy:
    script
src 'self' scripts.seusite.com.br;
    media
src 'none';
    img
src *;
    default
src 'self' http://*.seusite.com.br

Neste exemplo os scripts podem ser carregados apenas do servidor atual e da url scripts.seusite.com.br, áudio e vídeo não podem ser carregados de nenhum local, imagens podem ser carregadas de qualquer host e qualquer outro recurso pode ser carregado apenas do servidor atual ou de todos os subdomínios em seusite.com.br.

O único problema atual do CSP é que a interpretação é diferente em alguns navegadores e por isso você terá que fazer um tratamento de qual Header enviar, como no caso do Safari, que você precisará usar o modelo abaixo.

X-WebKit-CSP: policy


4 – Usando a flag HttpOnly
O HttpOnly é uma flag adicional que pode ser incluída junto com a opção Set-Cookie. Quando o HttpOnly é usado, o JavaScript não será capaz de ler este cookie protegido se acontecer a exploração do XSS do lado do cliente. Caso o navegador suporte esta opção, mesmo que a falha de XSS exista e o atacante consiga fazer uma vítima acessar o link que pode explorar a falha, o navegador não irá fornecer os dados do cookie para o atacante.

5 – X-XSS-Protection no Header
Este cabeçalho pode ser utilizado para configurar uma proteção no navegador contra ataques XSS Reflected. Atualmente, apenas os navegadores Internet Explorer, Google Chrome e Safari (WebKit) suportam este cabeçalho.

Exemplo de Header:
X-XSS-Protection: 1; mode=block
Sendo que que os parâmetros “1; mode=block” habilita a proteção contra XSS e instrui o navegador a bloquear scripts que sejam inseridos pelos usuários.

As vulnerabilidades de cross-site scriting são uma das mais comuns em websites e lojas virtuais e também é uma das mais difíceis de se fazer a correção, procure sempre verificar os dados que são passados pelos usuários tanto do lado cliente-side como do server-side.

Além dos exemplos mostrados acima, a utilização de um Web Application Firewall (WAF) irá ajudar a proteger suas aplicações em tempo real contra ataques não somente de XSS, mas muitas vezes também de SQL Injection, DDoS, entre outros.

Ransomware: Aprenda como recuperar seus arquivos


O ransomware é um tipo de malware que bloqueia o acesso ao computador e/ou arquivos que ele infecta. Para que esse acesso seja liberado é exigido que seja pago um “resgate”. Alguns tipos de ransomwares criptografam os arquivos impossibilitando sua abertura de forma simples, já outros apenas travam o sistema mostrando uma mensagem que irá coagir o usuário a pagar pelo resgate dos arquivos. Esse valor pode variar de U$100 até U$1000 dólares e, em alguns casos, o pagamento precisa ser realizado através de Bitcoin.

A forma de infecção do ransomware pode variar dependendo da sua versão, mas pode acontecer através de um arquivo anexo no e-mail em um ataque de phishing, bem como, através da visitação de um site malicioso onde uma vulnerabilidade será explorada e o software será instalado no sistema.
Normalmente além do ransomware outros tipos de malware são instalados em conjunto no sistema, podemos citar o exemplo do CryptoLocker, que o usuário é infectado ao abrir um arquivo infectado no e-mail, este arquivo contém o downloader Upadre que irá infectar a máquina com o GameOver Zeus, que é uma variante do Trojan Zeus que rouba informações bancárias além de outros dados importantes, como usuários e senhas. Após a infecção do Zeus, o Upadre irá finalmente instalar o CryptoLocker que irá criptografar os arquivos e solicitar o valor para resgata-los.

O mercado negro de ransomware tem se mostrado muito lucrativo, como apontam diversas empresas de segurança pelo mundo, o primeiro conhecido foi o Dirty Decrypt, após ele veio o CryptoLocker, PowerLocker, Citroni, CryptoWall, CryptoWall 2, CryptoWall 3, Torrent Locker, Cryptographic Locker e recentemente foi descoberto o TeslaCrypt que utiliza criptografia simétrica RSA-2048 para criptografar os arquivos.

Como recuperar os arquivos?

A principal pergunta de quando uma pessoa ou empresa se depara com um problema desse é sempre o mesmo: Como recupero meus arquivos? Mas muitas vezes eles recebem uma outra pergunta, a famosa: Você tem backup? 

Bom, para nossa alegria algumas empresas já disponibilizaram ferramentas, seja ela online ou através de softwares, que conseguem identificar a chave que irá recuperar os seus arquivos criptografados. Veja abaixo algumas opções.


Kaspersky Lab
A Kaspersky em parceria com a polícia da Holanda, desenvolveram um portal que fornece informações e ferramentas para tentar recuperar os arquivos criptografados pela ransomware CoinVault.

Site: https://noransom.kaspersky.com/

Talos TeslaCrypt Decryption Tool
O grupo de segurança da Cisco fez uma análise detalhada do TeslaCrypt, uma variante do CryptoWall, que foi recentemente descoberto. Além disso, eles disponibilizaram uma ferramenta que irá te auxiliar na recuperação de seus arquivos.

Site: http://blogs.cisco.com/security/talos/teslacrypt

DropBox e Google Drive
Se os seus arquivos no DropBox ou Google Drive foram criptografados por um ransomware, eles oferecem uma opção de você recuperar os arquivos para uma versão mais antiga, confira nos endereços abaixo.

DropBox: https://www.dropbox.com/help/8408
Google Drive: https://support.google.com/drive/answer/2409045?hl=en

Como se prevenir?

 A melhor forma de evitar dores de cabeça, seja com seu computador pessoal ou com o computador corporativo, é a prevenção. Abaixo segue algumas dicas:

  • Realize backups regulares de todas as informações críticas e armazene essas informações em um local separado, de preferência off-line.
  • Mantenha o antivírus atualizado.
  • Mantenha o seu sistema operacional e todos os softwares instalados atualizados.
  • Cuidado ao clicar em links nos e-mails, principalmente de pessoas desconhecidas.
  • Muito cuidado ao abrir arquivos anexos no e-mail, principalmente de pessoas desconhecidas.


Além disso não podemos nos esquecer dos smartphones e tablets, com o crescente número de usuários que utilizam esses equipamentos para acessar a internet e guardar informações pessoais, já existem ransomwares que criptografam os arquivos em dispositivos Android, e no caso dos dispositivos da Apple, um ataque no último ano utilizava as credenciais do iCloud para bloquear os dispositivos remotamente.

[Atualização 14/03/2016]

Existem duas ferramentas que podem te ajudar a recuperar seus arquivos que foram criptografados pelo TeslaCrypt. Confira os links abaixo.

TeslaCrack - decrypt files crypted by TeslaCrypt ransomware
https://github.com/Googulator/TeslaCrack

TeslaDecoder
http://download.bleepingcomputer.com/BloodDolly/TeslaDecoder.zip


[Atualização 14/04/2016]

Foi descoberto a forma de recuperar arquivos do Ransomware Petya. A forma de atuação desse ransomware é diferente dos outros, pois este bloqueia totalmente o computador não permitindo que seja iniciado o sistema operacional. Veja no link abaixo como recuperar os arquivos sem precisar realizar o pagamento.

http://www.bleepingcomputer.com/news/security/petya-ransomwares-encryption-defeated-and-password-generator-released/

Além desse, no link abaixo é possível obter o arquivo para recuperar os arquivos criptografados pelo HydraCrypt e UmbreCrypt.

http://blog.emsisoft.com/2016/02/12/decrypter-for-hydracrypt-and-umbrecrypt-available/

Outro ransomware que já é possível recuperar os arquivos é o Jigsaw Ransomware. Este utiliza as extensões  .FUN, .KKK,  .GWS, ou .BTC e além da mensagem em inglês também existe uma mensagem em português. Confira abaixo o link de como recuperar os arquivos sem precisar pagar.

http://www.bleepingcomputer.com/news/security/jigsaw-ransomware-decrypted-will-delete-your-files-until-you-pay-the-ransom/


[Atualização 27/06/2016]

O pessoal do Cibrary.it divulgou uma matéria que contém diversas chaves para remover a criptografia do Ransomware Locky, clique no endereço abaixo e veja se alguma das chaves pode servir para você.

http://pastebin.com/HstqPx62


[Atualização 16/08/2016]


A CheckPoint lançou uma ferramenta que recupera os arquivos do ransomware Cerber. Para baixar ela, acesse o endereço abaixo.

https://www.cerberdecrypt.com/RansomwareDecryptionTool/ 



[Atualização 24/08/2016]

O website "No-More-Ransom" é uma iniciativa da Polícia Nacional de Crimes de Alta Tecnologia da Holanda, do Centro Europeu de Cibercriminalidade da Europol e duas empresas de segurança cibernética: Kaspersky Lab e Intel Security. O objetivo é de ajudar as vítimas de ransomware a recuperar seus dados criptografados sem ter que pagar os criminosos.




[Atualização 23/09/2016]


A TrendMicro também tem uma ferramenta que consegue remover a criptografia de alguns tipos de ransomwares e tem sido atualizada constantemente. Atualmente a ferramenta suporta o CryptXXX, TeslaCrypt, SNSLocker, AutoLocky, BadBlock, 777, XORIST, XORBAT, CERBER, Stampado, Nemucod, Chimera, LECHIFFRE e MirCop.

Para fazer o download acesse:https://success.trendmicro.com/solution/1114221

O que são os ataques APT?


Os ataques conhecidos com o nome de “APT”, que é a abreviação de Advanced Persistent Threat, são ataques direcionados e utilizam um conjunto de técnicas para conseguir o objetivo final, que é roubar dados e garantir o acesso à rede da empresa sem ser detectado. Existem casos de empresas que sofreram este ataque durante anos sem perceber, pois as informações eram retiradas das redes das empresas aos poucos, para não levantar suspeitas.

Segundo o Instituto Panemom, 67% das empresas afirmam que a atual estrutura de segurança é insuficiente para bloquear um ataque direcionado e normalmente esse ataque começa através de um e-mail de phishing, acompanhado de um ataque de engenharia social bem estruturado.

Alguns ataques podem tentar atingir os executivos da empresa, porém como eles são “alvos visados” normalmente os usuários comuns serão os principais alvos, e a partir deles, já com um usuário na rede, fica mais fácil criar um ataque estruturado e escalar os privilégios no sistema.

Detectar ataques APT é uma tarefa extremamente desafiadora e difícil, uma vez que os atacantes investem muito tempo para tornar esses ataques invisíveis e difíceis de serem detectados, inclusive utilizando criptografia. Um dos pontos de atenção pode ser a comunicação entre o cliente e servidor do APT. A análise e correlação de logs constante, como o uso de uma ferramenta SIEM (Security Information and Event Management), também pode ser um enorme aliado na detecção do ataque.

6 ferramentas para realizar análise forense


O objetivo da analise forense é a realização de investigação de crimes usando evidências a partir de dados digitais para descobrir quem foi o responsável por um determinado crime em particular.

Existem diversas ferramentas tanto open source como proprietárias que fazem a função de análise forense e estas ferramentas ainda podem ser divididas ou classificadas em diversas categorias, como: Análise de disco, análise de arquivos, análise de registro, análise para dispositivos móveis, análise específica em MacOS, análise em base de dados, entre outras.

Neste post eu quero listar algumas ferramentas importantes, populares e open source que podem ser utilizadas para realizar uma análise forense.

1) Digital Forensics Framework
DFF (Digital Forensics Framework) é uma ferramenta gratuita e open source que tem como objetivo atuar de forma rápida e fácil na coleta, preservação e revelação de evidências digitais, sem comprometer os dados e sistema como um todo. Com ela é possível fazer análise forense em sistemas Windows e Linux.


2) Open Computer Forensics Architecture
O Open Computer Forensics Architecture (OCFA) é um outro framework popular de segurança para realização de análises forense. Construído em cima de uma plataforma Linux e utilizando o postgreSQL para armazenar os dados, foi criado pela Agência Nacional da Polícia holandesa para realizar a automatização do processo forense digital e está disponível para download sob a licença GPL.


3) SANS Investigative Forensics Toolkit – SIFT
O SANS Investigative Forensics Toolkit (SIFT) é um sistema operacional para análise forense muito completo e que vem com todas as ferramentas necessárias utilizados no processo de forense digital. Ele foi construído baseado na plataforma Linux Ubuntu.


4) The Sleuth Kit
O Sleuth Kit é uma ferramenta que pode ser usada tanto em sistemas Unix como em Windows e possui várias ferramentas que ajudam na análise forense digital.


5) Volatility
O Volatility é um framework para realizar análise forense na memória, ou seja, a ferramenta consegue analisar o estado de execução de um sistema, utilizando os dados encontrados no armazenamento volátil (RAM), sendo muito utilizada em resposta a incidentes e análise de malware.


6) Xplico
O Xplico é uma ferramenta de análise forense para redes. Basicamente é usado para extrair dados úteis a partir de aplicações que utilizam protocolos de Internet e de rede. Ele suporta a maioria dos protocolos mais populares, incluindo HTTP, IMAP, POP, SMTP, SIP, TCP, UDP e outros mais. Os dados obtidos com a ferramenta são armazenados em um banco de dados SQLite e também possui suporte aos protocolos IPv4 e IPv6.



Estas são apenas algumas ferramentas que podem ser usadas para realizar uma análise forense, sendo que, existem muitas outras no mercado, inclusive pagas, que também são muito utilizadas. Não inclui nenhuma ferramenta específica para realizar a análise forense em smartphones, porém é algo que irá crescer muito e é preciso ter uma atenção especial. 

O que é um ataque DDoS


O Distributed Denial of Service ou DDoS como é conhecido, é um ataque que tem como objetivo indisponibilizar uma aplicação, servidor ou rede para os usuários, deixando-o indisponível  temporariamente ou suspendendo o acesso do servidor.

Diferente do ataque de DoS (Denial of Service), que é realizado por apenas um computador e uma conexão de Internet, os ataques DDoS utilizam muitos computadores e diversas conexões, que normalmente são distribuídas ao redor do mundo e fazem parte de uma rede de computadores zumbis, também conhecidas como botnet.

Os ataques de DDoS podem ser divididos em 3 partes: ataques baseados em volume, em protocolos e aplicações. Vamos entender melhor cada um deles.

Ataques baseados em volume
O principal foco desse ataque é saturar o link do alvo com milhões de pacotes, isso inclui os ataques do tipo UDP floods e ICMP floods. A forma utilizada para mensurar esse tipo de ataque é o BPS (bits por segundo)

Ataques baseados em protocolos
Esse tipo de ataque irá consumir os recursos do servidor ou dos equipamentos que fazem o intermédio das aplicações, como os firewalls e load balancers. Neste tipo de ataque, podemos citar como exemplo os ataques do tipo SYN flood, Ping of Death, Smurf DDoS entre outros. A forma utilizada para mensurar esse tipo de ataque é a pacotes por segundo.

Ataques baseados em aplicações
Esse ataque normalmente é direcionado para aplicações web e tem como objetivo derrubar ou consumir todos os recursos da aplicação. Neste tipo, as requisições são muitos parecidos como a de um visitante comum no site, porém milhares começam a acontecer ao mesmo tempo. A forma utilizada para mensurar esse tipo de ataque é as requisições por segundo.

Os ataques de DDoS estão crescendo rapidamente nos últimos meses, tanto em tempo como em volume e esse aumento tem como principal fator o crescente número de botnet.

As razões para ocorrerem um ataque desse tipo também podem ser variadas, mas conseguimos classificá-las como:

  • Hacktivistas: que normalmente envolvem uma causa política;
  • Extorsões: onde é requerido um pagamento antes de realizar o ataque;
  • Competidores: você que possui um e-commerce, imagine quanto seu concorrente faturaria se sua loja estiver offline na Black Friday, e
  • “Black Hats”: que podem fazer isso por pura diversão.


Como detectar o ataque
Geralmente esse tipo de ataque ocorre durante a noite, finais de semana e feriados que normalmente é quando a equipe de TI não está 100% ativa na empresa. A detecção pode ser tanto automática como manual.

O que tenho visto hoje nas empresas são detecções manuais, que acontecem quando o ataque já esta em curso e as aplicações do cliente já se encontram offline durante um período, basicamente a principal métrica para detectar manualmente um ataque é o consumo de link, seguido de consumo dos recursos do firewall, load balance e por último dos servidores e aplicações, sendo que todas podem ser baseadas em uma média de consumo.

Já na detecção automática, além de ter um tempo de resposta muito menor, é possível “aprender” com a aplicação atual monitorando o comportamento e, quase que de forma instantânea, bloquear um ataque DDoS em curso. Isso permite que você consiga tomar uma decisão com o objetivo de não deixar sua aplicação indisponível para seus clientes.


Se você possui um negócio online, procure avaliar os riscos e conhecer as soluções disponíveis com o objetivo de prevenir e/ou começar a desenvolver um plano de ação para que este tipo de ataque não aconteça. Caso já tenha acontecido, avalie quais foram os impactos, qual foi o tipo de ataque e como você poderá se prevenir caso volte a acontecer, além disso o investimento em segurança diminui o risco que um incidente pode causar a imagem do seu negócio e aumenta a sua credibilidade junto aos clientes!