Cara mengatur Linux Disribution ke penghancuran diri (untuk menghapus semuanya dari partisi sistem) melalui skrip

11

Saya akan membantu memfasilitasi kursus yang menggunakan perangkat lunak berlisensi. Perangkat lunak ini agak mahal dan hanya memungkinkan sejumlah instalasi bersamaan, jadi yang akan saya lakukan adalah menginstal satu contoh pada Disk Virtual terenkripsi dengan Ubuntu (atau beberapa rasa Linux lainnya) yang diinstal. Hanya untuk mengurangi kemungkinan pembajakan yang tidak perlu terjadi, saya bermaksud menjadwalkan (menggunakan cron) skrip penghancuran diri untuk dijalankan segera setelah hari terakhir kursus. (Atau paling lambat, selama proses boot pertama setelah hari terakhir.)

Seperti halnya saya menyukai proyek-proyek freeware dan open-source (dan crowdsourcing pada umumnya), saya juga memiliki rasa hormat yang sehat untuk perangkat lunak komersial dan waktu serta upaya yang telah dilakukan pengembang untuk menghasilkan produk yang bagus - saya tidak ingin akhirnya secara tidak sengaja berkontribusi pada pembajakan darah, keringat, dan air mata mereka.

Sangat menghargai ide tentang bagaimana mengimplementasikan skrip penghancuran diri ini pada mesin Linux.

techtechmo
sumber
2
Saya tidak yakin mengapa ini diturunkan. Ini adalah pertanyaan yang sah dengan nilai yang sah.
BinaryMisfit
Pertanyaan yang bagus Terima kasih telah mencari pengembang perangkat lunak. +1
D'Arvit
Saya tidak yakin ini akan meningkatkan tujuan Anda. Jika mereka berencana untuk mencuri perangkat lunak, mereka mungkin akan mengambil salinan VM selama kursus. Mereka akan bisa mengacaukannya di waktu luang mereka. Mereka selalu dapat mem-boot VM dari live-cd untuk memeriksa hal untuk mengetahui apa yang Anda lakukan.
Michael Kohne
Terima kasih kepada semua orang yang memberikan jawaban, saya berterima kasih atas masukannya. :)
techtechmo

Jawaban:

3

Seperti yang disebutkan beberapa kali, menghapus gambar yang dienkripsi harus lebih dari cukup. Pendekatan lain adalah menginstal aplikasi pada partisi sendiri dan menghapusnya setelah itu dengan dd.

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

Ini akan menimpa semuanya dengan nol yang cukup untuk menghapus data setelah pemulihan.

Oliver
sumber
Jadi hanya untuk memperjelas, begitu skrip dijalankan sistem akan menghapus dirinya sendiri dari partisi (dalam hal ini virtual), dan tidak ada pembatalan? Ini terdengar seperti apa yang ingin saya lakukan. :) Bagaimana jika, misalnya saya memberi tahu mesin virtual untuk mematikan hanya beberapa detik perintah dijalankan? Meskipun sistem mungkin dapat diakses, secara teoritis masih mungkin untuk memasang bagian yang tidak terhapus dari disk, bukan? Mungkin langkah pertama skrip harus menghapus perangkat lunak terlebih dahulu, dan kemudian menjalankan skrip penghancuran diri?
techtechmo
Nah, jika pengguna login sebagai pengguna dengan izin yang sesuai, DAN jika mereka tahu apa yang terjadi, maka secara teori mereka dapat membunuh perintah 'dd', tetapi tidak sebelum itu melakukan banyak kerusakan (tabel partisi dekat bagian depan disk, misalnya).
Michael Kohne
6

Untuk menghancurkan semuanya sepertinya sedikit berlebihan, bagaimana kalau hanya menghapus / menghapus program Anda.

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

Atau bagaimana Anda menerapkan server lisensi normal yang harus dihubungi program sebelum dapat dimulai?


Pembaruan : Sebagai pertanyaan terbuka, apakah Anda berencana untuk menghancurkan data pengguna dan juga program Anda? Atau apakah data pengguna disimpan di tempat lain?

Dan mungkin pengguna harus mendapatkan semacam pemberitahuan nagware bahwa Anda berencana menghancurkan semuanya! Sesuatu seperti

- "Perangkat lunak ini akan hancur sendiri jika Anda tidak membayar lebih banyak uang, Anda memiliki sisa X hari."

Sebagai pengguna, saya akan benar-benar kesal jika Anda menghancurkan sesuatu di komputer saya tanpa memberi tahu saya bahwa ini akan terjadi (jadi saya setidaknya memiliki beberapa kesempatan untuk mempengaruhi hasilnya).

Agak buruk bagi perusahaan Anda jika semua pelanggan membayar Anda akhirnya membenci Anda.

Johan
sumber
Seperti yang saya sebutkan perangkat lunak akan berada dalam drive virtual yang khusus dibuat hanya untuk kursus. Ini adalah lingkungan yang terisolasi tanpa file pengguna yang dimaksudkan secara khusus untuk memungkinkan para peserta pelatihan dengan perangkat lunak. Satu hal yang ingin saya waspadai adalah seseorang menyalin Virtual Drive itu ke, katakanlah, USB Drive dan akhirnya membajak perangkat lunak di dalamnya. Dengan demikian, saya sengaja ingin mengatur sistem untuk menghancurkan diri sendiri tepat setelah kursus untuk meminimalkan kemungkinan sesuatu seperti itu terjadi. Kekhawatiran Anda tentu saja berlaku, terima kasih untuk berbagi :).
techtechmo
Omong-omong, mereka sama sekali tidak membeli lisensi perangkat lunak yang akan digunakan. Dan mengingat betapa buruknya pembajakan di bagian dunia saya, saya lebih suka membuat persiapan dengan asumsi yang terburuk, tetapi bekerja untuk yang terbaik. :)
techtechmo
2

Agak tua tapi ok. Menurut pengaturan itu, saya lebih suka mengenkripsi sistem file VM saja, dan selama sesi (dengan asumsi mereka berjaringan) Anda akan login jarak jauh. Jika mereka akan menyalin VM, mereka harus memaksakan password, bukan apa yang seharusnya dilakukan pengguna Anda :)

yaitu jika Anda tidak keberatan Anda dapat mengenkripsi mountpoint: Catatan: sistem perlindungan ini tampaknya ilegal di beberapa negara / negara bagian? (baik di AS tetapi Anda tampaknya berasal dari Inggris?):

Menyiapkan mount yang terenkripsi dan dengan kata sandi:

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>

Sekarang instal / pindahkan program Anda ke / program

(Setiap kali Anda ingin mengakses / program dilakukan lagi):

pemasangan

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

unmount

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

Setelah selesai, buat folder perangkat lunak terlihat seperti hanya file byte acak.

Anda juga dapat memastikan akun pengguna yang mereka gunakan selama sesi VM tidak memiliki suhak jika mereka menyalin semuanya.

mike-delft
sumber
0

Saya tidak tahu apa pengaturan Anda, tetapi jika Anda dapat meminta pengguna untuk online, maka Anda mungkin ingin mengambil taktik yang berbeda - coba muat perangkat lunak melalui koneksi jaringan setiap kali mereka menjalankannya. Ini hanya layak, dan itu tergantung pada Anda dapat mengeluarkan beberapa jenis id kepada pengguna individu. Anda akan memiliki rintisan di VM, dan rintisan akan secara otomatis memasang server jauh dan menjalankan biner dari sana. Tidak ada yang tidak bisa mereka selesaikan dengan sedikit pekerjaan, tapi setidaknya akan lebih sulit daripada menyiasati penghancuran otomatis.

Sebagai alternatif, Anda dapat membuat server jauh merespons dengan kunci, dan menyimpan versi terenkripsi program pada disk - stub meminta server untuk kunci, mendekripsi dan menjalankan program, menghapus biner yang didekripsi sesuai keperluan. Ini juga akan lebih sulit untuk dilakukan, tetapi sekali lagi membutuhkan id pengguna yang unik (yang mungkin tidak memungkinkan untuk Anda).

Michael Kohne
sumber
Ide yang bagus, tapi saya pikir hal seperti ini akan membutuhkan beberapa pengalaman dan kenyamanan dengan menerapkan sistem yang telah Anda gambarkan - sayangnya saya tidak memiliki kemewahan itu. :) Pekerjaan langsung dengan perangkat lunak akan dilakukan di ruangan tempat saya akan memfasilitasi, namun saya tidak ingin harus terus melihat ke belakang. Komentar Anda dalam pertanyaan adalah persis apa yang saya perkirakan - bahkan jika mereka mengambil salinan VM, saat berikutnya mereka mem-boot-nya, VM harus menghapus sendiri semuanya. (Saya akan tentu bahkan tidak menyebutkan adanya script segala lap.)
techtechmo
Masalahnya adalah begitu mereka melihat VM menghancurkan dirinya sendiri, mereka hanya akan mendapatkan salinan lain dari stik USB mereka, boot VM dari CD langsung dan mulai mencari-cari sampai mereka mengetahui apa yang harus dilakukan untuk mematikan dirinya sendiri. Selama Anda merasa nyaman dengan kenyataan bahwa pengguna yang cukup termotivasi dapat mengatasinya, maka Anda adalah yang terbaik. Kemudian yang harus Anda lakukan adalah untuk memperbarui gambar VM sebelum setiap kelas ...
Michael Kohne
Saya akan mengenkripsi sistem file VM saat instalasi (mudah-mudahan - ini akan menjadi upaya pertama saya untuk melakukan itu), jadi itu cara lain untuk mencegah calon pencuri. Seperti yang saya katakan, semua masalah ini kemungkinan besar akan berlebihan - rata-rata pengguna mungkin tidak berpikir bahwa itu sepadan dengan masalah untuk terus mencari-cari. Tapi saya benar-benar lebih suka menganggap yang terburuk - pembajakan adalah norma di sini. Perangkat lunak yang akan saya gunakan adalah asli Windows: hal yang baik ia bekerja di Linux melalui Wine. Dan saya lebih suka menyiapkan semuanya di Linux karena jujur ​​itu akan jauh lebih sulit untuk membajak perangkat lunak dari sana. Terima kasih lagi!
techtechmo