Pijama 2
Publicado; 06/06/2004 Arquivado em: Unsorted 6 ComentáriosDa série “pijamas“…
Este até brilha no escuro… Há até quem diga que é sexy! 😉
Curiosidade: have you been playing with the configuration?
Publicado; 06/06/2004 Arquivado em: ColdFusion 2 ComentáriosTrocando códigos via MSN com o Terracini hoje de madrugada ele me dizia: “não está funcionando aqui!” (e não podia estar mesmo). Ele continua: “o raio do servidor está retornando uma mensagem maluca de erro, e olha, ela é um tanto quanto engraçada!“…
Pois eis que um pedaço de código legado do beta do CFMX 6.0 (codinome Neo) surge na tela com um comentário engraçadinho no final. Basta você errar o nome de qualquer tag (ou inventar uma) para que a mensagem apareça, como por exemplo rodando isso aqui:
<cfalex teste="teste">
A mensagem de erro que será mostrada é: You are using tags whose name begins with CF, but the tag is not registered with Neo. Either the tag is not completed yet, or have you been playing with the configuration?.
Me fez lembrar do ovo de páscoa que existia no CFMX 6.0 e outras gracinhas que os engenheiros de software costumam esconder em seus programas… Também pudera, você já viu a cara dos figuras que fazem parte da equipe de desenvolvimento do CF na Macromedia?
Pintando e bordando com a senha do CF Administrator
Publicado; 05/06/2004 Arquivado em: Segurança 15 ComentáriosFabio Terracini e eu nos deliciamos ao encontrar servidores ColdFusion desprotegidos. Esta semana ficamos brincando com um servidor CFMX 6.1 de uma grande instituição brasileira e eis que de tanto fuçar conseguimos descobrir a senha do ColdFusion Administrator. Até aí nada demais, afinal de contas o servidor não usava sandbox security (!!), contudo fomos checar e esta senha era a mesma usada no gerenciamento remoto (VNC, PCAnywhere, etc), era a mesma da conta “Administrator” e pasmem: a mesma em toda a rede de de 5 servidores, entre ColdFusion Servers, SQL e outros, que pudemos ver através do “My Network Places” do primeiro servidor que entramos. Antes que comecem a chiar: os administradores já foram avisados do problema e já estão cientes do que devem fazer para corrigí-lo. Exemplo típico da fileira de dominós, cai um, cai todos. Por isso lembre-se: use senhas diferentes!!
O que nos motiva a procurar brechas e explorá-las? (importante: sem causar estragos). Bem, não existe nenhuma questão filosófica, nenhuma necessidade de burlar as regras, falta do que fazer e muito menos posar como script-kiddies e ficar “bonito na fita” junto da meninada que vara as madrugadas tentanto sacanear sites. A motivação é a mesma que deveria nortear todos os programadores e administradores de sistemas (por isso este post): tornar o ambiente de produção mais seguro, não importa se ele é seu (co-location, dedicado, etc) ou se é de alguém e você está fazendo uso (empresa de hosting, servidores de clientes – que aliás é justamente o caso, etc). Para fazer isso, você deve ignorar todo o blá, blá do administrador do servidor (que normalmente é um metido e não sabe por%#@ nenhuma e ainda faz desdém de programadores CF) e testar o ambiente ao máximo, antes de fazer o deploy final. Isso é especialmente válido se neste servidor existirem outras contas de hospedagem de gente que você não conhece.
Existem diversas abordagens e testes que você pode (e deve) fazer, porém existe um ponto de partida que é batata e que bato sempre na mesma tecla aqui: o número de instalações de ColdFusion inseguras no país é impressionante. Fica fácil começar a checar brechas por este ponto. Notoriamente o ColdFusion Administrator sempre teve um calcanhar de aquiles que é sua autenticação, constituido por um único campo de senha e que ainda por cima é armazenada de forma pessimamente criptografada (eu diria apenas “codificada”) em algum arquivo ou entrada do registro. Eu sinceramente não entendo porque as pessoas insistem em deixá-lo aberto e desprotegido, sem usar de outros artifícios adicionais de proteção como senhas NTFS ou via .htaccess. Os exemplos são inúmeros como vocês devem saber.
Com o CFMX temos duas ou três maneiras de se “recuperar” a senha de administrador (no Google você vai encontrar estas informações), mas atualmente, com as “correções” feitas pela Macromedia, especialmente no Updater 2 do CFMX 6.0, só existe uma maneira de fazê-lo, mesmo assim somente em servidores não sandboxeados. Você só vai precisar usar CFFILE e a função Decrypt(), nada mais. Sim apenas isso. Engraçado perceber que este método de “recuperação de senhas” não tem nenhuma descrição ou comentário/referência na Internet (procure no Google), apesar de ser o mais fácil deles (não requer acesso ao ServiceFactory nem invocar o runtime do CFMX). Creio que Terracini e eu somos os primeiros a explorá-la. Eu (mente suja) percebi a brecha logo quando soube da existência deste arquivo nas instalações ColdFusion e pelo fato de a senha estar armazenada no que parece ser um formato “descriptografável”, o Terracini (o grande “célebro”) em adivinhar a key e fazer as mudanças necessárias na string para que ela ficasse bonitinha e “descriptografável”. As pizzadas aqui em casa rendem um bocado… Justamente por não encontrarmos estas informações é que já enviamos uma descrição mais detalhada para o serviço de notificação de segurança da MM. É importante frisar: esta brecha só é possível em servidores SEM o uso de sandbox security. Por isso mesmo, se você ainda não se convenceu de que sandbox security é algo fundamental ou está hospedando seu site em um provedor que também não acredita ou não sacou, está comendo uma bola tremenda. Talvez esteja na hora de você dar um puxão de orelha no seu administrador (ou em você mesmo). Mostre a ele este post, quem sabe aí não se encontra mais um motivo para implementá-la. E olha que informações sobre como fazer isso não faltam.
Pouca gente sabe, mas o ColdFusion armazena a senha de RDS e do Administrador num arquivo chamado “password.properties” (sim, ele não tem nenhuma extensão), localizado em “cf_root/lib/”. Esta informação não é obviamente muito divulgada, mas achei interessante ter sido comentada numa apresentação pública entitulada “Undocumented ColdFusion MX 6.1” feita por Ben Forta e Brandon Purcell algum tempo atrás (primeiramente esta apresentação era fechada, depois tornou-se pública), que explica uma segunda maneira de se resetar a senha do CFMX caso você a tenha perdido (além do método oficial que é editando o arquivo xml). É absolutamente vergonhoso que a Macromedia armazene senhas em arquivos plain-text e de forma tão fracamente “criptografada”. Ao analisar o arquivo vemos que ele tem o seguinte formato:
#Sun Feb 16 20:17:57 EST 2004
rdspassword=^%12/#99'D n
password=(a1812k=:@ n
encrypted=true
Obviamente a senha final não é “(a1812k=:@ n”, esta string foi “encodificada” pelo ColdFusion e você pode fazer o caminho inverso usando a função Decrypt(). Deve antes, “limpar” caracteres extras e que não serão entendidos pelo CF no formato em que estão mas que fazem parte da string plain-text que você tem em mãos. Feito isso você terá uma string “limpa” que poderá ser decodificada pela função Decrypt. A função Decrypt, como sabem, leva dois argumentos: a string e a chave. Resta-nos portanto conhecer a chave para ter o serviço completo. Não vou divulgar esta chave por motivos óbvios, mas adianto que ela é ridícula (no sentido de complexidade) e também é ridiculamente fácil de se descobrir (o Terracini que o diga). Apesar desta facilidade você não vai encontrá-la no Google, mas qualquer um com um pouco mais de boa vontade (não precisa de tempo não), é capaz de descobrí-la. O nosso código ficaria assim então:
<cfset string_codificada="(a1812kqqq1">
<cfset key_decripta="descubra voce também!">
<cfoutput>
A senha do Administrator é:<br>
#Decrypt(string_codificada, key_decripta)#
</cfoutput>
Pimba! Eis que você obteve a senha do CFAdministrator (ou do RDS, o que tiver escolhido) e dependendo do lugar onde você hospeda, será fácil (e triste) constatar que esta senha é a mesma usada em diversos outros serviços deste servidor (ou até mesmo de outros na mesma rede), no e-mail do cara, na conta do banco, etc, etc…
Ficou interessado neste assunto? O CFGIGOLÔ tem diversos outros posts que tratam de segurança de aplicações e servidores ColdFusion. A leitura é recomendada e ainda “de gratis”.
Garbage collector
Publicado; 05/06/2004 Arquivado em: ColdFusion Comentários desativados em Garbage collectorPete Freitag fez um interessante post sobre as opções de tunning para o Java garbage collector no CFMX. Vale a pena dar uma conferida:
Veja também esta apresentação sobre tunning de ColdFusion MX que apresentei no CFUG-Rio em 2003.
Morte ao SELECT *
Publicado; 03/06/2004 Arquivado em: Tecnologia Comentários desativados em Morte ao SELECT *Eu sempre comentei, principalmente para o pessoal que faz treinamento comigo, como pode ser uma má idéia utilizar SELECT * em consultas SQL, e tinha que argumentar falando da documentação e do consumo extra fazendo frente à preguiça do programador.
E hoje por acaso achei esse link no blogmarks do Jonas Galvez. 🙂
Sobre o novo MovableType
Publicado; 27/05/2004 Arquivado em: CFGIGOLÔ Comentários desativados em Sobre o novo MovableTypeMuito bla, blá andou rolando na blogsfera nos últimos dias sobre a mudança de licenciamento do MovableType (o enginee deste blog). No melhor estilo mineiro de ser (eu nasci aqui em sp), não quis fazer nenhum comentário a respeito e li muito a respeito. Ontem encontrei um post que reflete a maioria das minhas idéias. Para economizar linhas e dedo faço questão de linkar as boas colocações do Ronaldo (Superfície Reflexiva) a respeito:
Mudanças no MovableType são boas
BTW: eu participei do beta da versão 3.0, só isso já me tornou elegível a um desconto de 50% no valor da nova licença, adicionalmente já tinha doado 20 doletas (via PayPal) ao programa, o que somados fez valer a pena comprar a Personal Edition por 15 pilas.
Hospedagem ColdFusion DelixHosting
Publicado; 26/05/2004 Arquivado em: ColdFusion 6 ComentáriosMais uma empresa nacional está oferecendo hospedagem compartilhada em ColdFusion MX 6.1. Trata-se da Delix Hosting (veja release). Não testei o serviço, mas segundo o que garante Guilherme Augusto, gerente de contas da Delix, o servidor faz uso de sandboxes e tunnings diversos de acordo com o que frequentemente posto aqui no CFGIGOLO e em outros locais. Adicionalmente o Guilherme está sempre ligado às listas de discussão e tudo o que é relacionado a administração do servidor CF.
A boa notícia: A Delix oferece insenção na taxa mensal extra (R$ 30,00) a todos assinantes da lista ColdFusion Brasil
FLEX na próxima reunião do CFUG-SP dia 23/06
Publicado; 22/05/2004 Arquivado em: Flex, User Groups Comentários desativados em FLEX na próxima reunião do CFUG-SP dia 23/06Na próxima reunião teremos a chance de conhecer de perto o Macromedia Flex.
O convidado para palestra sobre o Flex é nada mais nada menos que Marcantonio Silva, Diretor de Desenvolvimento de Produtos da Navita, a empresa líder em desenvolvimento de aplicações RIA no Brasil. Marcan com seu trabalho e profundo conhecimento em produtos Allaire/Macromedia dispensa maiores introduções.
Será imperdível, por isso não deixe de confirmar sua presença:
Blog é a ferramenta corporativa do futuro, diz Bill Gates
Publicado; 21/05/2004 Arquivado em: Tecnologia 2 ComentáriosFolha de SP de 21/05/04:
“Bill Gates, presidente da Microsoft e homem mais rico do mundo, freqüentemente sobe ao palco durante os eventos em que participa para falar um pouco sobre os rumos da tecnologia usada nos programas de computador.
Nesta quinta-feira, porém, ele mudou um pouco o tema e disse que os blogs –espécie de diários virtuais– podem ser usados como a próxima ferramenta de comunicação no mundo dos negócios.”
Para ler a notícia completa, clique aqui.
Mais blackstone
Publicado; 21/05/2004 Arquivado em: ColdFusion 3 ComentáriosMarco Antonio do CFUG-Rio faz observações importantes sobre o que se pescou no MacroChat de ontem, com Ben Forta e outros do time de ColdFusion da MM.
Aplicação ColdFusion rodando sem código fonte
Adicionalmente vale conhecer a nova tag CFDOCUMENT que irá (como sempre) dificultar (…) muito a geração de conteúdo em PDF (e outros formatos, ainda não definidos) pelo CF. Um exemplo seria gerar um PDF com base no screenshot de um site ficaria assim:
<cfhttp url="http://www.forta.com/" resolveurl="yes">
<cfdocument type="pdf">
<cfoutput>#cfhttp.filecontent#</cfoutput>
</cfdocument>
E o browser irá mostrar a caixa de diálogo de open/save para um arquivo PDF gerado e contendo um screenshot do site do Forta. Realmente muito complicado… :o)
Por falar em Ben Forta ele anunciou ontem que vêm ao Brasil em breve, ainda não há data definida, mas disse com todas as palavras: “o Brasil muito provavelmente será incluido no tour internacional que farei, fiquem ligados”. É esperar para ver!