Fork me on GitHub
Você esta em:Home » Destaque » Módulo de análise de risco e fraude no Magento sem mensalidade!

Módulo de análise de risco e fraude no Magento sem mensalidade!

Módulo de análise de risco e fraude no Magento sem mensalidade!

Aprenda a tornar seu ecommerce Magento seguro e á se proteger sem precisar pagar mensalidade ao FControl e ao ClearSale.

Hoje em dia um sério problema que deve ser considerado por qualquer loja virtual que venda com cartões de crédito é o não-reconhecimento da compra pelo cliente, pois mesmo após a transação aprovada pela administradora do cartão você ainda correrá risco!

Existe a possibilidade de quem esteja fazendo a compra não seja o cliente dono do cartão e sim um ladrão!

Então ao pesquisar na web é fácil encontrar várias ferramentas de análise de risco e fraude para seu e-commerce Magento. As mais conhecidas são a Clear Sale e a FControl. Mas parei para pensar, como essas ferramentas funcionam???

Esse tipo de serviço de análise de risco e fraude, se baseia em dados estatísticos para determinar se um cliente é ou não confiável. Então o mesmo lhe apresenta o grau em porcentagem de risco da venda.

Pois bem, esse tipo de serviço não é barato, então parei rapidamente para analisar como as ferramentas de análises funcionam, assim e setei alguns pontos para identificar os ricos rs :D

Segue os pontos que identifiquei onde se pode analisar o usuário e sua compra.

  1. Proxy – Bem eu acredito que esse seja o mais importante. Se coloque no lugar de um Hacker com um número de cartão de crédito em mãos. Acredito que 99,99% dos infratores não gostariam de ser localizado, então iram usar um servidor de proxies para esconder sua localização.
  2. País – Pense bem, hoje em dia, devido a grande expansão das compras via web, muitos brasileiros possuem cartão de crédito internacional, ok? Mas seu e-commerce venderá para outros paises??? Bem acredito que não né? Já que não, então porque uma pessoa dos EUA precisa comprar em seu ecommerce? Existe a possibilidade de um brasileiro comprar algo lá e mandar enviar para alguém da família dele. Abaixo descrevo uma saída.
  3. Endereço para entrega – Uma maneira simples de analisar uma compra com um potencial de risco, é verificar o estado setado no endereço de entrega do produto; Pois mesmo que um cliente seu esteja em SP e queira comprar um produto para ser enviado ao RJ, recomendaria nó mínimo uma atenção a esse pedido, correto? Pois pelo que verifiquei em +/- 70% das compras são para entregar no mesmo endereço em que o usuário utilizou para realizar a compra.

Bem mas como se proteger? Assim como os passos acima que identifiquei os pontos vulneráveis na negociação, abaixo irei postar as soluções que encontrei para os pontos acima.

Para o ponto identificado acima de número 1 (O Proxy)

  • Para os proxies é até simples, pois cerca de 90% dos estelionatários da web são 171 e não inteligente ao bastante de burlar uma simples proteção contra proxy, rs. Então em meu primeiro pensamento foi, implementar um script em php que identifique a utilização do proxie. Mas existe outras opções, primeiramente irei explicar como faria nesse primeiro pensamento que tive

Para essa primeira idéia que tive, achei algumas formas de se identificar a utilização de proxie em php. E uma delas foi o PROXY Detect 2.0  

Fonte: http://forum.imasters.com.br/topic/418595-proxy-detect-2-0/
view raw
fonte-do-script-acima
This Gist is brought to you using Github.

<?php
function proxy_detect ($null) {
$proxyports=array(80,8080,6588,8000,3128,3127,3124,1080,553,554);
for ($i = 0; $i <= count($proxyports); $i++) {
if(@fsockopen($_SERVER['REMOTE_ADDR'],$proxyports[$i],$errstr,$errno,0.5)){
$sockport=true;
}
}
if(
    $_SERVER['HTTP_FORWARDED']
|| $_SERVER['HTTP_X_FORWARDED_FOR']
|| $_SERVER['HTTP_CLIENT_IP']
|| $_SERVER['HTTP_VIA']
|| $_SERVER['HTTP_XROXY_CONNECTION']
|| $_SERVER['HTTP_PROXY_CONNECTION']
|| $sockport == true
)
{
return true;
}else{
return false;
}
}

if(proxy_detect($null) == false){
echo 'Nenhum proxy detectado.';
}else{
echo 'Proxy DETECTADO!';
}
?>
view raw
PROXY-Detect-2.0.php
This Gist is brought to you using Github.

Basicamente esse script script detecta se o usuário esta usando proxy, com diversas modalidades. Segundo o autor, apenas Elite Proxy (super anônimo proxy) conseguiria passar pelo script. Ou seja, os 10%.

fonte: http://forum.imasters.com.br/topic/418595-proxy-detect-2-0/

Segue outros scripts de deteção de proxy:

Obs: Não recomendo avisar ao infrator que ele esta sendo identificado, pois aprendi em todos esses anos de desenvolvimento e adm Linux que não devemos rebater uma invasão. Então caso vc notifique o hacker que ele é um bosta, ele vai chamar uns outros amigos para te fu… e ai vai dá ruim rs.

Recomendo então, deixar ele comprar normalmente e na tela de sucesso do Magento vc enviar um email ao financeiro avisando que a ordem de compra de numero tal é de um hacker, simples e eficaz! Assim o depto financeiro irá entrar em contato com a operadora do cartão de crédito e avisará que ouve uma compra com o cartão de numero tal foi identificada como de alto grau de risco e que foi utilizado proxy para se efetuar a compra. E o hacker irá receber um email do financeiro avisando que a compra foi suspeita e que foi cancelada!

Segue script para envio de email pelo Magento, onde como dito acima poderá ser implementado na tela de sucesso para envio do email ao depto financeiro ou responsável.

<?php

$mail = new Zend_Mail();
$mail -> setBodyText( $MensagemEmHtml );
$mail -> setFrom( "error@seusite.com.br", "Error Envio" ); //Quem esta enviando
$mail -> addTo( "webmaster@seusite.com.br", "Webmaster" ); //Quem irá receber
$mail -> send();

?>
view raw
envia-email-magento.php
This Gist is brought to you using Github.

Módulo acima para Magento free por 3 meses, depois 10 euros o plano básico.

Hoje ao navegar na web, adivinha com qual módulo me deparei? Justamente com o módulo que eu explique a lógica acima. Ele se chama BlockThatProxy

Esse módulo possuí uma versão para teste válida para 3 meses. Para assinar a versão básica custa 10 € para 2000 testes. Veja mais acessando: http://www.blockthatproxy.com/plans.aspx


Texto do módulo acima traduzido pelo Google:

Esta extensão integra o sistema anti-fraude da BlockThatProxy.

Com alguns cliques, e uma conta livre de www.blockthatproxy.com você pode configurar o sistema para verificar todos os clientes durante o checkout. Se o cliente usa um proxy ou IP na lista negra, você receberá automaticamente um aviso de e-mail, incluindo o número de ordem, um link para confirmar o endereço de compradores e uma distância calculada entre o usuário digitou endereço de entrega eo endereço IP do usuário pertence (encontrada usando o nosso banco de dados global).
O usuário pode ser redirecionado automaticamente para qualquer página que você decidir, por exemplo, para que você possa criar uma página e pedir-lhes para entrar em contato para confirmar a sua ordem. Desta forma, você tem certeza de não processar um pedido fraudulento. Ordens detectados como possíveis fraudes são automaticamente definidas como “possíveis fraudes”, em Magento, para que você possa confirmar o pedido manualmente antes do processamento e enviá-lo.

O download do módulo Block That Proxy encontra-se no Magento Connect em:
http://www.magentocommerce.com/magento-connect/Wickings/extension/4560/blockthatproxy

Obs: Se você não enfrentar o hacker ele não vai tentar comprar novamente em seu ecommerce, pois para ele vc esta utilizando um sistema anti fraude e/ou de análise de risco. e se ele tentar novamente talvez o cartão que ele tem em posse poderá ser bloqueado! Bem eu achei show de bola essa visão que tive rs, mas não para por ai, ainda temos os outros passos e como bloquear?

Para o ponto identificado acima de número 2 (O País)

Pois bem como dito anteriormente, se você não pretende vender para outros países bastaria bloquear o acesso de outro país que não seja o Brasil, ou seja, você poderia criar um script em PHP de geolocalização que enviasse um email também para o financeiro ou responsável notificando a compra no exterior, assim o depto financeiro poderia antes de capturar os dados ligar para a pessoa que comprou e perguntar algumas coisas, como qual foi o antigo trabalho, qual o nome da mãe,… (Hoje em dia existe a possibilidade de consulta desses dados por sistemas de consulta ao Serasa e SPC)

Segue script de Geolocalização que poderá ser usado na página de sucesso do Magento para enviar o numero da ordem de compra e o aviso de risco na compra por outro país.

<?php

/*Funcao de Geolocalizacao ###########*/

function get_ip_info($ip,$minuscula)
{
    if(!$_SESSION['pais']){
            $url = "http://www.geoiptool.com/?IP=".$ip;
            //echo $url;

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL,$url);
            curl_setopt($ch, CURLOPT_FAILONERROR, 1);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            $curl = curl_exec($ch);
            curl_close($ch);
         $pattern = "#(align="left" class="arial_bold">(.{2,200})</td>|<img src='/flags/.{2,5}.gif' alt="(.{3,40})" align="absmiddle" ></td>)#s";
            preg_match_all($pattern, $curl, $matches);
         //print_r($matches);
         $arrIP_info = array_merge(array_filter($matches[3]),array_filter($matches[2]));
            $bodytag = strtolower( $arrIP_info[2] );
            $bodytag = strip_tags( $bodytag );
            $bodytag = str_replace(" Country:", "", $bodytag);

            $_SESSION['pais'] = $bodytag;

          if($minuscula == "1"){
              return strtolower( $bodytag );
          }else{
              return $bodytag;
          };
    }elseif($minuscula == "1"){
        return $_SESSION['pais'];
    }else{
        return ucfirst($_SESSION['pais']);
    };

};


$ip = $_SERVER['REMOTE_ADDR'];
$pais = get_ip_info( $ip , "1");


  if ( $pais == "brazil" ){
        echo "<h1>".$pais."!!!!</h1>";
  }else{
        echo "<h1>".$pais."!!!!</h1>";
        //Envia email financeiro
  };

?>


view raw
Geolocalizacao.php
This Gist is brought to you using Github.

Obs: Assim como o primeiro script não recomendo avisar o fraudador que ele esta em outro paíse que você pegou ele. 

O módulo acima de Geolocalização versão paga

Com ele você consiguirá:

  • Bloquear um determinado país
  • Criar um grupo e bloquear um grupo de países
  • Veja os usuários online em sua loja. Você pode ver o seu nome, endereço IP, País e da URL que eles estão. Filtrar através da rede e encontrar os usuários de um determinado país
  • Você pode ver uma lista de IPs bloqueados em uma grade
  • Agora você pode adicionar uma lista de IPs Super que podem passar pelo País bloqueado. Isto é, se você precisa deixar alguém acesso ao site a partir do país bloqueado ou você pode bloquear todo o mundo e deixe o acesso ao site a apenas IPs poucos
  • Você pode inserir uma mensagem personalizada para exibir para os usuários que não têm permissão para acessar o site

http://www.fmeextensions.com/extensions/catalog/geoip-country-lock-products.html

Para o ponto identificado acima de número 3 (O Estado)

Assim como o item numero 2, existe a possibilidade de enviar um aviso ao depto financeiro ou responsável que o cliente esta comprando de um estado para entregar no outro. Mas nesse caso eu recomendo a utilização do módulo chamado:

Magento Fraud Screening using Maxmind, Order Risk Scoring. Com ele você terá algo bem próximo ao ClearSale e ao FControl, porém muito mais barato.

Ou seja, ele analisará vários fatores, como:

  • Desconto de 20% em suas taxas MaxMind. (MaxMind funciona como o FControl e o ClearSale – 1000 análises por 10 dólares)
  • Ordens de maior risco em destaque no Magento lista de encomendas.
  • Configurações personalizáveis de risco.
  • Discriminação detalhada de pontuação de risco.
  • Exibe MaxMind créditos restantes (taxa MaxMind dependentes volumes de uso).
  • O acesso completo a todas as funcionalidades MaxMind incluindo:
  • Localização do cliente verificar pelo endereço IP.
  • Verificação de IP de alto risco e endereços de e-mail.
  • Verifica Número de identificação bancária (BIN) país contra país do cliente.
  • Detecção de proxies anonimato.
  • Verifica se há anomalias do transporte / endereço de faturamento.
  • Coloca automaticamente as ordens em ‘Hold’ status se arriscado (configurável)
Bem é isso, ai você me pergunta: Deivison qual seria a melhor solução? Eu recomendaria criar as programações do passo 1 e 2 e não comprar os módulos, pois acredito que funcionará da mesma forma. Agora a estapa 3 recomendaria dar uma olhada na Api da Maxmind e ver a possibilidade de integrar. Irei pesquisar mais e irei publicar aqui como fazer essa integração e colocar automaticamente o pedido em Hold ou para quem não tiver tempo ou não quiser aguardar recomendo comprar o módulo, pois o mesmo funciona em praticamente todas as versões do Magento(1.3, 1.4, 1.4.1.1, 1.4.2, 1.5, 1.6, 1.6.1, 1.6.2.0, 1.7).
Assim com certeza vocês estará bem seguro. É isso espero ter ajudado mais uma vez!
PS: Em breve descreverei o 3D Secure

Sobre o Autor

Designer, Web Developer & Linux Administrator

Meu nome é Deivison Arthur, tenho 29 anos, sou Administrador Linux, Analista de Sistema, Webdesigner e Pesquisador. há mais de dez anos. Nasci no Rio de Janeiro, atualmente trabalho como Gerente de Tecnologia e E-commerce at Grupo FFernandes e Freelancer nas horas vagas. Desenvolvimento em Joomla, Wordpress, Drupal, Magento e outros GPLs...

Quantidade de Artigos : 98

Comentários (6)

  • Adriana

    Com relação ao codigo php pra detectar o proxy… e no checkout do cliente que eu utilizo ele certo?
    mas ai ao invez de mandar um email para o departamento financeiro, ele nao poderia guardar a informação, para ser vista no adm na conta do cliente ? acho que seria ate melhor…

    Responder
  • Antonio Alves

    Excelente artigo Deivison!

    Tenho uma dúvida: o primeiro código (proxy) é para ser inserido na tela de sucesso tb?

    Se sim, o código para enviar o email poderia ser inserido dentro do else abaixo?

    “}else{

    echo ‘Proxy DETECTADO!’; }”

    Responder
  • Joao Augusto

    Eu gostaria de que você disesse exatamente onde é para ser inserido o primeiro e o segundo códigos, em quais arquivos??

    Grato

    Responder
  • Joao Augusto

    Poxa amigo, não estou entendendo por qual motivo você está apagando meus comentários, estou apenas pedindo a sua ajuda!!Estou implementando um site localhost e pretendo usar essa detecção de proxy mas não sei EM QUAL ARQUIVO é pra inserir o primeiro e o segundo script.VocÊ poderia me dizer?É só isso que quero saber.Grato.

    Responder

Enviar Comentário

© 2012 Feito com Wordpress, Desenvolvedor: Deivison Arthur Lemos Serpa

Ir para cima