วิธีตั้งค่า Linux Ditribution เป็น self-destruct (เพื่อล้างข้อมูลทุกอย่างจากพาร์ติชันระบบ) ผ่านสคริปต์


11

ฉันจะช่วยอำนวยความสะดวกในหลักสูตรที่ใช้ซอฟต์แวร์ลิขสิทธิ์ ซอฟต์แวร์มีราคาค่อนข้างแพงและอนุญาตให้มีการติดตั้งพร้อมกันจำนวน จำกัด เท่านั้นดังนั้นสิ่งที่ฉันจะทำคือติดตั้งอินสแตนซ์หนึ่งตัวบนดิสก์เสมือนที่เข้ารหัสด้วย Ubuntu (หรือลินุกซ์รสชาติอื่น ๆ ) เพื่อลดโอกาสของการละเมิดลิขสิทธิ์ที่ไม่จำเป็นฉันตั้งใจจะกำหนด (ใช้ cron) สคริปต์ทำลายตัวเองเพื่อให้ทำงานได้ทันทีหลังจากวันสุดท้ายของหลักสูตร (หรือล่าสุดในระหว่างการเริ่มระบบครั้งแรกหลังจากวันสุดท้าย)

เท่าที่ฉันรักฟรีแวร์และโครงการโอเพนซอร์ซ (และการจัดหาฝูงชนโดยทั่วไป) ฉันยังมีความเคารพต่อสุขภาพสำหรับซอฟต์แวร์เชิงพาณิชย์และเวลาและความพยายามที่นักพัฒนาได้นำมาใช้กับผลิตภัณฑ์ที่ดี - ฉันไม่ ต้องการที่จะมีส่วนร่วมในการละเมิดลิขสิทธิ์ของเลือดเหงื่อและน้ำตาของพวกเขาโดยไม่ได้ตั้งใจ

จะขอบคุณแนวคิดใด ๆ เกี่ยวกับวิธีการใช้สคริปต์การทำลายตนเองนี้บนเครื่อง Linux


2
ฉันไม่แน่ใจว่าทำไมสิ่งนี้จึงถูกลดระดับลง มันเป็นคำถามที่ถูกต้องตามกฎหมายกับมูลค่าที่ถูกต้อง
BinaryMisfit

เป็นคำถามที่ดี ขอบคุณที่มองหานักพัฒนาซอฟต์แวร์ +1
D'Arvit

ฉันไม่แน่ใจว่านี่จะเป็นไปตามเป้าหมายของคุณมากขึ้น หากพวกเขาวางแผนที่จะขโมยซอฟต์แวร์พวกเขาอาจจะคว้าสำเนาของ VM ในระหว่างการเรียนการสอน พวกเขาจะสามารถขันมันได้ในยามว่าง พวกเขาสามารถบูต VM ออกจาก live-cd ได้ตลอดเวลาเพื่อตรวจสอบสิ่งที่จะคิดออกว่าคุณทำอะไร
ไมเคิล Kohne

ขอบคุณทุกคนที่ให้คำตอบฉันขอบคุณสำหรับการป้อนข้อมูล :)
techtechmo

คำตอบ:


3

ดังที่กล่าวมาหลายครั้งการลบภาพที่เข้ารหัสควรมากกว่าเพียงพอ อีกวิธีหนึ่งก็คือติดตั้งแอปพลิเคชั่นบนพาร์ติชั่นของตัวเองแล้วเช็ดมันด้วย dd

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

สิ่งนี้จะเขียนทับทุกสิ่งด้วยศูนย์ซึ่งเพียงพอที่จะลบข้อมูลที่เกินกว่าการกู้คืน


ดังนั้นเพียงแค่ชี้แจงเมื่อสคริปต์ดำเนินการระบบจะล้างตัวเองจากพาร์ทิชัน (ในกรณีนี้เสมือน) และไม่มีการยกเลิก? ดูเหมือนว่าฉันตั้งใจจะทำ :) เกิดอะไรขึ้นถ้าเช่นฉันบอกเครื่องเสมือนว่าจะปิดเพียงไม่กี่วินาทีคำสั่งดำเนินการ? แม้ว่าระบบอาจจะสามารถเข้าถึงได้ แต่ในทางทฤษฎีก็ยังคงเป็นไปได้ที่จะเมานต์ส่วนที่ไม่ถูกลบของดิสก์ใช่ไหม บางทีขั้นตอนแรกของสคริปต์ควรลบซอฟต์แวร์ออกก่อนแล้วจึงเรียกใช้สคริปต์ทำลายตนเอง
techtechmo

ถ้าผู้ใช้ล็อกอินในฐานะผู้ใช้ที่มีสิทธิ์ที่เหมาะสมและหากพวกเขารู้ว่าเกิดอะไรขึ้นพวกเขาก็สามารถฆ่าคำสั่ง 'dd' ได้ในทางทฤษฎี แต่ไม่ใช่ก่อนที่จะเกิดความเสียหายมาก (ตารางพาร์ติชัน อยู่ใกล้ด้านหน้าของดิสก์เป็นต้น)
Michael Kohne

6

ในการทำลายทุกอย่างดูเหมือนจะเกินความเป็นไปได้เพียงแค่ลบ / ยกเลิกการติดตั้งโปรแกรมของคุณ

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

หรือวิธีการเกี่ยวกับคุณใช้เซิร์ฟเวอร์สิทธิ์การใช้งานปกติที่โปรแกรมต้องติดต่อก่อนที่จะสามารถเริ่มทำงานได้


อัปเดต : ตามคำถามเปิดคุณวางแผนจะทำลายข้อมูลผู้ใช้รวมถึงโปรแกรมของคุณหรือไม่? หรือข้อมูลผู้ใช้ถูกเก็บไว้ที่อื่น?

และบางทีผู้ใช้ควรได้รับการแจ้งเตือนจาก nagware ว่าคุณวางแผนทำลายทุกอย่าง! สิ่งที่ต้องการ

- "ซอฟต์แวร์นี้จะทำลายตัวเองหากคุณไม่ต้องจ่ายเงินมากขึ้นคุณเหลือเวลาอีก X วัน"

ในฐานะผู้ใช้ฉันจะอารมณ์เสียจริงๆถ้าคุณเพิ่งทำลายบางสิ่งในคอมพิวเตอร์ของฉันโดยไม่บอกฉันว่ามันกำลังจะเกิดขึ้น (อย่างน้อยฉันก็มีโอกาสได้รับผลกระทบ)

มันเป็นสิ่งที่ไม่ดีสำหรับ บริษัท ของคุณถ้าทุกคนที่จ่ายเงินของคุณจะต้องเกลียดคุณ


ดังที่ฉันได้กล่าวถึงซอฟต์แวร์จะอยู่ในไดรฟ์เสมือนที่สร้างขึ้นเฉพาะสำหรับหลักสูตร มันเป็นสภาพแวดล้อมที่แยกจากกันโดยไม่มีไฟล์ผู้ใช้ที่มีความหมายโดยเฉพาะเพื่อให้ผู้เข้าร่วมฝึกอบรมได้ด้วยซอฟต์แวร์ สิ่งหนึ่งที่ฉันต้องการป้องกันคือมีคนคัดลอก Virtual Drive ลงไปพูดว่า USB Drive และละเมิดลิขสิทธิ์ซอฟต์แวร์ในที่สุด ดังนั้นฉันตั้งใจจะตั้งระบบให้ทำลายตัวเองหลังจากหลักสูตรเพื่อลดโอกาสของสิ่งที่เกิดขึ้น ข้อกังวลของคุณนั้นถูกต้องแน่นอนขอบคุณสำหรับการแบ่งปัน :)
techtechmo

โดยวิธีการที่พวกเขาไม่ได้ซื้อลิขสิทธิ์ซอฟต์แวร์ที่จะใช้ และเมื่อพิจารณาว่าการละเมิดลิขสิทธิ์ที่มีชื่อเสียงนั้นเป็นส่วนหนึ่งของโลกของฉันฉันจะเตรียมการสมมติว่าเลวร้ายที่สุด แต่ทำงานให้ดีที่สุด :)
techtechmo

2

ค่อนข้างเก่า แต่ก็โอเค ตามการตั้งค่านั้นฉันค่อนข้างจะแค่เข้ารหัสระบบไฟล์ VM และในระหว่างการประชุม (สมมติว่าพวกเขามีเครือข่าย) คุณจะเข้าสู่ระบบจากระยะไกล หากพวกเขาจะคัดลอก VM พวกเขาจะต้อง bruteforce รหัสผ่านสิ่งที่ผู้ใช้ของคุณควรจะถึง :)

เช่นถ้าคุณไม่รังเกียจคุณสามารถเข้ารหัสจุดเมานท์: หมายเหตุ: ระบบป้องกันนี้ผิดกฎหมายอย่างเห็นได้ชัดในบางประเทศ / รัฐ? (ในสหรัฐอเมริกา แต่คุณดูเหมือนมาจากอังกฤษ?):

การตั้งค่าการเมานต์ที่เข้ารหัสและรหัสผ่าน:

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>

unmounting

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

เมื่อเสร็จแล้วให้ทำให้โฟลเดอร์ซอฟต์แวร์ดูเหมือนเป็นไฟล์สุ่มไบต์

คุณสามารถตรวจสอบให้แน่ใจว่าบัญชีผู้ใช้ที่ใช้ระหว่างเซสชัน VM ไม่มีsuสิทธิ์ในกรณีที่พวกเขาคัดลอกสิ่งของทั้งหมด


0

ฉันไม่ทราบว่าการตั้งค่าของคุณคืออะไร แต่ถ้าคุณต้องการให้ผู้ใช้ของคุณออนไลน์คุณอาจต้องการใช้กลยุทธ์อื่น - ลองโหลดซอฟต์แวร์ผ่านการเชื่อมต่อเครือข่ายเมื่อใดก็ตามที่พวกเขาเรียกใช้ นี่เป็นเพียงการปฏิบัติได้และขึ้นอยู่กับว่าคุณสามารถออก ID บางประเภทให้กับผู้ใช้แต่ละคนได้ คุณต้องมีต้นขั้วบน VM และต้นขั้วจะติดตั้งเซิร์ฟเวอร์ระยะไกลโดยอัตโนมัติและเรียกใช้ไบนารีจากที่นั่น ไม่มีอะไรที่พวกเขาไม่สามารถทำงานได้ แต่อย่างน้อยมันก็ยากกว่าการทำลายล้างอัตโนมัติ

อีกทางหนึ่งคุณสามารถให้รีโมตเซิร์ฟเวอร์ตอบสนองด้วยคีย์และเก็บโปรแกรมที่เข้ารหัสไว้บนดิสก์ - stub ทำการค้นหาเซิร์ฟเวอร์สำหรับคีย์ถอดรหัสและรันโปรแกรมลบไบนารีที่ถอดรหัสแล้วตามความเหมาะสม สิ่งนี้จะเป็นการยากที่จะหลีกเลี่ยง แต่ต้องมีรหัสผู้ใช้ที่ไม่ซ้ำกัน (ซึ่งอาจเป็นไปไม่ได้สำหรับคุณ)


ความคิดที่ดี แต่ฉันคิดว่าสิ่งนี้จะต้องใช้ประสบการณ์และความสะดวกสบายกับการใช้ระบบที่คุณอธิบาย - น่าเสียดายที่ฉันไม่มีความหรูหรา :) การลงมือทำกับซอฟต์แวร์จะทำในห้องที่ฉันจะอำนวยความสะดวก แต่ฉันไม่ต้องการมองข้ามไหล่ของฉัน ความคิดเห็นของคุณในคำถามนั้นเป็นสิ่งที่ฉันคาดไว้อย่างแน่นอน - แม้ว่าพวกเขาจะหยิบสำเนาของ VM ไว้ในครั้งต่อไปที่พวกเขาบูตเครื่องขึ้น VM ก็ควรล้างข้อมูลทุกอย่างให้สะอาด (แน่นอนว่าฉันจะไม่พูดถึงการมีอยู่ของสคริปต์การล้างข้อมูลทุกอย่าง)
techtechmo

ปัญหาคือเมื่อพวกเขาเห็น VM ทำลายตัวเองพวกเขาจะได้รับสำเนาอีกครั้งจากแท่ง USB ของพวกเขาบูตเครื่อง VM จากซีดีสดและเริ่มโผล่ไปรอบ ๆ จนกว่าพวกเขาจะพบสิ่งที่จะฆ่าตัวเอง ตราบใดที่คุณรู้สึกสบายใจกับความจริงที่ว่าผู้ใช้ที่มีแรงจูงใจเพียงพอที่จะทำสิ่งนั้นได้ แล้วสิ่งที่คุณต้องทำคือการปรับปรุงภาพ VM ก่อนที่แต่ละชั้นเรียน ...
ไมเคิล Kohne

ฉันจะเข้ารหัสระบบไฟล์ VM ในการติดตั้ง (หวังว่ามันจะเป็นความพยายามครั้งแรกของฉันที่จะทำเช่นนั้น) ดังนั้นนั่นก็เป็นอีกวิธีหนึ่งในการปลดเปลื้องขโมย ดังที่ฉันได้กล่าวไปแล้วปัญหาทั้งหมดนี้น่าจะเกินความจริง - ผู้ใช้โดยเฉลี่ยอาจไม่คิดว่ามันคุ้มค่ากับปัญหาที่จะพูดพล่าม แต่ฉันจะถือว่าแย่ที่สุดแล้ว - การละเมิดลิขสิทธิ์เป็นเรื่องปกติที่นี่ ซอฟต์แวร์ที่ฉันจะใช้นั้นเป็นของ Windows: ข้อดีคือมันใช้งานได้กับ Linux ผ่านทาง Wine และฉันค่อนข้างเตรียมทุกอย่างบน Linux เพราะจริงๆแล้วมันยากที่จะละเมิดลิขสิทธิ์ซอฟต์แวร์จากที่นั่น ขอบคุณอีกครั้ง!
techtechmo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.