Manual
do
Maker
.
com
Não é megalomania nem narcisismo. Eu iniciei esse sistema operacional quando trabalhava no Instituto Brasileiro de Peritos, como perito forense digital. Na época conheci o que havia no mercado, inclusive trabalhei em um equipamento utilizado pelo FBI, mas sério, não era um hardware lá muito legal. Então decidi criar meu próprio duplicador forense para fazer cadeia de custódia e durante o desenvolvimento, fiquei pensando no nome. Eu queria tê-lo chamado de "J. Watson", para lembrar o amigo do Sherlock. O interessante é que os companheiros falaram: "Porque você não chama de James Watson mesmo?" - logo achei interessante, porque "J. Watson" faria referência ao "Jhon Watson", parceiro do Sherlock, mas "Djames Watson" faz lembrar (além desse equivoco que muitos cometem) o Dr James Watson, um dos biólogos moleculares autor do modelo "hélice dupla" do DNA (veja James Watson para saber mais). E isso também faria sentido, então gostei do nome, ainda mais que "Djames" sou eu. Bom, todo esse longo parágrafo foi para justificar o nome, que virou marca registrada de software. Pra finalizar a explicação, DWOS - Djames Watson, se pronuncia "DUOS".
Um duplicador forense é um hardware especialista para cumprir a tarefa chamada de "duplicação forense", normalmente utilizado em um processo chamado "cadeia de custódia". Imaginem que um perito fará a coleta de dados de um equipamento. Quem garante que ele não injetará dados na prova, maculando-a? Quem garante que os dados contidos na coleta são dados legítimos e isentos de falha de cópia? Quem garante que a imagem do disco transportada é a mesma que a contida na mídia de origem (seja ela HD, SDD, SD and so on)? Bem, quem garantirá a autenticidade dessa coleta é o duplicador forense. Não o hardware do duplicador, mas o software, que deve seguir um conjunto enorme de normas. E não precisa ser um sistema homologado pelo Papa, basta que siga as normas definidas pela agência de segurança americana, de forma que o sistema possa ser aceito inclusive pelo FBI. E foi o que fiz, mas fui além com o DWOS - Djames Watson Operating System.
Primeiramente, todos os detalhes da cópia devem ser gravados em video ou ao menos fotografados a cada passo da duplicação; a abertura do hardware de origem para a remoção da mídia de armazenamento normalmente é filmada, até o ponto em que essa midia de armazenamento é identificada no video. A partir daí, o restante do processo pode seguir apenas por fotografia.
A duplicação não é feita por nenhuma ferramenta especial; no background de qualquer sistema de duplicador utiliza-se ferramentas livres e utlizadas em Linux para fazer dump da estrutura do disco. O caso é que esse tipo de ferramenta leva um longo tempo para fazer a cópia, sendo uma parte inevitável durante o processo. E por falar no processo, cada fase da duplicação é identificada por foto; os dados de entrada para identificação do dispositivo (rótulo contendo os dados como marca, modelo e número de série), as telas pré e pós inicio da duplicação, a finalização e por fim, um hash é tirado da imagem e esse hash também é fotografado.
Todos os dados desde o inicio da operação são ordenados em um documento que inclui também o hash das fotografias. Como todo o material fica sob os cuidados da justiça, essas fotografias são tiradas a partir de máquinas fotográficas com o propósito exclusivo para tal fim. Os cartões de memória são limpos previamente, ainda que sendo obrigatoriamente novos, então tira-se uma cópia para garantir o hash que comprovará a autenticidade da origem.
Além desses primeiros passos, outros dados contidos no processo são recolhidos. Isso inclui metadados de todo o produto final da cadeia de custódia, incluindo as fotografias que vão para o laudo. A partir desse processo, pensei no que poderia ser melhorado para evitar erros, porque um único e pequeno erro maculará todas as evidências e te dou minha palavra, se isso acontecer o advogado da parte fará por onde anular as provas. Então quando desenvolvi o DWOS - Djames Watson Operating System, incluí funcionalidades existentes e que não existiam em nenhum dos outros duplicadores forense, dentre as quais:
Mas o sistema tem muitos outros recursos, tenha paciência em assistir o video para ver a quantidade enorme de implementações.
Quando inicializado a partir de um CD/DVD, esse menu é exibido. Para acessar qualquer uma das entradas, é necessário digitar a senha que, na versão pública é "dobitaobyte". Se você tem experiência em extração de firmware e recompilação de sistema, poderá modificá-lo e assim garantir uma senha exclusiva. Ou então (com custo) solicitar uma personalização do sistema, incluindo modificação do background e do logotipo do kernel.
Atualmente o primeiro módulo disponível é o "Cadeia de custódia". Outros módulos poderão ser adicionados de forma livre ou de algum modo, com custos, tudo dependerá da evolução da coisa, pois apenas o módulo de cadeia de custódia (que foi desenvolvido em 2015, mas nunca se tornou público) consumiu 6 meses de trabalho diário em periodo integral. Interessados em participar do projeto podem entrar em contato comigo através do grupo Manual do Maker ou através da página DWOS Forense.
Em suma, o nome do sistema operacional está definido, é baseado no kernel Linux e nas ferramentas GNU. O aplicativo Cadeia de Custódia não tem um nome próprio, uma de suas diversas telas é essa da imagem em destaque no artigo.
Para se aventurar em uma compilação dessas, é necessário iniciar pela compilação do Wayland e depois do Qt para Wayland. Mas sério, o trabalho não pára pela compilação. Diversas variáveis de ambiente são necessárias, inclusive para abrir o próprio aplicativo é necessário passar parâmetros específicos. Ajustes para os tipos de comunicação são necessários (frequência, resolução, porta DP, HDMI, VGA) e diversas outras "charadas" que foram sendo descobertas durante o desenvolvimento. Portanto, minha recomendação é utilizar o que já está pronto e funcional.
O DWOS - Djames Watson Operating System, não tem uma base de código pois é baseado em binários de um sistema nativo qualquer e alguns de seus recursos são compilados dos respectivos projetos, não havendo nenhuma modificação no código original. Eu montei o sistema operacional manualmente; compilei um kernel, efetuei o boot no Kernel Linux. Compilei um init, passei o init pro kernel. Montei um sistema de arquivos base, gerei um initrd e passei pro kernel. Populei o initrd e montei um iso. Todos os fontes de sistema são GPL e você os encontra em seus respectivos repositórios, exceto a interface. A interface está disponível no github do projeto, que recém criei para poder disponibilizar para quem quer que seja e deseje modificá-lo ou conferir previamente sua integridade. Só peço que aos que desejarem portar para distribuições Linux Desktop, gerem um fork mantendo os créditos. Isso porque essa interface foi feita para rodar sobre o Wayland e utilizar-se de seus recursos nativos.
E aqui está o video apresentando o máximo possível destes recursos do sistema. Vale lembrar que essa é a primeira versão pública e necessita de testes robustos e reports. Não prometo que qualquer alteração seja implementada, nem o tempo que pode levar para correção de um possível bug, mas entre na página DWOS Forense do facebook ou preferencialmente no nosso novo grupo Djames Watson e manifeste-se conforme a situação.
Uma documentação de uso está disponível na própria interface. Alguns ajustes ainda serão necessários devido a uma drástica mudança da interface, mas isso pode ser feito aos poucos. Por fim, eu tenho absoluta convicção que, apesar de eu não ter presenciado tal fato, alguns computadores devem apresentar desde falha no carregamento até falha no aplicativo, travamento da interface ou qualquer outra coisa bizarra. Fiz testes complexos de todos os tipos e não tive um problema sequer na atual versão do sistema, mas minha experiência com o Phantom Clone me diz que muito haverá por fazer e com a ajuda de vocês, reportando os erros, certamente chegaremos próximo ao estado da arte.
Os conectores, como supracitado, são as interfaces de saída do video. Estou dispondo esses conectores agora para que, em caso de problemas, você pode dar uma ajustada e tentar resolver alguma incompatibilidade, principalmente relacionado à resolução de video.
Os nomes dos conectores no sistema são:
LVDS-1 | LVDS1 |
VGA-1 | VGA1 |
HDMI-1 | HDMI1 |
HDMI-2 | HDMI2 |
DP-1 | DP1 |
DP-2 | DP2 |
Esses são os conectores disponíveis para utilizar com Wayland quando o kernel estiver compilado com DRM (KMS). Isso pode ser passado pelo boot loader com o parametro:
video=LVDS-1:1024x768@60
Ou através do weston.ini com:
[output]
name=LVDS1
mode=1024x768
O arquivo weston.ini fica no home, basta abrir o terminal disponível e utilizar o comando cat ou less para visualizá-lo. Já para editá-lo, será necessário descompilar o initrd, fazer as modificações, recompilar o initrd e recompor a ISO. Qualquer hora escrevo um artigo sobre o ISOMaster, a ferramenta que lhe facilitará a vida, caso deseje brincar com a ISO.
O que estiver conectado em sys/class/drm/*/status é o conector que deve ser utilizado. Do mesmo modo, utilize o comando cat para visualizar o conteúdo. Isso não existe em qualquer sistema, tem que ter um kernel devidamente compilado com o recurso e ter todas as implementações no userspace.
O Weston é a interface gráfica utilizada sobre o Wayland nesse sistema. O Weston foi desenvolvido para ser integrado com o Wayland e sua compatibilidade é transparente, diferente de outros desktop managers e window managers. Além do mais, é muito leve.
Se realmente, mas realmente você estiver mexendo, outra dica que dou é em relação ao start do Weston. Para chamá-lo a partir do console usando DRM, utilize:
weston --backend=drm-backend.so --use-pixman
De outro modo haverá um erro no driver Intel i965. Uma outra opção é usar o dispositivo de frame buffer, mas não é a melhor opção. De qualquer modo, o comando para tal seria:
weston --backend=fbdev-backend.so
O teclado virtual está habilitado em uma variável de ambiente. Parece até simples falar, mas pra chegar nisso foi necessário muita, mas muitíssima análise até descobrir como abri-lo; porém não funcionará com fbdev.
QT_QPA_PLATFORM=evdevkeyboard,evdevmouse,evdevtouch
Enfim, existe um oceano de informações que não dá pra dispor aqui, senão é muito provável que este artigo se transforme em um singelo livrinho.
O arquivo ISO estará disponível para download em breve (um dia ou uma semana, tudo dependerá dos testes). Como o sistema foi feito em 2015, estou tendo que atualizar as bibliotecas para fazê-lo funcionar novamente, por isso deve levar ao menos mais alguns dias para o sistema estar totalmente funcional, mas outro artigo será publicado Devido a essas alterações, muitas bibliotecas ficarão duplicadas com versões diferentes no sistema, o que fará com que o ISO cresça consideravelmente. Depois que tudo estiver funcionando normalmente, inicio a limpeza do sistema. Para se ter uma ideia, eu estava utlizando as versões 2.19 das bibliotecas que estão hoje na versão 2.24 e claro, foram tantos erros de símbolos que sequer a interface estava iniciando. Se recursos do Weston não estiverem funcionais, meu amigo; aí sim o bicho vai pegar, porque vou ter que compilar o Wayland e o Weston tudo de novo e realmente não lembro quais foram minhas personalizações, daí voltarei ao rascunho da interface até acertar tudo.
Quando disponível, você poderá gravá-lo em um CD/DVD ou fazer um boot por pendrive. Nesse último caso, siga o procedimento do artigo "Boot por pendrive utilizando o arquivo ISO", pois com o unetbootin não funcionará, assim como a transferência direta com o dd. Fazendo o boot pelo pendrive, você perderá o belo menu, mas vão-se os anéis e ficam os dedos, hum?
Agora é com vocês; todas as funcionalidades precisam ser experimentadas exaustivamente. Fiz testes pequenos, não experimentei gerar imagens grandes, logo, não sei dizer o comportamento em relação à memória, por exemplo. Testes com falhas provocadas foram executados; falhas por causas naturais ocorreram no início do desenvolvimento, mas poderiam existir outras circunstâncias que resultassem em falha? É muito difícil que apenas uma pessoa consiga contemplar todas as possibilidades em um sistema de tal complexidade, por isso é muito necessário que pessoas se envolvam no projeto como testers, afim de encontrar condições anômalas no sistema. O Phantom passou por 67 versões de sistema desde sua criação e apesar de ter chego ao ponto de não ter mais erros de processo, ainda haviam condições ocasionadas por configuração de máquina, falhas de hardware (impossível resolver por software, na maioria das vezes) e até falhas de rede. Por se tratar de um sistema gratuito, a única recompensa que posso ofertar aos testers são os créditos, incluindo seus nomes em um arquivo de créditos a adicionar em futuras versões do sistema.
E muito antes de lançar o sistema, já tinhamos (Diego R. e eu) um hardware forense para coleta de dados de rede, que é o TAP. Porém, os mesmos custos altos que teriamos pra lançar um hardware duplicador se aplicava à produção da embalagem e propaganda, então decidimos colocar no Mercado Livre. Aproveitei para fazer uma mega promoção de comemoração do lançamento do nosso carro chefe, que é esse sistema que vos apresentei.
O TAP esgotou e devido ao trabalho que dá, não fiz mais, mas foi realmente um sucesso!
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.