precisa proteger o programa do servidor de ser copiado ilegalmente

2

Eu tenho um programa servidor rodando no sistema operacional linux. Vou precisar dar um PC com este programa instalado para alguém usar por um tempo, mas eu preciso impedir que o programa seja copiado ilegalmente. Eu sei que é absolutamente impossível impedir o hacking. Imagino o que posso fazer para minimizar as chances.

Estas são as dicas que obtenho ao pesquisar na Web:

  1. bloqueie o chassi do PC com um cadeado
  2. use a senha para proteger o BIOS.
  3. usa senha para proteger o grub

Observe que criptografar o diretório inicial e colocar o programa (servidor) no diretório inicial não é uma opção, já que o usuário do PC pode precisar ligar o PC para poder acessar o serviço que o programa fornece.

    
por SafetyNuts 23.03.2011 / 03:17

8 respostas

3

O acesso físico é equivalente a simplesmente entregá-lo em uma bandeja de prata. Mas se você tiver que, você tem que.

Algumas ideias:

  1. Certifique-se de que NÃO é possível bota de qualquer coisa, exceto o disco drive (sem USB, óptico, rede, etc)
  2. Use o SELinux para tornar o programa apenas executável e evitar qualquer outro programa de acessá-lo (isto é, impedir que cat abra o Arquivo). Isso pode ser difícil ou muito fácil.
  3. Vá em frente e criptografe o sistema de arquivos. Se o disco for "roubado" e o ladrão de alguma forma, descriptografa o disco então lá tinha que ser algum tipo de comunicação entre o alguém e o "ladrão"
  4. Qualquer um pode escolher um bloqueio. Use algum tipo de selo inviolável que será destruído se alguém abrir a caixa.
  5. Certifique-se de que não é possível desmontar o sistema de arquivos no qual o programa está localizado. É possível ler o dispositivo bruto ou lv.
  6. Certifique-se de que o sistema de arquivos proc não esteja disponível. Isso pode ser difícil, pois alguns programas dependem disso. É possível ler e alterar a memória do programa e o código executável usando proc.
por 23.03.2011 / 03:31
3

Como a maioria das recomendações de "proteção da sua máquina física" foi feita, você também pode pensar em outro recurso de segurança que possa adicionar além disso.

Protegendo seu software da distribuição para máquinas não autorizadas. Especificamente, você pode compilar seu pacote especificamente para essa pessoa com ganchos adicionais que inspecionam o ID da CPU da máquina + Endereço Mac do NIC | md5sum e, em seguida, referência cruzada na lista predefinida de máquinas válidas. Lembre-se, isso, obviamente, não funcionará com código interpretado, nem é perfeito (nenhum método realmente é, dado tempo suficiente), mas é um pensamento.

    
por 23.03.2011 / 04:00
2

Certifique-se de configurar o BIOS para que ele não possa inicializar um pendrive ou inicialização PXE ou inicialize a partir de qualquer coisa, exceto do HD instalado.

Mas isso provavelmente é melhor administrado por contrato com uma penalidade severa para copiar o software.

    
por 23.03.2011 / 03:29
1

Para evitar que o software seja copiado ilegalmente, simplesmente autorize o destinatário a copiá-lo. Então, qualquer cópia que ele fizer será legal.

Se você quiser impedir que seja copiado, legal ou ilegalmente, isso seria uma pergunta diferente.

    
por 23.03.2011 / 07:26
1

Eu percebi que você estava pedindo por soluções técnicas, mas na minha experiência as camadas 8 e 9 são tão importantes e frequentemente mais eficazes.

Configure acordos que estipulem claramente o que eles não podem fazer e o que eles devem fazer para proteger seu código. Configurar contratos que fornecem penalidades pesadas.

Além disso, de preferência, não seja do seu interesse tentar pegar a fonte. Tente estabelecer uma relação de longo prazo e f.i. faça a garantia expirar se abrir a caixa ou executar o código em outro lugar.

    
por 23.03.2011 / 07:51
0

Se sua máquina tiver o TPM, você poderá ter proteção máxima. Você pode usar o GRUB confiável com a partição criptografada para o seu programa. Isso lhe dará proteção mesmo se o disco rígido for fisicamente removido e conectado a outro host - o SO não pode ser inicializado a partir dele e a partição criptografada não pode ser lida. Você não precisaria nem mesmo bloquear seu chassi. Obviamente, o usuário não deve receber acesso 'root' em nenhuma circunstância.

    
por 23.03.2011 / 05:40
0

Considere a reimplementação do seu programa como um serviço da web ao qual eles se conectam pela Internet?

Contanto que você não precise enviar muitos dados para frente e para trás, isso permitirá que você mantenha seu "programa" isolado de algo que eles controlam.

Se você não puder fazer isso, poderá fazer com que o seu programa faça o check-in em um servidor central pela Internet. Se o seu programa não conseguir acessar seu servidor, ele será desativado. Basicamente, ele poderia fazer check-in e responder a um algoritmo de desafio ... (você deseja impedir que o servidor seja falsificado)

    
por 23.03.2011 / 07:09
0

Já houve algumas ideias realmente boas postadas por outras pessoas, então eu vou construir a segurança física.

Anteriormente, fui encarregado de fornecer selos invioláveis e não encontrei nada que eu pudesse recomendar. Em todos os casos, o adesivo poderia ser amolecido, geralmente com terebintina ou querosene, o rótulo removido e depois reaplicado. Feito com cuidado, você nunca seria capaz de dizer que o selo foi removido.

Esqueça o cadeado do gabinete. Como já foi apontado (quase), qualquer um pode pegar os cadeados.

Eu sugiro que você use selos físicos em vez disso. Eu prefiro o tipo antiquado que consiste em arame e um selo de chumbo frisado. Primitivo, mas surpreendentemente eficaz, e é por isso que eles ainda estão sendo usados em muitas situações de segurança.

    
por 23.03.2011 / 08:35

Tags