เกิดอะไรขึ้นเมื่อข้อมูลถูกลบ ข้อมูลถูกกู้ขึ้นมาได้อย่างไร ?
มันต้องมีสักครั้งละ ที่มันจะเกิดอุบัติเหตุอะไรบางอย่างที่ทำให้เราเสียข้อมูลอันมีค่าไป อาจจะเป็นเพราะ เราดันไปลบเอง หรือ อาจจะเป็นเพราะความเสียหายของ Hardware ที่ใช้ในการเก็บข้อมูล วันนี้เราจะมาหาหาคำตอบพร้อม ๆ กันว่า การที่เราจะกู้ข้อมูลกลับขึ้นมา มันต้องทำยังไงบ้าง
The Fundamental of Storing Data
ก่อนที่เราจะเล่าเทคนิคที่ซับซ้อนเกี่ยวกับการกู้ข้อมูล เราต้องมาทำความเข้าใจกันก่อนว่า ปกติแล้ว เราเก็บข้อมูลกันอย่างไร โดยส่วนใหญ่แล้วบนเครื่องคอมพิวเตอร์ และ อุปกรณ์พกพาต่าง ๆ เราก็จะใช้ไม่ก็ Magnetic Storage อย่าง Hard Disk และ Flash Storage อย่าง SSD หลักการของทั้งสองอย่างอาจจะมีความแตกต่างกันอยู่เล็กน้อย
แต่สิ่งที่เหมือนกันคือ มันเป็นสื่อที่ใช้เก็บข้อมูลแบบ Binary คือ 0 กับ 1 เช่น ใน HDD มันจะใช้เป็นจานแม่เหล็กที่จะมีการแบ่งช่องสำหรับการเขียนข้อมูล ซึ่งจะใช้เป็นขั้วของแม่เหล็กในการบอกข้อมูล หรือ ถ้าเป็นพวก Flash Storage ทั้งหลาย ตอนนี้ก็จะใช้ NAND ในการเก็บ State เป็น 0 และ 1 เหมือนกัน ทำให้ไม่ว่าจะเป็น Magnetic Storage อย่าง Hard Disk และ Flash Storage อย่าง SSD ก็มีหน่วย Bit เป็นจุดล่างสุดของการเก็บข้อมูลแล้ว
แล้วพวก File และ Folder ที่เราเห็นละ มันมาจากไหน การเก็บเป็น Bit แบบนี้มันจะแปลให้กลายเป็นของพวกนี้ยังไงละ อ่าาาห์ มันต้องใช้อีกส่วนนึงคือ File System
File System
File System เป็นระบบในการจัดการข้อมูลบนสื่อในการเก็บข้อมูลต่าง ๆ ควบคุมการอ่านและเขียนข้อมูล ถ้าเกิดไม่มี ข้อมูลที่เราบันทึกอยู่ในสื่อต่าง ๆ เราไม่รู้เลยนะว่า ถ้าเราอยากได้ข้อมูลตรงนี้ เราจะต้องอ่านตรงไหน หรือถ้าเราต้องการจะเขียนข้อมูล เราก็ไม่รู้เลยว่า เราต้องเขียนตรงไหนของสื่อที่จะไม่ทับกับข้อมูลที่มีอยู่แล้ว File System เป็นส่วนที่ใช้จัดการตรงนี้แหละ
ในแต่ละ File System มันก็จะมีวิธีในการจัดการไฟล์ที่แตกต่างกัน บาง OS ก็จะไม่รองรับ มันก็จะอ่านไม่ได้เลย ก็มีเหมือนกัน ทำให้เวลาเราจะเลือกใช้งาน เราก็ต้องมาดูด้วยว่า เราจะนำมาใช้งานกับใครอะไรยังไง เราจะได้เลือก Format ให้ได้ถูกระบบ จะได้ใช้ได้ไม่บ้าง
ในปัจจุบัน มี File System ออกมาให้เราใช้เยอะมาก ถ้าใครที่ใช้ macOS ก็น่าจะคุ้นเคยกับ APFS (Apple File System) ที่ออกแบบมาให้ทำงานเฉพาะกับ SSD บน macOS โดยเฉพาะ มี Feature โคตรเยอะ น่าเจ๋ง ๆ เพียบเลยละ หรืออย่าง Windows เองก็จะมี NTFS (New Technology File System) หรือจะเป็นพวก Ext4 ซึ่งจะใช้บน Linux กัน
นอกจากนั้นยังมี File System ที่ไม่ได้ขึ้นกับ OS อย่างเช่นพวก exFAT ตัวนี้เป็นตัวที่เราจะแนะนำให้คนที่ต้องการเอาพวก Flash Drive หรือ External HDD ที่ต้องการเสียบข้ามไปมาระหว่าง OS เลือกใช้เป็นตัวนี้เลย เพราะเป็นตัวที่ทุก OS สามารถอ่านได้หมดเลย ถือว่าเป็น File System กะหรี่ที่แท้จริง สะดวกมาก ๆ เวลาเราจะทำงานกับหลาย OS
ลบข้อมูลแล้วไปไหน
ภาพที่เรามักจะเข้าใจกันบ่อย ๆ ของการลบข้อมูลคือ ข้อมูล หรือ Bit ที่เกี่ยวของกับข้อมูลนั้น ๆ ถูกลบไปจริง ๆ คำพูดนี้ทั้งจริงและไม่จริง โดยที่ถ้าเป็นการลบทั่ว ๆ ไปเรากด Delete และลบออกจากถังขยะ ตัวไฟล์จริง ๆ มันไม่ได้ถูกลบไปหรอก แต่มันแค่ลบที่ตารางที่ File System ใช้อ้างอิงถึงข้อมูลจริง ๆ เท่านั้น ทำให้ OS ก็จะไม่สามารถเข้าถึงไฟล์ได้นั่นเอง พูดง่าย ๆ คือ ไฟล์มีอยู่ แต่เข้าถึงไม่ได้เท่านั้นเอง
พอ File System ถอดไฟล์นั้นออกจากตารางแล้ว มันก็จะ Mark ไว้ว่าจุดนี้ว่างนะ ทำให้พอจะมีข้อมูลมาเขียน มันก็จะอนุญาติให้เขียนได้ ตอนนี้แหละ ข้อมูลเราจะหายไปจริง ๆ เพราะจุดเดียวกันนี้ ถูกเขียนทับโดยข้อมูลใหม่ไปซะแล้ว Cycle ของข้อมูลมันก็จะอารมณ์ประมาณนี้แหละ มา ๆ ไป ๆ เรื่อย ๆ ทำให้การลบข้อมูลเฉย ๆ ถือว่าไม่ปลอดภัยสำหรับการลบข้อมูลแบบถาวร อาจจะต้องเอาเครื่องหรือที่เก็บข้อมูลไปให้คนอื่นใช้ต่อ
มันก็จะมีวิธีการลบไฟล์แบบปลอดภัยอยู่เช่นพวก File Shredder อยู่ หลักการของมันคือการลบไฟล์ปกตินี่แหละ แต่มันเพิ่มขั้นตอนของการเขียนข้อมูลขยะทับลงไปในส่วนนั้น ๆ ของสื่อที่เราใช้เก็บข้อมูลเพิ่มเติมด้วย หลักการเดียวกันนี้ก็เอามาใช้กับการล้างข้อมูลของทั้งสื่อ เช่น HDD หรือ SSD ทั้งลูกด้วย ก็คือ ลบ File System ออกไปแล้วเขียนข้อมูลขยะลงไปในทุกจุดของสื่อเลย ทำให้โอกาสที่จะกู้ข้อมูลกลับมาแทบจะเป็น 0 เลย
ข้อมูลที่ลบไปแล้วถูกกู้ได้อย่างไร ?
อย่างที่บอกว่า เวลาเราลบข้อมูลออกไปจากเครื่อง ข้อมูลมันไม่ได้หายไปไหนจริง ๆ หรอก แค่ส่วนที่มันชี้จาก File System มันหายไปเท่านั้นเลย ทำให้ข้อมูล เหมือน หายไป ดังนั้น การกู้ข้อมูลจากการเผลอลบ ทำได้ง่ายมาก ๆ (ง่ายเมื่อเทียบกับความเสียหายอื่น ๆ ละนะ) โดยผ่านพวกโปรแกรมกู้ข้อมูล
หลักการของโปรแกรมนี้มีเยอะมาก ๆ แต่ถ้าเอา Version ที่ง่ายที่สุดคือ มันจะเข้าไปอ่าน 0 และ 1 ออกจากสื่อของเรานี่แหละ แล้วพยายามที่จะทดลองสร้างไฟล์กลับเข้ามา สิ่งที่เรารู้คือโอเค มันมีข้อมูลหน้าตายังไงอยู่ในสื่อที่เราต้องการกู้ และเราอาจจะบอกมันว่า เราต้องการจะหาไฟล์ประเภทไหน มันอาจจะลองเอา Header เข้าไปจิ้มหา แล้วลอง Reconstruct ไฟล์ออกมา หรือถ้าเราไม่รู้เลย มันก็จะค่อย ๆ Search เอา Header หลาย ๆ แบบเข้าไปใหญ่ ของขยับขนาดของไฟล์ที่อ่านโน้นนี่ เพราะขั้นตอนที่ซับซ้อนแบบนี้แหละ ทำให้การกู้ข้อมูลนั้นใช้เวลานานมาก ๆ กว่าจะรันจบได้ โดยเฉพาะยิ่งขนาดใหญ่ ก็ยิ่งใช้เวลานานขึ้นเรื่อย ๆ นั่นเอง
การกู้แบบนี้จะสำเร็จได้ เมื่อส่วนที่เป็นข้อมูลจริง ๆ มันยังอยู่ ยังไม่ได้โดนเขียนทับไป จะเห็นได้ว่า ถ้าเกิดเราใช้พวก การ Format อย่างปลอดภัยที่มันจะเขียนข้อมูลขยะทับ มันก็จะทำให้การกู้ข้อมูลด้วยวิธีนี้มันก็จะเป็นไปไม่ได้เลย เพราะ State ของอุปกรณ์ภายในมันเปลี่ยนไปแล้วจะกู้ยังไง มันก็ไม่ได้อะไรออกมาอยู่ดี
ทำให้หลาย ๆ คนบอกว่า ถ้าเกิดรู้ตัวว่าข้อมูลหายแล้วต้องการจะกู้คือ ให้รีบ Shutdown เครื่องทันที เพื่อลดโอกาสที่ส่วนที่ใช้ในการเก็บข้อมูลที่เราต้องการจะได้ไม่โดนเขียนทับไปซะก่อน เพราะ File System เข้าใจว่ามันหายไปแล้วนั่นเอง
เคสที่รุนแรงกว่านั้น
การเผลอลบไฟล์มันเป็นเรื่องชิว ๆ เลย เมื่อเจอความเสียหายที่อาจจะเป็น Physical เลยเช่น Harddisk ตัวแผงวงจร หรือ Motor สำหรับหมุนจาน มันเสีย พวกนี้ช่างเทคนิค เขาจะพยายามหาส่วนอะไหล่ที่เสียเข้ามาลองเปลี่ยนสลับแล้วลองอ่านข้อมูล ถ้าพวกส่วนของข้อมูล และ File System ยังอยู่ครบ ก็สามารถเสียบแล้วโหลดข้อมูลออกมาได้เลย แต่ถ้าไม่ก็ต้องผ่านการกู้ข้อมูลด้วยวิธีแรกอีกรอบ
หรืออาจจะเป็น SSD ที่อาจจะมีปัญหากับ Controller ข้างในทำให้มันอ่านข้อมูลไม่ได้ ก็อาจจะต้องมีการเปลี่ยน Controller ใหม่ อาจจะต้องบัคกรีเปลี่ยน Controller แต่ไม่ว่าจะอะไหล่ใน HDD เสีย หรือ Controller ใน SSD มีปัญหา มันก็ต้องอาศัยช่างเทคนิคที่มีประสบการณ์ และอุปกรณ์ด้วย อ์ย่างการแกะ HDD เราไม่สามารถอยู่ดี ๆ นึกอย่างแกะที่ไหนก็ได้นะ มันจะต้องทำในห้องปลอดฝุ่นด้วยนะ ไม่งั้นฝุ่นอาจจะหล่นลงไปใน HDD เรามองไม่เห็นแล้วปิดฝาไปปรากฏหัวอ่านไปโดนฝุ่นนี่แตกเลยนะ ทิ้งเลยนะใช้งานไม่ได้แล้ว ทำให้การกู้ข้อมูลมันเลยมีราคาที่ค่อนข้างสูงมาก เพราะนอกจากช่างที่ต้องมีประสบการณ์แล้ว อุปกรณ์ก็แพงชิบหายด้วย
Machine Learning และ Data Recovery
การกู้ข้อมูล อย่างที่เราบอกว่า โปรแกรมพยายามจะหาส่วนที่น่าจะเป็นข้อมูลขึ้นมา ทีละชิ้น ๆ ไล่ ๆ Search ไปเรื่อย ๆ พวกนี้จะไม่มีปัญหาเลยถ้าเกิดว่าเราสามารถดึงข้อมูลมาได้ครบทุกส่วน และข้อมูลมันอาจจะอยู่ใกล้กันมาก ๆ และชิ้นใหญ่พอที่จะทำให้เครื่องประกอบร่างได้ แต่ถ้าไม่ละ ถ้าเกิดข้อมูลมันกระจายออกมาเป็นชิ้นเล็ก ๆ หรือ มันมีบางส่วนที่ขาดหายไปละ เราจะทำยังไงดี
ด้วยเทคโนโลยีในปัจจุบัน โดยเฉพาะ Machine Learning ที่กำลังพุ่งพร่านอยู่ตอนนี้ ก็ทำให้มีการนำ Machine Learning เข้ามาใช้งานกับงานพวก Data Recovery แล้ว เช่นการให้เครื่องพยายาม Reconstruct ข้อมูลที่ขาดหายไปด้วย Machine Learning หรือการสอนให้เครื่องเล่นเกมต่อ Data เข้าด้วยกันเหมือนกับเราเล่นต่อจิ๊กซอร์เลย
ส่วนใหญ่แล้วพวกโปรแกรมสำหรับการกู้ข้อมูล ต้องบอกเลยว่า ส่วนใหญ่ราคาคือ มหาโหดมาก ๆ เรากำลังคุยกันหลักล้าน หรือมากวก่านั้นเลย โดยเฉพาะพวกที่ใช้ในระดับ Lab ที่เขาให้บริการกู้ข้อมูลกัน หรือบาง Lab บอกว่าเป็น In-House Software ของเขาเลยก็มีเยอะมาก พวกการใช้ Machine Learning ในการทำ Data Recovery เราว่าเป็นปัญหาที่น่าสนใจมาก ๆ เลยละ
ถ้าเกิดข้อมูลเราหาย ต้องการกู้เราต้องทำอย่างไร
จริง ๆ ง่ายมาก ๆ เลย ก็คือ ไม่ว่าจะเกิดอะไรขึ้น สติ ต้องมาก่อน ถัดไปคือ ต้องพยายามปิดเครื่องให้ได้ เป้าหมายคือ เราต้องแยกสื่อที่เสียหายออกมาจากเครื่องให้ได้ก่อน อย่างที่บอกว่า บางทีถ้ามันเสียแค่ File System ข้อมูลยังอยู่ในนั้น โอกาสกู้ได้มันสูงมาก ๆ แต่ถ้าเราใส่เอาไว้นาน File System มันอาจจะอนุญาติให้เขียนข้อมูลทับลงไป หรือมันอาจจะเกิดจากระบบไฟ แรงดันไฟที่ไม่เสถียรทำให้ข้อมูลสูญหาย หรือแรงสั่นต่าง ๆ ดังนั้น เมื่อปัญหามันเกิดขึ้นแล้ว เราเลยต้องพยายามแยกมันออกมาให้ได้ ย้ำว่าด้วยความระมัดระวังมาก ๆ โดยเฉพาะอุปกรณ์ที่เปราะบางมาก ๆ อย่าง Hard Disk ย้ำมาก ๆ ว่าให้เบา ๆ กับมันอย่างแรงเลย
จากนั้นให้เอาไปส่งใน Lab ที่เรามีบริการรับกู้ข้อมูล ที่นั่นเขาจะมีช่างที่เชี่ยวชาญ และอุปกรณ์ที่จะสามารถจัดการให้เราได้ แค่นี้โอกาสที่เราจะได้ข้อมูลคืนก็สูงมากขึ้นเยอะแล้ว แต่ข้อห้ามอย่างแรงเลยคือ อย่า พยายาม กู้ เอง ถ้าทำไม่เป็น ใช่แล้วฮ่ะ บางคนอาจจะบอกว่า เห้ยลองไปหาโหลดพวกโปรแกรมกู้ข้อมูล แล้วลองรันดูก่อน อันนี้บอกเลยว่า อย่า หา ทำ เด็ดขาด ถ้าเราอยากจะได้ข้อมูลคืน และมันสำคัญมาก ๆ
อย่างที่บอก มันก็จะมีความเสี่ยงจาก Hardware และ Software อยู่ในนั้นเยอะมาก ๆ ซึ่งตอนนั้นเอาจริง ๆ คือ เราไม่รู้ไงว่ามันเกิดจากอะไรกันแน่ ทำให้เราต้องระวังในทุก ๆ อย่างที่ทำมาก ๆ
อันนี้นอกเรื่องหน่อย แต่ก็พออยู่ในเรื่องแหละ เวลาเกิดเหตุพวก Cyber Crime อะไรพวกนั้น เขาก็จะมีการยึดพวก Storage Media มาเป็นหลักฐานแน่ ๆ แต่เวลาเขาทำงานกัน เขาจะไม่เอา Media ที่ได้เป็นหลักฐานมาเปิดกันตรง ๆ แล้วทำงานได้เลยนะ แต่เขาจะต้อง Clone State ของ Media นั้น ๆ ผ่านอุปกรณ์พิเศษของเขาก่อน เพื่อให้แน่ใจว่า ข้อมูลต้นฉบับจะไม่เปลี่ยนแปลงไป เผื่อบางที ถ้าเราเสียบเข้าเครื่อง มันอาจจะวางกับดักที่อาจจะทำงานคล้าย ๆ กับพวก Rootkit พอเปิดเครื่องมาก็สั่งให้ลบข้อมูลที่อยู่ใน Media เพื่อทำลายหลักฐานมันก็ทำได้ หรือง่ายที่สุดเลยคือ เปิดเครื่องมา OS อ่านแล้วอาจจะมีการสั่งเขียนข้อมูลอะไรบางอย่างลงไปก็ได้ ข้อมูลที่เป็นหลักฐานมันก็จะหายไปตลอดกาลหรือมีการเปลี่ยนแปลงจนเอามาใช้เป็นหลักฐานไม่ได้ ทำให้การทำพวก Digital Forensic โดยเฉพาะกับพวก Data Storage เป็นเรื่องที่ต้องใช้ผู้เชี่ยวชาญมาก ๆ เลยทีเดียว
สรุป
เมื่อเราสั่งลบข้อมูลโดยปกติแล้ว ข้อมูลนั้นจะถูก ลบทิพย์ ก็คือ ส่วนที่ใช้อ้างอิงจาก File System จะถูกลบ ทำให้เครื่องเข้าใจว่า ข้อมูลนี้ไม่มีอยู่จริง แต่จริง ๆ แล้วส่วนของข้อมูลนั้นไม่ได้หายไปไหนเลย จนกว่าจะโดนเขียนทับไปอะนะ ทำให้โปรแกรมที่ใช้ในการกู้ข้อมูลก็จะใช้ช่องโหว่ของหลักการนี้แหละในการพยายามที่จะสร้างข้อมูลนี้กลับมาอีกครั้ง ทำให้ถ้าเราต้องการลบแบบกู้ไม่ได้เลย เราก็ต้องทำการใช้โปรแกรมสำหรับลบข้อมูลอย่างปลอดภัยโดยเฉพาะที่มันจะเข้าไปเขียนข้อมูลขยะเละ ๆ ทับลงไปทำให้เมื่อกู้ขึ้นมา มันก็จะกู้แล้วเจออะไรไม่รู้นั่นเอง และสุดท้ายเมื่อข้อมูลหาย หรือมีปัญหา อย่างแรกที่ต้องทำคือ มีสติ รีบปิดเครื่องให้เร็วที่สุด และ นำไปส่งที่ Lab กู้ข้อมูล ทำให้โอกาสที่เราจะได้ข้อมูลอันล้ำค่าของเราคืนมาสูงขึ้นได้ เหนือสิ่งอื่นใด เพื่อเป็นการป้องกัน ก็อย่าลืม Backup ข้อมูลด้วยนะ หายขึ้นมา เราก็เอาที่ Backup มาใช้งานได้เลย ไม่ต้องตกใจวิ่งแจ่นไปหา Lab กู้ข้อมูล