10 de fevereiro de 2006

Threat Modeling

Uma das atividades principais de um processo de desenvolvimento de software seguro sem dúvida é Modelagem de ameaças.

Através de uma boa modelagem conseguimos mitigar possíveis ameaças e consequentemente desenvolver um software com mais qualidade e segurança.

Eu realizei uns testes com a ferramenta Threat Modeling Tool da Microsoft, achei ela muito interessante, sem contar que ela é freeware. Ela possibilita um mapeamento completo, integração com o visio e gera bons relatórios.


Visão geral


Integração com o visio


Detalhe relatório 1


Detalhe relatório 2

Threat Modeling Tool
http://www.microsoft.com/downloads/thankyou.aspx?
familyId=62830f95-0e61-4f87-88a6-e7c663444ac1&displayLang=en


Um pouco sobre Modealagem de Ameaça
http://www.microsoft.com/brasil/security/
guidance/topics/devsec/secmod76.mspx


Nessus

Quem utiliza o Nessus para análise de vulnerabilidades lógicas (scan) sempre sentiu falta de relatórios mais apresentaveis. O Reason é uma boa opção!





Reason - http://reason.idealogica.com/

9 de fevereiro de 2006

Password Crack

Até hoje ainda encontramos pessoas que se espantam quando descobrem a facilidade para se quebrar senhas. Não é meu objetivo dar material a Script Kid mais acho interessante que se saiba dos riscos e dá atual facilidade para se conseguir tal resultado.

Eu já estudei e troquei muita informação sobre rainbow tables, tabelas enormes de hashs pré-compilados que são usadas para quebra de senha, já sabia de ferramentas como cain que utilizavam desse recurso, mais eu fui testar uma ferramenta que torna o processo ainda mais fácil.

Ophcrack - http://blog.tech-security.com/?p=15



Mais o que o Ophcrack faz de interessante? Ele simplesmente te trás a possibilidade de baixar a rainbow table no momento da instalação. Dai pra frente você já pode imaginar os resultados.

Password Crack

Até hoje ainda encontramos pessoas que se espantam quando descobrem a facilidade para se quebrar senhas. Não é meu objetivo dar material a Script Kid mas, acho interessante que se saiba dos riscos e dá atual facilidade para se conseguir tal resultado.

Eu já estudei e troquei muita informação sobre rainbow tables, tabelas enormes de hashs pré-compilados que são usadas para quebra de senha, já sabia de ferramentas como cain que utilizavam desse recurso, mas eu fui testar uma ferramenta que torna o processo ainda mais fácil.

Ophcrack - http://blog.tech-security.com/?p=15



O que o Ophcrack faz de interessante? Ele simplesmente te trás a possibilidade de baixar a rainbow table no momento da instalação. Dai pra frente você já pode imaginar os resultados.

3 de fevereiro de 2006

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!

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/