Come impostare una Linux Ditribution su autodistruzione (per cancellare tutto dalla partizione di sistema) tramite uno script


11

Contribuirò a facilitare un corso che utilizza software concesso in licenza. Il software è piuttosto costoso e consente solo un numero limitato di installazioni simultanee, quindi quello che farò è installare un'istanza su un disco virtuale crittografato con Ubuntu (o qualche altra variante di Linux) installata. Solo per ridurre la possibilità che si verifichi qualsiasi pirateria non necessaria, intendo programmare (usando cron) uno script autodistruggente da eseguire immediatamente dopo l'ultimo giorno del corso. (O al più tardi, durante la prima istanza di avvio dopo l'ultimo giorno.)

Per quanto adoro i progetti freeware e open-source (e il crowdfunding in generale), ho anche un sano rispetto per il software commerciale e il tempo e gli sforzi che gli sviluppatori hanno messo in campo per realizzare un buon prodotto - non vogliono finire inavvertitamente contribuendo alla pirateria del loro sangue, sudore e lacrime.

Gradirei qualsiasi idea su come implementare questo script autodistruggente su una macchina Linux.


2
Non sono sicuro del motivo per cui questo è stato sottoposto a downgrade. È una domanda legittima con valore legittimo.
BinaryMisfit,

Bella domanda Grazie per la ricerca di sviluppatori di software. +1
D'Arvit,

Non sono sicuro che questo andrà davvero oltre i tuoi obiettivi. Se hanno intenzione di rubare il software, probabilmente prenderanno una copia della VM durante il corso. Saranno in grado di rovinare tutto a loro piacimento. Possono sempre avviare la VM da un cd live per esaminare la cosa e capire cosa hai fatto.
Michael Kohne,

Grazie a tutti coloro che hanno dato una risposta, sono grato per l'input. :)
techtechmo,

Risposte:


3

Come accennato più volte, l'eliminazione dell'immagine crittografata dovrebbe essere più che sufficiente. Un altro approccio sarebbe quello di installare l'applicazione sulla propria partizione e cancellarla in seguito con dd.

dd if=/dev/zero of=/dev/TARGETPARTITION bs=1M

Questo sovrascriverà tutto con zero che è sufficiente per eliminare i dati oltre il recupero.


Quindi, solo per chiarire, una volta eseguito lo script, il sistema si cancellerà dalla partizione (in questo caso virtuale) e non c'è annullamento? Sembra quello che intendo fare. :) E se, ad esempio, dico alla macchina virtuale di spegnersi solo pochi secondi il comando viene eseguito? Anche se il sistema potrebbe essere accessibile, sarebbe comunque teoricamente possibile montare le parti non cancellate del disco giusto? Forse il primo passo dello script dovrebbe prima rimuovere il software e quindi eseguire lo script autodistruggente?
techtechmo,

Bene, se l'utente è loggato come utente con le autorizzazioni appropriate E se sa cosa sta succedendo, in teoria potrebbe uccidere il comando 'dd', ma non prima che faccia molto danno (le tabelle delle partizioni sono vicino alla parte anteriore del disco, per esempio).
Michael Kohne,

6

Distruggere tutto sembra essere un po 'eccessivo, che ne dici di rimuovere / disinstallare il tuo programma.

rm -rf /path/to/your/program/ 

O che ne pensi di implementare un normale server di licenze che il programma deve contattare prima di poter iniziare?


Aggiornamento : come domanda aperta, prevedi di distruggere i dati degli utenti e il tuo programma? O i dati degli utenti sono archiviati altrove?

E forse l'utente dovrebbe ricevere una sorta di avviso di nagware che prevedi di distruggere tutto! Qualcosa di simile a

- "Questo software si autodistruggerà se non paghi più denaro, ti restano X giorni".

Come utente sarei davvero arrabbiato se avessi appena distrutto qualcosa nel mio computer senza nemmeno dirmi che stava per accadere (quindi almeno ho avuto qualche possibilità di influenzare il risultato).

È un male per la tua azienda se tutti i tuoi clienti paganti finissero per odiarti.


Come ho già detto, il software sarà in un'unità virtuale creata appositamente per il corso. È un ambiente isolato senza alcun file utente pensato in particolare per consentire ai partecipanti di allenarsi con un software. Una cosa da cui voglio evitare è che qualcuno copi quel Virtual Drive su, diciamo, un Drive USB e alla fine piratando il software all'interno. Pertanto, voglio intenzionalmente impostare il sistema in modo che si autodistrugga subito dopo il corso al fine di ridurre al minimo la possibilità che accada qualcosa del genere. La tua preoccupazione è ovviamente valida, grazie per la condivisione. :)
techtechmo

A proposito, non acquistano in alcun modo una licenza del software da utilizzare. E considerando quanto sia famosa la pirateria nella mia parte del mondo, preferirei fare i preparativi assumendo il peggio, ma lavorando per il meglio. :)
techtechmo,

2

Un po 'vecchio ma ok. In base a tale impostazione, preferirei semplicemente crittografare il filesystem VM e durante le sessioni (supponendo che siano in rete) accederai da remoto. Se avessero copiato la VM avrebbero dovuto forzare la password, quasi ciò che gli utenti dovrebbero fare :)

cioè se non ti dispiace puoi crittografare un mountpoint: Nota: questo sistema di protezione è apparentemente illegale in alcuni paesi / stati? (bene negli Stati Uniti ma sembri venire dall'Inghilterra?):

Impostazione di un montaggio crittografato con password:

dd if=/dev/urandom of=/home/user/virtualfolder bs=16065b count=100  
modprobe loop  
modprobe cryptoloop  
modprobe aes  
losetup -e aes /dev/loop1 ./virtualfolder  
password: <enter your password here which you don't show to the users>  
mkreiserfs /dev/loop1  
mkdir /theprogram  
mount -o loop,encryption=aes,acl ./virtualdrive /theprogram  
password:<enter the same passy>

Ora installa / sposta il tuo programma nel / programma

(Ogni volta che si desidera accedere / ripetere il programma):

montaggio

mount -o loop,encryption=aes,acl ./virtualdrive /theprogram  
password:<enter the same passy>

smontaggio

umount /theprogram  
losetup -d /dev/loop1  
rmmod aes  
rmmod cryptoloop  
rmmod loop 

Al termine, rendere la cartella del software simile a un file di byte casuali.

Puoi anche assicurarti che gli account utente che usano durante la sessione VM non abbiano sudiritti nel caso in cui copiano tutto.


0

Non so quale sia la tua configurazione, ma se puoi richiedere che i tuoi utenti siano online, potresti voler prendere una tattica diversa: prova a caricare il software su una connessione di rete ogni volta che lo eseguono. Questo è solo praticabile e dipende dal fatto che tu sia in grado di rilasciare una sorta di ID ai singoli utenti. Avresti uno stub sulla VM e lo stub si monta automaticamente su un server remoto ed esegue il binario da lì. Niente che non potessero andare in giro con un po 'di lavoro, ma sarebbe almeno più difficile che aggirare l'autodistruzione.

In alternativa, è possibile fare in modo che il server remoto risponda con le chiavi e mantenere una versione crittografata del programma su disco: lo stub richiede al server le chiavi, decodifica ed esegue il programma, eliminando il file binario decodificato come appropriato. Questo sarebbe anche più difficile da aggirare, ma richiede ancora ID utente univoci (che potrebbero non essere possibili per te).


Bella idea, ma penso che qualcosa del genere richiederebbe un po 'di esperienza e conforto nell'implementazione del sistema che hai descritto - sfortunatamente non ho quel lusso. :) La pratica con il software verrà eseguita nella stanza in cui agevolerò, tuttavia non voglio continuare a guardarmi alle spalle. Il tuo commento nella domanda è esattamente quello che sto anticipando - anche se prendono una copia della VM, al successivo avvio la VM dovrebbe pulirsi da sola. (Ovviamente non menzionerò nemmeno l'esistenza della sceneggiatura di cancellare tutto.)
techtechmo,

Il problema è che una volta che vedono la macchina virtuale distruggersi, avranno solo un'altra copia dalla loro chiavetta USB, avvieranno la macchina virtuale da un CD live e inizieranno a frugare finché non scopriranno cosa fa per uccidersi. Finché ti senti a tuo agio con il fatto che un utente sufficientemente motivato può aggirarlo, allora sei d'oro. Quindi tutto ciò che devi fare è aggiornare l'immagine della VM prima di ogni lezione ...
Michael Kohne,

Cifrerò il file system VM all'installazione (si spera - sarà il mio primo tentativo di farlo), quindi questo è un altro mezzo per dissuadere gli aspiranti ladri. Come ho detto, tutti questi problemi sarebbero probabilmente eccessivi: l'utente medio potrebbe non pensare che valga la pena continuare a frugare in giro. Ma preferirei davvero presumere il peggio - la pirateria è la norma qui. Il software che userò è nativo di Windows: buona cosa funziona su Linux tramite Wine. E preferirei preparare tutto su Linux perché onestamente sarà molto più difficile piratare il software da lì. Grazie ancora!
techtechmo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.