Linux Ditribution'ı kendi kendini imha edecek şekilde (sistem bölümündeki her şeyi silmek için) bir komut dosyası aracılığıyla ayarlama


11

Lisanslı yazılım kullanan bir kursu kolaylaştırmaya yardım edeceğim. Yazılım biraz pahalıdır ve sadece sınırlı sayıda eşzamanlı yüklemeye izin verir, bu yüzden yapacağım şey Ubuntu (veya linux'un başka bir lezzeti) kurulu olan şifreli bir Sanal Diske bir örnek kurmaktır. Gereksiz korsanların ortaya çıkma olasılığını azaltmak için, kursun son gününden hemen sonra çalıştırmak için kendini imha eden bir senaryo planlamayı (cron kullanarak) planlamak niyetindeyim. (Ya da en geç, son günden sonraki ilk açılış sırasında.)

Ücretsiz ve açık kaynaklı projeleri (ve genel olarak kalabalık tedarikini) sevdiğim kadar, ticari yazılımlara ve geliştiricilerin iyi bir ürün bulmak için harcadıkları zaman ve çabaya da sağlıklı bir saygı duyuyorum. istemeden kan, ter ve gözyaşlarının korsanlığına katkıda bulunmak istiyorlar.

Bu kendini imha eden komut dosyasını bir Linux makinesinde nasıl uygulayacağınız konusunda herhangi bir fikriniz olur.


2
Bunun neden reddedildiğinden emin değilim. Meşru değeri olan meşru bir sorudur.
BinaryMisfit

Güzel soru. Yazılım geliştiricilerini aradığınız için teşekkür ederiz. +1
D'Arvit

Bunun hedeflerinizi gerçekten ilerleteceğinden emin değilim. Yazılımı çalmayı planlıyorlarsa, muhtemelen kurs sırasında VM'nin bir kopyasını alacaklar. Boş zamanlarında vidalayabilirler. Yaptıklarınızı anlamak için şeyi incelemek için sanal makineyi her zaman canlı bir cd'den önyükleyebilirler.
Michael Kohne

Yanıt veren herkese teşekkürler, bu giriş için minnettarım. :)
techtechmo

Yanıtlar:


3

Birkaç kez belirtildiği gibi, şifreli görüntünün silinmesi fazlasıyla yeterli olmalıdır. Başka bir yaklaşım, uygulamayı kendi bölümüne yüklemek ve daha sonra dd ile silmek olacaktır.

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

Bu, verilerin kurtarılmasının ötesinde silinmesi için yeterli olan her şeyin üzerine sıfır yazacaktır.


Sadece açıklığa kavuşturmak için, komut dosyası yürütüldüğünde sistem kendisini (bu durumda sanal) bölümden siler ve iptal olmaz mı? Bu kastettiğim gibi geliyor. :) Ya sanal makineye komutun sadece birkaç saniye kapanmasını söylesem? Sistem erişilebilir olsa da, teorik olarak diskin silinmemiş kısımlarını monte etmek mümkün olabilir mi? Belki de betiğin ilk adımı önce yazılımı kaldırmak ve sonra kendini imha eden betiği çalıştırmak olmalıdır?
techtechmo

Kullanıcı, uygun izinlere sahip bir kullanıcı olarak oturum açtıysa VE Neler olup bittiğini biliyorsa, teorik olarak 'dd' komutunu öldürebilir, ancak çok fazla hasar vermeden önce (bölüm tabloları) örneğin diskin ön tarafına yakın).
Michael Kohne

6

Her şeyi yok etmek biraz abartılı gibi görünüyor, programınızı kaldırmaya / kaldırmaya ne dersiniz?

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

Veya programın başlatılmadan önce iletişim kurması gereken normal bir lisans sunucusunu uygulamaya ne dersiniz?


Güncelleme : Açık bir soru olarak, programınızın yanı sıra kullanıcı verilerini de yok etmeyi planlıyor musunuz? Yoksa kullanıcı verileri başka bir yerde mi saklanıyor?

Ve belki de kullanıcı her şeyi yok etmeyi planladığınız bir çeşit nagware bildirimi almalıdır! Gibi bir şey

- "Daha fazla para ödemezseniz, bu yazılım kendi kendini imha edecek, X gününüz kaldı."

Bir kullanıcı olarak, bilgisayarımda bir şeyin, bunun gerçekleşmek üzere olduğunu bile söylemeden yok ettiyseniz gerçekten üzüleceğim (en azından sonucu etkileme şansım oldu).

Tüm ödeme yapan müşterilerinizin sizden nefret etmesi durumunda şirketiniz için kötüdür.


Bahsettiğim gibi, yazılım sadece kurs için özel olarak oluşturulmuş bir sanal sürücüde olacak. Özellikle, katılımcıların bir yazılım parçasıyla eğitim almasına izin vermek için herhangi bir kullanıcı dosyası içermeyen yalıtılmış bir ortamdır. Korumak istediğim bir şey, Sanal Sürücüyü, örneğin bir USB Sürücüye kopyalayıp sonunda içindeki yazılımı korsanlaştırmak. Böylece, böylesi bir şeyin meydana gelme olasılığını en aza indirgemek için sistemi derhal derhal kendini imha edecek şekilde ayarlamak istiyorum. Endişeniz elbette geçerlidir, paylaştığınız için teşekkürler. :)
techtechmo

Bu arada hiçbir şekilde kullanılacak yazılımın lisansını almıyorlar. Ve korsanlığın dünyanın bir parçası olarak ne kadar kötü şöhretli olduğunu göz önünde bulundurarak, en kötüsünü varsaymak, ancak en iyisini yapmak için hazırlık yapmayı tercih ederim. :)
techtechmo

2

Biraz eski ama tamam. Bu düzene göre, aslında sadece VM dosya sistemini şifrelemeyi tercih ederim ve oturumlar sırasında (ağa bağlı olduklarını varsayarak) uzaktan giriş yaparsınız. VM'yi kopyalarlarsa, parolayı bruteforce etmek zorunda kalacaklardı, kullanıcılarınızın ne yapması gerekmiyor :)

yani bir bağlama noktasını şifreleyebilirseniz: Not: bu koruma sistemi bazı ülkelerde / eyaletlerde açıkça yasa dışı mı? (ABD'de iyi ama İngiltere'den misiniz?):

Şifrelenmiş, parolalı bir montaj kurulumu:

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>

Şimdi programınızı / programa yükleyin / taşıyın

(Programa her erişmek istediğinizde / program tekrar yapın):

montaj

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

Ayırma işlemi

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

İşiniz bittiğinde, yazılım klasörünü rastgele bir bayt dosyası gibi görünmesini sağlayın.

Ayrıca, VM oturumu sırasında kullandıkları kullanıcı hesaplarının suher şeyi kopyalamaları durumunda haklara sahip olmadığından emin olabilirsiniz .


0

Kurulumunuzun ne olduğunu bilmiyorum, ancak kullanıcılarınızın çevrimiçi olmasını isteyebilirseniz, farklı bir taktik almak isteyebilirsiniz - her çalıştırdıklarında yazılımı bir ağ bağlantısı üzerinden yüklemeyi deneyin. Bu sadece uygulanabilir ve bireysel kullanıcılara bir tür kimlik verebilmenize bağlıdır. VM'de bir saplama olur ve saplama uzak bir sunucuyu otomatik olarak bağlar ve ikili dosyayı oradan çalıştırır. Biraz çalışma ile dolaşamadıkları bir şey değil, ama en azından otomatik yıkıma uğramaktan daha zor olurdu.

Alternatif olarak, uzak sunucunun anahtarlarla yanıt vermesini ve programın şifrelenmiş bir sürümünü diskte tutmasını sağlayabilirsiniz - saplama, sunucuyu anahtarlar için sorgular, şifresini çözer ve programı çalıştırır, şifresi çözülmüş ikiliyi uygun şekilde siler. Bu da etrafta dolaşmak daha zor olurdu, ancak yine de benzersiz kullanıcı kimlikleri gerektirir (bu sizin için mümkün olmayabilir).


Güzel fikir, ama bunun gibi bir şeyin, tarif ettiğiniz sistemi uygulamakla biraz deneyim ve rahatlık gerektireceğini düşünüyorum - ne yazık ki bu lüksüm yok. :) Yazılım ile uygulamalı olacak ben kolaylaştıracağım odada yapılacaktır, ancak ben omzumun üzerinden bakmak devam etmek istemiyorum. Sorudaki yorumunuz tam olarak tahmin ettiğim şeydir - VM'nin bir kopyasını alsalar bile, bir dahaki sefer başlattıklarında VM her şeyi temizlemelidir. (Tabii ki her şeyi silip senaryosunun varlığından bile bahsetmeyeceğim.)
techtechmo

Sorun, VM'nin kendisini yok ettiğini gördükten sonra, USB çubuklarından başka bir kopya alacak, VM'yi canlı bir CD'den önyükleyecek ve kendini öldürmek için ne yaptığını bulana kadar etrafta dolaşmaya başlayacaklar. Yeterince motive olmuş bir kullanıcının etrafta dolaşabileceği gerçeğinden memnun olduğunuz sürece, o zaman altınsınız. O zaman tek yapmanız gereken her sınıftan önce VM görüntüsünü güncellemek ...
Michael Kohne

Kurulum sırasında VM dosya sistemini şifreleyeceğim (umarım - bunu yapmak için ilk denemem olacak), bu da hırsızları caydırmanın başka bir yolu. Söylediğim gibi, tüm bu sorun muhtemelen aşırıya kaçar - ortalama bir kullanıcı alay etmeye devam etmenin zahmetine değdiğini düşünmeyebilir. Ama yine de en kötüsünü varsaymayı tercih ederim - korsanlık buradaki normdur. Kullanacağım yazılım Windows'a özgü: Wine üzerinden Linux üzerinde çalışıyor. Ve Linux'ta her şeyi hazırlamayı tercih ederim çünkü dürüst olmak gerekirse yazılımı oradan korsanlamak çok daha zor olacak. Tekrar teşekkürler!
techtechmo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.