Як встановити розподіл Linux для самознищення (стерти все з системного розділу) за допомогою скрипту


11

Я допоможу полегшити курс, який використовує ліцензійне програмне забезпечення. Програмне забезпечення є дещо дорогим і дозволяє лише обмежену кількість одночасних установок, тому я буду робити один екземпляр на зашифрованому віртуальному диску з встановленим Ubuntu (або іншим ароматом Linux). Щоб зменшити шанс виникнення зайвих піратів, я маю намір запланувати (використовуючи cron) сценарій самознищення, який слід запустити одразу після останнього дня курсу. (Або пізніше, під час першого примірника завантаження після останнього дня.)

Наскільки я люблю безкоштовні проекти та проекти з відкритим кодом (і загальне джерело натовпу), я також поважаю комерційне програмне забезпечення та час і зусилля, які розробники доклали до створення хорошого продукту - я не хочу хочуть закінчитися ненароком, сприяючи піратству їхньої крові, поту та сліз.

Був би вдячний будь-якій ідеї, як реалізувати цей сценарій саморуйнування на машині Linux.


2
Я не впевнений, чому це було знято. Це законне питання з законною цінністю.
BinaryMisfit

Приємне запитання. Дякуємо, що стежили за розробниками програмного забезпечення. +1
Д'Арвіт

Я не впевнений, що це дійсно сприятиме досягненню ваших цілей. Якщо вони планують викрасти програмне забезпечення, вони, ймовірно, збираються захопити копію VM під час курсу. Вони вони зможуть накрутити це на своєму дозвіллі. Вони завжди можуть завантажувати VM з живого CD, щоб вивчити те, щоб зрозуміти, що ви зробили.
Майкл Коне

Дякую всім, хто дав відповідь, я вдячний за внесок. :)
techtechmo

Відповіді:


3

Як уже згадувалося кілька разів, видалення зашифрованого зображення повинно бути більш ніж достатньо. Іншим підходом було б встановлення програми на власному розділі та видалення після цього з dd.

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

Це замінить усе з нуля, що достатньо для видалення даних після відновлення.


Тож просто для уточнення, щойно сценарій виконує систему, витирає з (у даному випадку віртуальний) розділ, і немає скасування? Це звучить як те, що я маю намір зробити. :) Що робити, якщо, наприклад, я кажу віртуальній машині, щоб вимкнути лише кілька секунд команду? Незважаючи на те, що система може бути доступною, теоретично все одно можна було б встановити невідтворені частини диска? Можливо, першим кроком сценарію має бути спочатку видалення програмного забезпечення, а потім запуск сценарію самознищення?
techtechmo

Ну, якщо користувач увійшов як користувач з відповідними дозволами, І якщо вони знають, що відбувається, то вони, теоретично, можуть вбити команду 'dd', але не до того, як це завдає великої шкоди (таблиці розділів наприклад, біля передньої частини диска).
Майкл Коне

6

Знищити все, здається, є трохи зайвим, як щодо того, щоб просто видалити / видалити програму.

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

А як ви реалізуєте звичайний сервер ліцензування, до якого програма повинна зв’язатися, перш ніж вона може запуститися?


Оновлення : як відкрите запитання, чи плануєте ви знищувати дані користувачів, а також вашу програму? Або дані користувачів зберігаються в іншому місці?

І, можливо, користувач повинен отримати якесь нагірське повідомлення, що ви плануєте знищити все! Щось на зразок

- "Це програмне забезпечення самознищиться, якщо ви не заплатите більше грошей, у вас залишилося X днів."

Як користувач, я був би дуже засмучений, якби ви просто знищили щось на моєму комп’ютері, навіть не сказавши мені, що це мало відбутися (тому я, принаймні, мав певний шанс вплинути на результат).

Для вашої компанії це погано, якщо всі ваші клієнти, які платять, в кінцевому підсумку ненавидять вас.


Як я вже згадував, програмне забезпечення буде у віртуальному накопичувачі, створеному спеціально для курсу. Це ізольоване середовище, без будь-яких файлів користувача, зокрема для того, щоб учасники мали змогу навчатись із програмним забезпеченням. Я хочу захиститись - це хтось копіює цей Віртуальний диск на, скажімо, USB-накопичувач і в кінцевому підсумку піратське програмне забезпечення всередині. Таким чином, я навмисно хочу налаштувати систему на самознищення відразу після курсу, щоб мінімізувати ймовірність того, що щось подібне станеться. Ваша турбота, безумовно, справедлива, дякую за поділ. :)
techtechmo

До речі, вони жодним чином не купують ліцензію програмного забезпечення, яке буде використовуватися. А враховуючи, наскільки сумно відоме піратство в моїй частині світу, я б скоріше готувався до найгіршого, але працюю на найкраще. :)
techtechmo

2

Трохи старий, але гаразд. Відповідно до цієї установки, я б швидше просто зашифрував файлову систему VM, і під час сеансів (якщо припустити, що вони є мережевими) ви віддалено входите в систему. Якби вони скопіювали VM, вони повинні були б підтвердити пароль, навряд чи те, що повинні бути ваші користувачі :)

тобто, якщо ви не заперечуєте, ви можете зашифрувати точку кріплення: Примітка: ця система захисту є незаконною, мабуть, у деяких країнах / штатах? (ну в США, але ви, здається, з Англії?):

Налаштування зашифрованого, парольованого кріплення:

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>

Тепер встановіть / перемістіть програму в / theprogram

(Кожен раз, коли ви знову бажаєте отримати доступ / програму):

кріплення

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

відключення

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

Закінчивши, зробіть папку програмного забезпечення схожою лише на файл випадкових байтів.

Ви також можете переконатися, що облікові записи користувачів, які вони використовують під час сеансу VM, не мають suправ на випадок, якщо вони копіюють всю річ.


0

Я не знаю, що таке налаштування, але якщо ви можете вимагати, щоб ваші користувачі були в режимі он-лайн, то, можливо, ви захочете скористатися іншою тактикою - спробуйте завантажити програмне забезпечення через мережеве з'єднання кожного разу, коли вони запускаються. Це лише життєздатно, і це залежить від того, чи зможете видати певний ідентифікатор окремим користувачам. У вас буде заглушка на VM, і заглушка автоматично змонтує віддалений сервер і запустить бінарний файл звідти. Нічого, що вони не змогли обійти трохи роботи, але це було б, принаймні, важче, ніж обійти автознищення.

Крім того, ви можете дати віддаленому серверу відповісти клавішами і зберегти зашифровану версію програми на диску - заглушка запитує сервер для ключів, розшифровує і запускає програму, видаляючи розшифрований двійковий файл, якщо це доречно. Це також буде важче обійти, але знову ж таки потрібні унікальні ідентифікатори користувачів (що може бути неможливим для вас).


Хороша ідея, але я думаю, що щось подібне потребує певного досвіду та комфорту при застосуванні описаної вами системи - на жаль, у мене немає такої розкоші. :) Робота з програмним забезпеченням буде зроблена в кімнаті, де я буду сприяти, проте мені не хочеться постійно дивитися через плече. Ваш коментар у питанні саме те, що я очікую - навіть якщо вони захоплять копію відеомагнітофона, наступного разу, коли вони завантажують його, VM повинен витерти з себе все. (Я, звичайно, навіть не згадую про існування сценарію "видалити все".)
techtechmo

Проблема полягає в тому, що як тільки вони побачать, як VM знищує себе, вони просто отримають ще одну копію зі свого USB-накопичувача, завантажують VM з живого компакт-диска і починають колупати, поки не з’ясують, що він робить, щоб убити себе. Поки вам подобається той факт, що достатньо вмотивований користувач може обійти його, значить, ви золотий. Тоді все, що вам потрібно зробити, - це оновити зображення VM перед кожним класом ...
Майкл Коне,

Я буду шифрувати файлову систему VM при встановленні (сподіваюся - це буде моя перша спроба зробити це), тож це ще один засіб відвернути потенційних злодіїв. Як я вже говорив, всі ці проблеми, ймовірно, будуть надмірними - пересічний користувач може не думати, що варто турбуватися, щоб продовжувати ковтати. Але я дійсно вважаю за все найгірше - піратство тут є нормою. Програмне забезпечення, яке я використовую, є рідним для Windows: добре, що воно працює в Linux через Wine. І я краще підготую все на Linux, оскільки, чесно кажучи, пірати програмне забезпечення звідти буде набагато важче. Знову дякую!
techtechmo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.