O que o medo não é capaz de fazer

Se lembram da tal empresa que eu e o Fabio descobrimos um furo de segurança? Sabe o que eles fizeram ao serem notificados do problema? Simplesmente não responderam, fecharam o site, se emputeceram e nos expulsaram do servidor… É mole?

Obviamente eles arrumaram o problema seguindo nossas instruções (risos)… É, não se pode esperar que esse tipo de coisa seja apreciada, ou mesmo agradecida, ainda mais num ambiente tão soberbo e cheio de pompa feito de alguns sysadmins arrogantes (e muito “experientes”)…

Em oposição, vale citar o caso de um provedor de hospedagem do Rio, que oferece suporte a ColdFusion e que, tomando ciência do problema, rapidamente fez questão de nos ligar agradecendo e trocando idéias sobre medidas para tornar o seu ambiente mais seguro. Isso é digno de nota, uma vez que mostra que ainda podemos contar com empresas sérias e interessadas na segurança dos seus clientes.


Macromedia confirma o óbvio: USE SANDBOX SECURITY!

Com referência ao post “Pintando e bordando com a senha do CF Administrator” um dos engenheiros de segurança da Macromedia acaba de me responder o óbvio: não se trata de uma vulnerabilidade, mas sim de má configuração. Por isso use sandbox security. Veja a mensagem:

—–Mensagem original—–
De: Tom Donovan [mailto:XXXXXXXX@macromedia.com]
Enviada em: quarta-feira, 9 de junho de 2004 13:29
Para: ‘XXXXX@hubner.org.br’
Assunto: RE: [Security Issue] [I’m pretty sure you guys]

Hello Alex,

Thanks for submitting a ColdFusion security issue.

Yes – read or write access to files in {cf_root}/lib constitutes privileged use.

If your hosting provider is not using ColdFusion MX Enterprise sandbox security, and grants unrestricted access to customers – then yes – ColdFusion developers are fully trusted and can read/write all files, registry entries, execute COM objects, etc.

The ability to read and write password.properties amounts to control of the ColdFusion Administrator and RDS passwords. Of course, the ability to read or write the files in {cf_root}/lib also gives a similar ability to learn and change ColdFusion settings without using ColdFusion Administrator at all.

Running the ColdFusion service as an unprivileged user does not constitute adequate security for a hosted environment if the developers are not trusted. We are aware that some hosting providers try to make this technique substitute for ColdFusion security. Your example is just one of the many weaknesses of this approach.

If it is possible to bypass ColdFusion sandbox security to learn or alter the ColdFusion Administrator password, then this would constitute a security problem like the ServiceFactory problem in CFMX 6.0. We do not believe this is possible with CFMX 6.1 when sandbox security is correctly configured.

Regards,
Tom Donovan
Macromedia ColdFusion


Pintando e bordando com a senha do CF Administrator

Fabio 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”.


Here we go again…

Parece que as pragas do passado recente não bastaram para que proprietários de sistemas windows (principalmente administradores de rede) ficassem de olho nas atualizações do Windows e também no uso de um firewall.

Nova versão do Sasser é considerada de alto risco

Agora vamos ter mais uma semana de conexão lenta, morosidade geral e muito blá, blá. Quer saber? Tomara que cause muitos prejuízos aos desajuizados. Pô, errar é humano, repetir o erro é burrice! Atualizar o Windows é algo que todos já deviam ter aprendido.

E antes que comecem com a lorota de “É só usar Linux que você não pega vírus”… sabe, eu queria ver como as coisas iam ficar se ouvesse uma inversão de market-share (Win e Linux). Será que essa premissa continuará sendo verdade? Sem falar na enorme profusão de distribuições existentes e código fonte aberto (vírus mais malandros e bem consolidados)… Ok, os patches estarão disponíveis rapidinho (afinal, a comunidade mantém o Linux), mas você realmente acha que o indivíduo que não sabe como e que deve atualizar o “Ruindows” através daquele botão idiot-proof “Windows Update” vai saber fazer isso no Linux? Faz-me rir…

É por isso que sempre digo: NÃO EXISTEM SISTEMAS INSEGUROS, O QUE EXISTE SÃO ADMINISTRADORES (principalmente) E USUÁRIOS INSEGUROS.

E haja paciência…


Autopatcher

Ao que parece, inspirado no “Super pacotão Tabajara-CFGIGOLÔ de hotfixes para CFMX 6.1“… descobri um ótimo (e gratuíto) programa que junta numa aplicação/instalação só todas as correções da Microsoft (ouch… são tantas!) para os Windows XP, 2000 e 2003 pós os respectivos últimos service packs. O software inclui alguns add-ons que vão além da simples correção de furos de segurança, há também os famigerados (e as vezes muito bons) powertoys e outros pequenos aplicativos. Perfeito para aquela reinstalação de sistema e/ou suporte de várias máquinas na empresa:

Autopatcher.com

IMPORTANTE: apenas para Windows em inglês!


Source code do Windows 2000.

“Microsoft is investigating how a file containing some protected source code to Windows 2000 was posted to several underground sites and chat rooms.

A spokesman said late Thursday that incomplete portions of Windows 2000 and Windows NT were illegally posted to the Internet.”

ZDNet

“On Thursday, Microsoft became aware that portions of the Microsoft Windows 2000 and Windows NT 4.0 source code were illegally made available on the Internet. It’s illegal for third parties to post Microsoft source code, and we take such activity very seriously.”

Microsoft


Saiu a nova versão do Microsoft MBSA

A Microsoft anunciou o lançamento da nova versão 1.2 do Microsoft Baseline Security Analyzer (MBSA), ferramenta que identifica configurações incorretas ou desatualizadas e problemas de segurança no sistema operacional Windows e em vários aplicativos produzidos pela empresa. Com interface gráfica e de linha de comando, o MBSA roda em Windows 2000, XP e Server 2003 e busca erros comuns de configuração em programas e recursos importantes para quem utiliza Windows.

Confira: Microsoft Baseline Security Analyzer V1.2

[por infoguerra]


Segurança com Flash Remoting

Estive me aventurando a brincar com o Flash, mais especificamente com o Flash Remoting e claro, CFCs.

Sem grandes problemas, não foi nada complicado (mentira). Os componentes do Flash (que pelo que sei não são dos melhores. São grandes e pesados.) ajudam um bocado para quem não entende muito de Flash. Jogar os dados de uma query num datagrid é fácil como datagrid.dataProvider = recordSet.

Mas o que me intrigou e onde eu gastei um bom tempo foi pensando na segurança dos CFCs que o Flash, através do Remoting, irá contactar. Ora bolas, o que pode haver de tão complicado na segurança desses CFCs?

Leia o resto deste post »


ColdFusion administrator… De novo?

Tem gente que não acredita… E eu não canso de bater na mesma tecla. Alguns talvez ainda não tenham levado um susto dos bons para, quem sabe, acordar… Afinal de contas, uma leitura mínima para se proteger de coisa tão banal não falta.

Até o UOL, no auge de sua força, arrogância e prepotência resolveu fazê-lo, por que tanta gente ainda insiste em deixar o CF Administrator escancarado?

Apenas alguns exemplos:

http://funky.macbbs.com.br/cfide/administrator
http://www.webgeo.net/cfide/administrator/
http://www.porta80.com.br/cfide/administrator/
http://ns1.dwws.com.br/cfide/administrator/
http://linux.infoserra.com.br/cfide/administrator/
http://amidala.allnet.com.br/cfide/administrator
http://dns1.webcalifa.com.br/cfide/administrator/
http://www.intersoft.com.br/cfide/administrator/

Mamão com açúcar, papai-e-mamãe, bico, moleza… chamem do que quiser a verdade é que, durante todo o dia de ontem, um PC cacareco (Pentium 233 MMX – overclocked para impressionantes 266Mhz!!) conectado à minha mini rede que conta com uma saída para a Internet de 512Kbps (cable) e usado como cobaia para as minhas barbáries ficou “brincando” com três servidores/hosts acima citados enquanto eu trabalhava. Ao chegar em casa agora pouco nenhuma surpresa: o softwarezinho de brute-force que usei (encontrado em qualquer site “réquer”) foi capaz de quebrar a senha de dois dos CFAdms listados acima (2 em 3!)… Normalmente eu aviso os sys-admins do problema, mas nem sempre teremos pessoas com esta boa vontade (softwares de brute-force podem ser rodados com proxies anônimos – demora mais, mas uma hora acaba entrando) e os sites em CF do servidor inevitavelmente irão por água abaixo… se o resto não for junto já que muitos “administradores” tem a péssima mania de usar a mesma senha para tudo… a senha do ColdFusion Administrator é igual a do usuário “Administrador” ou “root” do SO. Basta experimentar entrar com o VNC ou, mais comum, o Remote Desktop da MS…

Prestem mais atenção!! O estigma de “inseguro” que o ColdFusion carrega (felizmente isso está mudando rapidamente) é muito em parte por falta de conhecimento nesta plataforma. No Brasil isso é ainda mais notável, dada a ausência de documentação e recursos em português. Espero que isso mude gradativamente, porém de forma rápida e correta (estamos cansados de plágios e “traduções”).

Com relação ao problema do CF Administrator (o mais básico dos básicos), algumas orientações básicas de como se proteger (e proteger os seus clientes caso você seja um ISP) podem ser encontradas aqui e aqui também.

Notem que mais preocupante (e impressionante) nessa história é que estamos falando apenas de hosts que oferecem hospedagem ColdFusion! Estes que deveriam ser mais preocupados com a segurança… (casa de ferreiro espeto de pau?). Existem inúmeros sites feitos em CF que estão abertos do mesmo jeito. Um bom exemplo pode ser visto aqui.

Se você tem um site hospedado em ColdFusion, exija o mínimo aceitável de segurança para suas aplicações e sites, você tem esse direito (nem que para isso você tenha que configurar o servidor do seu ISP à quatro-mãos – isso é mais comum do que você imagina).

Em breve a Locaweb irá oferecer hospedagem ColdFusion MX de forma segura e decente (inclusive com licenças de verdade, o que muitos não tem – não vale a pena mencionar quais). Se rolar (e tudo caminha para) será a primeira hospedagem compartilhada ColdFusion MX confiável e decente que conheço e recomendo no Brasil. Os detalhes eu postarei num futuro breve. Quem sabe assim poderemos contar com uma estrutura de host onde podemos colocar nossas aplicações (e de nossos clientes) com tranqüilidade.

Até lá cuide dos seus sites!


Enquanto isso…

em um servidor compartilhado sem sandbox security…

databasefile.gif

E é claro que é possível fazer download do banco de dados digitando o endereço (fornecido pelo path do databaseFile) no browser…