domingo, 28 de setembro de 2008

O Universo Numa Casca de Noz

Hoje, chovendo e fazendo um frio desgraçado no RJ... nada melhor que um bom livro, ainda mais se ele for cheio de teorias Físicas :P

Eu tenho uma relação meio conturbada com a Física... eu acho muito legal, mas odeio *ter* que estuda-la...
Só por isso que acabo ficando de saco cheio dela na faculdade.


Voltando ao assunto... hoje resolvi pegar este livro para ler, que assim como a maioria dos meus livros já tenho a quase 1 ano e nunca tinha lido completamente. Então hoje peguei ele um pouco depois do almoço e terminei de ler agora pouco.

E primeiro de tudo, vamos concordar com uma coisa... Física é algo bonito pra caramba. Pode ser difícil, dar uns "nós mentais" as vezes, mas não tem como negar, é algo bonito. Algumas coisas são abstratas demais, e mesmo assim é bonito de tentar visualizar.


"Nada me intriga tanto como o tempo e o espaço. E nada me preocupa menos do que o tempo e o espaço, porque nunca penso neles." - Charles Lamb


É incrível parar para pensar nestes aspectos do espaço-tempo... é algo ao mesmo tempo tão incrível mas tão real (você está vivo, não está? Mas é complexo de explicar exatamente o por que :) !

Tentar entender um pouco sobre a Física Quântica, Teoria das Cordas, Teoria do Tudo, P-Branas, Teoria-M, etc... é incrível...
É incrível pensar tudo que temos a descobrir...


"Segundo o velho ditado, é melhor viajar com esperança do que chegar. Nossa busca de descobertas alimenta nossa criatividade em todos os campos, não apenas na ciência. Se chegássemos ao fim da linha, o espírito humano definharia e morreria. Mas não creio que um dia sossegaremos: aumentaremos em complexidade, se não em profundidade, e seremos sempre o centro de um horizonte de possibilidades em expansão." - Stephen Hawking


Link bônus: Lista de problemas não resolvidos na Física.

sexta-feira, 19 de setembro de 2008

18:07 no horário Blogger de Brasília

Por algum motivo que eu não faço xongas a idéia... quando digito um post aqui na interface web do Blogger, ele coloca sempre o horário como 18:07. O.o

Seria isso um número cabalisticamente bizarro?
Isso só acontece aqui no linux usando o Firefox até onde vi (não testei outros navegadores, depois eu vejo com o Konqueror). Podem ver que todos os posts de hoje estão com essa hora -_-'.


Enfim... mas então, fui procurar 18:07 e me voltou a pagina da wikipedia brasileira sobre o ano de 1807, alguns fatos interessantes:

- Descobriram o Potássio. Totalmente sensacional.

- Família Real Portuguesa meteu o pé de Portugal e veio para o Brasil.

- Morreu Johann III Bernoulli... e quem é esse? É de uma família que tem um sr alguem que tem quase um capítulo inteiro no livro de Física 2 que tenho que estudar para a prova de quarta sexta (é tanta prova que a gente fica doido :P) =]

UPDATE 21/09:
Rá!
http://idgnow.uol.com.br/seguranca/2008/09/19/falha-no-google-blogger-afeta-publicacao-e-edicao-de-posts/

Maldito Ç!

Depois de tanto tempo, fui procurar como se arrumava esse problema do ç no (K)Ubuntu caso você tenha um teclado padrão inglês.

Seguindo este tutorial foi super tranquilo.

A única diferença, foi que ao invés do /etc/gtk-2.0/gtk.immodules, tive que alterar (no Kubuntu 8.04) o arquivo: /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules.


Para facilitar aqui estão os dois arquivos já alterados:
http://www.dcc.ufrj.br/~brunobuss/files/Compose.fixed
http://www.dcc.ufrj.br/~brunobuss/files/libgtk2.0-0.immodules.fixed

GeForces 8+, drivers da nVidia e KDE 4

A algum tempo, quem usa o KDE 4, com os drivers oficiais da nvidia e placas GeForce 8xxx para cima estão tendo alguns problemas bem chatos que deixam a renderização dos efeitos gráficos inclusos no KDE 4.

O problema se dava a um bug nos módulos binários da nvidia.


Hoje fiquei sabendo de uma versão beta do driver, 177.70, que parece melhorar bastante a performance segundo alguns relatos, e isso pode ser confirmado por algumas das entradas no changelog:

- Improved GPU video memory management coordination between the NVIDIA X driver and OpenGL implementation; this should improve performance with e.g. the KDE4 OpenGL compositing manager.
- Improved support for RENDER operations with the same source and destination; this should enhance performance in some situations, e.g. when dragging Plasma applets in KDE4.



Ainda não testei, mas para quem estiver tendo problemas parece ser uma boa pedida =]

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

1º Aulão GNU/Linux do GUL-UFRJ

Venho desde ontem pensando o que escrever sobre, mas depois de ler o post do Davi, não tenho nada a acrescentar ou remover do texto que ele escreveu:
http://davivercillo.blogspot.com/2008/09/1-aulo-gnulinux-do-gul-ufrj.html.

E como o safado não colocou o nome dele, vai aqui o agradecimento a ele, que como sempre é o mais empolgado, mais entusiasta =D

Lista de pessoas que tornaram isso possível:
Davi Vercillo (Robert Stallman)
Bruno Buss (Magoo)
Flávio Costa (Coutinho)
Francisco Vianna (Xico)
Jonas Arêas (Jonas?)
Marco Elisio (Marquinho)
Rafael Lopes (Bola)
Thiago Elias (Armandinho)


E claro aos professores Jonathan e Gabriel do DCC, que literalmente, salvaram o aulão. =]


Para quem ainda não conhece o GUL:
Portal:
http://www.dcc.ufrj.br/~gul/
Lista de discussão:
http://groups.google.com/group/gul-ufrj

domingo, 7 de setembro de 2008

Captain Jack

Ok... ja faz muito tempo que não posto nada mto OffTopic =D

Quem ja jogou DDR, *com certeza* ja jogou alguma música do Captain Jack e sabe que são músicas mto legais e com os clipes mais doidos possíveis :P


E como eu tenho jogado DDR ultimamente... =D










E mais um de brinde, que não é do Captain Jack, mas todo mundo que ja jogou DDR conhece:

Vem distribuição... vai distribuição...

Como eu tinha dito a 1 mês atrás +-, estava querendo mudar de distribuição. Eu gostava do ArchLinux estava me atendendo perfeitamente, mas eu gostaria de colocar uma distro 32 bits no lugar... pois 64 bits me dava alguns problemas, como a placa de rede da broadcom (argh!) por exemplo, e já que teria que reinstalar o sistema, eu iria dar uma olhada em outras distros.

Nas duas primeiras semanas de agosto, coloquei o Sabayon 3.5 no notebook e posso falar que ele continua muito bom. O novo sistema dele, Entropy, esta muito bom... só não gostei muito da interface gráfica, *MUITO* lenta para fazer busca. Mas o Entropy cuidava muito bem da instalação e o merge dos arquivos de config dos pacotes. Mas ele estava em desvantagem... eu tinha acabado de sair do pacman :P

Enfim... usei por 2 semanas... mas o Sabayon também não estava muito Bleeding Edge como eu pensava que ele estaria e vinha com *muita* coisa por default... muita coisa que eu jamais iria usar (sim, existe a versão em MiniCD, eu sei...) então, la fui eu pensar em outro...


Eu estava querendo testar o Kubuntu 8.04(.01) e o Fedora 9... então la fui eu, baixei os 2 para 32 bits.

Instalei o Kubuntu no meu note e adicionei os pacotes de desenvolvimento, git e os do kde4... tudo funcionando de boa... realmente, não é bleeding edge (eles poderia atualizar o git do 1.5.x para o 1.6.x por exemplo...), mas é estável. Tudo funcionando bem... a placa de vídeo, e até a wifi broadcom com suas engasgadas... mas até que vai.
(Ainda preciso arrumar a bateria dele =X)


O Fedora 9 eu coloquei no meu Desktop... que a muito tempo somente estava com Windows XP.
Funcionou legalzinho... apesar de eu achar que o kde4 dele (4.0.x) estava ruim (bem pior que o do kubuntu por exemplo), então eu estava usando primariamente o xfce (tudo pra não usar o gnome? hehehe).

O "problema" do Fedora é que ele não pode distribuir certos pacotes (por causa da filosofia dele e/ou por ser um nome da Red Hat, empresa que fica nos EUA)... logo para ouvir minhas mp3s e ver alguns formatos de vídeo é um saco. Tendo que ser adicionado o repositório Livna, o qual a página principal é um lixo pela falta de informação...
Junto com isso o recente ataque aos servidores do Fedora/RedHat que interromperam a distribuição das atualizações... acabei cansando dele =/

Mas devo dizer que o yum esta bem melhor e mais rápido do que nas versões 7, 8.


Enfim, acabei por instalar o Kubuntu 8.04(.01) também no meu desktop (de onde escrevo agora =D) e todo configurado também, esta rodando que é uma beleza (ainda o kde3, pois não coloquei os pacotes do kde4). Só achei o FF3 um pouco pesado aqui... espero que seja só impressão mesmo.