Let’s Encrypt™ trará Certificados WildCard em 2018

Let's Encrypt lançará SSL WildCard em 2018

Let’s Encrypt lançará SSL WildCard em 2018

A organização Let’s Encrypt™ parece cada vez mais empenhada na missão de tornar a internet 100% HTTPS. Seu próximo passo, que já se encontra em desenvolvimento, é o WildCard Certificates que já possuí uma data de lançamento para Janeiro de 2018.

A organização já conta com 47 milhões de domínios seguros. Domínios validados através do seu processo automatizado de validação de domínios. Há algum tempo ela iniciou o desenvolvimento de seus certificados WildCard. Segundo eles a proposta veio pois certificados WildCard são constantemente requisitados. Eles ainda acreditam que com o WildCard teremos maior facilidade para o desenvolvimento em HTTPS e assim contribuirá para seu objetivo primordial, o de tornar a web 100% HTTPS.

Como funcionam os certificados WildCard?

O certificado WildCard funciona protegendo qualquer subdomínio dentro de um domínio base (Ex.: *.dialhost.com.br). Isto facilita muito o gerenciamento dos domínios já que um único certificado e um único par de chaves de segurança serão utilizados para o domínio e todos os seus subdomínios.

Estes certificados, assim como já acontece nos certificados Let’s Encrypt™, serão gratuitos e poderão ser ativados através da ACME v2 API.

Inicialmente a validação será via DNS do domínio base, mas já existem planejamentos para outras opções.

O que muda no mercado SSL com isto

A primeiro momento pode haver uma preocupação com relação às vendas dos certificados SSL WildCard. Mas, esta popularização é boa pois forçará este mercado a melhorar ainda mais seu nível de segurança. Afinal ainda hoje, a segurança das informações que circulam pela internet é uma das maiores preocupações de qualquer usuário que utilize a rede para realizar compras, guardar documentos e se comunicar com outros usuários.

Além disto, como comparado em outro post mais antigo que eu fiz (Desvendando os certificados SSL grátis) ainda existem certificados mais específicos que vão validar toda a empresa e não somente o domínio registrado. Neste caso espera-se  haja uma popularização deste tipo de certificado.

E que venha 2018

Se 2016 foi o ano da implantação do SSL grátis. 2018 será uma ano de expansão global para os diversos subdomínios que temos por aí. A equipe DialHost já está esperando por novidades para conseguirmos implementar mais esta ferramenta para todos os clientes.

Por hoje fico por aqui e agradeço pela leitura. Abs!

Felipe Moraes
Felipe Moraes

Desde pequeno eu adorei tecnologia e este sentimento me fez estudar e trabalhar com desenvolvimento, design de interfaces e interação. Esta vontade de melhorar e aprender com a tecnologia me fez estar aqui na DialHost desde 2012.

Desvendando os certificados SSL grátis

desvendando ssl grátis

Certificados SSL grátis | Imagem Ilustrativa – Fonte Freepik

Podemos dizer que a popularização dos certificados SSL no tráfego de informações de qualquer site na internet é uma das notícias mais importantes que tivemos este ano. Não por menos, afinal ela veio em um momento onde recebemos notícias diárias sobre vazamentos de informações sigilosas, dados pessoais, grandes invasões. Resumindo, com nossas vidas cada dia mais passando por meios digitais a segurança de dados se tornou importante demais para ser utilizada por apenas poucos.

Mas porque tivemos este ano como um marco para esta popularização da segurança da internet? Simples. Graças ao lançamento oficial da autoridade Certificadora Let’s Encrypt™ feito neste ano, agora qualquer site, loja virtual, blog ou portal de informações pode desfrutar da segurança do cadeado verde que acompanha o campo de URL em nosso navegador, sem pagar nada por isto. A autoridade que é desenvolvida e mantida pela Linux Foundation fornece certificados SSL de forma gratuita e automatizada.

Além disto, sua api de integração fácil permitiu o desenvolvimento de interfaces para sua aplicação em empresas de hospedagem. Nossas as hospedagens compartilhadas e hospedagem cloud, por exemplo, já possuem esta integração e renovação completamente atualizadas utilizando a certificação Let’s Encrypt™.

Correndo atrás desta tendência, a autoridade certificadora Comodo, em conjunto com o CPanel, também começou a disponibilizar uma versão de seu SSL gratuitamente. Ela se dá pela ferramenta AutoSSL implementada pelo CPanel em sua distribuição 58.

O que está por traz de tanta segurança e de forma gratuita?

No caso da Let’s Encrypt™, as regras de segurança são desenvolvidas e mantidas pelo ISRG (Internet Security Research Group. Ou Grupo de pesquisa em segurança da internet, em português) na califórnia. O projeto faz parte do Linux foundation Collaborative Projects. Dado isto podemos confirmar um bom ar de confiança ao projeto.

A Let’s Encrypt™ foi responsável por implementar um novo protocolo chamado ACME. Este protocolo tem o intuito de tornar mais simples a obtenção e a configuração de certificados SSL. Apesar de sua implementação ser mais simples, isto não prejudica a segurança. Os certificados emitidos baseiam-se nas melhores práticas de segurança TLS. Além disto, eles possuem chaves de criptografia de até 4096bits.

O funcionamento por traz da validação de um domínio

O sistema Let’s Encrypt™ valida um domínio através de um processo de “challenges” (desafios) onde o servidor que controla determinado domínio precisa comprovar o controle do domínio que deseja ativar o certificado.

Funciona assim, o servidor proprietário do domínio perguntará ao Let’s Encrypt™ o que é preciso fazer para provar o controle de um determinado domínio. A entidade então irá retornar algumas opções de validação, como por exemplo, através de um registro de DNS ou através de uma URI.

Durante o processo a Let’s Encrypt™ CA irá disponibilizar um código único que deverá ser assinado, com o par de chaves privadas, pelo agente validador e assim, provar que ele controla as chaves privadas.

Assim que concluído este passo, deve ser criado um arquivo no caminho especificado no site em questão. O agente validador deve assinar o código com sua chave privada. Finalizadas estas questões o Let’s Encrypt™ poderá checar o arquivo que foi colocado no servidor web para ter a garantia da validade deste domínio. Se a validade é garantida seu certificado será ativado e poderá ser visto através do navegador.

Validando certificado

Processo de validação do certificado SSL Let’s Encrypt

Certificado SSL automatizado

A parte boa nisto tudo é que o sistema do Let’s Encrypt é totalmente automatizado e aberto. Assim, já é possível encontrar serviços que disponibilizam a instalação dos certificados sem que seja necessário realizar todo o processo de validação da forma mais dolorosa. É o caso, por exemplo, da nossa plataforma de gerenciamento de hospedagem. Através de uma interface simples é possível ativar e revogar certificados. E o processo de renovação é feito automaticamente após os 90 dias de validade do certificado.

Ativação de SSL Grátis pela DialHost

Ativação de SSL Grátis pela DialHost

A evolução do Mercado

O Let’s Encrypt trouxe uma perspectiva completamente nova para a segurança nas informações que circulam na internet. Agora não existe mais motivos para um site permanecer sem segurança SSL. Mesmo se seu site possuir apenas o bom e velho formulário de contatos e não tiver tanta informação sigilosa esta proteção extra deve ser levada em conta. Tanto deve, que ferramentas de busca , como o Google, já começam a utilizar o uso  do HTTPS como fator de ranqueamento em suas buscas.  Existe ainda uma proposta do navegador Chrome para começar a alertar sites que não utilizam certificados SSL, como sites não seguros.

“Atualmente, o Chrome indica conexões HTTP com um indicador neutro. Isso não reflete a verdadeira falta de segurança em conexões HTTP.” Diz Emily Schechter, membra da equipe de segurança do Chrome.

E como fica o mercado SSL atual?

É claro que este mercado terá forte mudança. Com a popularização dos certificados SSL grátis o que se espera é uma queda nas vendas dos certificados SSL mais simples. É claro que isto não implica na morte dos certificados SSL pagos. Afinal, eles proporcionam, além da segurança na informação, coberturas por seguros reais. E ainda existem categorias que validam a empresa como um todo e não somente o domínio. Este último, traz ainda mais credibilidade ao usuário. No caso de compras ou operações financeiras, o certificado garante a ele estar usando o site real da empresa desejada.

E vocês o que esperam sobre os próximos passos da segurança na internet? Será que teremos ainda mais sistemas colaborativos neste intuito? Será que o mercado proprietário conseguirá trazer soluções ainda mais robustas para garantir sua privacidade?

 

 

Felipe Moraes
Felipe Moraes

Desde pequeno eu adorei tecnologia e este sentimento me fez estudar e trabalhar com desenvolvimento, design de interfaces e interação. Esta vontade de melhorar e aprender com a tecnologia me fez estar aqui na DialHost desde 2012.

Password Hashing – API nativa para gerenciamento de senhas

 

Imagem ilustrativa

Imagem ilustrativa

A segurança de dados sensíveis dos usuários é sempre um fator determinante para a integridade de qualquer aplicação. Dada essa premissa, esforços são constantes nessa área para prover os sistemas computacionais de formatos criptografados cada vez mais seguros.

Senhas geralmente são armazenadas em hash, que nada mais é do que um símbolo derivado de um algoritmo que o torna incapaz de, à luz da teoria, obter seu estado original. Apesar do nível de complexidade de algoritmos que geram hashes, temos hoje diversas formas que tentam recuperar dados originais “escondidos” através de dicionários, rainbow tables ou força bruta.

Pensando nisso, desenvolvedores da linguagem PHP, preocupados não só com a integridade de senhas mas também com a facilidade de programação oferecida pela linguagem, optaram por criar uma API nativa capaz de somar ao mesmo tempo segurança e simplicidade para armazenamento de credenciais. Criaram então uma extensão de criptografia chamada Password Hashing, disponível desde a versão 5.5.0. Essa extensão utiliza o algoritmo bcrypt, o mais forte suportado pelo PHP atualmente.

Recursos oferecidos

A API oferece um pequeno e poderoso conjunto de funções capazes de auxiliar o programador a criar hashes seguros, realizando todo o trabalho braçal de forma segura e com alto grau de confiabilidade. A seguir, suas respectivas funções:

password_hash

Cria um novo hash de senha usando um algoritmo de hashing. O caso geral para esta função é atribuir um custo (potência matemática) razoável para o algoritmo e deixá-lo criar um salt (parâmetro que gera aleatoriedade da saída) qualquer. O uso de bcrypt sempre retornará uma string de 60 caracteres.

1 <?php
2 echo password_hash("imasters",
3 PASSWORD_BCRYPT,
4 [
5 "cost" => 12, // Se omitido, custo 10
6 'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM) // Você pode omitir este parâmetro para geração de salt aleatório também.
7 ]
8 );
9 // Resultado $2y$12$syPYpcHYHWfyraREZ5BCc./OiKezWghwO/5HsbvNv0U4G1xqjsguW

password_verify

Verifica se uma senha corresponde a um hash.

1 <?php
2
3 if(password_verify('imasters', '$2y$12$sy...'))
4 echo 'Senha válida!';
5 else
6 echo 'Senha inválida!';

password_get_info

Retorna informações sobre o hash dado como algoritmo usado e custo.

1 <?php
2 var_dump(password_get_info('$2y$12$sy...'));

password_needs_rehash

Verifica se um determinado hash corresponde a informações fornecidas. Caso não seja, assume-se que ele precisa sofrer o processo de hash novamente. Como a função retorna apenas um valor booleano, seu real uso pode ser observado abaixo, quando troco as configurações de geração de hash, ou seja, a senha é válida para aquele algoritmo, mas não para o novo custo que inseri, então gero o hash novamente para a nova configuração.

1 <?php
2 $senha = 'imasters';
3 $hash = '$2y$12$sy...';
4 if(password_verify('imasters', $hash)) {
5 echo "A senha é válida\n";
6 if(password_needs_rehash($hash, PASSWORD_BCRYPT, ['cost' => 11])) { // Mudei o custo para 11
7 echo "Senha precisa de novo hash\n";
8 $hash = password_hash($senha, PASSWORD_BCRYPT, ['cost' => 11]); // Gerei o novo hash
9 echo $hash; // Basta salvar no banco de dados agora
10 }
11 else
12 echo "Senha não precisa de novo hash";
13 }
14 else
15 echo "Senha não verificada";

 

Conclusões

Neste artigo, mostramos a facilidade e a simplicidade do gerenciamento de senhas com a API Password Hashing, acompanhadas de um poderoso algoritmo, o bcrypt. O grande objetivo desse recurso é fazer com que você se preocupe mais com as funcionalidades da sua aplicação ao usuário e menos com a complexidade da segurança de senhas.

Referências:

 

Victor Torres
Victor Torres

É Jedi na DialHost, bacharel em Ciência da Computação e mestrando em Modelagem Matemática e Computacional pelo CEFET. Trabalha com desenvolvimento web desde 2007. Pesquisador de otimização e criptografia, é apreciador de um bom café e fã de histórias futuristas.

Engenharia Reversa e códigos criptografados

Engenharia Reversa

Imagem Ilustrativa – Engenharia Reversa

Introdução

Softwares capazes de criptografar a escrita de códigos fonte em diversas linguagens estão espalhados pela rede. Geralmente pagos, tais programas são capazes de fornecer ao usuário certa confiabilidade de que seu código não será modificado por terceiros e a vantagem do encapsulamento de toda a lógica de programação envolvida na criação do programa em questão. Você vai encontrar muitos destes códigos principalmente em produtos vendidos com uma licença, onde mesmo portando todos os arquivos necessários para o funcionamento, estes são ilegíveis para o usuário. Podemos citar alguns exemplos utilizados na linguagem PHP como ionCube, ZendGuard, phpSHIELD e sourceguardian.

Limitações de software

Infelizmente, alguns destes produtos possuem pouca ou nenhuma documentação (não sei se é porque os autores os consideram autoexplicativos ou tem preguiça mesmo) tornando dolorosa a integração no seu ambiente de desenvolvimento. Caso a empresa fornecedora ainda disponibilize uma API, a situação complica ainda mais  pois a possível integração com outros programas faz com que o detalhamento de uma documentação forte (tipos dos parâmetros, modelo de resposta de sucesso/erro, tratamentos, etc) e concisa seja mais necessária ainda.

Caindo nesta situação ou não, códigos compilados sempre são uma dor de cabeça para quem precisa conhecer mais detalhes de implementação. “Ah mas se alguém fez isso, a intenção é que essa pessoa não quer a edição do código e sim que ele seja simplesmente usado, sem alterações.  Além disso, por causa de licenças, é até ilegal tentar reverter ou obter detalhes específicos da implementação do autor”. Certo, não vou entrar em detalhes do que se pode/deve fazer com códigos criptografados, inclusive muitos deles vêm com uma mensagem de alerta já sobre este tipo de prática e.g “You may not reverse engineer, decompile, defeat license encryption mechanisms, or disassemble this software product or software product license”. O caso aqui é apenas informativo, estamos aplicando conhecimento, não incentivando a prática de sabotagem e violação de direitos e políticas de uso.

Técnicas de engenharia reversa

Estamos trabalhando com a linguagem PHP neste artigo, portanto iremos usar as ferramentas disponibilizadas nativamente pela linguagem para tentar descobrir detalhes de implementação de arquivos os quais não conseguimos acesso ao fonte original. Não mencionarei aqui o uso de debuggers como Xdebug (que pode ser uma boa opção) pois gostaria de dar foco diretamente a classes e funções da linguagem para que vocês possam dar uma olhada em um nível um pouco mais baixo, assim verão a variedade de técnicas que podemos usar para obter detalhes de uma “caixa preta”.

Estão listadas aqui as principais funções/classes do PHP que nos serão úteis para dar um debug em determinadas funcionalidades:

get_declared_functions() – Retorna um array com todas as funções definidas em tempo de execução;
get_defined_vars() – Retorna um array com todas as variáveis declaradas em tempo de execução;
get_declared_classes() – Retorna um array com o nome das classes definidas em tempo de execução;
ReflectionFunction – Reporta informações sobre uma função (a API inteira do Reflection por si já desempenha o papel na engenharia reversa) ;
ReflectionClass – Reporta informações sobre uma classe (a API inteira do Reflection por si já desempenha o papel na engenharia reversa) ;
debug_backtrace() – Gera um backtrace a partir do ponto que foi chamado
debug_print_backtrace() – Lista o backtrace de chamadas de funções no php (mais simples que o debug_backtrace)

Utilizar estas ferramentas pode ou não ser uma tarefa fácil. Se o autor comentou corretamente o cabeçalho das funções com o tipo dos parâmetros, o retorno, alguma explicação e outros detalhes, há uma chance maior de conhecermos a lógica da programação da classe ou função. Percebam que este é um trabalho investigativo e por vezes cansativo e frustrante. Porém, é deste jeito que a engenharia reversa funciona. Nada é tão simples e a cada passo que dermos, dependendo da complexidade do que investigamos, novos horizontes serão postos em jogo para que possamos inspecioná-los.

Exemplo

Usarei aqui um exemplo de um arquivo criptografado pelo ionCube. Observe o conteúdo:

<?php 
//  foo.class.php
//  Geralmente aqui se encontra algum comentário onde te desencoraja a usar engenharia reversa, decriptografação e outros meios capazes de desencapsular/modificar o conteúdo abaixo.
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
?>
HR+cPwXaWbBeoNPbuTKNSVpZqpN+oAtPNtNjlfYiPCc2mlwAqsXxDbZcfl2K6WO0CHKddChRMfI/
IVNJ83hk6hyzoI47wqPFfbHRgOjZWb1GPYoH173wv83BSp6GlKFvSFTqsomiTXdoA2HhAT9ebTOR
10oyg/f2/IfCZ6IxmOVboj+DrpT4bc47lwUfZejB//SLL02UsJ2Bj4rkkmeAKFNccgQP+/yUmWaZ
/Sk7AqsrFLdhPR3hmn8LsW0MgIqXvg38aL5RRo+CKITc2GjAiKWtDTfstxHvjHzm3QzAohn6E1Vr
pVH9zTUG9eGcUYPhh/8iIRnkwFdbuvtyVL3oWvfgUc+UkxMoiAlKPVld2+3QupSMAfefCJW19oH0
3ObqC3tGraI0zkA+LNnAq6ngbh+GjPlPANSYAf5B4BMj1XCsI2z58EpDilAC+KjvDEiUpf40I8ES
7mVfwLAtQGqTWcDQccA7Q9i2UHzI770hIa2Z3OLOu+Lan8AgKOTOwvkg0gzGj7oJv9VxgglQZBXi
D65kK+jOLiF+uzggyp5GU8XOt553qNc/kxDwda356DIJSVvKbubsy8dm4H4iqMjM61T1ntWSb7HI
/F6eW8A4d/9mSM5NTlD2T8Xa8WoyHv42Ucne73gAy9KG/p5W8dVoT2885eTKLQMHmv1LgcWEr6op
yOh4Qlk8bLV5Y4xVOMx+VPv3kyOJh9v7p2FYxg/mmLgwuW9ec168w5954yee2wVcUwmn+dctdrmH
qwTAvnyeyrMHGti4+RaxA83N4U1Kv5VaeCHHdcgxu5BNo3urgUwexfmW1qD/5PlV3nfX0UiEt819
HR9MX1+VTj9q54jl772sclpA8VBrf+9uIq8kQdT4L4pdPMLbKg0h3+bHohMtp+qF7ANjZFhibySE
kxapXBcpLEI5IDR/6f2v97jWMM/NdOJ2eF9CmBqrDc8xlKyoYX3sqiwe9djDhjZV/9nNjzcp3aTN
y/I3sLfAgRapC0Kx5nrfD2gx0ByBbWNxdXOh2zixCTVH0VxZTNIea9m98fcZdqrq+gf2HJ00KThu
g+Rc84X+Q9qTNy9ZL7KvSXbE6wOX0mYQ6sumw7FctbSa94f+4d9pkQtdrc8klaxWfMwOumkX66cA
7zS2OFWjIL2r7naC9U3vWGDmZkbE0mpr4Ox2Hd/SJKlC2kD524Y+hy9fB1+5DNRQtuh61lEN1pdS
SkomStrIv/5Wo53bOVoyv/h9L+lhofln95Cq9SdnT4KNhuLaBiG4+B1FnzTvAXYnGkgJGaRFRYGZ
wtfdkoJdblh06hyV06Fo5UahTpiPgfmv8sx6N10W4V+QTWJeeD1mLmJY9rGiGSBNV52/WNWHwwxX
DprWWWXy8VS85e/wBJD9RD0F1lr8m8iUMHvCnHQUSBLG3WjrznmtDkeRgmccbOpG40PjMvcLxOxz
5NNoDdORj6122Ki5yrc7yLAgXsOZDYQ+flbExF/2fu23/J1VNGklLB9ot34xW8n+mL6rZDYU9ad0
IxNwkx668/i4WcyHcAk0wOYYwjtfHTJ7QoB3miWgWphCWmspsELboaLzgIno1tF7cBqtPpaG21+T
t5OaIXPoz6TcKOeWEK7vHMQKJi5Y/PIT8sVlHfr7XB5taarmolHahJQQMlMZAJ3KpX1Wr7LDDZHs
8YJIjsAFcL+5ViIpyzYMiV1p4OCIHunKiGUPvyvuZy6Ply4NenyIPdm=

Dada a situação de um código ilegível, vamos aplicar, sequencialmente, algumas das técnicas mostradas acima. No caso,

get_declared_classes()
ReflectionClass()

pois, por inspeção (diretório do arquivo, nome do arquivo, sequenciamento da lógica executada até o ponto, etc) sei que se trata de uma classe e que esta, possivelmente não trabalha sozinha, ou seja, precisa da integração com outras classes nas formas de agregação ou composição.

<?php
	include 'foo.class.php';
	echo '<pre>';
	var_dump(get_declared_classes());

	echo new ReflectionClass('Foo'); // __toString()
?>

Como retorno obteremos

array(133) {
  [0]=>
  string(8) "stdClass"
  [1]=>
  string(9) "Exception"
  [2]=>
  string(14) "ErrorException"
(...)
  [131]=>
  string(13) "XSLTProcessor"
  [132]=>
  string(3) "Foo"
}

/**
     * Foo
     * 
     * Alguma descrição virá aqui
     * Isto é bom
     *
     * @author Alguém
     */
Class [  class Foo implements Bar ] {
  @@ /var/www/html/testes/index.php 14-55

  - Constants [1] {
    Constant [ integer CONSTANTE ] { 5 }
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [2] {
    Property [  private $a ]
    Property [  private $b ]
  }

  - Methods [2] {
    /**
     * teste
     *
     * Esta função faz x, y e resulta em z
     *
     * @return	string
     */
    Method [  public method teste ] {
      @@ /var/www/html/testes/index.php 41 - 43
    }

    /**
     * novo
     *
     * Recebe um inteiro e retorna um bool
     *
     * @params	bool	$param
     * @return	int
     */
    Method [  public method novo ] {
      @@ /var/www/html/testes/index.php 52 - 54

      - Parameters [1] {
        Parameter #0 [  $param ]
      }
    }
  }
}

Vejam que ao chamar as funções de classes definidas, observamos, após a listagem de todas as classes pré-definidas do PHP, uma classe Foo, da qual não temos certeza se é ou não nativa da linguagem.

Inspecionamos com o ReflectionClass e por fim podemos entender um pouco da estrutura daquela classe que inicialmente estava obscura devido ao uso do ionCube.

Conclusão

Vimos então que, pelo menos para o PHP, é possível obter detalhes de implementação independente de como o software foi organizado e seu acesso disponibilizado. Não precisamos essencialmente do acesso direto ao conteúdo lógico e sequencial do arquivo, basta incluí-lo e inspecionar o comportamento de suas classes, funções e variáveis.

Espero que este artigo tenha lhe proporcionado uma luz sobre códigos “obscuros”. Lembre-se que você também pode utilizar estas funções para debugar seu próprio código (que acredito ser a ideia original delas), funcionando como uma ferramenta de apoio para a sequência lógica dos seus programas.

Victor Torres
Victor Torres

É Jedi na DialHost, bacharel em Ciência da Computação e mestrando em Modelagem Matemática e Computacional pelo CEFET. Trabalha com desenvolvimento web desde 2007. Pesquisador de otimização e criptografia, é apreciador de um bom café e fã de histórias futuristas.

Onda de ataques Hacker no Joomla

cms Joomla

Imagem: Marca do cms Joomla

Usuários do CMS Joomla que possuem a versão 1.5 ou inferior estão recebendo ataques nos últimos dias, devido a uma vulnerabilidade descoberta no editor JCE.

Hackers utilizam através de falhas no código desatualizado, métodos para alteração de templates e envio de arquivos maliciosos no servidor, proporcionando assim o controle de vários sites com versões antigas do CMS e espalhando mensagens diversas.

Recomendamos a todos os clientes que utilizam Joomla a sempre mantê-lo atualizado, juntamente com todos os addons que são usados dentro dele para que casos como este não ocorram. Manter seu software desatualizado tem como principal consequência a facilidade na quebra de segurança por invasores.

Não se esqueçam também de sempre manter um backup do seu site por segurança.

Referências:

http://imasters.com.br/noticia/onda-de-ataques-contra-sites-com-versao-desatualizada-do-cms-joomla/
http://bitautonomo.blogspot.com.br/2013/02/onda-de-ataques-prejudicam-usuarios-do.html

Conheça os planos de hospedagem de sites para colocar o seu site em Joomla online sempre.

Victor Torres
Victor Torres

É Jedi na DialHost, bacharel em Ciência da Computação e mestrando em Modelagem Matemática e Computacional pelo CEFET. Trabalha com desenvolvimento web desde 2007. Pesquisador de otimização e criptografia, é apreciador de um bom café e fã de histórias futuristas.