3 de fevereiro de 2006

Google

Lendo uma dessas listas da vida, peguei um link desses que não se coloca na mão de um Script Kid nunca, onde ele lista uma série de comandos que você busca no google e encontra senhas, informações, etc...Tem muita coisa na net, e pior, não é de hoje, sempre existiu e continua existindo.

Agora o que me levou a escrever esse post foi um comando em especial:

http://www.google.com/search?
&ie=UTF-8&oe=UTF-8&q=%22Network+Host
+Assessment+Report%22+%22Internet+Scanner%22


Você vai encontrar inúmeros resultados de análise de vulnerabilidade. Ai eu pergunto, como um "especialista" pode deixar um documento desse exposto? Sem comentários!

Debug

Estou cansado de resolver problemas aparentemente complicadissimos somente usando o Filemon. Principalmente se tratando de permissões NTFS, incrível como ainda tem gente que apanha com isso.


Filemon

O filemon vai te dar uma ampla visão de quais os componentes (dll, ocx, etc...) que estão sendo chamados e lhe dará informações sobre o funcionamento, se um componente chamar um outro componente que não existe ele irá mostrar o nome do arquivo ausente, se ele tentar acessar um componente e não tiver acesso ele irá informar, com essas informações fica muito mais fácil encontrar um problema.

Filemon - http://www.sysinternals.com/Utilities/Filemon.html

Se você é hardcode e quer pegar o bicho na unha, existe um artigo do Mark Russinovich explicando como funciona a API de depuração do Windows, artigo de excelente qualidade.

Native API - http://www.sysinternals.com/Information/NativeApi.html

Google

Lendo uma dessas listas da vida, peguei um link desses que não se coloca na mão de um Script Kid nunca, onde ele lista uma série de comandos que você busca no google e encontra senhas, informações, etc...Tem muita coisa na net, e pior, não é de hoje, sempre existiu e continua existindo.

Agora o que me levou a escrever esse post foi um comando em especial:

http://www.google.com/search?
&ie=UTF-8&oe=UTF-8&q=%22Network+Host
+Assessment+Report%22+%22Internet+Scanner%22


Você vai encontrar inúmeros resultados de análise de vulnerabilidade. Ai eu pergunto, como um "especialista" pode deixar um documento desse exposto? Sem comentários!

31 de janeiro de 2006

nmap

Esses dias eu estava brincando com os relatórios em xml gerados pelo nmap, queria ver se fazia algo um pouquinho melhor do que ele oferece, acabei envolvido com outras coisas e larguei. Hoje andando pelo freshmeat.net encontrei o Fe3d uma ferramenta que pega o xml gerado pelo nmap e cria uma imagem 3D que você pode clicar e girar, poderia ser um pouquinho melhor, mais já é um começo.


gerando o arquivo xml com o resultado do scan


chamando o fe3d passando o arquivo xml como parametro


Resultado do fe3d

Teclas de atalho para manipular o resultado

O - Open File (Win32 only)
A - Add another file to the mix (Win32 only)
C - Reset all transformations
R - Start/Stop rotation
U - Reload current drawing file
S - Take a screenshot (PNG File)
Esc - Quit
Arrows - Rotate viewpoint about the 'origin', left, right, up, down
+/- - Increase/Decrese autorotation speed
Ctrl+LMB - Pan up and down
Shift+RMB - Zoom
RMB - Rotate around the vertical axis

Site do fe3d - http://projects.icapsid.net/fe3d/

nmap

Esses dias eu estava brincando com os relatórios em xml gerados pelo nmap, queria ver se fazia algo um pouquinho melhor do que ele oferece, acabei envolvido com outras coisas e larguei. Hoje andando pelo freshmeat.net encontrei o Fe3d uma ferramenta que pega o xml gerado pelo nmap e cria uma imagem 3D que você pode clicar e girar, poderia ser um pouquinho melhor, mas já é um começo.


gerando o arquivo xml com o resultado do scan


chamando o fe3d passando o arquivo xml como parametro


Resultado do fe3d

Teclas de atalho para manipular o resultado

O - Open File (Win32 only)
A - Add another file to the mix (Win32 only)
C - Reset all transformations
R - Start/Stop rotation
U - Reload current drawing file
S - Take a screenshot (PNG File)
Esc - Quit
Arrows - Rotate viewpoint about the 'origin', left, right, up, down
+/- - Increase/Decrese autorotation speed
Ctrl+LMB - Pan up and down
Shift+RMB - Zoom
RMB - Rotate around the vertical axis

Site do fe3d - http://projects.icapsid.net/fe3d/

30 de janeiro de 2006

SCADA

Scada são sistemas utilizados para monitoramento e operação de usinas, gasodutos e todo tipo de equipamento que utilize recursos de PLC (Programmable Logic Controllers), atualmente comunmente usado em parques indústriais.

Segundo o Wikipedia

Sistemas de Supervisão e Aquisição de Dados, ou abreviadamente SCADA (proveniente do seu nome em inglês Supervisory Control and Data Acquisition) são sistemas que utilizam software para monitorar e supervisionar as variáveis e os dispositivos do sistema de controle conectados através de drivers específicos. Estes sistemas podem assumir topologias mono-posto, cliente-servidor ou multiplos servidores-clientes. Actualmente tendem a libertar-se de protocolos de comunicação proprietarios, com dispositivos de controlo como autómatos porgramaveis, módulos de entradas/ saidas remotas, controladores, registadores , etc, para arquitecturas cliente-servidor OPC (OLE for Process Control).

E ai o que eu tenho com isso? Já imaginou se esses sistemas fossem explorados por terroristas?

Foi o que David Maynor e Robert Graham apresentaram na Black Hat.
http://www.blackhat.com/presentations/
bh-federal-06/BH-Fed-06-Maynor-Graham.pdf


Por curiosidade dei uma olhada no xForce, dê uma olhada nisso
http://xforce.iss.net/xforce/
search.php?type=2&pattern=scada&x=8&y=13

SCADA

Scada são sistemas utilizados para monitoramento e operação de usinas, gasodutos e todo tipo de equipamento que utilize recursos de PLC (Programmable Logic Controllers), geralmente usado em parques indústriais.

Segundo o Wikipedia

Sistemas de Supervisão e Aquisição de Dados, ou abreviadamente SCADA (proveniente do seu nome em inglês Supervisory Control and Data Acquisition) são sistemas que utilizam software para monitorar e supervisionar as variáveis e os dispositivos do sistema de controle conectados através de drivers específicos. Estes sistemas podem assumir topologias mono-posto, cliente-servidor ou multiplos servidores-clientes. Actualmente tendem a libertar-se de protocolos de comunicação proprietarios, com dispositivos de controlo como autómatos porgramaveis, módulos de entradas/ saidas remotas, controladores, registadores , etc, para arquitecturas cliente-servidor OPC (OLE for Process Control).

E ai o que eu tenho com isso? Já imaginou se esses sistemas fossem explorados por terroristas?

Foi o que David Maynor e Robert Graham apresentaram na Black Hat.
http://www.blackhat.com/presentations/
bh-federal-06/BH-Fed-06-Maynor-Graham.pdf


Por curiosidade dei uma olhada no xForce, dê uma olhada nisso
http://xforce.iss.net/xforce/
search.php?type=2&pattern=scada&x=8&y=13



Blueprint

Em uma discussão na lista, foi levantado a possibidade da utilização de Blueprint (padrões, modelos) para segurança, o Anderson Ramos destacou a utilização do Zachman Framework, mais talvez um que esteja mais próximo da nossa realidade seja o WSSRA (Windows Server System Reference Architecture) da microsoft. O trabalho é digno de elogios, e se levarmos em consideração de mercado da MS, o WSSRA é bastante útil, lógico que customizações e adequações para sua necessidade serão necessárias.


Zachman Framework

http://www.zifa.com
http://www.software.org/pub/architecture/zachman.asp



Windows Server System Reference Architecture

http://www.microsoft.com/technet/itsolutions/wssra/raguide/default.mspx

Blueprint

Em uma discussão na lista CISSP-BR, foi levantado a possibidade da utilização de Blueprint (padrões, modelos) para segurança, o Anderson Ramos destacou a utilização do Zachman Framework, talvez um que esteja mais próximo da nossa realidade seja o WSSRA (Windows Server System Reference Architecture) da microsoft. O trabalho é digno de elogios, e se levarmos em consideração o mercado da Microsoft, o WSSRA é bastante útil, lógico que customizações e adequações para sua necessidade serão necessárias.


Zachman Framework

http://www.zifa.com
http://www.software.org/pub/architecture/zachman.asp



Windows Server System Reference Architecture

http://www.microsoft.com/technet/itsolutions/wssra/raguide/default.mspx

13 de janeiro de 2006

Anti o que?

São controles e mais controles, e a coisa continua avançando e causando mais panico, pelo menos nos profissionais de TI, porque o usuário quase sempre nem se quer sabe dos riscos que está correndo.

Ultimamente as vulnerabilidades são cada vez piores, como os casos de imagens e WMF do Windows, sem contar o Plug And Play. Mais o problema é um pouco pior quando falamos dos 0 days como o caso atual do WMF, a vulnerabilidade era extremamente crítica e o patch saiu aproximadamente uma semana depois, existia um patch não oficial, mais apesar do patch ser de quem era, eu não instalaria um patch que não seja do fabricante.

Se não bastasse os ataques a sistemas operacionais e aplicações, os principais alvos agora são as aplicações que são instaladas justamente para proteger, isso mesmos já existem várias vulnerabilidades em ferramentas de antivírus.

Então aqueles usuários e "administradores" despreparados estão literalmente colocando uma raposa para cuidar do galinheiro, muita gente ainda não se deu conta da importância de se atualizar sistemas operacionais e aplicações críticas como servidor de aplicação, banco de dados, quem dirá estar atento a vulnerabilidades que afetam os sistemas que ele instalou para protege-lo.

Atenção total a tudo que você instala em seu equipamento, procure sempre estar atento a bugs e patchs de atualização, inclusive para os dispositivos de proteção, firewall, antivírus, antispyware, etc...

Mobilidade...

Já não sei mais se é mobilidade ou vício, ambientes enviando aviso via sms já é trivial, até temperatura de equipamentos já é possivel controlar e receber avisos via sms caso aconteça algo de errado.

Mais e quando você recebe aquele sms e precisa dar algum comando urgente no equipamento e não possui um laptop, ou qualquer outro equipamento como um palm com aquele cliente de Terminal Service?

Se você tiver um celular com WAP nem tudo está perdido, de uma olhada nesse artigo escrito no site viva o linux.

Acesso SSH com celular
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=4035

Anti o que?

São controles e mais controles, e a coisa continua avançando e causando mais panico, pelo menos nos profissionais de TI, porque o usuário quase sempre nem se quer sabe dos riscos que está correndo.

Ultimamente as vulnerabilidades são cada vez piores, como os casos de imagens e WMF do Windows, sem contar o Plug And Play. O problema é um pouco pior quando falamos dos 0 days como o caso atual do WMF, a vulnerabilidade era extremamente crítica e o patch saiu aproximadamente uma semana depois, existia um patch não oficial, mas apesar do patch ser de quem era, eu não instalaria um patch que não seja do fabricante.

Se não bastasse os ataques a sistemas operacionais e aplicações, os principais alvos agora são as aplicações que são instaladas justamente para proteger, isso mesmo já existem várias vulnerabilidades em ferramentas de antivírus.

Então aqueles usuários e "administradores" despreparados estão literalmente colocando uma raposa para cuidar do galinheiro, muita gente ainda não se deu conta da importância de se atualizar sistemas operacionais e aplicações críticas como servidor de aplicação, banco de dados, quem dirá estar atento a vulnerabilidades que afetam os sistemas que ele instalou para protege-lo.

Atenção total a tudo que você instala em seu equipamento, procure sempre estar atento a bugs e patchs de atualização, inclusive para os dispositivos de proteção, firewall, antivírus, antispyware, etc...

Mobilidade...

Já não sei mais se é mobilidade ou vício, ambientes enviando aviso via sms já é trivial, até temperatura de equipamentos já é possivel controlar e receber avisos via sms caso aconteça algo de errado.

Mas e quando você recebe aquele sms e precisa dar algum comando urgente no equipamento e não possui um laptop, ou qualquer outro equipamento como um palm com aquele cliente de Terminal Service?

Se você tiver um celular com WAP nem tudo está perdido, de uma olhada nesse artigo escrito no site viva o linux.

Acesso SSH com celular
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=4035

2 de janeiro de 2006

Expressão Regular

Ainda são poucos os desenvolvedores que utilizam o poder das expressões regulares, é comum encontrarmos códigos com "zilhões" de IFs que poderiam ser resolvidos com apenas uma linha de expressão regular.

E eu diria que a maioria dos que usam expressões regulares se limitam a validações de CNPJ, E-mail, etc. O uso de expressão regular pode melhorar muito a segurança de aplicações, como nos exemplos a seguir:

Expressão regular contra Sql Injection
"(script)|(<)|(>)|(%3c)|(%3e)|(SELECT) |(UPDATE) |(INSERT) |(DELETE)|(GRANT) |(REVOKE)|(UNION)|(<)|(>)"

Expressão para requerimento de senha complexa (passfilt)
"(?=^.{8,255}$)((?=.*\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[^A-Za-z0-9])
(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)
(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*"

Muita coisa ainda pode ser feito com expressões regulares, análise de logs, assinatura para detecção de ataques. Recomendo uma pesquisa sobre expressões regulares.

No site Regular Expression Library você encontra muitos exemplos.
http://www.regexlib.com/

Expressão Regular

Ainda são poucos os desenvolvedores que utilizam o poder das expressões regulares, é comum encontrarmos códigos com "zilhões" de IFs que poderiam ser resolvidos com apenas uma linha de expressão regular.

E eu diria que a maioria dos que usam expressões regulares se limitam a validações de CNPJ, E-mail, etc. O uso de expressão regular pode melhorar muito a segurança de aplicações, como nos exemplos a seguir:

Expressão regular contra Sql Injection
"(script)|(<)|(>)|(%3c)|(%3e)|(SELECT) |(UPDATE) |(INSERT) |(DELETE)|(GRANT) |(REVOKE)|(UNION)|(<)|(>)"

Expressão para requerimento de senha complexa (passfilt)
"(?=^.{8,255}$)((?=.*\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[^A-Za-z0-9])
(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)
(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*"

Muita coisa ainda pode ser feito com expressões regulares, análise de logs, assinatura para detecção de ataques. Recomendo uma pesquisa sobre expressões regulares.

No site Regular Expression Library você encontra muitos exemplos.
http://www.regexlib.com/

29 de dezembro de 2005

Alternate Data Stream

Por motivos de compatibilidade o NTFS possui um recurso que pode se tornar uma ameaça facilmente, basta o usuário ser um pouco mais desligado ou inexperiente.

O Recurso é o Alternate Data Stream, com esse recurso um usuário mal intencionado pode “esconder” um trojam, ferramenta ou qualquer outro arquivo em um arquivo de sua confiança. Isso só irá funcionar na maquina onde foi executado, não é possivel um invasor esconder o trojam em um arquivo e enviar para você, mais existe várias maneiras de um invasor executar isso na sua maquina e deixar alguma coisa escondida sem que você perceba.

Eu fiz um teste aqui escondendo o nmap na minha inofensiva calculadora.


Escondendo o nmap usando o comando type


Executando o nmap escondido em minha calculadora

Ok, mais certamente meu antívírus irá detectar isso. Não foi o que meus testes apresentaram, eu fiz um scan na minha maquina com o nmap em seu local original o antivírus acusou como uma ferramenta potencialmente perigosa, em seguida eu apaguei o nmap original e passei o antívirus novamente para verificar se ele iria encontrar o nmap que havia escondido na calculadora, não encontrou nada. E o nmap continua escondido e posso utilizar normalmente. Perigoso não?

O Alternate Data Stream tambem é criado quando adicionamos informações a propriedades do arquivo, as ferramentas de detecção ainda tem dificuldades com essa “técnica”, mais a kasperky já usa um stream para guardar informação sobre os scans realizados e já existe ferramentas que possibilitam a identificação de stream em seus arquivos.

Chkdsk - http://www.microsoft.com/resources/documentation/
windows/xp/all/proddocs/en-us/chkdsk.mspx

Lads - http://www.heysoft.de/Frames/f_sw_la_de.htm

Streams - http://www.sysinternals.com/utilities/streams.html

Algumas pessoas indicam um tripwire para identificar qualquer iniciativa de stream, eu particularmente não acho viável, porque geralmente usamos o tripwire em arquivos críticos e não em todos os arquivos.

Mais informações:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003
/library/TechRef/8cc5891d-bf8e-4164-862d-dac5418c5948.mspx

Alternate Data Stream

Por motivos de compatibilidade o NTFS possui um recurso que pode se tornar uma ameaça facilmente, basta o usuário ser um pouco mais desligado ou inexperiente.

O Recurso é o Alternate Data Stream, com esse recurso um usuário mal intencionado pode “esconder” um trojam, ferramenta ou qualquer outro arquivo em um arquivo de sua confiança. Isso só irá funcionar na maquina onde foi executado, não é possivel um invasor esconder o trojam em um arquivo e enviar para você, mas existe várias maneiras de um invasor executar isso na sua maquina e deixar alguma coisa escondida sem que você perceba.



Eu fiz um teste aqui escondendo o nmap na minha inofensiva calculadora.






Escondendo o nmap usando o comando type





Executando o nmap escondido em minha calculadora



Ok, mais certamente meu antívírus irá detectar isso. Não foi o que meus testes apresentaram, eu fiz um scan na minha maquina com o nmap em seu local original o antivírus acusou como uma ferramenta potencialmente perigosa, em seguida eu apaguei o nmap original e passei o antívirus novamente para verificar se ele iria encontrar o nmap que havia escondido na calculadora, não encontrou nada. E o nmap continua escondido e posso utilizar normalmente. Perigoso não?




O Alternate Data Stream tambem é criado quando adicionamos informações a propriedades do arquivo, as ferramentas de detecção ainda tem dificuldades com essa “técnica”, mais a kasperky já usa um stream para guardar informação sobre os scans realizados e já existe ferramentas que possibilitam a identificação de stream em seus arquivos.Chkdsk - http://www.microsoft.com/resources/documentation/
windows/xp/all/proddocs/en-us/chkdsk.mspx




Lads - http://www.heysoft.de/Frames/f_sw_la_de.htm


Streams - http://www.sysinternals.com/utilities/streams.html




Algumas pessoas indicam um tripwire para identificar qualquer iniciativa de stream, eu particularmente não acho viável, porque geralmente usamos o tripwire em arquivos críticos e não em todos os arquivos.Mais informações:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003
/library/TechRef/8cc5891d-bf8e-4164-862d-dac5418c5948.mspx




28 de dezembro de 2005

Covert Channel

Gray World.net Team é um projeto que se propõe a estudos sobre Cover Channel e Tunneling, no site deles você pode, não só encontrar técnicas para detecção, como também exemplos de ambos.



Gray World.net Team - http://gray-world.net/pr_cctde.shtml

Covert Channel

Gray World.net Team é um projeto que se propõe a estudos sobre Cover Channel e Tunneling, no site deles você pode, não só encontrar técnicas para detecção, como também exemplos de ambos.



Gray World.net Team - http://gray-world.net/pr_cctde.shtml

27 de dezembro de 2005

Hash...

Alocado em um projeto de software, acompanhando os estudos sobre hash e a possibilidade de colisões em Sha-1 e Md5 como o Anchises retratou em "O Hash subiu no telhado" fui dar uma "googlada" e encontrei bastante coisa sobre implementação de hash usando Sha-256. A performance é um caso a ser pensado, mais como diria Augusto Celebridade Paes de Barros, "Não é interessante ter um hash muito performatico, você fica mais suscetível a força bruta".

Exemplos de implementação em diversas linguagens.

Sha-256 para implementar em java
http://elvin.dstc.com/projects/je4/api/org/elvin/util/SHA256.html

Sha-256 para implementar em .net
http://msdn.microsoft.com/library/default.asp?url=/library/
en-us/cpref/html/frlrfsystemsecuritycryptographysha256classtopic.asp


Sha-256 para implementar em delphi
http://www.cityinthesky.co.uk/cryptography.html

Sha-256 para implementar em perl
http://rpmfind.net/linux/RPM/sourceforge/p/pe/perl-strip/
perl-Digest-SHA256-0.01b-1.i386.html

Uma biblioteca que implementa vários tipos de hash em diversas linguagens
http://www.slavasoft.com/quickhash/

Várias informações sobre implementação de Diffie-Hellman, RSA, hash em diversas linguagens
http://www.di-mgt.com.au/crypto.html

As vezes é interessante implementar criptografia, hash no banco, eu encontrei o XP_CRYPT_GUI para Sql Server, me pareceu muito interessante.

XP_CRYPT_GUI
http://www.xpcrypt.com/xpho/xpcrypt_help1.htm