Clear
Lead Graphic Papers

Secure delete: ลบไฟล์อย่างไรให้ปลอดภัยจากการกู้คืน

ผู้เขียน: เจษฎา ช้างสีสังข์
วันที่เผยแพร่: 19 กรกฎาคม 2556
ปรับปรุงล่าสุด: 19 กรกฎาคม 2556

Share on Facebook Share on Twitter Share on Google+

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

สาเหตุของการรั่วไหลของข้อมูลส่วนบุคคลเหล่านี้ ที่เป็นที่รู้กันดีอย่างหนึ่งก็คือ การนำเครื่องคอมพิวเตอร์ไปซ่อมที่ร้าน อย่างที่จะเห็นได้จากข้อมูลตามรูปที่ 1 เป็นผลการค้นหาด้วยคีย์เวิร์ด “ภาพหลุดจากร้านซ่อมคอม” โดย Google ซึ่งจะพบคลิปหรือรูปภาพที่อ้างว่าหลุดมาจากร้านที่รับซ่อมคอมพิวเตอร์เป็นจำนวนมากกว่า 100 รายการ ถึงแม้ว่าบางส่วนอาจเป็นการแอบอ้างเท่านั้น แต่ถ้าลองพิจารณาถึงเหตุผลก็คงไม่มีใครปฏิเสธว่า ข้อมูลเหล่านี้สามารถถูกขโมยออกมาได้จากเครื่องคอมพิวเตอร์ได้อย่างไม่ยาก และเชื่อว่าส่วนหนึ่งมาจากที่ผู้ใช้งานไม่ได้สนใจที่จะลบข้อมูลสำคัญเหล่านั้นออกก่อน ซึ่งในกรณีนี้ คงต้องโทษเจ้าของข้อมูลส่วนหนึ่งที่ไม่เอาใจใส่ในการป้องกันข้อมูลของตัวเองอย่างเพียงพอ

Pa2013ge005-1.png
รูปที่ 1 แสดงผลการค้นหาด้วยคีย์เวิร์ด “ภาพหลุดจากร้านซ่อมคอม” โดย Google

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

ลบข้อมูลแล้ว กู้ได้จริงหรือ

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

ในการจัดเก็บข้อมูลบนระบบปฏิบัติการส่วนมาก มีการเก็บข้อมูลเบื้องต้นอยู่ 2 ส่วน ได้แก่ Index หรือส่วนที่ใช้ชี้ตำแหน่งของข้อมูลว่าเก็บอยู่ที่ตำแหน่งใดในพื้นที่จัดเก็บข้อมูล (เช่น ฮาร์ดดิสก์) และมีข้อมูลอื่นๆ ที่เรียกว่า Metadata เช่น ชื่อไฟล์ วันที่เปลี่ยนแปลงข้อมูล เป็นต้น ในส่วนถัดมาคือตัวข้อมูลจริงๆ คือเนื้อไฟล์ที่เก็บอยู่ในฮาร์ดดิสก์ ซึ่งเมื่อผู้ใช้งานทำการลบไฟล์ด้วยคำสั่ง Delete ระบบปฏิบัติการจะทำการลบเฉพาะ Index ที่ใช้ชี้ตำแหน่งของข้อมูลทิ้งเท่านั้น โดยเนื้อไฟล์จริงๆ จะไม่ถูกแตะต้อง แต่บริเวณที่เนื้อไฟล์อยู่นั้น จะถูกมองเหมือนเป็นพื้นที่ว่าง ซึ่งหากระบบปฏิบัติการยังไม่เขียนข้อมูลอะไรทับลงไป ข้อมูลเดิมทั้งหมดก็มีโอกาสถูกกู้คืนได้ [1][2]

ลบข้อมูลอย่างไรให้กู้คืนไม่ได้

จะเห็นได้ว่า ถึงแม้เราจะทำการลบข้อมูลแล้ว แต่หากเนื้อไฟล์ยังไม่ถูกเขียนทับ ก็ยังไม่ถือว่าข้อมูลนั้นหายไปไหน วิธีการที่จะทำให้ข้อมูลนั้นไม่สามารถถูกนำออกมาใช้ได้อีก สามารถทำได้ด้วยการเขียนข้อมูลอื่นๆ ทับลงไป เช่น เทคนิคที่เรียกว่า Zero fill จะเป็นการเขียนตัวเลข 0 ทับลงไปบนข้อมูลที่ต้องการลบ หรือการทำ Random fill จะเป็นการเขียนทับด้วยข้อมูลที่เป็นค่าสุ่ม และสำหรับผู้ที่ต้องการความแน่นอนในการลบ ก็สามารถเขียนข้อมูลทับลงไปหลายๆ รอบได้ เพื่อลดโอกาสสำเร็จในการกู้คืนข้อมูลให้ได้มากที่สุด [3][4][5]

ตัวอย่างเครื่องมือ และวิธีการใช้สำหรับลบไฟล์

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

ตัวอย่างเครื่องมือที่ใช้ในระบบปฏิบัติการวินโดวส์

เครื่องมือที่สามารถลบข้อมูลได้อย่างมั่นคงปลอดภัยบนวินโดวส์นั้นมีหลายตัว แต่ในที่นี้จะขอยกตัวอย่างโปรแกรมที่ี่ชื่อว่า SDelete ซึ่งเป็นซอฟต์แวร์ทีี่งานได้ฟรี และเป็นของ Microsoft เอง สามารถดาว์นโหลดได้จาก (http://technet.microsoft.com/en-us/sysinternals/bb897443) และเมื่อดาวน์โหลดเสร็จแล้ว สามารถเรียกใช้ไฟล์ sdelete.exe ได้โดยตรง ซึ่งมีตัวอย่างการใช้งานดังนี้[6]

1. คำสั่ง “sdelete.exe -h” จะแสดง Option ต่างๆ ที่ซอฟต์แวร์รองรับการใช้งานต่างๆ ดังรูปที่ 2

Pa2013ge005-1.png
รูปที่ 2 แสดง Option ต่างๆของ sdelete


2. คำสั่ง “sdelete.exe -p 10 data.txt” คือการลบไฟล์ data.txt และทำการเขียนทับตำแหน่งของข้อมูลดังกล่าวซ้ำกัน 10 ครั้ง ดังรูปที่ 3

Pa2013ge005-1.png
รูปที่ 3 แสดงตัวอย่างการลบไฟล์ด้วย sdelete


3. คำสั่ง “sdelete.exe -z” คือการเขียนข้อมูลทับในตำแหน่งที่ว่างทั้งหมดในไดรว์ ซึ่งการใช้คำสั่งนี้ จะทำให้ข้อมูลที่ถูกลบด้วยวิธีธรรมดาก่อนหน้านี้หายไปอย่างถาวร เช่นเดียวกับการใช้คำสั่ง sdelete กับไฟล์เหล่านั้นโดยตรง ตัวอย่างการใช้งานดังรูปที่ 4

Pa2013ge005-1.png
รูปที่ 4 แสดงตัวอย่างการเขียนข้อมูลทับตำแหน่งที่ว่าง


ตัวอย่างเครื่องมือที่ใช้ในระบบปฏิบัติการลินุกซ์

สำหรับระบบปฏิบัติการลินุกซ์นั้น ผู้เขียนขอยกตัวอย่าง 2 เครื่องมือ ได้แก่ shred [7]ซึ่งใช้ในการลบไฟล์ และ sfill [8][9]ใช้ในการเขียนข้อมูลทับตำแหน่งที่ว่างอยู่ ดังแสดงในตัวอย่างต่อไปนี้

1. คำสั่ง “shred -n 10 -z -v data.txt” คือการลบไฟล์ data.txt โดยจะทำการเขียนค่าทับข้อมูลที่ต้องการลบจำนวน 10 ครั้ง (-n 10) และเขียนทับในรูปแบบ Zero fill (-z) ครั้งสุดท้าย ดังรูปที่ 5

Pa2013ge005-1.png
รูปที่ 5 แสดงตัวอย่างการลบไฟล์ด้วยคำสั่ง shred


2. คำสั่ง “sfill -v /” คือการเขียนข้อมูลทับในตำแหน่งที่ว่างทั้งหมดใน Root Directory ซึ่งการใช้คำสั่งนี้ มีผลเช่นเดียวกับโปรแกรม sfill ของวินโดวส์ที่ได้กล่าวไปแล้ว แสดงตัวอย่างดังรูปที่ 6

Pa2013ge005-1.png
รูปที่ 6 แสดงตัวอย่างการเขียนข้อมูลทับตำแหน่งที่ว่าง ด้วยซอฟต์แวร์ sfill


สรุป

การเก็บข้อมูลภายในเครื่องควรมีการคำนึงถึงการรักษาความลับของข้อมูลที่สำคัญ ซึ่งรวมถึงข้อมูลสำคัญที่เราไม่ต้องการใช้งานแล้ว ควรมีวิธีการในการป้องกันไม่ให้ข้อมูลเหล่านั้นรั่วไหล ซึ่งในบทความนี้ได้แสดงให้เห็นถึง ผลกระทบที่เกิดขึ้นหากข้อมูลรั่วไหล และวิธีลบข้อมูลที่ไม่ต้องการใช้งานแล้ว ไม่ให้สามารถกู้คืนได้

อ้างอิง

  1. http://www.howtogeek.com/72130/learn-how-to-securely-delete-files-in-windows/
  2. https://ssd.eff.org/tech/deletion
  3. http://techthrob.com/2009/03/02/howto-delete-files-permanently-and-securely-in-linux/
  4. http://techthrob.com/2010/03/25/howto-delete-files-permanently-and-securely-in-windows/
  5. http://wiki.answers.com/Q/What_is_zero_filling
  6. http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx
  7. http://linux.about.com/library/cmd/blcmdl1_shred.htm
  8. http://manpages.ubuntu.com/manpages/lucid/man1/sfill.1.html
  9. http://www.lylebackenroth.com/blog/2010/09/30/how-to-securely-delete-unused-drive-space-other-system-areas/
Clear