Showing posts with label openbsd. Show all posts
Showing posts with label openbsd. Show all posts

Tuesday, July 01, 2014

Acompanhando a "limpeza" da LibReSSL

Quem me conhece sabe que, apesar de usar e promover o uso do Fedora, que é o meu Sistema Operacional favorito, eu também gosto bastante do OpenBSD (que usei de forma quase exclusiva por uns 3 anos, entre 2003 e 2006). Como não curto muito jogar no celular, minha distração digital é ler os commits do OpenBSD lá no MARC.info, e ocasionalmente olhar alguns diffs no FreshBSD, quando a commit message parece particularmente interessante ou divertida.

Desde o fork da OpenSSL, que se tornou a LibReSSL, venho lendo com atenção os commits nessa parte do repositório, e fiquei bem impressionado acompanhando as atividades de limpeza e refatoração do código, correção de bugs, eliminação de arquivos inúteis ou abandonados, opções de compilação de benefício duvidoso e o "estancamento" de muitos memory leaks. Eu já tinha medido de forma bem "crua" e nada científica a extensão do trabalho, medindo o número de arquivos antes e depois da limpeza, e o espaço em disco ocupado pela lib/libssl no meu checkout local do OpenBSD src. Tinha chegado à conclusão de que um terço do código já tinha ido pro /dev/null, mas muita coisa lá não era exatamente código, então sempre ficava aquela sensação de que tinha que achar uma maneira mais apropriada de medir essa limpeza.

Estes dias, lendo um post sobre o Minecraft feito em 500 linhas de Python, me deparei pela primeira vez com o comando "cloc", que calcula as LOCs de um ou mais arquivos fonte. Quando vi o cloc imediatamente lembrei da LibReSSL. Pode não ser perfeito nem exato, mas certamente já é uma aproximação muito melhor do que simplesmente medir o espaço em disco ocupado, hehehe. Obviamente o cloc está empacotado no Fedora, então é só procurar por ele no Softwares, ou abrir um terminal e rodar "sudo yum install cloc".

Aqui está o relatório do cloc no lib/libssl do OpenBSD src, com o checkout do que havia lá no início de abril, antes do fork:

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C                              911          32917          68531         234548
Perl                           166           8455           7874          67187
C/C++ Header                   189           5689          14741          32212
make                            80           1818            561          15623
Assembly                        14           1356           1405          11067
C++                             26           1860            760           4041
Bourne Shell                    62            777            702           3411
m4                               1            514              0           1585
DOS Batch                       33            413            133           1241
Lisp                             1              2             19             24
HTML                             1              2              2              3
-------------------------------------------------------------------------------
SUM:                          1484          53803          94728         370942
-------------------------------------------------------------------------------


No total eram 1484 arquivos fonte (reconhecidos pelo cloc) com um total de 370 KLOCs. Agora vamos ver o mesmo relatório com os fontes mais atuais:

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C                              674          23730          53766         171050
Perl                           116           7275           6966          60669
C/C++ Header                   125           4577          11686          25786
Assembly                        12           1154           1350           8660
Bourne Shell                    19            365            301           1850
m4                               1            514              0           1585
make                             3             19              4            301
-------------------------------------------------------------------------------
SUM:                           950          37634          74073         269901
-------------------------------------------------------------------------------


Uma bela limpeza! Mais de 500 arquivos e 100 KLOCs foram pro /dev/null até agora, e a LibReSSL continua compatível com a OpenSSL, sem quebrar a API e, a princípio, funcionando melhor, com menos bugs e leaks. É interessante ver também, nos commits, que mais gente tem começado a contribuir, o que parece ser um resultado positivo da limpeza e refatoração do código.

Se mais gente entende o código, mais gente sente vontade de contribuir. Obviamente reinventar a roda só por reinventar é uma perda de tempo, porém se o objetivo é chegar numa roda melhor, mais leve e com menos defeitos, certamente vale a pena. Alguns projetos de roda livre "coopetindo" entre si certamente levam a mais Software Livre de qualidade para todos. Boa sorte, LibReSSL!

Tuesday, October 16, 2012

II Encontro Tecland: sucesso total!

No sábado passado, dia 13/10, Chapecó e região foram brindadas com um ótimo evento focado em Segurança da Informação. O II Encontro TecLand, organizado pelo Álisson Bertochi e hospedado pela Uceff (representada pelo Prof. Velcir Barcaroli), manteve um alto nível técnico nas suas palestras e teve também um público expressivo para a região. Quem foi, certamente aproveitou.

Eu participei com uma palestra sobre os mecanismos de segurança que o OpenBSD (meu segundo SO favorito, o primeiro sendo o Fedora) implementa por default, apresentando alguns deles na prática, e explicando como este conjunto de medidas aplicadas em todo o sistema o torna, possivelmente, o Sistema Operacional Unix-like e livre mais seguro que temos disponível atualmente. Como fui representando o OeSC-Livre, obviamente aproveitei para estrear a bandeira do grupo, que estendi logo na entrada do evento. :)

O Álisson iniciou o evento já abordando um tema complexo e interessante, falando sobre como funciona o underground da computação, sobre crackers, bankers, defacers, packet kiddies e outros elementos bizarros deste submundo. Foi bem interessante e "visceral" (nota-se pelo título da palestra), falando e demonstrando aquilo que às vezes nem sabemos que existe, mas que pode nos afetar diariamente no uso da Internet e outras tecnologias.

Eu infelizmente perdi a segunda palestra, do Éderson, sobre programação segura com PHP (algo que até me impressiona que possa ser feito, hehehe). Logo depois que ele começou a falar, saímos da sala para algumas rápidas entrevistas para um canal de TV local, TV Sul Brasil, que passa no canal 20 da NET. Não vi a matéria, pois não sou mais cliente da NET, porém acho que teremos acesso ao vídeo que foi ao ar em breve. Se achá-lo eu linko por aqui. Minha sogra viu a notícia no jornal das 22h ontem de noite e me disse que falei bem, então pelo menos sei que passou. :)

Depois do almoço o colega Jackson Laskoski nos apresentou muito bem o pfSense, um sistema de Unified Threat Management baseado em FreeBSD, não apenas falando porém demonstrando as suas características, configurações e operações, com o pfSense rodando em uma VM do seu laptop. Foi muito legal perceber a quantidade de funcionalidades que o sistema tem já out of the box, tudo integrado e fácil de gerenciar. Tenho certeza que os clientes do Jack estão bem seguros e tranquilos com essa solução rodando em seus firewalls e routers.

Então veio a palestra mais fuçadora e instigante (rolou um assembly divertido), do Gabriel Negreira Barbosa, falando sobre análises de malwares para Windows, suas técnicas para se esconder na máquina e não ser detectados e analisados, e demonstrando uma grande análise que ele e seu time fizeram, trabalhando para a Qualys, da prevalência de cada uma das técnicas (são dezenas) nos mais de 4 milhões de malwares analisados (números impressionantes!).

A essas alturas eu finalmente já tinha teminado meus slides, e depois do coffee-break terminei o evento com a minha palestra sobre os mecanismos de segurança do OpenBSD. Enquanto o pessoal não voltava do coffee, deixei rolando no sistema de som do auditório um álbum muito bom do 8bitpeoples, pra já ir sintonizando o pessoal nos bits que iríamos escovar mais tarde. Demonstrei na prática conceitos como stack smashing protection (usando um código simples que demonstra um buffer overflow), uso de números aleatórios em vários pontos do sistema, e também a atual implementação extrema de Address Space Layout Randomization, usando uma VM com um snapshot recente de OpenBSD para a arquitetura amd64. Foi muito legal, e o pessoal acompanhou interessado até o fim.

Aí no final do evento, depois de tanta conversa interessante, ainda fomos agraciados com vários brindes da Uceff (entre outros, um vinho e uma cuia lindaça) e do TecLand (uma pendrive "chave de nissan" e uma caneca "camaleoa", que muda de cor de acordo com a temperatura). A caneca já se tornou a minha preferida para tomar chá e café. Realmente um sábado memorável! Muito obrigado, Álisson, pela organização e execução perfeitas do evento, e muito obrigado, Prof. Velcir e Uceff, por hospedar e bem receber um evento técnico deste nível. Que venha o próximo!

Update: completei a minha apresentação com os códigos e testes utilizados e disponibilizei o PDF no site do OeSC-Livre. As outras apresentações usadas no evento também estão lá.

Friday, September 14, 2012

Eventos no Oeste Catarinense: OeSC-Livre e TecLand vem aí!

A correria anda grande para todos os lados, mas com muita persistência foi possível concretizar dois eventos muito bons para as próximas semanas aqui no "velho Oeste" de Santa Catarina. Se estiver pela região nestas datas, não deixe de comparecer!

Já no próximo sábado dia 22/9, com o apoio da Unoesc São Miguel teremos o II BootCamp OeSC-Livre em São Miguel do Oeste. Haverão outras atividades acadêmicas na Unoesc antes do sábado, porém o sábado inteiro foi reservado para a programação do OeSC-Livre. Dê uma olhada na grade e já agende a sua presença! A inscrição no evento custa R$15 mais 1kg de alimentos não perecíveis, que serão arrecadados e doados a uma instituição de caridade de São Miguel. Vou participar com uma palestra sobre Software Livre em uma perspectiva histórica da Indústria de Software.

Algumas semanas depois, no sábado dia 13/10, teremos na UCEFF em Chapecó o II Encontro TecLand, focado em Segurança da Informação. O ponto alto deste evento será uma palestra de nível internacional, originalmente apresentada na BlackHat Las Vegas 2012. Eu vou apresentar uma palestra sobre os mecanismos de segurança ativos por default no OpenBSD. Olhe a grade de palestras, e então se surpreenda: todo aquele conhecimento e contato com profissionais de alto nível, por apenas 2kg de alimentos não perecíveis! Imperdível!

Vejo vocês nestes sábados recheados de tecnologia!

Tuesday, November 11, 2008

OpenBSD no EeePC

Logo antes do evento TcheLinux em Santa Maria, o Filipe Rosset passou aqui em casa e me deixou emprestado um EeePC 701 (aqueles pretinhos minúsculos originais, certamente projetados por oftalmologistas) pra mim fuçar e eu resolvi instalar OpenBSD nele.

Baixei um snapshot para i386 (eu procuro comprar as caixinhas de CDs para ajudar (e porque são bonitas e divertidas) mas sempre instalo snapshots), botei num pendrive, bootei o pendrive e instalei direto no disquinho SSD dele (acho que é SSD né? não lembro direito). Foi até chato, instalou sem nenhum problema. O único ajuste necessário foi desabilitar o suporte a APM (config -ef /bsd; disable apm; quit), já que o BIOS do EeePC suporta tanto APM quanto ACPI mas na verdadade algumas coisas só funcionam bem com o ACPI mesmo e o APM fica atrapalhando.

Como era de se esperar, a WiFi Atheros não funcionou, e eu achei que a webcam funcionaria, mas também não funfou. Plugando outra WiFi em uma portinha USB o bichinho ficou bem divertido.

O que me lembrou disso ontem foi ver um commit no OpenBSD habilitando o suporte a modo bulk no driver de webcams USB, o que fez a câmera do EeePC 701 funcionar. Com as recentes atualizações no driver de DRM no kernel e no X, o EeePC teria também aceleração 3D por default (sem configurar nada). Só falta aquela porcaria de Atheros proprietária.

Juntando também o recente servidor de som nativo, com conversão automática entre formatos de múltiplas streams, o OpenBSD está ficando cada vez mais apetitoso no desktop... e acho que fica ótimo num netbook, por ser simples, completo e enxuto.

Estou curioso para ver como os snapshots mais recentes do OpenBSD se comportam num Acer Aspire One. Alguém discorda que os AA1 são os melhores netbooks atuais?