Como impedir meu cliente de invadir o computador de demonstração que eu forneço a ele?

6

Eu preciso fornecer um cliente da empresa em que trabalho, um laptop com um software de demonstração que será executado nele.

O software é apenas para exibição e não requer interação do usuário via teclado ou mouse.

Eu preciso que o computador desative todas as entradas do dispositivo e que o disco rígido seja criptografado, de modo que somente esse computador possa ser executado. Quero impedir que o cliente acesse o computador enquanto ele funciona e impeça a opção de remover o disco rígido e usá-lo em um computador diferente.

Alguém sabe de algum computador hardware \ unidade de disco rígido que pode fazer isso?

Obrigado.

    
por RaamEE 28.03.2011 / 10:27

14 respostas

7

Verifique a BIOS do seu laptop durante a inicialização, procure opções como criptografia de disco rígido ou" Bloqueio de Disco Rígido ATA "(sem criptografia, mas não acredito que a maioria das unidades tenha algum mecanismo que permita ignorar a senha).

Você pode fotografar epoxy na porta firewire para impedir que eles anexem uma ferramenta de depuração do leitor de memória PCI.

Atualizar

O fato de ser o Linux oferece mais flexibilidade. :) Você pode remover os módulos usbhid.ko , hid.ko e similares do kernel do sistema. Olhe através de lsmod(8) output e remova qualquer coisa que pareça ser útil para o trackpad ou teclado ou nipple-mouse. Exclua os módulos firewire. Talvez até os módulos serial e paralelo. (Se você não estiver usando, não vai doer se livrar deles.)

Você precisará bloquear grub , para que seu cliente não pode simplesmente editar a linha de inicialização do kernel e adicionar init=bash ou init=getty /dev/ttyS01 ou algo mais similarmente irritante.

Você também pode querer usar uma ferramenta como AppArmor , SElinux , TOMOYO ou SMACK . Qualquer uma dessas ferramentas de controle de acesso obrigatório pode impedir que um aplicativo escape de um conjunto bem definido de privilégios. Como trabalhei no sistema AppArmor por uma década, é o que eu conheço melhor e o que recomendo :) mas qualquer uma dessas ferramentas pode ajudar a bloquear todos os mecanismos que o seu cliente possa interagir com o computador. / p>

(Para contar um pequeno conto de diversão, levamos um sistema confinado ao AppArmor para o concurso DEFCON Capture The Flag por vários anos; um ano exigiu que os usuários fizessem telnet como root com uma senha específica. AppArmor facilitou confinar o daemon telnetd , o shell que ele iniciou e os programas que o 'scorebot' precisava para rodar. Nós nunca vencemos os concursos do CTF, mas também nunca nos enraizamos. Nunca precisávamos nos preocupar com ataques físicos porque todos estava defendendo era conhecido para nós.)

Melhor da sorte.

    
por 28.03.2011 / 10:38
8

Isso simplesmente não é possível. O acesso físico ao hardware literalmente remove toda a promessa de segurança.

Claro, você pode tornar mais difícil para alguém obter acesso não autorizado. Mas além das medidas mais triviais e baratas, isso é um completo desperdício de tempo e dinheiro. Se alguém realmente quiser entrar, encontrará uma maneira de fazer isso e você não poderá pará-lo.

Sem mencionar que eles poderiam fazer engenharia reversa do seu software sem comprometer o computador de demonstração que você fornece. Eu não tenho certeza se isso cai na sua definição de "hacking", mas provavelmente deveria.

Este não é um problema de tecnologia, é um problema legal. Você precisa proteger seu software e sua propriedade intelectual com licenças e outros acordos contratuais. Faça com que o cliente assine um acordo de não divulgação , se necessário. A melhor coisa a fazer é consultar um advogado, não um tecnólogo.

Se você tem medo de advogados, contrate uma empresa de segurança. Bloqueie o computador com soluções de hardware, como um gabinete trancado e um guarda armado. Se isso parece ridículo, veja o parágrafo acima.

    
por 28.03.2011 / 10:33
3

Como sugerido no comentário sobre a questão, o dispositivo correto para realizar isso é chamado de "contrato". Escreva uma acima (ou, melhor, contrate um advogado para redigir uma - você provavelmente conseguirá fazer isso por algumas centenas de dólares, o que é muito menos do que o hardware à prova de adulterações custaria) detalhando o que eles são e não têm permissão para fazer. fazer com a unidade de demonstração e tê-los assiná-lo como uma condição de receber essa unidade de demonstração.

    
por 28.03.2011 / 11:51
3

Depois de receber alguns bons conselhos e compreensão de você, os pontos fracos que eu deveria procurar Eu gostaria de resumir e dizer o que decidimos fazer finalmente:

Primeiro, algumas coisas que você precisa saber.

  1. A proteção legal não está disponível ao lidar com nosso cliente. Se ele decidir hackear o sistema, ele terá sucesso, eventualmente.

  2. Desde que possamos proteger o produto de tal forma que o cliente tenha que investir mais dinheiro na engenharia reversa, do que vale toda a empresa, é uma proteção bastante boa para nós.

  3. Nosso sistema é Linux + Java + Postgres

Agora, para a solução que selecionamos

  1. Nós protegeremos o BIOS com uma senha. no nível da BIOS, limitaremos a inicialização ao HD e impediremos a conexão de dispositivos USB. Isso pode ser hackeado com a compra de um código de back door na web por US $ 30 ou a adulteração de um chip na placa. No entanto, isso vai deixar indicações de adulteração, que são bastante visíveis.

  2. Nós bloquearemos o Grub para impedir a inicialização na linha de comando.

  3. O teclado, mouse e mouse usb no XWin são bloqueados usando parâmetros no xorg.conf:

    Section "ServerFlags"
    Option "AllowEmptyInput" "false"
    Option "AutoAddDevices" "false"
    Option "AutoEnableDevices" "false"
    EndSection
    
  4. Excluiremos os drivers usb e de teclado do kernel. (para tornar a vida mais difícil em hackers).

  5. Colocaremos a indicação física (provavelmente silício colorido) no HD, para ver se o HD foi removido do computador. Se eles removerem o HD ou hackear o BIOS, eles deixarão impressões digitais que não serão capazes de limpar.

  6. Usaremos as ferramentas de ofuscação no código Java. Nosso produto é bastante complexo, então Ofuscá-lo, impedirá qualquer engenharia reversa a um custo razoável ou prazos. Por favor, leia: link e vamos usar uma das seguintes ferramentas Ferramentas Open Source: link ou DashO do link

  7. O acesso SSH está disponível apenas para mim com um arquivo de chave. Todas as senhas serão removidas sempre que possível.

Com todos os passos acima, podemos forçar os hackers a trabalhar pelo seu dinheiro e obter uma indicação se o sistema foi invadido.

    
por 31.03.2011 / 10:57
2

Quando alguém tiver acesso físico a um sistema, não há muito o que fazer sobre isso. Para começar, depende do SO - você poderia usar mídia somente leitura para evitar que o usuário mexesse com o sistema e, no processo de configurá-lo, configurá-lo para ter as entradas indisponíveis - possivelmente usando bartpe (para windows) ou algum maneira de livecd - muitos métodos permitem que você faça um backup inicializável de um sistema em execução.

Eu também sugeriria adesivos evidentes sobre o disco rígido, ou CD-ROM - no mínimo, você saberia se o disco rígido foi removido.

Neste caso, um mini-ITX ou um sistema completo que tenha um caso com chave pode ser uma aposta melhor.

    
por 28.03.2011 / 13:04
1

O software de criptografia de disco completo normalmente depende de uma senha sendo inserida para descriptografá-lo, como você estava propondo proteger o disco rígido - em outras palavras, onde você vai colocar o 'segredo'?

    
por 28.03.2011 / 11:30
1

Por que dar a eles acesso físico ao software?

Se tão pouca entrada local estiver envolvida, o laptop que você fornece não precisa fazer nada além de atuar como um visualizador remoto de outra máquina que permanece em sua posse.

Desta forma, eles podem correr com privilégios muito limitados, ser constantemente monitorados e as jóias da família nunca precisam sair do seu cofre. Mesmo sem conhecer sua plataforma, tenho certeza de que há um grande número de opções de acesso remoto adequadas; Teamviewer, LogMeIn ou Remmina para citar alguns.

Obviamente, ainda há questões de segurança a serem consideradas, mas com um contrato legal bastante rigoroso e você deve conseguir dormir sem preocupações.

    
por 28.03.2011 / 15:31
1

Uma vez que você concede a alguém o acesso físico a uma máquina, eles podem retirar o disco rígido, fazer uma cópia dele, recolocá-lo e cortá-lo quando quiserem. Cody está certo de que esse problema não é realmente solucionável.

Uma alternativa é ter o programa real em execução em um computador de demonstração remoto. Faça com que o computador de demonstração do seu cliente se conecte a ele. Isso fará com que seu aplicativo pareça menos responsivo, o que pode prejudicar as vendas: /

    
por 28.03.2011 / 17:15
1

Este é um problema muito complicado. Eu tenho uma idéia que eu só vou jogar lá fora, já que pode ser uma solução melhor do que danificar fisicamente o computador. Você pode ter este produto de software configurado como protetor de tela do Linux. Em seguida, defina o tempo limite muito pequeno, se um usuário tentar interagir com o computador, uma tela de login será exibida e será SOL, mas o aplicativo deverá ser retomado após o tempo limite para a proteção de tela. Para superar seu problema de criptografia de disco rígido, a única solução que posso realmente imaginar aqui é que, se você tiver criptografia de hardware na placa-mãe do laptop, pode ser que somente esse laptop específico possa acessar o disco rígido. Você terá que verificar o BIOS do seu sistema para ver se você tem esse recurso. Além disso, eu uso o truecrypt.org para todas as minhas (e minhas obras) necessidades de criptografia, mas isso geralmente requer uma entrada de senha. Imaginei que eu sugeriria tudo a mesma coisa. Se eu pensar em algo mais, vou deixar você saber, boa sorte;)

    
por 30.03.2011 / 03:57
1

Já considerou habilitar o ID da CPU no BIOS e, depois de controlar o código, insira a verificação apropriada em seu código em áreas periódicas. Durante o início do programa - verifique o ID da CPU, se estiver ruim, aborte e sobrescreva o programa. Durante a execução do programa - verifique o ID da CPU, se estiver ruim, aborte e sobrescreva o programa ...

    
por 30.03.2011 / 04:00
1

Uma solução seria examinar a funcionalidade da Plataforma Confiável que algumas empresas oferecem, embora possa ser caro demais para o que você deseja fazer.

A Microsoft tem um módulo TPM que você pode usar com o TPM hardware

Esta página da Infineon fornece links para vários fabricantes, como Dell, HP, Toshiba, etc.

O TPM permite vincular o software ao hardware de maneira muito mais segura.

    
por 31.03.2011 / 15:15
0

Você pode abrir o laptop e desativar o teclado e o trackpad, desconectando os conectores físicos.
Você teria que fazer isso depois que tudo o mais estivesse configurado. Dispositivos USB desativados, inicialização a partir de CD / DVD desativados, etc. Desta forma, quando você tiver o computador de volta, você pode simplesmente abri-lo, reconectar o trackpad e o teclado e voltar ao normal e o computador será totalmente utilizável novamente. br> Se você estivesse realmente preocupado, poderia usar parafusos de segurança / fita de segurança para evitar que ele abrisse o laptop.

    
por 28.03.2011 / 11:12
0

Eu vi menção de acesso remoto em algumas das respostas aqui e respostas insinuando ou iludindo a um VNC. Ninguém conhecia um Thin Client.

Como seu software / máquina precisa acessar conteúdo dinâmico e estar conectado a uma rede, um thin client parece ser uma boa opção.

Os aplicativos são executados como se estivessem instalados na máquina do seu cliente em potencial; no entanto, muito pouco hardware, e certamente NÃO o seu software precisa ser instalado na máquina que vai deixar suas mãos.

Em uma transação como a que você está descrevendo, é necessário que haja um certo número de ofertas de ambas as partes envolvidas - um esforço para manter todos honestos.

Se você não confia nessa pessoa, não apresente sua ideia e cruze os dedos. Mesmo que você acabe processando por violação de direitos autorais, ou roubo, o dano já está feito - mas parece que você já se sentiu assim.

Melhor da sorte.

    
por 30.03.2011 / 05:16
0

Se o Linux desabilitar as entradas do mouse e do teclado e não permitir a inicialização de unidades USB ou CD.

Você precisará de uma maneira de entrar em si mesmo, mas com alguma autenticação, não deve ser muito complicado pesquisar. Talvez adicione uma senha da BIOS e permita que os CDs inicializem depois que você acessar a BIOS.

    
por 28.03.2011 / 10:30