O problema

Talvez alguns tenham percebido que o Arch Linux, por enquanto, ainda não tem uma equipe dedicada especialmente à segurança. Portanto, muitas vezes alguns pacotes ficam vulneráveis e as vulnerabilidades demoram a ser descobertas por seus mantenedores.

Apesar de o Arch Linux utilizar sempre a última versão dos pacotes, isso não basta. Muitas vezes o desenvolvedor demora para lançar uma nova versão com a correção. As distros, então, precisam aplicar patches em seus pacotes para corrigir as vulnerabilidades enquanto novas versões não são lançadas. Um exemplo é o atual pacote do Python, que se encontra vulnerável, e uma nova versão do mesmo não foi lançada.

A idéia

Para automatizar os esforços de segurança do Arch Linux, para que tenhamos segurança sem a necessidade de criar uma equipe para isso, tive a seguinte idéia:

O projeto NetBSD já possui uma lista muito bem organizada de pacotes vulneráveis, disponível em http://ftp.netbsd.org/pub/NetBSD/packages/vulns/pkg-vulnerabilities. Tudo o que temos a fazer é criar um banco de dados que relacione o nome dos pacotes do pacman com o nome dos pacotes do pkgsrc (sistema de pacotes do NetBSD). Dessa forma poderemos nos beneficiar do mesmo banco de vulnerabilidades.

Tendo as correspondências de nome entre os pacotes, podemos enviar emails automatizados para os mantenedores de pacotes possivelmente vulneráveis, e até mesmo para as mailing lists do Arch. Dessa forma, vulnerabilidades serão corrigidas mais rapidamente.

Como contribuir

Este semestre, estou cursando a disciplina de Arquitetura de Computadores II. Alguns dos trabalhos exigidos nessa disciplina são programas escritos em Assembly para arquitetura SPARC64.

Como havia uma estação Sun Ultra 1 aposentada nos armários da sala onde trabalho na faculdade, resolvi ressuscitá-la. Afinal, é bem mais legal usar um hardware real do que um emulador.

Neste artigo, conto passo-a-passo como instalei o NetBSD 4 na estação Sun Ultra 1, indicando os problemas que enfrentei e suas soluções.

Advertência: O Linux pertence ao lado negro da força. Cuidado com ele, a cada mudança mínima de versão, toda a API é quebrada e seus módulos possuem 90% de chance de parar de funcionar.

Isso mesmo, ontem o Kernel foi atualizado para a versão 2.6.26 no Arch, fazendo com que alguns módulos não-pertencentes aos repositórios oficiais quebrassem. Os desenvolvedores do Arch sempre se preocupam em manter os módulos dos repositórios core e extra funcionando antes de lançar atualizações do Kernel, mas módulos do repositório community e do AUR muitas vezes param de funcionar.

Os módulos que eu utilizo que não quebraram foram os do virtualbox_bin e do oss-testing. Ainda bem, pois esses pacotes são mantidos por mim, e sempre fica feio se algum deles quebrar.

Um dos módulos que eu utilizo e quebrou foi o qc-usb. Entretanto, a atualização deste foi simples. Achei facilmente um patch pronto na Internet, e já atualizei o pacote. A mudança que fez com que ele quebrasse foi a introdução das funções inline SetPageReserved e ClearPageReserved.

O outro pacote foi o vmware-player-modules. Esse deu trabalho. Um cara já tinha consertado os módulos do VMWare Server, porém tinha publicado só os binários, e não os patches - daí nem arrisquei rodar os módulos dele junto com o vmware-player; fiz meus próprios patches.

As mudanças do Kernel que fizeram os módulos do vmware-player quebrarem foram a introdução da função inline dev_net, para ser usada no lugar do acesso ao membro nd_net de estruturas net_device; mudança das especificações de diretórios dentro do /proc; mudança da chamada nopage para a chamada fault nas estruturas vm_operations_struct, utilizando uma API incompatível com a anterior.

Baixe aqui os pacotes atualizados para o Kernel 2.6.26

Comprei um Hand Pad USB chinês Cypress PenPower Touchpad "7th generation" (equipamento semelhante a uma mesa digitalizadora, porém mais barato) no Deal Extreme, com intenção de dá-lo de presente à minha namorada. Mas antes, é claro, era necessário fazer um driver do mesmo para usá-lo no X11.

Procurando pelo ID 04b4:fef3 do dispositivo no Google, encontrei um driver escrito pelo usuário migg de um fórum.

Entretanto, esse driver não tratava corretamente os botões do Hand Pad, exigia configuração manual no código e só rodava em Linux. Então reescrevi o driver com diversas melhorias - suporte aos botões do handpad, procedimento de calibração e suporte a NetBSD, OpenBSD e FreeBSD.

Segue o código do driver, que na verdade é um programa que deve ser deixado rodando para receber os eventos do Hand Pad e repassá-los ao X.

Acabo de disponibilizar no AUR o pacote binário do VirtualBox 1.6.4. Não deixem de testá-lo!

A Atheros lançou um driver livre para Linux para suas placas wireless padrão IEEE 802.11n. Esse driver não necessita de HAL nem de firmware proprietária, como os drivers da Atheros costumavam precisar anteriormente.

Tesla Wireless Transmission. Fonte: http://www.teslatech.info/ttmagazine/v1n4/valone.htm

Como o driver foi lançado sob licença ISC, é esperado que em breve os desenvolvedores dos sistemas BSD comecem a portá-lo.

Fontes: NetBSD tech-net mailing list e Slashdot.

Pelo menos no Arch, o som de aplicativos KDE não funcionou com a configuração padrão junto com o OSS. Tive que mudar a backend padrão de Xine para GStreamer. Os passos são mostrados a seguir:

  • Abra o painel de controle.
    systemsettings
  • Vá em Sound->Backend
  • Selecione GStreamer
  • Clique em Prefer
  • Pronto. Clique em OK

Se preferir, você pode configurar diretamente no arquivo de configuração, em ~/.kde4/share/config/servicetype_profilerc:

[PhononBackend]
Entry0_Preference=2
Entry0_Service=phononbackends/gstreamer.desktop
Entry1_Preference=1
Entry1_Service=phononbackends/xine.desktop
NumberOfEntries=2

Hoje resolvi testar o phonon dos repositórios do Arch, e percebi que ele não estava reconhecendo a backend do gstreamer. Dessa forma, qualquer aplicativo que usasse saída de som por meio do Phonon não funcionava.

Parece que o problema é que ele está procurando as backends no diretório da Qt, quando na realidade elas estão no diretório do KDE. A solução que encontrei foi fazer um link simbólico:

ln -s /usr/lib/kde4/plugins/phonon_backend /usr/lib/qt/plugins

Editado: O problema só ocorre com aplicativos Qt puros. Aplicativos que usem kdelibs não apresentam este problema. O problema ocorre em outras distribuições também, por exemplo no Ubuntu.

Editado: Bug cadastrado por mim e pelo Hugo Doria: http://bugs.archlinux.org/task/11070.

A Haskell.org anunciou que está em um projeto conjunto com a Sun Microsystems para explorar as capacidades de alta performance dos últimos sistemas multiprocessados OpenSPARC da Sun por meio do Haskell.

Haskell Sun OpenSPARC

A Sun doou um poderoso servidor SPARC Enterprise T5120 de 8 núcleos para a comunidade Haskell, e US$10.000 para patrocinar um estudante, para desenvolver suporte a Haskell de alta performance no SPARC.

O objetivo do projeto é melhorar o gerador de código nativo SPARC do GHC, realizar demonstrações, e melhorar os resultados dos benchmarks de Haskell paralelo. O estudante irá trabalhar em conjunto com um mentor da Haskell.org e com um aconselhador da equipe de compiladores SPARC da Sun.

O projeto Haskell.org está agora convidando estudantes a se candidatarem.

Maiores detalhes podem ser encontrados na página do projeto.

Em artigo anterior, vimos que grande parte dos DNS de provedores nacionais ainda está vulnerável a envenenamento de cache, fazendo com que pessoas má intencionadas possam redirecionar domínios para IPs falsos, potencialmente roubando senhas e dados importantes.

Caso o DNS de seu provedor esteja vulnerável, a maneira mais prática de se proteger é usar os servidores DNS da OpenDNS, que já estão corrigidos.

Neste artigo, explico como trocar os servidores DNS em um roteador D-Link DI-254, fazendo com que toda a sua rede local use o OpenDNS.

  • Entre na página de administração do seu roteador.
  • Clique na opção WAN, no menu da esquerda.
  • Mude o Primary DNS Address e o Secondary DNS Address para os servidores da OpenDNS, como na figura abaixo. Essa mudança vai sobrescrever qualquer endereço de servidor DNS que seja enviado por seu provedor.

  • Reconecte na sua rede e verifique se você está seguro.

Categorias

Navegação

Artigos antigos »