Mostrando postagens com marcador segurança da informação. Mostrar todas as postagens
Mostrando postagens com marcador segurança da informação. Mostrar todas as postagens

domingo, 28 de dezembro de 2008

É a hora da verdade... e como ficou a minha lista de coisas a fazer em 2008?

É pessoal... faltando 3 dias para o novo ano (ou ano novo :P), resolvi verificar a minha lista de coisas que eu gostaria de ter feito em 2008 e ver o que eu fiz, o que fiz mais ou menos ou o que chutei de vez :P

Para cada coisa eu irei me dar uma pontuação:
+1 => se eu fiz direitinho
0 => se eu fiz mais ou menos
-1 => se nem com muita boa vontade da para salvar :P

Então, here we go:

1 - Estudar (aprender ou me aprofundar em) as seguintes linguagens de programação: Perl, C/C++, C# e Assembly. De todas as existentes, quero dar mais ênfase nestas 4 este ano.


Vixe... acho que vou começar mal aqui.
Perl: Apesar de ter programado uma coisa ou outra... foi muita coisa no estilo "preciso de algo rápido para resolver um treco". Um dos casos foi quando fiz um programa em Perl para automatizar uns testes de alguns programas que rodaram em paralelo utilizando PVM, MPI e OpenMP.

C/C++: Bem... talvez a parte de C++ tenha sido a menos pior. Acabei estudando um pouquinho mais de C++ por alguns motivos... mas sinceramente, nada que eu considere perto de "estudo" mesmo.

C#: Não escrevi 1 linha de código. Nada...

Asm: O máximo que fiz, foi ler os programas da Taísa :P

Então... neste ponto eu estou me dando um -1.

Subtotal: -1.



2 - Elevar meu CRA na faculdade para > 8. Sim, não está dos piores, 7.7. Mas quero subir ele para acima de 8.


Err... vamos lá.
Em 2008-1 se não fosse a maldita Física 3, eu teria conseguido fácil. Mas como consegui na verdade me estrepar de cara nela.. meu CRA acabou indo para 7.6 no primeiro semestre.

Agora em 2008-2 eu não tenho certeza, acho pouco provável. Porém das 7 matérias que fiz (30 créditos, um recorde no meu boletim), somente a nota de 4 entraram. Como espero passar nas outras 3 com uma nota boa também... então acho que este poderá ser o período onde meu CR (do período) voltará a subir :P (Essa coisa de ir caindo 1 décimo a cada período é muito triste)

Então assim que sair as outras 3 notas eu atualizo isso aqui.

De qualquer jeito, estou me dando um 0 aqui... pois acho que não conseguirei chegar no CRA = 8, porque dei muito mole com Física 3... mas também não deixei tudo ir pro buraco, e fui relativamente bem em tudo neste segundo semestre (nem fiz PF de Física 2 e Calculo 3 \o/).


Subtotal: -1.



3 - Ler pelo menos 1 livro técnico por mês. Mais os que eu tenho e não li por inteiro até hoje.


Essa foi mal formulada :P
Enfim... não foi perfeito, mas não foi um completo desastre.

Percebi que as vezes fica muito complicado você ler tudo que quer quando tem que dividir o tempo com livros de Calculo, Física, apostilas, etc...
Não é impossível, mas requer uma organização melhor, que não tive esse ano.


Mas os livros off-facul que li durante o ano:
Não técnicos:
- Elite da Tropa
- The Art Of Intrusion

- Field Guide to The Apocalypse, Movie Survival Skills for the End of the World
- How to Argue & Win Every Time: At Home, At Work, In Court, Everywhere, Everyday
- Where's My Jetpack?: A Guide to the Amazing Science Fiction Future that Never Arrived

- O Universo Numa Casca de Noz

Técnicos:
- Rootkits: Subverting the Windows Kernel
- Buffer Overflow Attacks: Detect, Exploit, Prevent
- Hacking Exposed: Computer Forensics


Total: 9 livros.

Não foi um espetáculo realmente... mas com muita boa vontade, posso dizer que me esforcei. Então aqui também vou me dar um 0, neutro.


Subtotal: -1.



4 - Publicar pelo menos 4 artigos/how-to/tutoriais, documentos, pelo GRIS.


Ok... esse foi triste e nem vale comentários.
Merecia até um -2... anyway...


Subtotal: -2.



5 - Fazer com que o GRIS apresente trabalhos/pesquisas próprios em pelo menos 2 eventos.


Há! Finalmente algo que eu consegui fazer!
Começou no Workshop I, teve continuidade com as apresentações na semana da Jornada de Iniciação Científica e que finalizaram com o Workshop II.

Todas as apresentações podem ser obtidas aqui:
http://www.gris.dcc.ufrj.br/apresentacoes.php

Aqui eu acho que posso me dar um +1 \o/


Subtotal: -1.



6 - Bombar no desenvolvimento do Labrador =]


Sacanagem... quando eu ja tava ficando feliz.
Outra negação... -1.


Subtotal: -2.



7 - Contribuir com pelo menos 1 destes projetos, nem que seja com patch, bug-reports, etc...: KDE, Amarok, Linux(Kernel), Gentoo/Sabayon, Fedora, Kubuntu.


Esse foi aos 35 do segundo tempo, as foi!
No início de janeiro, resolvi tomar vergonha na cara... e aceitei a um "chamado" por voluntários ao KernelTeam do Gentoo. Apesar disso, acabei me desviando bastante para o SecurityTeam :P

Pretendo continuar contribuindo com o SecurityTeam, mas voltar a ajudar o KernelTeam =]

Hoje, minha conta no Bugzilla, contem 14 bugs reportados (13 de segurança) =]

Acho que aqui... posso me dar um +1 também. Afinal, antes tarde do que nunca... e o negócio é continuar sempre para quem sabe, conseguir me tornar um Gentoo Developer!


Subtotal: -1.



8 - Participar do torneio interno de programação da UFRJ. Montar um time, participar da seletiva da UFRJ e quem sabe da etapa do RJ.


Este e o de cima foram meus maiores orgulhos :P

Meu time DCC-Drunk C Coders, junto com o Felipe (Mascote) e o Leonardo Inácio... eu realmente não esperava formar time com eles. Afinal eles tinham feito TEP e sabiam um monte de macetes/dicas... mas que foram me passando tudo durante toda esse periodo de seletiva e na maratona mesmo.

Bem, nosso time foi para a fase carioca e acabou ficando na quinta colocação.
Mesmo com 5 vagas para o RJ, infelizmente, não fomos por causa do limite de 2 times por universidade, onde a UFRJ também ficou com o terceiro e quarto lugar da fase carioca.

A fase do RJ é uma das mais fortes e disputadas, junto com a de São Paulo emho.
Times bons da PUC, UERJ e IME disputam e foi bem legal colocarmos 3 times no Top5 da fase carioca =]

De qualquer modo, é apenas mais um incentivo a este ano de 2009, para treinarmos e irmos a fase brasileira... quem sabe mundial?!

É isso... Drunk C Coders estará de volta... e com 2 garrafas de vodka e 1 de amigo zé! :P

Então... resumindo tudo, acho que posso me dar +1 aqui =]


Score final: 0.



Este foi o diff entre meus planos para 2008 e o que realmente eu fiz.
Agora esta na hora de começar a pensar nos meus objetivos para 2009. Vamos ver... e que em 2009 eu consiga um score positivo =]

sábado, 27 de dezembro de 2008

Hacking Exposed: Computer Forensics

Yep... consegui terminar de ler mais um livro antes de acabar o ano :P



Este não será uma resenha nem um resumo muito longo... porque estou meio que desapontado com o livro.


Ok, o livro foi publicado no final de Nov de 2004. Acho que livros de segurança, hoje, estão ficando desatualizados muito rapidamente. Mas não foi isso que me incomodou, pois seria o mesmo caso do livro de Buffer Overflow, que apesar de não ser nenhum espetáculo, acabei aprendendo umas coisas bem legais.


O site do livro, por exemplo, nem existe mais. Acho isso um vacilo muito grande por parte da editora e dos autores.



Os 3 primeiros capítulos formas a parte 1 - e introdutória - do livro.


O primeiro capítulo, diz o que é uma análise forense, os passos normalmente tomados, tudo que tem de ser feito, desde o registro (para documentação posterior), coleta das evidências e finalmente a análise... bem básico.


O segundo capítulo explica coisas básicas como o que é a BIOS, tipos de mídia: hds, cds, disquete, fitas, etc... Até tem umas coisinhas interessantes... mas nada que realmente seja ligado a segurança, está mais para "conhecimentos gerais".


Capítulo 3 discute o que deve ser e como de ver um laboratório de investigação forense. Até aqui está bem interessante... mas bem básico. Ele fala sobre toda a segurança que você precisa ter, para não deixar pessoas não autorizadas entrarem por exemplo.



Agora começamos a parte 2.

O capítulo 4, trata da coleta da evidência.
O capítulo 5, fala sobre investigação remota.


Fala sobre como devem ser feitos, explicam algumas coisas... falam que deve ser feito o hash dos arquivos coletados, blablabla...
No mais, demonstra como fazer tudo utilizando ferramentas, tipo EnCase e algumas outras. (Quase sempre comerciais)



Parte 3:

Capítulo 6: Forense em ambiente Windows
Capítulo 7: Forense em ambiente Linux
Capítulo 8: Forense em ambiente MacOS


A parte mais interessante dos 3 capítulos é quando são discutidos os sistemas de arquivos mais utilizados nos 3 SOs.
Tirando isso, é somente mais uma longa sequencia de "como fazer isso usando a ferramenta XXX"... e normalmente a ferramenta é a EnCase.



Capítulo 9: Técnicas anti-forenses.
Aqui pode ser interessante para os investigadores terem uma noção de problemas que podem ter... como criptografia, estenografia, limpeza de disco (gravando bytes aleatórios diversas vezes por todo o disco)...



Capítulo 10: Análise em Storage em empresas.
Basicamente fala sobre RAID e fitas.



Capítulo 11: Análise de e-mail:
Fala sobre como abrir arquivos .pst (outlook), .dbx (outlook express), formato padrão de mailbox do unix, Netscape/Mozilla e AOL (WTF?!), Hotmail e Yahoo!.
No final, 2 páginas sobre cabeçalhos de e-mail... muito básico.



Capítulo 12: Rastreando as atividades dos usuários.
Fala sobre cookies e o cache dos browsers. E sobre meta-dados em documentos office.


[Aqui eu ja estava de saco cheio e comecei a ler as coisas com leitura dinâmica... ou seja... 4 pagina no tempo de 1]



Capítulo 13: Análise de PDAs e Celulares.
Esse é o capítulo "ultra novidade" deste livro... e a idéia é boa! Quem hoje não tem um celular que lava, passa e cozinha? (Só não liga quando é preciso :P).


Mas novamente é somente um "how-to" de ferramentas... PDA/Cell Seizure da Paraben e da EnCase. Desculpem... mas fiquei completamente de saco cheio.



A última parte, tenta mostrar tipos de relatórios (internos, para a justiça, etc...) e depois como o sistema de justiça dos EUA funciona. Interessante... pelo menos eles não falaram mais da EnCase aqui.



Depois temos os apêndices:

Apêndice A: Alguns formulários e checklists, para serem usados ou servirem como base para criação de outros.

Apêndice B: Consequências legais. Basicamente descreve um caso que foi a justiça.

Apêndice C: Fala sobre as leis (dos EUA) sobre o tratamento de evidências.

Apêndice D: RegExp básico em 4 páginas.

Apêndice E: Ferramentas que deverias estar no toolkit de um investigados. Diversas ferramentas... algumas livres, outras comerciais...



E pronto, é isso.

Se alguém ainda não entendeu minha frustração com o livro eu posso resumir em 1 linha:

O livro poderia se chamar "EnCase for Dummies" ;)


Infelizmente o modo do livro ser escrito, que em 90% é apenas "fazendo isso com *essa* ferramenta" me desmotivou muito a ler.

Apenas segui em frente pois queria acabar ele de uma vez.


Não recomendo o livro mesmo...

quinta-feira, 4 de dezembro de 2008

Meu primeiro bugreport no Bugzilla do Gentoo *___*

Sempre dizem que o bom filho a casa torna (ou retorna, não sei :P).
Então, aqui vou eu =D

E hoje, enviei meu primeiro bug-report ao bugzilla do gentoo:
http://bugs.gentoo.org/show_bug.cgi?id=249878

Basicamente foi um repasse de uma falha que vi na Secunia.

Uma falha no rsyslog que afetas as duas versões que estão na árvore do portage, tanto a 3.18.4 (v-3 stable) quanto a 3.21.6 (v-3 beta).

Foram lançadas as versões 3.20.1 e 3.21.8 que corrigiram um bug de bypass descrito aqui:
http://www.rsyslog.com/Article322.phtml

Logo em seguida, estas duas versões foram retiradas do ar, e foram colocadas 2 outras a 3.20.2 e a 3.21.9 que corrigiam um DoS.

Aqui esta o anúncio da 3.20.2:
http://www.rsyslog.com/Article324.phtml
E aqui o da 3.21.9:
http://www.rsyslog.com/Article327.phtml


Foi bem legal reportar o bug, e o Stupendoussteve do canal #gentoo-security me ajudou pra caramba... espero que ninguém que siga a security@gentoo.org fique *muito* puto por 1 ou 2 edits a mais que tive que fazer :P

Na verdade eu voltei a acompanhar o bugzilla mais por causa do KernelTeam do Gentoo... estão precisando mais de gente do que o SecurityTeam. Mas nada impede que eu tente ajudar os dois e foi um bom para me acostumar com o funcionamento do Bugzilla =D

Será que o primeiro bug report, a gente nunca esquece? :P

sexta-feira, 21 de novembro de 2008

Buffer Overflow Attacks: Detect, Exploit, Prevent

Primeiro eu gostaria de dizer que eu acho que quase demorei mais tempo para escrever esse resumo/resenha do que para ler o bendito livro (tirando que tenho ele a muito tempo e somente comecei ler ele sério mesmo a pouco tempo atrás).





Bem o livro "Buffer Overflow Attacks: Detect, Exploit, Prevent", começa com uma ótima pergunta:
"Will the code you write today headline tomorrow's BugTraq mail list?"

E temos que concordar, não é uma situação muito agradável saber que seu software/sistema contem um bug que pode permitir que um atacante veja dados confidenciais, obtenha acesso de maneira indevida ou mesmo faça a aplicação toda travar. Ainda mais se for algum software que o programador gostou de trabalhar... programadores tem ciúmes de seus códigos ;)

Antes de iniciar o resumo, devo citar que o livro foi escrito por James C. Foster e contou com a ajuda de Vitaly Osipov, Nish Bhalla e Niels Heinen. Foi publicado pela Syngress e a única edição deste livro foi publicada em Fevereiro de 2005, digo isto pois todo o material de exemplo incluso é de até 2004 (e sabemos que a SI é um campo em constante evolução).

O livro contem aproximadamente 500 páginas e foi utilizado um papel, emho, de baixa qualidade.


O próprio autor divide o livre em 3 partes:
1 - Expanding on Buffer Overflows
2 - Exploiting Buffer Overflows
3 - Finding Buffer Overflows

Após cada parte há uma série de casos de estudos, que também irei comentar.



Parte 1 - Expanding on Buffer Overflows
Esta parte contem 4 capítulos com um total de 130 páginas aproximadamente, vamos ver um pouco sobre cada capítulo.


Capítulo 1: Buffer Overflows: The Essentials
Como esperado, é o capítulo de introdução, onde o autor define o que são Buffer Overflows, da algumas estatísticas baseada no número e tipo de falhas encontradas de 2001 a 2004, da um exemplo do site da Madonna hackeado e depois define uma penca de termos relacionados a Hardware, Software e Segurança.


Capítulo 2: Understanding Shellcde
Aqui ele começa introduzindo o que é um Shellcode, ferramentas úteis (NASM, GDB, ObjDumper, Ktrace (BSD), Strace (Linux) e Readelf) e faz uma introdução a assembly (mas espera que o leitor tenha conhecimento prévio) e por fim cita que o código assembly para Windows e Unix são diferentes.

Então ele começa a trabalhar nos detakges ao se escrever um Shellcode: o problema do endereçamento; o problema do byte nulo (NULL Byte, 0x00), como fazer Syscalls e mostra a diferença entre a passagem de argumentos em BSDs e Linux. E por fim da exemplos de Shellcodes para ataques remotos (port-binding) e ataques locais (execve, setuid e chroot), todos acompanhados de seus códigos em C e assembly.


Capítulo 3: Writing Shellcode
Nas 40 primeiras páginas deste capítulo ele pega alguns shellcodes do capítulo anterior (execve, port-binding) e alguns novos (reverse connection, reutilização de socket, reutilização de descritores de arquivos) e mostra a idéia, o que se quer fazer, apresenta um código em C, depois o código em assembly e explica como cada coisa funciona (comenta o código asm todo). Fala sobre codificação do shellcode, para - tentar - evitar a detecção por IDSs

Em seguida aborda como utilizar áreas de memória do próprio programa alvo para guardar dados, quando a área de payload para o shellcode é pequena e depois sobre shellcodes que podem ser utilizados em mais de um SO.

Por último faz uma engenharia reversa em um shellcode, para "descobrir" o que ele faz.


Capítulo 4: Win32 Assembly
Enquanto até agora, o foco foi em sistemas BSDs e Linux, neste capítulo passa a ser exclusivamente sobre Windows.

Ele começa mostrando como funciona o gerenciamento de memória e a Stack e a Heap.

Então ele começa (de novo) a uma introdução em assembly... registradores de índice, de stack, e outros gerais... EAX, EBX, ECX...AX, BX, CX... AL...AH...

Mostra algumas operações básicas em ams (CALL, MOV, INC, DEC, ADD, SUB, etc...) e faz um Hello World.

E foi isso o capítulo. Se isso não estivesse aqui, não faria diferença nenhuma, emho. Me pareceu mais algo que caiu de para-quedas por que a editora disse "Ei cara! Tem que colocar coisa de Windows ai!!!".


De qualquer forma, a parte 1 termina com 4 casos de estudo:

Caso 1.1 - FreeBSD NN Exploit Code
3 página de um código em Perl c/ assembly, ou seja o código do exploit.
Uma análise meia página sobre meia dúzia de linhas.
Realmente, não me acrescentou em nada... pois eu pulei.


Caso 1.2 - xlockmore User Supplied Format String Vulnerability
Começa melhor, pois mostra o trecho do código (em C) da aplicação que contem a vulnerabilidade. Mostra qual o problema. Porém, logo em seguida temos 2 paginas do dump do código do exploit (dessa vez em C + asm) e uma análise de 1/3 de página...
Muito fraco ainda, emho.


Caso 1.3 - Frontpage DoS Utilizing WinSock
Um "overview" de 1/3 de página... depois dump do código do exploit (em C + asm) de 1 página e uma análise de 1/3 de página novamente.
Depois vem um dump do "Hack.h", ocupando 6 páginas + 1 página de comentários, que são as funções de ajuda utilizadas no exploit do Frontpage.


Caso 1.4 - cURL buffer overflow on FreeBSD
Segue o mesmo do resto...2 paginas de dump do código do exploit e uma página de análise.


Eu particularmente, não gostei desses "Casos de estudo".
Primeiro porque *como* buffer overflows e ataques por strings de formatação são apenas explicados na segunda parte do livro.

Segundo por que, eu esperava de "Casos de estudo", estudar o buffer overflow e não o maldito exploit que alguem fez.... algo como desde a analise de um problema (SegFault) até achar onde se encontrava o bug e como fazer para explora-lo.


Depois de ficar um pouco desanimado com estes casos de estudo, vamos a segunda parte...




Parte 2: Exploiting Buffer Overflows
Esta é a parte principal do livro, com aproximadamente 200 páginas e demostra o funcionamento dos Buffer Overflows na stack e na heap e dos ataques via strings de formatação


Capítulo 5: Stack Overflows
Como esperado, começa iniciando com uma explicação de funcionamento da stack, volta a falar um pouco sobre asm básico e fala sobre o que fica na stack: variáveis locais, parâmetros em chamadas de funções, o EBP e o EIP salvos, etc... ou seja, mostra o que é um Stack Frame.
Em seguida vai demostrando alguns overflows na stack e suas consequências, depois passa para métodos para conseguir executar o payload (o shellcode que você colocou na memória) e depois como criar um payload adequado.

Comenta sobre os overflows "off-by-one", onde somente 1 byte a mais (devido a um erro de conta do programador) é sobre-escrito e que mesmo sendo somente 1 byte, pode trazer problemas.
Depois fala sobre as funções da biblioteca padrão do C que não são seguras como gets(), strcpy(), strcat(), sprintf(), etc... e suas versões seguras (que implicam que o programador defina um número máximo do tamanho do buffer... mas que ainda podem ser usadas erradas e causar "off-by-one" quando a conta é feita errada) como fgets(), strncpy(), strncat(), snprintf(), etc...

No final fala da dificuldade em se achar erros desse tipo na análise do código...cita analisadores léxicos (grep-like), semânticos (que funcionam como compiladores), tracers, fuzzers, etc...


Capítulo 6: Heap Corruption
Este capítulo começa com uma pequena descrição da heap e das funções em C para alocação de memória (malloc/calloc/realloc) em seguida um exemplo de Buffer Overflow em uma área alocada na heap.

Em seguida trata sobre como sobre-escrever ponteiros para funções em C++ (pois os ponteiros para as funções de uma classe ficam na heap).

E por fim, uma parte que eu gostei bastante, uma discussão sobre 2 algoritmos de gerenciamento da heap e quais as falhas que estes modelos proporcionam. Esta parte foi muito boa mesmo, tanto pela discussão do algoritmo, quanto das falhas. Os algoritmos discutidos foram o Doug Lea Malloc, que é a base do que o Linux usa hoje e o System V Malloc, utilizado no Solaris e no IRIX.


Capítulo 7: Format String Attacks
Começa com uma descrição do que são Format String, como é feita uma função em C que aceita argumentos variáveis e como utiliza-los através do va_args e mostra como tudo fica na stack e o funcionamento da função printf(), como exemplo.

Em seguida, vem a parte de como explorar strings de formatação, quando estas podem ser definidas pelo usuário e não são tratadas adequadamente pelo programa (assim como todos os problema de Buffer Overflow, que é a falta no tratamento dos dados enviados pelo usuário).

Começa demonstrando a forma mais fácil de explorar esse tipo de ataque que é causando um DoS (em contexto local... BSOD ou Kernel Panic), em seguida como ler e escrever na memória através de strings de formatação maliciosas.

E no final são discutidos os desafios ao tentar se explorar esse tipo de falha.


Capítulo 8: Windows Buffer Overflows
Preciso comentar que quando comecei este capítulo, pensei logo "Ixi... a mesma coisa que o Cap 4, caiu de para-quedas...".

Talvez depois de ler ele todo eu tenha entendido o propósito dele. Enquanto os capítulos 5 e 6, tratavam da teoria dos ataques (porem demonstrando os conceitos, só que em ambiente linux), este capitulo visa juntar toda a teoria que foi aprendida e realmente consturir um exploit para ambiente Windows.

Como eu disse, ele trata mais da construção, ou seja desde a exploração incial até a criação de um shellcode.

Uma coisa nova que ele trata é como usar e exploitar o "Structured Exception Handler" do Windows.



E aqui terminamos a Parte 2, e temos mais 5 casos de estudo:

Caso 2.1 - cURL Buffer Overflow on Linux
Uma falha de 2002, contem uma introdução pequena, 2 paginas com o código em Perl do exploit. Em seguida uma análise com o disassemble do shellcode e mais meia duzia de comentários sobre o código.


Caso 2.2 - SSLv2 Malformed Client Key Remote Buffer Overflow Vulnerability
Esse veio mais completo, contem uma introdução, seguido de detalhes da falha em si, comentários na estrutura de dados que permite a exploração e qual era o erro no código que permitia isto. Em seguida demonstra os problemas ao se tentar explorar esta falha... então a é feito um refinamento sobre a idéia do exploit e no final o código completo do exploit em C com quase 7 páginas ;)

Apesar de muito código, achei bem interessante toda a discussão feita em cima deste caso de uso.


Caso 2.3 - X11 R6 4.2 XLOCALEDIR Overflow
Uma introdução de 1/4 de página e seguido de uma analise bem legal de umas 3 paginas da vulnerabilidade. E por final o código do exploit em C, com 2 páginas aproximadamente.


Caso 2.4 - Microsoft MDAC Denial of Service
Uma introdução de meia página, seguido do código do exploit em C com 3 paginas, onde 80% é um shellcode do codigo de exploração... o que ele faz, só deus sabe. Em seguida mais 7 paginas com o arquivo hack.h de "funções úteis" para criação de exploits em C -_-'

Em seguida uma analise de 2 paginas desse codigo todo...


Caso 2.5 - Local UUX Buffer Overflow on HPUX
A coisa ficou underground agora. Mas continua no mesmo estilo... uma introdução pequena, codigo do exploit em Perl com 2 paginas e comentários sobre o código.


Os casos 2.2 e 2.3 são os que se salvam emho... anyway, continuando para a parte final do livro...



Parte 3: Finding Buffer Overflows
Esta parte contém um único capítulo e alguns casos de estudo.

E quando cheguei nela, achei que ela prometia, e muito!


Capítulo 9: Finding Buffer Overflows in Source
Este séria um dos melhores capítulos deste livro se... ele não falasse apenas de ferramentas. Ferramentas pagas, ferramentas comerciais, ferramentas opensource... cada uma analisando o código do seu jeito, etc...

Mostra como algumas funcionam, o tipo de output gerado, etc...

E é isso... e algumas das ferramentas inclusive ou não existem mais hoje...

Infelizmente, foi uma grande decepção... não que o material seja ruim, mas era melhor chamar o capítulo de "Using X, Y and Z softwares to help you in search for buffer overflows in your code" ou algo do tipo...

Acho que essa foi a parte mais patrocinada do livro :P


Em seguida temos 4 casos de estudo (que não tem nada a ver com esta parte 3...):

Caso 3.1 - InlineEgg I
Tem 2 páginas... uma introdução, o código do exploit e comentários sobre o que o exploit faz.

Alguem aqui viu algo relacionado a "como achar buffer overflows"?


Caso 3.2 - InlineEgg II
Acho que eles estavam ficando sem criatividade para escolher programas...

Uma introdução de 3 linhas (sério) seguido de uma pagina com código em exploit em Python e outra comentado o exploit.


Caso 3.3 - Seti@Home Exploit Code
Mais 4 linhas de introdução, 5 páginas com código do exploit e uma página... comentando o código do exploit.


Caso 3.4 - Microsoft CodeBlue Exploit Code
10 linhas de introdução, 4 paginas com código do exploit e uma página... de novo... comentando o código do exploit.


Apendice A: Tabela de conversão de caracteres para decimal, octal, binário, hexadecimal, etc...
Apendice B: Uma dúzia de syscalls disponíveis em sistemas Linux/BSD.


E pronto, o livro acabou.


Como provavelmente puderam perceber, eu *realmente* não gostei dos casos de estudo. Talvez eu tenha uma visão errada do que eles deveriam ser, mas pegar 10 exploits aleatórios no milw0rm e dizer que são casos de estudo, não me agrada muito.

Uma coisa legal, que esqueci de citar é que no final de cada capítulo há um resumo sobre os pontos vistos, links para sites relacionados aos assuntos abordados ou que foram comentados durante o capítulo e no final um FAQ (com umas perguntas bem aleatórias as vezes...).


Não posso dizer que seja um espetáculo de livro... mas também não é ruim.

Foi bom para revisar todos os conceitos... e sempre acaba-se aprendendo algo novo.

Ficou sendo apenas um livro... "normal".

domingo, 26 de outubro de 2008

Trocando de distro a cada 6 meses?

Recebi o seguinte comentário no meu post "6 meses de Arch Linux" e achei interessante alguns pontos colocados:

"O problema do linux é esse, cda 6 meses tem q mudar, pq? pq são tts distros q eles não conseguem ficar s fuçar e acaba saindo outra. A gente se ferra pq faz uma atualização q não da certo, vc precisa reinstalar o sistema, q na verdade não reisntala coisa nenhuma e vc perde td. Pior de td é q nunca uma distro é sequência da anterior. Aí é q a gente dança. Adorei o linux, usei durante 3 anos, mas sempre mudando, comprando cd e jogando pq não dava certo. Me desgostei de vez c o biglinux 4, pra comiçar uma cópia do xp, clone ou imitação, sei lá, pior msm é q mouse não funciona, da um trabalho pra fazer funcionar, depois de td pronto, td quase funcionado, faz uma atualização e pronto, mouse não funciona mais. Daí cansei, né? To c o xp, o xpsp3 ta bom, como eu já disse, parece o biglinux 4.0, única coisa chata é q ele pega uns vírus de vez em qd, mas daí a gente mata."


Olha isso não é mais tão verdade hoje em dia, emho.

Muitas distros como Fedora, (K)Ubuntu, etc.. oferecem a opção de você fazer o upgrade para uma versão mais nova. Sim, sei que isso nem sempre da certo (já deu bastante errado comigo :P).

Mas você também não precisa fazer upgrade para novas versões, ainda mais se for em um ambiente de produção (ou um PC de trabalho), aonde você não *precisa* de nenhuma funcionalidade da nova versão, talvez como um novo kernel ou novas versões de ferramentas que você usa.

Por exemplo, hoje um release normal do (K)Ubuntu tem suporte a updates de seus pacotes por até 1 ano e meio e as versões LTS tem suporte de 3 anos. O Fedora se não me engano é de 1 ano o suporte.
A diferença é que estas atualizações são somente fixes de problemas de segurança e bugs, nunca adição de novas funcionalidades (pelo menos no caso do (K)Ubuntu, não tenho certeza do Fedora pois ele é mais bleeding edge).


Uma dica que eu posso dar e é o que eu faço é utilizar seu /home em uma partição separada, pois caso o upgrade mande seu sistema para o vinagre, o *seus* dados, pelo menos os pessoais, estarão a salvo.
(Mas é claro que a política de backup pelo menos mensal - que ninguém - seria uma boa também... sabe deus quando seu HD vai para o brejo?)


Temos ainda outra classe de distros com o Arch Linux e o Gentoo que são chamadas de "Rolling Distros", ou seja distros que sempre estão atualizadas. Depois de instaladas uma única vez, se você sempre manter ela atualizada (pelo pacman no Arch e pelo portage no Gentoo), sempre terá uma instalação exatamente *igual* a qualquer nova versão que lancem.


Isso é somente uma questão de gosto e gerenciamento de pacotes... um exemplo que posso citar é o do kernel no (K)Ubuntu e no Arch.

No (K)Ubuntu 8.04, o kernel vai ser sempre o mesmo, o 2.6.24 (a menos que você pegue e compile o seu na mão... mas ai estamos roubando :P), isso durante os 3 anos (pois o 8.04 é um LTS, Long Time Suport, se não seria por 1 ano e meio), não importando quantas novas versões do kernel saiam nesse período. Quando sair o (K)Ubuntu 8.10 com kernel 2.6.27, quem quiser ficar com o 8.04 vai continuar usando o 2.6.24 e ponto.

Já no Arch, novas versões do kernel são rapidamente testadas inicialmente pelos desenvolvedores, colocadas no repositório testing e em pouco tempo ja estão no repositório principal para quem quiser usar. Assim que sair um novo CD de instalação do Arch ele estará com este mesmo novo kernel! (Se não me engano, ja teve até um caso em que o kernel do CD era mais antigo que o do repositório mesmo, ja no dia da instalação ou 1 ou 2 dias depois!)


Veja bem que uma "rolling distro" não precisa ser algo "bleeding edge".

No Arch Linux isso acaba acontecendo (mesmo sem usar o testing e outros...), mas no Gentoo por exemplo, caso você use a linha stable dele (como todos os sistemas de produção e ambientes de trabalho deveriam...) você não necessariamente tem os softwares mais atuais, mas quando um novo CD de instalação ou o que seja for lançado, você terá o mesmo sistema de quem utilizar este CD.


Por exemplo, hoje (26/10/2006) temos no Arch Linux o kernel 2.6.27.1 no repositório estável - Core - porém ja marcado como "obsoleto" por que já estamos na versão 2.6.27.4.

Porém no Gentoo a coisa é um pouco mais enrolada, como tudo é compilado pelo usuário lá, você pode pegar qualquer versão que queira, porém somente algumas são marcadas como estáveis....

Vamos lá... o pacote "vanilla-sources" que é o kernel como ele veio ao mundo, ou seja, é o kernel do kernel.org sem nenhum patch, temos as seguintes versões estáveis para x86 E AMD64:
2.6.19.7, 2.6.23.9, 2.6.23.17, 2.6.24.3, 2.6.24.4, 2.6.24.7 e a 2.6.25.9 que é a mais nova que esta marcada estável para os dois. Se formos ver somente para x86 ainda temos 2.6.25.11, 2.6.25.14 e 2.6.25.17.

Não me pergunte o por que da 2.6.25.14 e a 2.6.25.17 serem estáveis e as 2.6.25.15, 2.6.25.16 não. Coisa deles, testes deles. Mas temos todas as possíveis versões, até a 2.6.27.4 la, porém marcadas como instáveis. Pode usar? Claro que pode... mas eles tão dizendo que não colocam a mão no fogo por elas (nem nas outras eles colocam provavelmente :P).

Se você for ver então a "git-sources" (que representa a arvore de desenvolvimento do kernel) pode até pegar o kernel 2.6.28_rc1 (release candidate 1 da nova versão, a merge windows acabou de ser fechada!! É pedir para ter um kernel panic), ou mesmo o 2.6.28_rc1-git1 (o rc1 + as ultimas mudanças que fizeram de ontem pra hoje!). Claro que tudo isso é marcado como instável.

E por fim temos a "gentoo-sources" que trata de uma kernel com diversos patches aplicados pela equipe do gentoo, onde a mais estável para amd64 é o 2.6.25-r7 e para x86 é o 2.6.25-r8 (mesmo tendo ja o 2.6.27-r1)... apenas prestar atenção que esse -rX é relativo aos patches aplicados pela equipe do gentoo sobre o kernel, não confundir com o -rcX do kernel.


Voltando ao comentário... outro ponto é que concordo que existem muitas distros. Isso pode ser algo bom e ruim, mas realmente alguem novo ou que não tenha ainda escolhido uma (ou umas :P) que gosta mais, realmente fica bem perdido.

Acho que cada uma tem seus prós e contras, seria bom se fosse possível juntar todos os prós e remover todos os contras, mas infelizmente (ou seria felizmente?) cada distro tem sua filosofia de desenvolvimento, seu público alvo (Por exemplo... as vezes me sinto entediado no (K)Ubuntu. Ou então tente dar um Gentoo para quem nunca usou Linux na vida...).

E o principal temos as pessoas que colaboram e que fazem isso por que gostam de fazer e gostam do "jeito de ser" de uma determinada distro... não podemos força-las a desenvolver de outra maneira, para outro público alvo... apenas vai irrita-las ou chateá-las e não teremos mais desenvolvimento algum =/
(E pela filosofia do Software Livre... não deveríamos querer obrigar ninguém a fazer nada... aonde ao extremo, podemos fazer nós mesmo algo que não gostamos do jeito que está sendo feito :)


Sobre o BigLinux 4, eu particularmente nunca utilizei-o. Mas essa "tática" de ter um visual parecido com o XP é para ajudar o pessoal que vem do Windows, para tornar menos traumático :P.
Se todos usassem Linux/Unix desde criancinha, não seria necessário... mas crescemos usando windows 95, 98, 2000, XP, Vista, etc... (ok... eu tmb usei DOS e 3.11 xD) então ou a pessoa tem um estalo divino para usar Linux ou então a transição tem que ser amigável.

Eu acho a tela preta e a compilação de programas um charme no Linux... vai ver eu sou biruta de pedra.
Mas um usuário normal, minha mãe, minha irmã, minha vó, meu tio... aqueles que querem usar o Firefox (há... ja escondi o IE a muito tempo do computador deles :P) e ver e-mails e YouTube, querem se sentir "seguros"... do tipo "sei onde estou e sei o que estou fazendo".

Se o BigLinux consegue ser uma porta de entrada para muitas pessoas ao Software Livre eu dou meus parabéns a ele!!!

Por que se for para copiar o "visual do XP", muita gente ja copiou muita coisa do MAC e eu não uso MAC hoje por isso (eu não uso MAC porque eu sou pobre mesmo :P).
O Windows utiliza o sistema de gerenciamento de memória do BSD e não é por isso que eu utilizo o BSD (até porque essa joça não faz boot no meu notebook... -_-').


Eu particularmente, evito usar windows, não porque odeio a Microsoft, não acho que o Bill Gates é o filho do capeta e que tem a instituição dele lá que ajuda (e coloca ajuda nisso... o cara tem quase nada de dinheiro para doar) somente como faixada...

Eu uso Linux, por que GOSTO do Linux. Acho FODA o conceito de comunidade. Acho FODA PRA CARALHO o desenvolvimento colaborativo onde cada um ajuda como quer. Acho super legal a idéia do Software Livre, o conhecimento pertence ao mundo, yeah!

Mas se precisar, uso Windows de boa. (Afinal eu quero jogar também, sem ter que usar wine/cedega/etc... :P)


Não tenho problema no Windows com vírus nem com suas falhas de segurança. 99% dos vírus/worms/etc... com algumas precauções pode-se evitar facilmente. Falhas de segurança todos tem. O Linux (kernel) e os programas que utilizamos todos os dias... vixe, tem várias... eles corrigem rápido na maioria das vezes, mas isso não diz que estejam seguros... quantas pessoas não atualizam seus pacotes? Mesmo com as facilidades de hoje em dia? O mesmo vale para o Windows Update...

Infelizmente a segurança rompe no elo mais fraco... o usuário =]
(Já chegamos até em papo de segurança... acho que podemos ir parando por aqui :)


É isso... eu como disse, vou continuar utilizando meu Linux aqui e estou feliz com ele (mesmo sabendo que a minha natureza de nômade de distro, me fará mudar em breve :P).


Olha... o que eu ouço falar de nego reinstalado Windows de 6 em 6 meses... seja por que pegou vírus, ou por causa da famosa DLL Hell, ou por que o sistema travou e ferrou alguma coisa, ou então por que o registro foi para o saco, etc... (muita coisa... 99% culpa do usuário =).

Se for necessário, eu prefiro reinstalar o Linux de 6 em 6 meses... =]

domingo, 14 de setembro de 2008

Rootkits: Subverting the Windows Kernel


Este final de semana, terminei de ler este livro. É estranho pensar que tenho este livro a tanto tempo, mas somente mês passado, peguei ele para ler mesmo (antes eu só dava uma espiada no que me interessava e colocava-o de lado novamente).


O livro Rootkits: Subverting the Windows Kernel da Addison-Wesley, como vocês podem imaginar trata sobre Rootkits... em ambiente Windows! (Eu sei, é muita surpresa.).



Um pequeno resumo sobre os 10 capítulos do livro:


1 - Leave No Trace:
Um capítulo com bem cara de introdução mesmo, formando uma história dos rootkits, como surgiram e para o que surgiram. Como são utilizados, e quais métodos um rootkit usa. Explica também o que um rootkit deve fazer e o que ele não deve fazer.
Sempre dando ênfase na parte do "Stealth" (ou sub-reptício), onde um rootkit deve ser acima de tudo indetectável.


2 - Subverting the Kernel:
Uma introdução a programação de drivers, que é como os rootkits são programados. Instalando as bibliotecas de desenvolvimento... preparando o sistema... e fazendo um HelloWorldDriver. Como fazer registros (no Log do windows) para Debug, modos de carregar o seu driver (rootkit) e uma breve amostragem de integração de User-space com Kernel-space. No final, como fazer seu rootkit sobreviver a um reboot da máquina.


3 - The Hardware Connection:
Neste capítulo é demonstrado como um SO trabalha. Explicando conceitos como Rings (para controle de acesso), as diversas tabelas como GDT, LDT, IDT, SSDT e Page Directory, como funcionam as Páginas de Memória, tradução de um endereço virtual para um endereço físico de memória. Fala ainda sobre os registradores de controle, com ênfase no CR0 (Control Register 0) e um pouco sobre sistemas com multi-processadores.


Até aqui foi uma "mega-introdução" para fixar todos os conceitos básicos necessários. A partir daqui o livro começa a entrar mesmo nos rootkits.


4 - The Age-Old Art of Hooking:
Este capítulo começa com Hooks em User-space, demonstrando como trabalhar na IAT (Import Address Table), como fazer Hooks inline (alterando o assembly do início da função, para que ela faça um jump para um outro lugar), injetando DLLs em processos em User-space.
Então começa a parte de Hooks em Kernel-space, utilizando as ja comentadas tabelas SSDT, IDT e a IRP Function Table.
No final, é discutido como fazer uma abordagem mista, utilizando tanto hooks de user-space quanto de kernel-space.


5 - Runtime Patching:
Mostra a técnica de se "patchear" o que esta na memória. A primeira técnica é o patch de desvio, que basicamente desvia a execução de uma função para outro lugar. Em seguida ele explica a técnica de "Jump Templates" na IDT.
Por fim é feito um pequeno comentário (1 página) sobre variações dos métodos.


6 - Layered Drivers:
Este capitulo trabalha em cima de como os drivers funcionam em um SO Windows e como pode-se colocar vários em sequência (em camadas). Este capítulo demonstra como fazer um Sniffer de Keybord e um driver que esconda determinados arquivos utilizando este método, porem o capítulo inteiro é basicamente um "comentando/explicando o código".


7 - Direct Kernel Object Manipulation:
Este capítulo começa apresentando o que é o DKOM, seus benefícios e seus problemas. A partir dai ele demonstra como se comunicar com um Driver a partir do User-space, como esconder processos e Drivers, elevação de privilégio e até como colocar informações falsas no Windows Event Viewer, tudo isso utilizando o DKOM. Apesar de ser um capítulo com bastante código comentado, eu gostei bastante da apresentação do DKOM e das diversas maneiras que ele pode ser utilizado.


Estes quatro capítulos, trataram das técnicas mais utilizadas por rootkits.
Os 3 próximos (e últimos) capítulos, falam sobre "tópicos diversos" na criação de rootkits.


8 - Hardware Manipulation:
Quando comecei a ler este capítulo, estranhei um pouco o fato dele ter sido posto no final do livro, achei que deveria ter sido posto juntamente com os 3 iniciais. Mas conforme você vai lendo, percebe que a manipulação do hardware aqui, se dá para a criação de rootkits altamente específicos, como por exemplo, que fiquem residente na BIOS/Firmware. Os exemplos aqui são bem teóricos e tem como objetivo somente trabalhar a idéia. No meio do capítulo, há uma parte de como interagir com o Keyboard Controller, infelizmente novamente caímos na parte de "comentando/explicando o código"... e coloca código nisso. No final ele fala um pouco (bem pouco mesmo... 1 página. Mas ja da para viajar bastante) sobre micro-programação dos processadores e como hoje a Intel e a AMD tem processadores que permitem a atualização de suas micro-instruções.


9 - Covert Channels:
Aqui é discutido como fazer para que o rootkit consiga se comunicar (via rede) sem que um firewall, NIDS ou coisa do gênero consiga detectar e/ou bloquear o tráfego. É basicamente apresentado como utilizar o TDI e o NDIS, 2 métodos de se criar canais de comunicação, onde o primeiro é em User-space e mais fácil de usar (porem também de ser detectado), enquanto o segundo é em Kernel-space, mais hardcore, a lá Sockets, onde você pode definir cada bit dos pacotes e inclusive terá que implementar sua própria pilha TCP/IP, veja só quanta diversão!
E mais uma vez, temos a grande quantidade de "comentando/explicando o código".


10 - Rootkit Detection:
Aqui é abordado o lado defensivo da coisa, ou seja, como encontrar rootkits. Desde o duro trabalho de ficar vigiando todos os pontos de entrada por onde um rootkit pode ser carregado (e acreditem... são *muitos*), até procurar na própria memória por hooks e processos escondidos.



Este foi um overview dos capítulos do livro. Gostei bastante do livro, aprendi bastante coisa com ele, não me tornei o mestre h4x0rz l33t dos Rootkits, mas acho que meu leque de conhecimento se expandiu. Aprendi diversos conceitos novos e muito interessantes.

Por um lado, não cheguei a programar nenhum dos exemplos dados no livro, nem fazer os downloads indicados. Me mantive no lado teórico da coisa e talvez por isso, tenha me sentido incomodado com o "comentando/explicando o código", que foi a única coisa negativa que vi no livro: muitas páginas com códigos puros, muitos comentários em cima dos códigos, inclusive de códigos que ja estavam comentados pelo seu programador. Mas não que tenha prejudicado muito o livro.

Talvez por eu estar hoje utilizando *muito* mais o linux do que o windows e ter perdido um pouco do interesse pela parte da pesquisa em segurança (apesar de eu achar que ainda está no sangue =]), eu não me empolguei em digitar e executar os exemplos dados, nem em fazer download dos links recomendados (com código-fonte de rootkits).

Mas para qualquer um que goste da plataforma Windows, tenha interesse na área de segurança e programação e ainda de quebra queira aprender como muitas das coisas funcionam por "de baixo dos panos", o livro é uma ótima pedida e eu recomendo =]


Curiosidades:
1) O livro foi feito com papel reciclado.
2) A capa do livro, muito bonita, foi feita por um brasileiro.

segunda-feira, 8 de setembro de 2008

Lançado Nmap 4.75

Ontem, dia 7, foi lançada a nova versão do Nmap, 4.75 que dentre todas as novidades, algumas são:

* Novo sistema de mapeamento topológico. Se o Nmap é um "mapeador de redes", então ele deveria poder fazer um desenho da rede para você. E isso foi feito integrando a ferramenta RadialNet Nmap, desenvolvida pelo brasileiro João Medeiros a mais de um ano, no Zenmap. Para dar uma olhada nesse novo sistema:
http://nmap.org/book/zenmap-topology.html

* Foi adicionado ao Zenmap também um "Agregador de Scan", com objetivo de juntar diversos scans e produzir um relatório único.

* Fydoor, fez diversos scans durante o verão (inverno aqui =]), para obter melhores estatísticas sobre quais portas TCP/UDP estão mais abertas normalmente. O Nmap agora faz um scan padrão pelas 1000 portas TCP e UDP mais comuns, um decréscimo de 1.715 para TCP e 1.488 para UDP, o que torna o scan padrão muito mais rápido e com uma probabilidade maior de encontrar portas abertas. O Fast Scan (-F) agora procura pelas 100 portas mais comuns, onde antes eram 1.276 para TCP e 1.017 para UDP... agora sim o Fast Scan é realmente um Fast Scan =]

* Todas as identificações de SOs e correções até o meio de Julho foram integradas. Fazendo com que o Nmap agora detecte sistemas rodando os novos iPhones, Linux 2.6.25, Windows Vista SP1, OS X Darwin 9.2.2 e até Nintendo Wii's! O Nmap conta agora com 1.503 assinaturas contra as 1.320 da versão 4.68.

* Para quem ainda utiliza o Windows2000, o Nmap volta a funcionar neste sistema.



Para mais detalhes desta nova versão, o changelog completo por ser conferido aqui:
http://nmap.org/changelog.html

domingo, 10 de agosto de 2008

Burlando proteções de memória do Vista para impressionar garotas

Ahh... como eu adoro essa época de Defcon + Blackhat =D
(Sério... um dia eu vou. Na Defcon pelo menos, pq a BH é cara demais =X)

Para quem achou interessante o artigo e a apresentação do Macóli no WS1 do GRIS,
esse fala sobre técnicas de proteção e como torna-las inútil :P

Slides, para uma visão mais geral do assunto, mas mesmo assim muito conteudo bom.
http://taossa.com/archive/bh08sotirovdowdslides.pdf

Paper, 50 paginas de pura diversão. Olhem a Bibliografia também, tem bastante coisa interessante p/ ler =]
http://taossa.com/archive/bh08sotirovdowdslides.pdf

Visto: No site/blog dos autores

sábado, 9 de agosto de 2008

Estudantes do MIT proibidos de fazerem sua apresentação na Defcon

Por quererem demonstrar falhas no sistema de RFID pertencentes ao sistema de transporte de Boston... o Massachusetts Bay Transit Authority entrou com uma ação contra os estudantes para impedi-los de fazer a apresentação. E um juiz federal deu ganho de causa, proibindo os estudantes de realizar qualquer apresentação (referente ao assunto/material) por 10 dias.

É mais fácil tentar calar as pessoas do que corrigir os problemas? =/


Só de curiosidade... este trabalho rendeu aos estudantes um A.
Outra curiosidade? O professor que deu o A no trabalho foi Ron Rivest, só um dos 3 inventores do RSA =]

Fonte: http://lwn.net/Articles/293457

Federal Economic Box... o retorno

Pela segunda vez:
http://lists.grok.org.uk/pipermail/full-disclosure/2008-August/063802.html

O problema é o bypass da identificação de um computador do usuário.
Ainda é necessário o nome e senha do usuário, mas fica a pergunta:
Pra que raios um sistema desse? E se foi implementado, para que não foi feito direito?

domingo, 22 de junho de 2008

Material apresentado no I Workshop GRIS disponível

As apresentações realizadas no último I Workshop GRIS já estão disponiveis aqui.

* Hardening de Apache
* Buffer Overflow - Uma introdução teórica.
* Introdução a Sniffing
* Phishing SCAM
* Introdução à Forense Computacional

Link:
http://www.gris.dcc.ufrj.br/apresentacoes.php

quarta-feira, 18 de junho de 2008

V Processo Seletivo GRIS

O Grupo de Resposta a Incidentes de Segurança – GRIS, grupo acadêmico do Departamento de Ciência da Computação da Universidade Federal do Rio de Janeiro vem tornar pública a abertura de seu Processo Seletivo para 2008.2. As inscrições estão abertas de 13 a 26 de Junho, sendo possível fazê-las através do link:
http://www.gris.dcc.ufrj.br/form_inscricao.php.

Conhecimentos técnicos prévios não são necessários, sendo suficiente a vontade de desenvolver-se na área de SI.

Maiores informações sobre o Processo Seletivo do GRIS:
http://www.gris.dcc.ufrj.br/ps.php

Maiores informações sobre o GRIS: http://www.gris.dcc.ufrj.br

domingo, 11 de maio de 2008

Quickshots

GCC 4.3.1 Status Report


O GCC 4.3.1 estava agendado para 05/05 mas como ainda existem 3 bugs de Prioridade 1 (máxima), a liberação do RC1 foi adiada.
Os bugs são:
- a restricted pointers bug (36013).
- the x86 direction flag issue (36079). Há uma notícia sobre isso na ultima revista do GRIS.
- ppc64 cacoshl miscompilation (36090).

------

Lançado o OpenSolaris 2008.5

Não tenho o que dizer, apenas que foi bastante comentado... realmente não planejo testa-lo.

------

SP3 do XP finalmente saiu

Depois de sair, voltar, sair de novo... finalmente temos ele ai.

Mas nem tudo são flores no lindo campo verde do Windows XP, parece que algumas pessoas com computadores montados por empresas como HP, e que utilizam processadores AMD, estão tendo problemas de reboot infinitos pois o SP3 futucou os drivers de gerenciamento de energia e acaba misturando coisa da Intel e da AMD.

------

Deputado quer proibir novos feriados no Estado do Rio

Não levantando o mérito se quem propôs a idéia realmente trabalha ou só mama. Mas a idéia foi boa.

O Brasil não é um país de primeiro mundo caralho... e ainda queremos sair criando feriados e enforcando trocentos outros dias. Puta que pariu... e o pior é ver nego defender os feriados.

Que porra de feriado de São Jorge é aquele??? OMFG...

------

Liberado Linux 2.6.25.2, 2.6.25.3, 2.6.25.31415926

O motivo do .2 é uma falha de segurança que por causa de uma Race Condition em conjunto com algumas outras coisas pode permitir uma elevação de privilégio.

O .3 corrige além de outras coisas, 2 bugs que tem implicação com a segurança do sistema também. Também é recomendável que quem estiver usando a série 2.6.24.y atualize para a série 2.6.25.x.

terça-feira, 15 de abril de 2008

Revista GRIS #2 (Abril 2008)

Segunda edição da Revista do GRIS:

CONTEÚDO:
-Notícias:
SSHTest versão 2.0 lançada
Lançado Wireshark 1.0
Copie qualquer cartão de crédito com habilitação por RFID por 8 dólares
RFID quebrado novamente
Top 20 de Vírus para Março de 2008
Inseguro por Design
Kraken: Nova botnet supera a Storm
Fim do suporte ao Ubuntu 6.10
Ataque massivo ao Web Site da Trend Micro
Lançamento do GNU PG 1.4.9 e 2.0.9
Lançamento do Nmap 4.60
GCC 4.3.0 expõe problema no kernel do Linux
Lançado Snort 2.8.1

-Dicas:
Fazendo autenticação SSH por chaves

-Vulnerabilidades:
Múltiplas Vulnerabilidades no Mozilla Thunderbird
Múltiplas Vulnerabilidades no Navegador Safari
Múltiplas Vulnerabilidades no Apple Quicktime
Vulnerabilidade de Integer Overflow no MPlayer
Múltiplas Vulnerabilidades no VLC Media Player
Múltiplas Vulnerabilidades no Kerberos
Múltiplas Vulnerabilidades de Buffer Overflow no CUPS
Vulnerabilidade nos programas Bzip2, WinRar e 7-Zip
Múltiplas Vulnerabilidades no Adobe Flash Player
Corrupção de memória em controle ActiveX do Microsoft Windows
Vulnerabilidade no Windows ao processar imagens GDI
Vulnerabilidade no Windows ao decodificar scripts
Vulnerabilidade no Internet Explorer
Vulnerabilidade no Microsoft Project
Vulnerabilidades no Microsoft Visio


Para fazer o download:
http://www.gris.dcc.ufrj.br/revistas.php

Enjoy =D

domingo, 16 de março de 2008

Lançamento da Revista Digital do GRIS

O GRIS (Grupo de Resposta a Incidentes de Segurança) - do Departamento de Ciência da Computação, UFRJ - traz para vocês a primeira edição da sua Revista Digital (sugestão de nomes são bem vindos) voltada a Segurança da Informação.

Está Revista Digital é um upgrade da Newsletter do GRIS, agora em formato PDF, com suporte a imagens e organização, proporcionando uma leitura bem melhor.

Para fazer o download da revista acesse:
http://www.gris.dcc.ufrj.br/revistas.php

Nesta primeira edição:

CONTEÚDO:
-Notícias:
Netscape Navigator chega ao fim
Thunderbird 2.0.0.12 lançado
AVG em nova versão
Symantec lança Norton 360 versão 2.0
Laptops em risco

-Vulnerabilidades:
Múltiplas Vulnerabilidades no Opera Web Browser 9.25
Vulnerabilidade no Mozilla Thunderbird ao processar MIME
Vulnerabilidade no ICQ ao processar String de formatação
Múltiplas Vulnerabilidades no Sun Java
Múltiplas Vulnerabilidades no MySQL
Vulnerabilidade no compartilhamento de pastas do VMware
Vulnerabilidade a Buffer Overflow no Ghostscript
Vulnerabilidades na engine Symantec's Decomposer
Vulnerabilidade no Microsoft Outlook
Vulnerabilidade no Microsoft Excel
Vulnerabilidade no Web Components do Microsoft Office
Vulnerabilidade no Microsoft Office


Enjoy =D

sábado, 2 de fevereiro de 2008

Nem com SSL forçado o GMail esta protegido?

Aparentemente não =/

Mas calma, também não é assim de qualquer jeito.

Segundo o blog Errata Security, neste post, o GMail utiliza algumas chamadas em Javascript que inicialmente tentam se conectar em SSL, caso falhem, fazem um "fallback" e tentam a mesma conexão sem SSL... e ai um atacante pode conseguir sniffar seu tráfego e fazer o roubo da sessão. Ele menciona situação em WiFi Spots onde isso pode ser explorado.

OFF OBS: Não vou escrever muito, pois o Virtua hoje esta uma bosta e não esta cooperando muito... Lamentável que eles ainda se nomeiem prestadores de serviço...

quarta-feira, 30 de janeiro de 2008

Segunda turma do curso de PenTest da Clavis

Segue o anúncio:

A Clavis Segurança da Informação tem o prazer de anunciar a abertura da segunda turma do curso de Teste de Invasão (PenTest - Penetration Test) da parceria entre o Centro de Treinamento UNIRIOTEC e a CLAVIS - Segurança da Informação. O curso acontecerá entre os dias 25 e 29 de fevereiro de 2008 no Rio de Janeiro.

Para ter acesso a avaliação feita pelos alunos da primeira turma realizada em janeiro de 2008, acesse o seguinte link:
http://www.clavis.com.br/curso-pen_avaliacao01.htm

O Teste de Invasão é o processo de busca e identificação de vulnerabilidades de segurança em uma rede, sistema ou ferramenta, bem como a extensão em que as mesmas podem ser exploradas por indivíduos maliciosos. Ideais para determinar a postura atual de segurança de empresas/organizações e identificar problemas potenciais em processos
e ativos críticos de negócios, os Testes de Invasão funcionam como ataques reais, que se utilizam das últimas técnicas e ferramentas adotadas por invasores, incluindo Engenharia Social. As técnicas ensinadas durante o curso seguem padrões utilizados internacionalmente como ISSAF, NIST SP800.42, OSSTMM e OWASP.

Informações sobre a ementa e instrutores podem ser encontradas no site da Clavis, através do link http://www.clavis.com.br/cursos.htm.

Informações gerais sobre o curso:
Data : de 25 a 29 de fevereiro de 2008;
Carga Horária : 20 horas;
Horário : 18:00 as 22:00;
Nº de vagas : 12 vagas;
Local : Rio de Janeiro - RJ;
Alunos por máquina: 1;
Número de instrutores auxiliares: 2;

Preço promocional: R$ 960,00
Para pagamento antecipado à vista até dia 01 de fevereiro de 2008 o valor do curso é de R$ 768,00.

Devido a parceria firmada com o Centro de Treinamento UNIRIOTEC, o curso será ministrado na Universidade Federal do Estado do Rio de Janeiro (UNIRIO) - Av. Pasteur, 458 - térreo - Prédio da Escola de Informática Aplicada - URCA. O local possui segurança e estacionamento gratuito.

Para inscrição ou mais informações entre em contato conosco através do
endereço http://www.clavis.com.br/contato.php.

Outros cursos estão programados para o primeiro semestre de 2008, entre eles:

Fortalecimento de Servidores -> Março de 2008;
Proteção de Perímetro -> Abril de 2008
Forense computacional -> Junho de 2008

Para maiores informações, acesse a página da Academia Clavis (www.clavis.com.br/cursos.htm) ou entre em contato conosco através de http://www.clavis.com.br/contato.php.

quarta-feira, 5 de dezembro de 2007

Curso de PenTest (Teste de Invasão)

A empresa Clavis Segurança da Informação (www.clavis.com.br) tem o prazer de anunciar a abertura da primeira turma de sua academia em 2008. Nos dias 14 à 18 de janeiro será realizado o curso PEN-TEST (Penetration Test - Teste de Invasão).

O Teste de Invasão é o processo de busca e identificação de vulnerabilidades de segurança em uma rede, sistema ou ferramenta, bem como a extensão em que as mesmas podem ser exploradas por indivíduos maliciosos. Ideais para determinar a postura atual de segurança de empresas/organizações e identificar problemas potenciais em processos e ativos críticos de negócios, os Testes de Invasão funcionam como ataques reais, que se utilizam das últimas técnicas e ferramentas adotadas por invasores, incluindo Engenharia Social. As técnicas ensinadas durante o curso seguem padrões utilizados internacionalmente como ISSAF, NIST SP800.42, OSSTMM e OWASP.

Curso PenTest (Penetration Test - Teste de Invasão)
Duração: 14 à 18 de Janeiro de 2008
Carga horária: 20 horas
Horário: 18hrs às 22hrs
Valor: R$ 960,00 ou 3 X R$ 320,00

Para matrículas efetuadas até 12 de dezembro de 2007 o valor será de R$ 768,00, parcelados em até 3X sem juros.

Devido a parceria firmada com o Centro de Treinamento UNIRIOTEC, o curso será ministrado na Universidade Federal do Estado do Rio de Janeiro (UNIRIO) - Av. Pasteur, 458 - térreo - Prédio da Escola de Informática Aplicada - URCA. O local possui segurança e estacionamento gratuito.

Outros cursos estão programados para o primeiro trimestre de 2008, entre eles: Forense Computacional e Hardening(Fortalecimento) de Servidores. Para maiores informações, acesse a página de nossa academia (www.clavis.com.br/cursos.htm) ou entre em contato conosco através de http://www.clavis.com.br/contato.php.

domingo, 16 de setembro de 2007

Atacando CPUs de múltiplos núcleos

Apesar dos diversos problemas conhecidos envolvendo processamento paralelo, pode estar surgindo um novo tipo de vulnerabilidade, onde pode-se aproveitar isto para obter escalonamento de privilégio e/ou despistar sistemas de auditoria.
Robert N. M. Watson, apresentou na WOOT07 (USENIX Workshop on Offense Technology) o resultado de sua pesquisa sobre esse assunto, que pode ser visto aqui:
http://www.watson.org/~robert/2007woot/

Notícia original:
http://www.theregister.co.uk/2007/09/14/system_call_sploits/

sábado, 4 de agosto de 2007

The moral of the story? Don't screw around with people who are smarter than you. =D

Porra, por isso que a DEFCON é FODA!

Um dia ainda vou.... BlackHat + DEFCON :P