Diolinux - O modo Linux e Open Source de ver o Mundo.

Responsive Ad Slot

Mostrando postagens com marcador Linux. Mostrar todas as postagens
Mostrando postagens com marcador Linux. Mostrar todas as postagens

Os BSD estão morrendo?

Nenhum comentário

sexta-feira, 23 de fevereiro de 2018

As versões Open Source da Berkeley Software Distribution (BSD) do UNIX sofrem com a falta de monitoria em seu código, e isso prejudica sua segurança, disse Ilja Van Sprundel, diretor de testes de invasão no IOActive no final de dezembro.

Os BSD estão morrendo?






O artigo à seguir foi enviado por Marcos Oliveira, do site e canal "Terminal Root" e foi traduzido da fonte: CSO. Ele não reflete a opinião do blog ou do Marcos necessariamente em todos os pontos.

Admirado pelo pequeno número de vulnerabilidades do kernel BSD em comparação com o Linux, Van Sprundel analisou o código fonte do BSD em seu tempo livre. "Por que há pouquíssimos avisos de segurança de kernel de segurança BSD publicados todos os anos ?" Ele queria saber. É porque os BSDs são muito mais seguros ? Ou é porque ninguém está olhando?

Van Sprundel diz que ele encontrou facilmente cerca de 115 erros no kernel dos três BSDs, incluindo 30 para o FreeBSD, 25 para o OpenBSD e 60 para o NetBSD. Muitos dessas falhas ele chamou de "fruta quase madura". Ele informou prontamente todos as falhas de segurança, mas seis meses depois, no momento de sua palestra, muitos permaneceram sem correção. "De um modo geral, a maioria das falhas de segurança no kernel do Linux não tem uma vida longa. Eles são encontrados muito rápido", diz Van Sprundel. "Já no BSD, isso nem sempre é verdade. Achei diversos erros que
ainda não foram corrigidos".

OpenBSD, o mais seguro!


"O OpenBSD, de longe, tem os desenvolvedores mais conhecedores quando se trata de segurança", disse van Sprundel ao público. Por um lado, o OpenBSD tem um código muito menor, cerca de 2,9 milhões de linhas de código, em comparação com os 7 milhões do FreeBSD e os 7,3 milhões do NetBSD. "Obviamente, isso faz parte", diz van Sprundel. "Você não pode ter um erro no código que você não possui".

Em termos de qualidade do código, Van Sprundel também elogiou o código OpenBSD, no entanto, disse que "A qualidade é proporcional aos problemas". No entanto, a relativa falta de popularidade do OpenBSD prejudica a segurança do sistema operacional, ele sugeriu. "Os erros ainda são fáceis de encontrar. Se houvesse mais pessoas olhando para o OpenBSD, haveriam mais erros".

Theo De Raadt, fundador da OpenBSD, concordou com a van Sprundel que mais analistas no OpenBSD tornariam o sistema operacional mais seguro. "Eu lembro de ler seus primeiros slides, que foram principalmente sobre o impacto de pequenos abusos da API", disse De Raadt por e-mail. "Infelizmente, este é um problema do volume de código relativo à mão de obra. Garantir que todo o código seja 100% livre de erros é muito difícil". Van Sprundel também elogiou a resposta do OpenBSD às descobertas dos erros, dizendo que De Raadt respondeu dentro de uma semana, e o OpenBSD corrigiu as falhas dentro de alguns dias.

"Comuniquei-me com Ilja desde o início e consegui que toda nossa equipe trabalhasse em suas descobertas", escreveu De Raadt. "Nós resolvemos todos os bugs dentro de uma semana ou mais e disponibilizamos patches para aqueles que eram importantes. Na minha experiência, a única maneira de ser proativo e responsivo em um projeto de software dirigido por voluntários é nunca permitir aferição de um problema para mais tarde. Os problemas devem ser tratados o mais rápido possível para manter o interesse neles ".

NetBSD, o mais estável!


O foco do NetBSD por muitos anos foi suportar a mais ampla gama de hardware possível. Com este objetivo, no entanto, vem a necessidade de incluir uma grande quantidade de código de compatibilidade binária, e destacou-se que o NetBSD parece ser menos estável em relação a segurança.

A resposta do NetBSD aos relatórios de bugs de van Sprundel foi surpreendentemente boa e ruim. 

Por um lado, disseram que: "Eles corrigiram praticamente todos os erros submetidos, e praticamente durante a mesma noite!". Por outro lado, esses remendos ainda não foram enviados aos usuários seis meses depois. "Se você não instalar por conta própria as novas versões, seu NetBSD ainda estará vulnerável".

"Muitas das descobertas foram nas camadas de compatibilidade binária, e essas não são coisas que vão causar uma vulnerabilidade remota de qualquer maneira", diz Taylor R Campbell, membro do conselho de administração da NetBSD Foundation. "Alguém precisaria de acesso ao sistema de qualquer maneira para executar esse código".

Embora o NetBSD seja um projeto de código aberto voluntário sem desenvolvedores em tempo integral, Campbell e David Maxwell, um ex-membro do conselho de fundação do NetBSD, são ambos confiantes, o pessimismo de Agryroudis é infundado. "Nosso principal objetivo é ter um sistema central com uma arquitetura limpa, então torna-se muito fácil acessar novas plataformas", diz Maxwell. "Nós provavelmente continuaremos a ser fortes no lugar que temos sido historicamente". "Também somos notoriamente ruins no marketing", acrescenta Campbell.

FreeBSD, o mais avançado!


O FreeBSD é o mais popular dos três grandes BSDs e é usado pela Netflix, WhatsApp, entre outros . "Atualmente, o FreeBSD está a par com Linux ou superando um pouco", diz van Sprundel. "Em qualquer lugar onde você possa implantar o Linux, pode-se dizer que você provavelmente consegue também implantar o FreeBSD. Eles são implantados massivamente em muitos lugares".

O FreeBSD respondeu aos 30 erros do kernel em cerca de uma semana e corrigiu alguns no seu repositório de código-fonte. No entanto, o projeto de software lançou apenas alguns avisos, e "não se sabe dos demais", de acordo com Van Sprundel.

Ed Maste, diretor de desenvolvimento de projetos da Fundação FreeBSD e membro do time eleito do FreeBSD , diz:

"Começamos a tratar alguns destes como apenas erros e não como problemas de segurança".

A falta de desenvolvedores prejudica a segurança da FreeBSD, não só na capacidade de responder aos relatórios de erros, mas também para implementar novos recursos de segurança padrão do setor, o Argyroudis sugere. "O BSD mais popular, o mais tecnicamente avançado, é o FreeBSD, mas eles não têm tantos desenvolvedores,como Linux, e isso basicamente significa que estão um pouco atrasados em termos de recursos de segurança". "Somos capazes de fazer uma enorme quantidade de trabalho com uma base de desenvolvedores muito menor, fenomenal em termos de quantidade e qualidade de trabalho em comparação com o Linux", diz Maste. 

"A sugestão de que nosso futuro é de alguma forma prejudicado pela falta de desenvolvedores é absolutamente falso".

As vulnerabilidades do kernel do FreeBSD afetam o macOS ?


Há muito código FreeBSD no Mac e a equipe de segurança do FreeBSD coordena a divulgação com a Apple, diz van Sprundel. Ainda não está claro se essas vulnerabilidades relatadas afetam os laptops da Apple. O kernel Darwin divergiu fortemente do FreeBSD há 15 anos, e o macOS recebeu muito mais dedicação dos pesquisadores de segurança ao longo dos anos.

"Quando eu enviei os erros que eu tinha para 'Os Caras' do FreeBSD, eles perguntaram:" Você se importa se enviarmos isso para os caras da Apple? ", Disse van Sprundel. "Então, a equipe de segurança da Apple tem essa lista de erros. Não tenho ideia do quanto isso se aplica a eles. Provavelmente há alguns erros que se aplicam lá". A Apple não respondeu ao nosso pedido de comentário, e Maste recusou-se a especular, apontando que apenas a Apple saberia a resposta dessa pergunta. Maxwell da NetBSD é rápido em apontar que o macOS inclui código de não apenas o FreeBSD, mas também o NetBSD e o OpenBSD.

Os BSD estão morrendo ?


Os BSDs perderam a batalha para o Linux, e isso pode muito bem deixar de suportar a futura sustentabilidade dos BSDs como sistemas operacionais viáveis e seguros. "Fale o que quiser do kernel Linux, mas a verdade é que ele possui mais magnitude.", conclui Van Sprundel. "Com base no meu resultado, a qualidade do código por si só não pode explicar a discrepância entre os números de erro (BSD versus Linux)".

O OpenBSD pode ser o mais provável de sobreviver, apesar de ser muito menos popular que o FreeBSD no momento, sugere Argyroudis. "Vejo uma maior chance de o OpenBSD sobreviver porque tem um caso de uso mais focado e segmenta coisas específicas. FreeBSD, acho muito mais difícil para ele sobreviver do que o OpenBSD".

Medir a popularidade dos BSDs é difícil, argumenta Maste. "Um dos desafios com a tentativa de medir ou quantificar a popularidade do FreeBSD ou dos outros BSDs é que, em muitos casos, é usado em aplicativos ou implementações que não são particularmente visíveis", diz ele, como aparelhos ou produtos que se desenvolvem derivados do FreeBSD.

A licença BSD permissiva torna ainda mais difícil quantificar a popularidade dos BSDs. "Para os usuários finais, coisas como a licença no código podem não importar muito", diz Maxwell da NetBSD, "mas para as pessoas que compõem sistemas incorporados, para as pessoas que estão construindo produtos, o licenciamento do código é muito importante".

Argyroudis continua a ser pessimista sobre o futuro dos BSDs. "Eu adoro a base do código BSD", diz ele, "e eu adoraria poder contar-lhe coisas diferentes, principalmente sobre o FreeBSD, o maior rival do Linux. Infelizmente, eu não acho que esse é o caso, eu acho que isso se resume a uma falta de desenvolvedores".

Você pode apoiar a BSD Foundation através de doações no site oficial e reportando bugs.

Até a próxima!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Aprenda os segredos de construir um negócio com software Open Source com John Mark Walker

Nenhum comentário

segunda-feira, 19 de fevereiro de 2018

Se você estiver construindo um novo produto ou serviço, certamente os softwares Open Source desempenharão uma papel na sua empresa em algum momento, seja com menor ou maior envolvimento. Muitos empresários e gerentes de produto ainda lutam e debatem sobre a forma de se construir um negócio bem sucedido usando software Open Source.

Open Source Business





Segundo John Mark Walker (Open Source Ecosystems Manager on the Open Source and Standards team at Red Hat), o grande segredo de um negócio Open Source bem-sucedido é "ir muito além do código". "Para conseguir um produto certificado, previsível e gerenciável que 'apenas funciona' é preciso de muito mais esforço do que apenas escrever um bom código", comenta.

Criar um negócio Open Source exige uma sólida compreensão dos modelos de negócios de código aberto e das habilidades de gerenciamento, aliada a expertise para aproveitar o desenvolvimento dos produtos de forma aberta.

Em um e-book chamado "Building a Business on Open Souce", lançado pela Linux Foundation em associação com Walker, você poderá aprender o que é necessário para aprender a criar e gerenciar um produto ou serviço baseado em Linux ou softwares de código aberto.

O valor do modelo Open Source


À medida que o modelo Open Source se tornou mais prevalente, ele mudou a forma com que os produtos são desenvolvidos. Walker descreve os desafios únicos que existem ao desenvolver um produto assim, levantando questões importantes a serem consideradas na adoção de software Open Source, incluindo questões de sustentabilidade, responsabilidade e monetização.

Walker comenta que a Red Hat continua a ser a única empresa que tem sido bem-sucedida com um modelo comercial baseado puramente em software Open Source. Muitas empresas atualmente trabalham e perseguem um modelo similar onde o software Open Source se torna o meio comercial, mas existem outros modelos em torno "do Open Source", incluindo um modelo onde o núcleo do serviço é de código aberto, mas as ferramentas satélites não são. Esse é o chamado modelo de serviço  híbrido (e obviamente sustentável) que mistura o código fonte aberto com componentes proprietários, incluindo o suporte.

Mesmo com várias iniciativas potencialmente "dando certo", ainda pode-se discutir a diferença entre os modelos de negócios  abertos e híbridos, no entanto, segundo Walker, ambos ainda  possui um problema em comum: Muitas vezes (em ambos os casos) as empresas assumem que não há valor intrínseco na própria plataforma, quando há.

"Se você começar com a premissa de que as plataformas de código aberto têm um ótimo valor e você vende esse valor sob a forma de um produto de software certificado, isso é apenas um ponto de partida. A chave é que você está vendendo uma versão certificada de uma plataforma de código aberto e, a partir daí, depende de você como estruturar sua abordagem de produto ", comenta Walker.

O que está emergindo agora é um "novo modelo de plataforma aberta", no qual a própria plataforma de código aberto é vendida sob a forma de um produto certificado. Pode-se incluir complementos proprietários, mas deriva a maior parte do seu valor a partir da plataforma original.

É preciso pensar o processo de venda de forma diferente


Criar um negócio puramente em torno de uma plataforma Open Source requer um novo pensando e um novo processo de venda. É difícil transformar o código que está disponível para todos (geralmente gratuitamente) em um produto que funciona e pode ser usado em escala de negócio.

Sistema baseados em Linux e softwares Open Source são distribuídos gratuitamente normalmente, o que faz com as empresas melhorem seus serviços e ofereçam ecossistemas mais completos e complexos para conseguir clientes, melhorando os produtos por consequência. "Pelo mesmo preço da maçã, você pode ganhar uma maçã e uma faca para descascar a maçã".



Pode parecer fácil pegar algum código fonte gratuito, empacotá-lo e criar um produto à partir dele. Mas, na realidade, é um trabalho muito desafiador, no entanto, se você fizer isso direito, uma abordagem de código aberto oferece imensos benefícios incomparáveis.

Recomendo baixar o e-book da Linux Foundation e do Walker. as metodologias e processos detalhados ajudarão empresas, gerentes de negócio e desenvolvedores a adotar melhores práticas para criar valiosos produtos de código aberto.

Até a próxima!

___________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Confira o vídeo do projeto KDE para mostrar o novo Plasma 5.12.x

Nenhum comentário

sexta-feira, 16 de fevereiro de 2018

O KDE Plasma é de longe um dos mais robustos Desktop Enviroments que existem, seja pela variedade de recursos disponíveis, seja pela personalização da interface e do comportamento. Há alguns dias tivemos o lançamento do Plasma 5.12 LTS e agora você vai conferir o vídeo oficial com as novidades implementadas.

KDE Plasma 5.12 - Diolinux






A nova versão do KDE Plasma, a 5.12.x, é a nova versão LTS (Long Term Support) do Desktop Enviroment. Como sempre, muitas novidades surgiram, alguns destaques são:

ꔷ Melhorias na performance do Plasma;
ꔷ Função Night Color para proteger os seus olhos;
ꔷ Melhoria para os Menus Globais;
ꔷ O KRunner agora funciona também com ferramentas de acessibilidade, como o leitor de tela Orca;
ꔷ O texto das notificações agora pode selecionados e copiados;
ꔷ O Applet de previsão do tempo agora mostra a temperatura ao lado de ícone de status da previsão do tempo no painel;
ꔷ Melhoria nos redimensionamentos dos Widgets de relógio na área de trabalho;
ꔷ O lançador Kickoff recebeu melhorias no Design.

Entre muitas outras coisas que você pode conferir no anúncio oficial e no vídeo abaixo feito pela comunidade KDE, confira:


Curiosamente o Plasma 5.12 acabou sendo lançado com um bug realmente chato e perigoso para a segurança. Quando um pen drive era aberto pela janela de notificação e o nome do pen drive era um comando, o sistema operacional executava ele. Por conta disso, algumas horas/dias depois, nesta mesma semana, tivemos o lançamento do Plasma 5.12.1 corrigindo este e outros bugs pontuais, garantindo mais estabilidade ao sistema.

As principais distros KDE, como o KDE Neon e o Manjaro já estão entregando os updates aos usuários.

Você usa o KDE Plasma no seu dia a dia? Qual a novidade que você mais gostou?

Até a próxima!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Você não poderá mais fazer sistemas operacionais baseados em Linux através do SUSE Studio

Nenhum comentário
A liberdade de usar o software para qualquer finalidade, juntamente com a liberdade de redistribuir as suas modificações formam alguns dos pilares do software livre e a SUSE soube como oferecer ao público essas possibilidades da forma mais simples possível através do SUSE Studio, uma ferramenta que agora está com os dias contados.

SUSE Studio - Diolinux






Para que não está familiarizado, o SUSE Studio é (ou era) um projeto da SUSE, uma das maiores empresas do mundo a trabalhar diretamente com Linux como cerne dos projetos, assim como Red Hat e Canonical, que permitia que qualquer um com mínimo conhecimento técnico pudesse gerar um sistema Linux personalizado (ou distribuição) baseada no SUSE ou openSUSE.

"Como eu nunca ouvi falar disso?", você se pergunta.

Talvez seja porque você não acompanha o nosso trabalho, e o nosso canal no YouTube, a tempo suficiente. Em 2015 eu fiz um vídeo mostrando como usar a ferramenta para criar o seu próprio sistema operacional baseado no SUSE usando o SUSE Studio.



Você que gostava no SUSE Studio não vai ficar órfão


O caso é que SUSE anunciou que está fechando o SUSE Studio, mas ao contrário do que muitos pensavam, a empresa na verdade vai convergir o serviço com o sistema Open Build Service, criando algo melhor e aprimorado, ideal para quem precisa criar appliances do SUSE para uso corporativo ou qualquer outra atividade.


O OBS (Open Build Service) era usado até então apenas para gerar softwares que rodavam nos sistemas Linux, mas não para criar o sistema operacional em si. 

Agora quem usava ou gostaria de utilizar o SUSE Studio precisa ir para este endereço, a partir dali será possível criar os novos projetos.

A empresa informou que a partir do dia 15 de Fevereiro (ou seja, ontem) os projetos começaram a ser desligados e as pessoas interessadas que possuam projetos lá devem fazer a migração de plataforma através de um tutorial disponibilizado no site oficial.

Até a próxima!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Kernel Linux vai incluir o VirtualBox Guest Additions por padrão

Nenhum comentário

quarta-feira, 24 de janeiro de 2018

O VirtualBox é uma das principais ferramentas na hora de testar sistemas operacionais diferentes sem precisar formatar os discos propriamente ditos, e agora a eficiência dele dentro das distros Linux aumentará ainda mais com a chegada do Kernel 4.16.

VirtualBox Additions fará parte do Kernel Linux






Usar o VirtualBox é muito simples, existem configurações avançadas também, claro, mas de forma geral, com poucos cliques qualquer um consegue utilizar a ferramenta para experimentar um sistema operacional.



Apesar de ser simples de configurar, no entanto existe um recurso que precisa ser instalado para que o desempenho da sua máquina virtual seja aprimorado, caso contrário, a aceleração gráfica fica prejudicada e muitas vezes a resolução da tela fica errada também, além de outros detalhes, esse recurso é o VirtualBox Guest Additions.

A boa notícia  é que você não precisará mais instalar esse recurso na sua distribuição pra ter as mesmas funcionalidades no seu VB à partir do Kernel Linux 4.16, tornando as coisas mais automáticas e práticas.

Por que isso é importante?


O VB Guest Additions já é um software livre, então nada de código proprietário precisará ser incorporado ao Kernel, mas sobretudo, isso facilitará a vida das próprias distros que ao rodarem em caráter de testes dentro de um VB (inclusive no Windows) não precisarão de maiores modificações para funcionar perfeitamente e ter os recursos avançados já ativados "by default".

Algumas distros como o Ubuntu e o Linux Mint já incluem esse recurso em seu Kernel, garantindo uma melhor experiência, no entanto, o recurso agora se estenderá para todas as distros que adorarem a versão 4.16 do Linux e superiores.

Esse projeto está sendo liderado e desenvolvido pela galera da Red Hat, uma das maiores empresas que trabalham com Linux no mundo, nós temos uma série de entrevistas no canal Diolinux no YouTube com eles, confira aqui.


_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Computação Gráfica 3D com Software Livre Aplicada às Ciências da Saúde

Nenhum comentário
Hoje eu vou compartilhar com vocês um conteúdo extremamente rico produzido pelo meu grande amigo Cícero Moraes, um dos maiores referências mundiais em reconstrução facial utilizando softwares 3D de código aberto, como o Blender. Confira agora a história que o Cícero tem pra te contar:

OrtogOnBlender






Sempre gostei de aprender coisas novas e também de compartilhar os conhecimentos adquiridos. Desde 1996 quando fiz meu primeiro curso envolvendo informática (operador de microcomputador) eu sabia que a computação gráfica iria revolucionar com as suas inúmeras possibilidades.


No final dos anos da década de 1990 não haviam muitas possibilidades didáticas. A internet não era tão ampla como agora, ainda mais na cidade em que eu vivo, então sites como o Youtube e outros que ajudam na compreensão de qualquer tema estavam fora de cogitação. Era necessário aprender pelos manuais, estes escritos em inglês, um idioma que eu não compreendia e claro, a outra opção era por tentativa e erro.

Neste cenário, os programas que se destacavam eram os mais acessíveis e fáceis. Me lembro que conheci um tal de Floorplan Plus 3D, que cabia em um disquete e permitia que modelássemos uma casa em 2D e ao mesmo tempo ela era convertida em uma cena tridimensional. Era fantástico, mas as pessoas queriam mais, não bastava um 3D com aspecto de desenho, a clientela desejava sombras, brilhos e reflexões.

Diante disso estendi os estudos e cheguei até o Corel Dream 3D. Com ele eu pude criar cenas com sombra e textura, o que causou grande espanto na época e me proporcionou os primeiros ganhos com computação gráfica 3D.

Depois disto estudei o 3D Studio Max e outras ferramentas, mas conforme o tempo ia passando, mais claro ficava o fato de que eu não poderia participar de tudo aquilo, ao menos da forma que eu desejava.

No início dos anos 2000 tomei conhecimento do Linux e fiquei maravilhado. A minha primeira experiência não foi das melhores, posto que mal consegui mexer no sistema, mas não desisti e em 2005 passei a usar apenas ele nos meus computadores.

Sou muito grato a área de arquitetura, afinal foi o meu ganha pão durante muitos anos. No entanto eu queria mais desafios, passei para a área de publicidade e finalmente em 2011, depois de um episódio traumático onde reagi a um assalto e tomei um tiro de raspão na cabeça, decidi me dedicar ao campo de reconstrução facial forense, este me abriu muitas portas em projetos ligados a arqueologia e pavimentou a estrada rumo às ciências da saúde.

Em 2014 conheci o Dr. Everton da Rosa, um cirurgião bucomaxilo que me procurou para aprender a trabalhar com o Blender e utilizá-lo no planejamento de cirurgias ortognáticas, procedimentos que corrigem deformações faciais em adultos.

Essa parceria foi evoluindo e conforme postavamos os nossos progressos, muitos colegas do Dr. Everton começaram a pedir por cursos. Assim o fizemos e criamos o primeiro Curso Prático de Computação Gráfica Aplicada às Ciências da Saúde.

Os problemas


Tudo correu muito bem com o curso, mas percebemos que o pessoal da área da saúde sofria um pouco para absorver o conteúdo. Não que lhes faltasse capacidade, pelo contrário, o problema estava muito mais atrelado a falta de tempo. Todo mundo que já estudou computação gráfica, sabe que dedicação e convivência com os programas são necessários para o seu domínio.

O que vemos, ao menos no Brasil, é um quadro onde os especialistas da área da saúde precisam trabalhar em vários empregos e também cuidar dos seus consultórios. Sobra pouco tempo para se dedicarem a uma ferramenta nova e diga-se de passagem, o mercado de tecnologia muda muito rapidamente e é impossível acompanhar todas as possibilidades que ele apresenta.

Para resolver essa questão comecei a criar uma série de arquivos pré configurados para o curso. Isso eu fazia desde 2001, quando comecei a ministrar cursos de informática. Mas apenas fornecer esses arquivos não resolvia o problema da absorção de conhecimento.

Vou explanar melhor. Imagine que um especialista pretenda fazer um planejamento de cirurgia facial. Ele vai precisar primeiramente, converter uma tomografia computadorizada em uma superfície 3D correspondente a anatomia desejada, por exemplo, pele e ossos.

A maioria das tomografias digitais são arquivos DICOM, uma sequência de imagens em escala de cinza que contém fatias de áreas determinadas do corpo. Neste caso, o especialista recebe a tomo (tomografia) da cabeça do seu paciente. Essa tomo nada mais é do que uma matriz tridimensional composta por uma série de imagens “empilhadas” conhecida como voxel data. Grosso modo, as partes mais duras como os ossos são claras, as partes mais vazias ou menos duras tendem a ser mais escuras. Então, escolhendo uma área de interesse, levando em conta essa intensidade, é possível filtrar uma parte específica da anatomia.

A primeira coisa que o especialista precisará fazer é abrir essa tomo em um software de visualização e reconstrução 3D. Em seguida ele seleciona a área de interesse, segmenta esta área e finalmente gera o 3D dela. Depois ele precisa exportar este arquivo e importar dentro do Blender para proceder com as osteotomias, que nada mais são do que cortes nos ossos.

Até aí tudo bem, difícil mas não impossível. O problema é que estamos falando de malhas 3D orgânicas advindas de reconstrução tomográfica… elas são pesadíssimas e os cálculos de corte que são efetuados através de booleanas não funcionam com as ferramentas nativas do Blender, que foram projetadas para gráficos menos complexos.

Como resolver isso? Simples, buscando uma alternativa externa. Neste caso através do programa standalone de cálculos booleanos chamado Cork. Trata-se de um programa acessado por linha de comando que procede com booleanas complexas e realmente dá conta do recado. O problema mora justamente na parte da linha de comando, ensinar isto a profissionais da saúde que nunca haviam trabalhado com 3D é desgastante tanto para eles quando para o professor.

Você, caro leitor, está compreendendo o tamanho do problema? Pois é, nós não apenas compreendemos ele, mas o vivemos na pele.

Uma atividade que era para ser rápida, como importar uma tomo e começar a trabalhar com ela se convertia em uma atividade sem fim e olha que isto não se tratava nem do começo do procedimento total, que ainda envolvia a movimentação destas partes e a gravação da dinâmica para o estudo da abordagem cirúrgica, bem como a criação de guias que auxiliariam os profissionais a saberem exatamente onde deveriam cortar nos ossos.

O primeiro addon a gente nunca esquece


Eu sempre gostei de programação. Nunca havia me envolvido seriamente com ela, mas não deixava de ler acerca desta tecnologia, familiarizando-me com os conceitos abordados.

Um belo dia, depois do nosso primeiro curso de 3D voltado às ciências da saúde, resolvi tentar empilhar os comandos mais utilizados em um canto da interface do Blender. Após anos e anos ministrando cursos eu sabia muito bem das dificuldades do alunos e o objetivo era colocar em um espaço quase tudo o que eles precisavam.

Assisti a uma série de vídeo tutoriais, li bastante sobre o assunto e fui montando aos trancos e barrancos essa pequena interface. Os dias foram passando e percebi que poderia estender as capacidades do nosso humilde addon. Mais do que simplesmentes empilhar botões, comecei a agrupar funções em um único botão.

Por exemplo, a maioria dos profissionais de saúde pretender imprimir o resultado dos seus trabalhos para estudá-los melhor. Muita gente acha que basta pegar qualquer volume 3D e enviá-lo para uma impressora e esta o materializará diretamente, mas as coisas não funcionam assim. O arquivo precisa passar por um tratamento que basicamente limpa qualquer incongruência da superfície a “fecha todos os buracos” para então sim, seguir para a impressão.

No Blender é possível limpar uma malha por via de um modificador chamado Remesh. Com ele a superfície é convertida em uma série de planos de 4 lados, as partes que estão separadas podem ser apagadas e o objeto fica pronto para ser impresso.

O que fiz no addon foi criar um botão que atribui ao objeto selecionado o comando Remesh já com todas as configurações necessárias para permitir uma boa impressão.

Agora, vamos imaginar a solução para o problema proposto mais acima, quando discutimos as dificuldades de se importar uma tomo e se proceder com as osteotomias. Além de podermos agrupar uma série de comandos em um botão, também podemos criar sequências de comandos que inclusive, chamam programas externos.

Isso é possível por que o Python, que é a linguagem de scripts do Blender, conta com uma série de bibliotecas para os mais diversos fins. Um deles é a possibilidade de executar aplicativos externos já com os argumentos necessários, como se fosse diretamente pela linha de comando, ou seja, podemos criar um botão que “faz coisas que o Blender não faz” como importar arquivos DICOM diretamente em 3D e também proceder com cortes complexos utilizando um algoritmo robusto de boolean!

Foi justamente o que fizemos no addon OrtogOnBlender.

O OrtogOnBlender


O OrtogOnBlender funciona como uma lista composta com a sequência de passos a ser seguida pelo especialista. Ele está em constante evolução e por conta disto, decidimos focar a documentação em arquivos editáveis e centralizados, de modo que o usuário sempre terá ao seu alcance informações atualizadas acerca do addon.



Para baixá-lo, acesse esse link: https://github.com/cogitas3d/OrtogOnBlender

Para instalar no Windows, há um passo a passo que também pode ser seguido pelos usuários do Linux: https://goo.gl/hZvakD

Abaixo, segue uma descrição inédita acerca das seções do addon.

Importa Tomo


Como abordado acima, antes de iniciarmos o planejamento cirúrgico é necessários reconstruirmos as peças de interesse a partir de uma tomografia computadorizada.

Há tempos atrás essa tarefa era composta de muitas etapas, o que se mostrava bastante cansativo para aqueles que estavam iniciando com os estudos. Depois de muita pesquisas e testes, encontramos o Dicom2Mesh, uma aplicação que reconstrói um STL (formato de arquivo 3D) a partir de uma sequência de arquivos DICOM. Parece mágica! Mas claro, é pura tecnologia. Com uma linha de comando você informa onde está o diretório dos arquivos DICOM, qual a área de interesse desejada e qual será o arquivo de saída.
Importa Tomo

ꔷ Reconstrução da Tomografia
   ꖴ O que fizemos foi criar uma sequência de comandos que geram o 3D a partir do Dicom2Mesh, importam para o Blender e ainda parenteiam a pele ao ossos, assim, quando o usuário move o crânio a pele o acompanha, ainda que esta seja um objeto independente.

ꔷ Referências Gráficas
  ꖴ Trata-se de um conjunto de linhas que, apesar de parecer simples para um usuário contumaz de programas de modelagem 3D, é complicado de se configurar por parte de um iniciante, ao passo que se torna indispensável para o mesmo no tocante a alinhar o crânio a um plano conhecido.

Importa Tomo 3D/Moldes


Há casos em que o usuário do addon ou prefere reconstruir a malha em um programa externo como o Slicer 3D a afins, ou já conta com esta malha reconstruída. Ele pode então importar o arquivo que quase sempre se trata de um STL.


Mais do que isso, esta seção também serve para importar moldes das arcadas superior e inferior. No planejamento de Ortognática isto muitas vezes é necessário, posto que os dentes reconstruídos através da tomografia podem apresentar distorções causadas por restaurações ou aparelhos dentários.

Zoom Cena


Uma das primeiras coisas que um usuário de programas de modelagem 3D aprendem é justamente as ferramentas de zoom a visualização de cena.


No entanto, nem sempre os sistemas operacionais permitem o uso do mouse ou teclas de atalho como deveriam. Soma-se isso ao fato de alguns teclados não contarem com o teclado numérico lateral, que é essencial para os comandos de zoom e visualização.

A interface do Blender permite que movamos as seções para cima e para baixo, isso possibilita ao usuário manter as ferramentas de visualização sempre próximas a etapa de trabalho atual.

Cria Fotogrametria


Trata-se de outro destaque do OrtogOnBlender. Basta setar o diretório onde se encontram as fotografias da face e clicar no algoritmo desejado que a digitalização por fotogrametria acontece automaticamente.

O addon então importa o arquivo resultante e ainda centraliza o zoom na peça escaneada.


ꔷ Iniciar Fotogrametria
   ꖴ Ao clicar neste botão os cálculos de fotogrametria são feitos por uma solução conjunta entre o OpenMVG e o OpenMVS.

ꔷSMVS+ Meshlab
   ꖴ Ao clicar neste botão os cálculos de fotogrametria são feitos por uma solução conjunta entre o MVE/SMVS e o Meshlab.

Por que oferecer estas duas opções e não apenas uma?

Por que nem sempre uma ferramenta funciona em todas as situações. Oferecer duas opções permite ao usuário um número maior de chance de sucesso. Por exemplo, para digitalizar faces o SMVS oferece melhores resultados na maioria das vezes. Quando falamos em digitalização de objetos como moldes e crânios, o OpenMVG+OpenMVS tem se saído melhor.

Para ilustrar melhor seguem dois experimentos envolvendo as ferramentas fornecidas pelo addon comparadas a aplicações fechadas.

ꔷ Protocolo Geral para Digitalização de Faces Voltado ao Planejamento de Cirurgia Ortognática e Rinoplastia - Comparação entre Ferramentas


ꔷ Poderia a fotogrametria aberta ser uma alternativa para a Ortodontia 3D?

Alinha Faces


As ferramentas de fotogrametria livre fornecem excelentes resultados, no entanto elas são deficientes no quesito alinhamento e redimensionamento. Pensando justamente em como resolver o problema é que essa seção foi criada.




ꔷ Alinhamento e Redimensionamento
           ꔷ É dividido em três passos. O usuário entra em modo de edição e seleciona três pontos da face. Os dois primeiros são de uma medida conhecida, como a distância entre os limites dos olhos, por exemplo.
                   ꔷ Alinha com a câmera: Ao clicar no botão o triângulo criado pelos três pontos é alinhado com a câmera, então sabemos que esse objeto é o parâmetro de alinhamento.
                   ꔷ Medida Real: Aqui o usuário coloca a medida real da distância em mm.
                ꔷ  Alinha e redimensiona: Sabendo o parâmetro de alinhamento e o de escala, o objeto é finalmente alinhado em relação a origem global (0,0,0) e redimensionado para a escala real.
ꔷ Alinha por Pontos
       ꔷ Aqui o usuário alinha a face escaneada por fotogrametria com a face reconstruída da tomografia computadorizada.

Por que alinhar uma estrutura que já existe? Simples, a estrutura advinda da tomografia não contém textura. Já o modelo digitalizado por fotogrametria contém a textura da face do paciente. Mesmo que se trate do mesmo rosto, a ausência de textura causa estranheza posto que faltam informações acerca da estrutura facial do paciente. É como comparar um rosto real com uma estátua monocromática. Em outros programas o usuário pode projetar uma foto na tomografia, mas isso implica em possíveis problemas, o principal deles é que uma foto frontal não contém informações da laterais e algumas regiões podem “escorrer” causando estranheza também. Além do mais, a fotogrametria é tão simples e a textura fica tão boa, que torna a projeção de imagens algo desnecessário.

Importar Fotogrametria


O addon oferece a opção do usuário importar uma fotogrametria, ou mesmo digitalização efetuada em software externo.


Além disso, depois de gerada ou importada a digitalização, é necessário selecionar a região de interesse. A forma mais fácil é criar um círculo lateral que servirá de parâmetro para um corte.

O addon não apenas secciona a malha facial, como automaticamente apaga os excessos e o círculo criado.

Importar Cefalometria



No planejamento de cirurgia ortognática não há um consenso sobre o melhor método de alinhamento da cabeça. Em face disto, colocamos à disposição do usuário a possibilidade deste importar uma imagem da cefalometria digital, de modo que a utilize como parâmetro de alinhamento.

Osteotomia


Esta seção contém as ferramentas de osteotomias ou cortes nos ossos. É através destes cortes que os especialistas poderão reconfigurar a face do paciente de modo a solucionar problemas respiratórios e estruturais.


A primeira parte agrupa uma série de botões que criam planos de cortes pré-definidos. O usuário também poderá proceder com os cálculos booleanos e ainda separar as osteotomias automaticamente.

A segunda parte é composta pelas ferramentas de configuração das osteotomias. O usuário não apenas nomeia e pigmenta cada uma delas, mas já as atrela a dinâmica do mole.

Dinâmica do Mole


Esta é uma das menores seções, mas que curiosamente contém o maior trecho de código.


Isto se explica por que botão “Configura Dinâmica Mole” agrupa uma sequência complexa de comandos que criam áreas de influência e deformação na face tomando como referência o volume das osteotomias.

É fascinante atestar que anos de estudo puderam se resumir em apenas um clique.

Criação do Splint


A referência que o cirurgião tem para fazer os cortes e fixar as osteotomias no mundo real são os chamados splints. Eles funcionam como guias cirúrgicos tendo como parâmetro de encaixe a ponta dos dentes.




O OrtogOnBlender permite que o especialista controle o tempo e os deslocamento das osteotomias. Ao trabalhar estes conceitos o especialista pode criar um splint baseado tanto na movimentação da maxila quando da mandíbula.

Os desafios na implementação do OrtogOnBlender


Apesar de todo o trabalho dedicado ao addon ele apresenta uma série de desafios e pontos que precisam ser melhorados.

ꔷ Instalação

- Problema: Mesmo com todas as facilidades presentes, é um árduo trabalho para um usuário iniciantes instalar o OrtogOnBlender. As implementações completas estão disponíveis para o Linux e o Windows já compiladas, no entanto ainda não portadas para o MacOSX forçando os usuários deste sistema a compilarem uma série de aplicativos através do Homebrew.

- Solução: O interessado no uso do OrtogOnBlender poderá baixar ou adquirir o Linux 3DCS, uma distribuição instalada diretamente em um pendrive bootável.

ꔷ Dinâmica do mole atrelada aos bones

- Problema: A movimentação das osteotomias são feitas através de bones. Isso pode ser um desafio para usuários iniciantes.

- Solução: Já estamos implementando um sistema baseado na movimentação direta das osteotomias. Veja o funcionamento prévio aqui: https://youtu.be/rFCZL0xeOI4

ꔷ Alinhamento automático das osteotomias e captura de pontos conhecidos

- Desafio: Alguns aplicativos de planejamento de cirurgia ortognática oferecem a possibilidade de alinhar automaticamente as osteotomias, bem como capturam uma série de pontos (colocados pelo usuários), informando qual foi o deslocamento destes objetos.

- Solução: Ainda que o Blender ofereça os dados de movimentação e rotação de um objeto, estamos implementando um sistema que captura estes dados em pontos específicos. Esta implementação também funcionará para alinhar ou pré-alinhar algumas peças se assim for necessário. Veja o funcionamento prévio no seguinte link: https://youtu.be/an5XXhqu8Xw


Linux 3DCS, uma solução simples e robusta


Como abordado logo acima, um dos grandes problemas relacionados a instalação do OrtogOnBlender mora na necessidade de configurar outros addons e instalar ou mesmo compilar uma série de aplicativos.

Instalar o que está disponível é uma tarefa aceitável até para um usuário iniciantes, mas pedir para este usuário compilar um programa já é um pouco demais. Então, como podemos resolver a vida daqueles que gostariam apenas de testar o addon, sem ter que perder uma tarde inteira configurando-o? Muito simples.

Uso o Blender desde 2005, com já comentei aqui. Uma das grandes vantagens deste sistema é a sua flexibilidade. Isso implica dizer que podemos adaptá-lo a muitas e inusitadas situações. É possível, por exemplo, instalar o Linux em um pendrive como se esse fosse um HD e isso abre as portas para muitas possibilidades.

O projeto Linux 3DCS nasceu da necessidade dos nossos alunos terem em suas mãos um sistema completo e a disposição, baseado em software livre, sem que para isso tivessem que baixar uma série de programas.

Começamos o projeto como um teste e agora estamos distribuindo aos novos alunos, pendrives com o sistema instalado. Basta configurar a BIOS rapidamente que eles podem começar a usufruir de um workflow totalmente configurado, com todos os programas necessários e contentes pelo fato de não terem que investir o seu precioso tempo na configuração de tudo aquilo.

Mas, e os usuários que não são nossos alunos e que desejarem usar o Linux 3DCS? Bem, eles podem:

ꔷ Baixar uma imagem disponível para download e clonar em um pendrive;

ꔷ Baixar a imagem e rodar em uma máquina virtual;

ꔷ Pedir para a nossa equipe gravar um pendrive e pagar pelo serviço;

ꔷ Fazer um dos nossos cursos presenciais :)

Para aqueles que se interessaram neste projeto, o link para mais informações e download está aqui: https://github.com/cogitas3d/Linux3DCS

Conclusão


Ainda estamos engatinhando nesta onda de desenvolvimento de software e distro Linux, as nossas alternativas não são aquelas padronizadas pelo mercado ou menos pela comunidade, mas acima de tudo, estamos entregando duas coisas:

1) Projetos que são abertos e disponíveis para download;

2) Documentação necessária para a instalação e compreensão das ferramentas envolvidas.

Esperamos manter essa animação e o foco necessário para resolvermos os problemas um a um e poder fornecer ferramentas que sejam úteis para a sociedade e que realmente façam a diferença.

Grato pela leitura.

Cicero Moraes 3D Designer

_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.



Nova versão do ONLYOFFICE Editors está disponível com correções de acentuação e suporte a plugins

Nenhum comentário

terça-feira, 16 de janeiro de 2018

Olá pessoal, como estão? Tenho boas notícias para as pessoas que gostaram da proposta do ONLYOFFICE como alternativa para aplicação de escritório para Linux, Windows ou macOS.

OnlyOffice Atualização






Os desenvolvedores do ONLYOFFICE entraram em contato hoje para nos contar as novidades sobre esta bela aplicação. Caso você nunca tenha ouvido falar, eu recomendo fortemente ler a entrevista que fizemos com Galina Goduhina, representante da suíte, assim você vai entender melhor quais são os ideias do projeto, seus pontos fortes e fracos.

Uma espécie de Google Docs

Acho que a maneira mais fácil de explicar o funcionamento e as características do ONLYOFFICE Desktop Editors é compará-lo ao Google Docs, a suíte da Google incorporada ao Google Drive.

O ONLYOFFICE oferece uma suíte colaborativa e open source para você usar na sua casa ou na sua empresa, com aplicativos para edição de texto, planilhas e apresentações. Na última atualização do software coisas muito interessantes foram adicionadas através de plugins, que agora são a forma oficial de expandir funcionalidades na suíte, temos então já incorporados:
ꔷ Editor de imagem;
ꔷ Yandex Translator  - Para traduzir texto sem deixar o editor;
ꔷ Symbol Table - Para inserir símbolos incomuns;
ꔷ YouTube - Para inserir vídeos de YouTube;
ꔷ Macros.

Editor de imagens contida no editor de textos OnlyOffice

Quero dar um destaque especial para o editor de imagens que agora acompanha a suíte office, ele é muito mais completo do que eu esperava e tem até stickers! 😆

Para nós brasileiros que temos uma língua cheia de acentos e regras, a boa nova é que agora a acentuação está funcionando corretamente, o que era um problema na versão passada, onde letras como o "ç", "á", "ã", etc, não costumavam sair corretamente.

"Nós adicionamos a capacidade de criar macros, mas eles são diferentes de macros da Microsoft. Usamos JavaScript em vez de Visual Basic. No momento estamos trabalhando em documentação e conversor para macros baseadas em VBA (para abri-los em nossos editores). Agora nossos macros podem fazer o mesmo que o nosso Document Builder. Os scripts são os mesmos", comentou Nadezhda Knyazeva, do ONLYOFFICE.

Você pode baixar e experimentar a nova versão do ONLYOFFICE acessando o site oficial, nele você vai encontrar versão para Linux, Windows e macOS, incluindo uma versão exclusiva portátil para Linux, todas disponíveis em 64 bits, exceto a versão de Windows, que também possui versão de 32 bits.

Conta aí! O que você achou da nova versão do software? Já testou? Comente logo abaixo e até a próxima!

_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Como verificar se a sua distro Linux está vulnerável ao Meltdown e ao Spectre

Nenhum comentário

quinta-feira, 11 de janeiro de 2018

Depois da enxurrada de informações relacionadas às falhas que afetam virtualmente todos os processadores do mundo, as correções para os sistemas operacionais começaram a ser liberadas aos poucos.

Detecção de Spectre e Meltdown no Linux







Apesar da correção ter sido disponibilizada pelos desenvolvedores do Kernel Linux Vanilla, ele ainda está sendo distribuído para as distribuições e isso varia de sistema para sistema e de Kernel para Kernel.

Para fins de teste, foi criado um script que faz uma análise no seu sistema para identificar as vulnerabilidades, veja agora como você pode fazer o teste de Spectre e Meltdown na sua distro:

ꔷ Abra o Terminal;
ꔷ Cole que os seguintes comandos:

cd /tmp/
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
sudo sh spectre-meltdown-checker.sh
Exemplo de vulnerabilidade
Exemplo de um CPU/S.O. vulnerável

Se você estiver vulnerável não entre em pânico, no momento, praticamente todos estão, mesmo com as correções que adicionam apenas uma camada extra de proteção.

Para saber mais você pode rodar este comando:

sudo sh spectre-meltdown-checker.sh --disclaimer

Verifique com a sua distribuição qual a política de atualizações que eles estão aplicando, isso pode variar de sistema para sistema e fique de olho aberto, mantenha um Firewall ativo e preocupe-se sempre com a sua segurança, tudo isso pode não evitar por completo uma possibilidade de invasão, mas certamente aumenta a dificuldade.

Até a próxima!

_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


O problema com os Processadores Intel (AMD e ARM) é mais importante e perigoso do que você imagina!

Nenhum comentário

sexta-feira, 5 de janeiro de 2018

Nem só de boas notícias vive o blog e como segurança é a pauta da semana graças aos problemas de design com os processadores (especialmente Intel) colocando em risco os dados de praticamente todos os usuários, vamos olhar profundamente para o caso e analisar até onde esse erro pode nos afetar.

Eu te mostro a profundidade da toca do coelho





Como o assunto é extremamente complexo, eu chamei o meu amigo e especialista em segurança, Alberto Azevedo, para poder contar para você o tamanho do drama.

Se quiser conhecer um pouco melhor, confira o vídeo que fizemos na Campus Party de Pato Branco - PR no final do ano passo:



O mundo entrou em pânico nesta semana. A razão é simples, vieram à público duas vulnerabilidades extremamente graves que afetam virtualmente (praticamente) todos os processadores em uso no mundo! 

Logo que as informações foram divulgadas, chegaram outros ainda mais "desconcertantes". A primeira era de que a falha já havia sido comunicada aos fabricantes a nada menos do que SEIS meses e a segunda de que Brian Krzanich, CEO da Intel, "malandramente" vendeu nada menos que METADE de suas ações, ficando com o mínimo que ele legalmente poderia ficar quando soube das falhas há alguns meses atrás. 

A razão para as fabricantes estarem sabendo disso há tanto tempo e não terem feito nada (e Brian Krzanich ter feito o que fez) é simples: As falhas, e principalmente seus impactos e dificuldades no processo de correção, são muito mais graves do que você pode imaginar.

Começando pelo começo


O ano era 1946 e um matemático húngaro de nome John von Neumann, com sua equipe de pesquisadores no IAS (Princeton Institute for Advanced Studies), desenvolveu um novo modelo computacional onde uma máquina digital conseguia armazenar seus programas no mesmo espaço de memória que os dados, podendo assim manipular tais programas. Isso resolvia uma série de limitações que o modelo fixo, adotado até então, possuía. Isso porque até então os computadores não eram tão 'programáveis" até então, mas praticamente "desenhados" para a função para que eram designados. Eram concebidos os desenhos esquemáticos de como ele faria aquilo, isso era escrito, e pronto.

Seria como se você criasse um computador "capaz de fazer bolo de chocolate", ele teria a única e exclusiva capacidade de fazer bolo de chocolate pro resto da vida. Caso você quisesse mudar isso, ou "ensinar" ele a fazer um novo tipo de cobertura, você enfrentaria um processo extremamente penoso, em que seria preciso reprojetar a máquina como um todo, podendo levar semanas para criar um novo programa no ENIAC e voltar a trabalhar.

Diagrama computacional

O modelo de Von Neumann era revolucionário, mudava radicalmente a forma de como as coisas eram feitas e criava inúmeras novas possibilidades para a computação. Ele possibilita que a máquina tratasse as instruções recebidas e essa a capacidade de tratar as instruções como os dados é o que faz montadores, compiladores e outras ferramentas de programação automatizada possíveis. 

Era sensacional!

No entanto, haviam problemas e críticas, a primeira e mais óbvia mesmo à época era o gargalo. O canal de transmissão de dados entre a CPU e a memória leva ao que ficou conhecido como "gargalo de von Neumann". A troca de dados limitada (taxa de transferência) entre a CPU e a memória em relação à quantidade de memória era problemática desde aquela época. 

Na maioria dos computadores modernos, a troca de dados entre o processador e a memória é muito menor do que a taxa com que o processador pode trabalhar. Isso limita seriamente a velocidade de processamento, que poderia ser muito mais eficiente, principalmente quando o processador é exigido para realizar o processamento de grandes quantidades de dados. A CPU é constantemente forçada a esperar por dados que precisam ser transferidos para, ou a partir da, memória. Como a velocidade da CPU e o tamanho da memória têm aumentado muito mais rapidamente que a taxa de transferência entre eles, o gargalo se tornou mais um problema, um problema cuja gravidade aumenta com cada geração de CPU.

Uma vez que os programas estão sendo armazenados no mesmo espaço que os dados, alterar o programa pode ser extremamente prejudicial, quer por acidente ou uma falha no design, um programa com defeito pode alterar outros programas ou até mesmo o sistema operacional. Vários matemáticos, dentre eles Alan Turing, se opunham ao modelo de Von Neumann apontando as falhas matemáticas no processo e escreveram artigos propondo outros modelos, mas o envolvimento de Neumann no projeto Manhattan e projeto ENIAC, fez com que sua concepção para o EDVAC alcançasse maior circulação, e o resto é história.


Voltando ao problema atual dos processadores


Essa limitação na arquitetura que já causou inúmeros problemas que foram sendo mitigados/resolvidos ao longo do tempo, por exemplo, praticamente todas as vulnerabilidades de memória que tivemos nos últimos anos tiram proveito dessa escolha de design, hoje mostrou seu verdadeiro potencial destrutivo. 

Não estou culpando Von Neumann pela falha de hoje, os culpados são as centenas de engenheiros que vieram posteriormente e não tiveram peito para fazer o que vão ter que fazer agora. Um completo redesign e reestruturação da arquitetura face aos novos desafios e realidade da computação atual.

Isso porque (spoiler alert!), a vulnerabilidade que foi nomeada Spectre, a principio, simplesmente não pode ser corrigida com um patch!!!

Ela vai exigir um redesign dos processadores. Você está entendendo, caro leitor?
Virtualmente todos, eu repito, TODOS os processadores em uso no mundo hoje precisarão ser TROCADOS!!!! Está entendendo porque a toca do coelho é mais profunda? Esta entendendo porque os fabricantes não fizeram nada até agora, mesmo tendo tido seis meses para fazer? Bom, o Brian fez, vendeu todas as ações que ele podia, porque ele sabia há meses o que o mundo ficou sabendo agora. Veja, não existe nem capacidade de produção para realizar as trocas que precisam ser feitas. O assunto é muito sério.

Antes de continuarmos, vamos explorar e explicar rapidamente os problemas.

Os problemas


Meses atrás alguns pesquisadores de segurança independentes e outros dentro do projeto "Google Project Zero" descobriram duas vulnerabilidades nos processadores que foram chamadas de Meltdown e Spectre. Elas permitem que atacantes maliciosos roubem/acessem todo o conteúdo de memória de computadores, celulares, e servidores. A primeira, chamada de Meltdown, está limitada à processadores Intel e quebra o isolamento existente entre as aplicações do usuário e o sistema operacional. Você pode achar mais informações aqui, além de ver uma PoC aqui e aqui.

Para essa vulnerabilidade existem alguns patchs de correção que já estão sendo disponibilizados, porém elas causarão uma redução na capacidade de processamento que pode variar entre 5% e 30%. Ao passo que será um certo incomodo para o usuário final perder cerca de 30% da capacidade de processamento de sua estação, você, caro leitor, faz alguma ideia do impacto financeiro que isso significa para uma Amazon por exemplo? 

Amazon, Microsoft, Google, entre outros grandes players do mercado de cloud, terão prejuízos astronômicos porque de uma hora pra outra seu parque computacional simplesmente não acomodará mais o uso que vem sendo feito dele. Note que enquanto em seu computador, um atacante pode roubar informações suas, em um servidor virtualizado ele pode roubar informações de todas as pessoas/empresas que estão acomodadas naquele virtualizador. Estamos falando de senhas, dados, chaves de criptografia, qualquer coisa.

Agora veja que o patch de correção, embora exista para o caso do Meltdown, precisa ser aplicado por cada administrador de sistemas da terra em seu sistema operacional. Lembram do WannaCry? Aquela vulnerabilidade foi descoberta e já havia uma correção disponível há meses no Windows. 

Está entendendo o problema? 

Pior é que o Meltdown pode ser explorado por qualquer script-kiddie com acesso a um computador e dois neurônios funcionais.

Sobre a Spectre...


Já por sorte a exploração da Spectre é mais complexa de ser realizada, e digo sorte, porque como foi dito, teoricamente simplesmente não existe correção possível para a vulnerabilidade. Será necessário um redesign completo dos processadores e Intel, AMD e ARM teriam de fazer um recall completo de todos os processadores já fabricados, na pratica, os problemas serão resolvidos somente no próximo ciclo de vida dos hardwares, ou seja, sentiremos os efeitos pela próxima década. Basicamente o que ocorreu é que na ânsia e guerra pela performance e capacidade, as fabricantes se tornaram desleixadas com a segurança. Não é de hoje que isso é questionado por pesquisadores de segurança no mundo inteiro. Tanto que muitos equipamentos de missão crítica são equipados com os chamados processadores seguros. Processadores feitos por empresas como a Kryptus, empresa estratégica de defesa nacional pertencente aos amigos Gallo e Henrique e o seu Secure Crypto-processor (SCuP) ou os Secure Processors, fabricados pela Broadcom por exemplo.

A Spectre foi chamada dessa maneira pois explora o que chamamos de "capacidade de execução especulativa dos processadores". 
Processadores modernos usam técnicas como branch prediction e speculative execution para maximizar a performance. Lembram do gargalo do Von Neumann? Essas são algumas das técnicas adotadas pra tentar mitigar esse problema. Na prática se o destino dos dados de um branch dependem de dados que ainda estão sendo lidos na memória, a CPU vai tentar "especular" (adivinhar/prever) qual é esse destino e executar na frente. Quando os dados de fato chegarem, ela irá confirmar ou descartar essa previsão. O ataque consiste em abusar dessa capacidade especulativa dos processadores e induzir a vítima a realizar operações que não iriam ocorrer normalmente, o que leva ao vazamento de informações via side-channel. 

Você pode ver um exemplo de implementação aqui. Embora seja possível mitigar os efeitos da Spectre via micro-code, a solução só vai ocorrer através de um redesign dos processadores, o que absolutamente não ocorrerá de forma rápida. 

O problema é que na guerra entre segurança e velocidade, foram sendo feitas concessões em nome da performance. A conta está chegando agora.

A solução é trocar os CPUs


Finalizando


No fim das contas esse incidente pode trazer resultados positivos. O primeiro deve ser uma profunda reflexão por parte do mercado e do perigo em se ficar dependente de tão poucos fornecedores de hardware, veja, o mercado de processadores está literalmente nas mãos de três empresas. Somos totalmente dependentes delas, de suas vontades e de suas decisões. Outro benefício será uma maior atenção e importância a ser dada às questões de segurança. Esse dilema já é antigo, Segurança x Velocidade. 

"Se você tem um baú, colocar um cadeado nele o deixará mais seguro, mas vai levar mais tempo para abri-lo e fecha-lo todas as vezes que você precisar fazer isso durante o dia."

E nessa discussão até hoje a performance tem sempre vencido a segurança, pode ser que isso mude um pouco agora. Outra vantagem vai ser o fato de que tecnologias como Field-Programmable Gate Array (FPGA) e Complex Programmable Logic Device(CPLD) devem ganhar mais relevância, uma vez que apresentam muito mais recursos e possibilidades de personalização do que as tecnologias em uso hoje.

Resumindo, a solução não vai ser simples a Intel está claramente tentando acalmar os animos, mas a questão é muito séria. Como foi dito, a Meltdown pode ser explorada até pela minha filha de cinco anos, já a Spectre pode ser explorada por pessoal mais qualificado, por agentes do estado, ou patrocinados por ele. O que levanta a pergunta: Há quanto tempo você acha que a NSA, por exemplo, pode estar explorando essas falhas secretamente? Agora pense. 

Ambas as vulnerabilidades podem ser exploradas até mesmo via browser, como a Mozilla publicou e a correção de uma delas implica na perda de até 30% de performance e a outra não tem correção definitiva possível, a não ser a troca do processador, o que implicaria em um recall completo de todos os processadores já fabricados em uso e a sua substituição por novos com um redesign que nem existe ainda. 

Mesmo que as fabricantes estivessem dispostas a ir a falência para tentar fazer isso em tempo record, esse tecnologia ainda não foi criada, visto que um projeto completo de um novo processador pode levar anos, além disso, não temos capacidade de produção para esse volume. 

Consegue entender agora porque as fabricantes elas não fizeram nada de muito concreto nesses seis meses em que sabem das falhas? Consegue entender as implicações disso tudo?

Bem-vindo ao Cybergeddon!

Agradecimentos


Gostaria de deixar os meus cumprimentos e agradecimentos ao Alberto J. Azevedo pela abordagem clara e consiga, você pode ler alguns artigos que ele publica eventualmente no Medium, de hoje em diante, espere ver alguns conteúdos dele aqui no blog também, sejam autorais ou co-escritos.

Até a próxima!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Blog Diolinux © all rights reserved
made with by templateszoo