Security
น้องๆ เคยสงสัยไหมว่า ไอ้ไวรัสที่เราเจอกันทุกวันนี้เนี่ย มันทำงานยังไง? Malware Analysis ก็คือการ "ผ่าพิสูจน์" ไวรัสพวกนั้นแหละ เหมือนหมอชันสูตรศพเลย แต่เป็นศพดิจิทัลนะ สมัยผมทำร้านเน็ต SiamCafe เนี่ย เจอลูกค้าโดนไวรัสเล่นงานทุกวัน ต้องมานั่งไล่ดูว่ามันเปลี่ยนไฟล์อะไรไปบ้าง วุ่นวายสุดๆ
ทำไมมันถึงสำคัญ? ก็เพราะว่าถ้าเรารู้ว่าไวรัสทำงานยังไง เราก็ป้องกันมันได้ไง! เหมือนรู้จุดอ่อนของศัตรูอ่ะ แล้วยิ่งสมัยนี้ ไวรัสมันฉลาดขึ้นทุกวัน แฮกเกอร์มันเขียนโค้ดซับซ้อนกว่าเมื่อก่อนเยอะ ถ้าเราไม่รู้จัก Malware Analysis เราก็เหมือนคนตาบอดคลำทางในความมืดอ่ะน้องเอ๊ย
Static Analysis ก็เหมือนการอ่านคู่มือการใช้งานของไวรัสอ่ะน้อง คือเราดูโค้ดของมันเฉยๆ ไม่ต้องไปรันมันจริงๆ ข้อดีคือมันปลอดภัย ไม่ต้องกลัวเครื่องติดไวรัส แต่ข้อเสียคือบางทีโค้ดมันซับซ้อน อ่านยาก ถ้าคนเขียนไวรัสมันเก่งๆ มันก็เขียนโค้ดให้งงได้
# ตัวอย่างโค้ด Python ที่ obfuscated (ทำให้งง)
import base64
encoded_string = "SGVsbG8gV29ybGQh"
decoded_string = base64.b64decode(encoded_string).decode('utf-8')
print(decoded_string)
เห็นไหม? โค้ดดูเหมือนจะไม่มีอะไร แต่จริงๆ แล้วมัน encode ข้อความไว้ ถ้าเราไม่รู้ว่ามันใช้ base64 encode เราก็อ่านไม่ออก
Dynamic Analysis ก็คือการเอาไวรัสไปรันใน "ห้องทดลอง" หรือที่เรียกว่า Sandbox นั่นแหละ สมัยผมทำร้านเน็ต ผมเคยสร้างเครื่องเสมือน (Virtual Machine) ไว้หลายเครื่องเลย เอาไว้ลองรันโปรแกรมแปลกๆ ที่ลูกค้าเอามาให้ดู ถ้ามันเป็นไวรัส เครื่องก็พังแค่ใน VM ไม่กระทบเครื่องจริงของเรา
ข้อดีของ Dynamic Analysis คือเราได้เห็นไวรัสทำงานจริงๆ เห็นมันสร้างไฟล์อะไร เปลี่ยน registry ตรงไหน แต่ข้อเสียคือมันอันตราย ต้องระวังมากๆ ไม่งั้นเครื่องจริงอาจจะติดไวรัสไปด้วย
เริ่มต้นง่ายๆ เลยน้อง ลองหา Virtual Machine มาลงก่อนเลย VirtualBox หรือ VMware ก็ได้ แล้วโหลดพวกเครื่องมือ Malware Analysis มาลงไว้ พวก Process Monitor, Wireshark อะไรพวกนี้
แล้วก็เริ่มจากไฟล์ง่ายๆ ก่อนเลย พวกไฟล์ .exe ที่เราไม่รู้จัก ลองเอาไปรันใน VM แล้วดูว่ามันทำอะไรบ้าง ดูว่ามันสร้างไฟล์อะไร เปลี่ยนแปลง registry ตรงไหน หรือเชื่อมต่อกับอินเทอร์เน็ตไปที่ไหน
อย่างที่บอกไป หา Virtual Machine มาลงก่อนเลย สำคัญมากนะ! แล้วก็หาโปรแกรมพวก Process Monitor, Wireshark, Regshot มาลงไว้ พวกนี้เป็นเครื่องมือหากินเลย
Process Monitor เอาไว้ดูว่าโปรแกรมมันทำอะไรกับไฟล์และ registry Wireshark เอาไว้ดักจับ packet ที่โปรแกรมส่งออกไป Regshot เอาไว้เปรียบเทียบ registry ก่อนและหลังรันโปรแกรม
เอ้า! เริ่มเลย รันไฟล์ต้องสงสัยใน VM แล้วเปิด Process Monitor กับ Wireshark รอไว้เลย แล้วก็สังเกตดูว่ามันทำอะไรบ้าง
# ตัวอย่างการใช้ Process Monitor (สมมติ)
# - Filter process name: suspicious.exe
# - Filter operation: CreateFile, WriteFile, RegSetValue
ดูว่ามันสร้างไฟล์แปลกๆ ในโฟลเดอร์ Temp หรือเปล่า? หรือว่ามันพยายามเชื่อมต่อกับ IP address ที่เราไม่รู้จัก? ถ้าเจอก็สงสัยไว้ก่อนเลยว่าอาจจะเป็นไวรัส
อย่าลืมดู Registry ด้วยนะ พวกไวรัสมันชอบเข้าไปแก้ Registry เพื่อให้มันรันตัวเองตอนเปิดเครื่อง
หลังจากที่เราวิเคราะห์เสร็จแล้ว ก็ต้องทำ Report ด้วยนะ ว่าเราเจออะไรบ้าง แล้วก็สรุปว่ามันเป็นไวรัสชนิดไหน แล้วก็หาวิธีป้องกัน
สมัยผมทำร้านเน็ต ผมจะทำเป็น Wiki เก็บข้อมูลไวรัสที่เคยเจอ แล้วก็อัพเดท Anti-virus เป็นประจำ แล้วก็สอนลูกค้าให้ระวังเวลาโหลดไฟล์จากอินเทอร์เน็ต
ลองเข้าไปดูบทความอื่นๆ เพิ่มเติมได้ที่ SiamCafe Blog
จริงๆ แล้ว Malware Analysis มันมีหลาย Level นะ ตั้งแต่ Basic ที่เราคุยกันวันนี้ ไปจนถึง Advanced ที่ต้องใช้เครื่องมือเฉพาะทาง และต้องมีความรู้ด้าน Reverse Engineering เยอะมากๆ
อีกทางเลือกหนึ่งคือการใช้บริการ Online Sandbox พวก VirusTotal หรือ Hybrid Analysis พวกนี้มันจะช่วยวิเคราะห์ไฟล์ให้เราแบบอัตโนมัติ แต่ข้อเสียคือไฟล์ของเราจะถูกอัพโหลดไปบน Server ของเขา อาจจะไม่เหมาะกับไฟล์ที่เป็นความลับ
| Feature | Manual Malware Analysis | Online Sandbox |
|---|---|---|
| Cost | Free (Software cost) | Free/Paid (Limited analysis) |
| Privacy | High | Low (File uploaded) |
| Skill Required | Medium | Low |
| Control | Full | Limited |
อ่านเรื่องความปลอดภัยอื่นๆ ได้อีกที่ SiamCafe Blog
สมัยผมทำร้านเน็ต SiamCafe เนี่ย บอกเลยว่าเรื่องความปลอดภัยนี่สำคัญสุดๆ เพราะลูกค้าสารพัดรูปแบบ แถมโปรแกรมเถื่อนก็เยอะ (สมัยนั้นนะ) เลยต้องมีมาตรการป้องกันตัวเองและลูกค้าเราด้วย
Best practices ที่ผมใช้แล้วได้ผลดี คือ "ป้องกันไว้ก่อน ดีกว่าแก้ทีหลัง" ครับ มอง malware เหมือนยุงลาย ถ้าไม่กำจัดแหล่งเพาะพันธุ์ เดี๋ยวก็กลับมาอีก
ตอนนั้น Ghost Image นี่คือพระเอกเลยครับ ลง Windows ใหม่เสร็จ ติดตั้งโปรแกรมจำเป็น ปรับแต่ง Registry ให้เรียบร้อย แล้วทำ Image เก็บไว้ พอเครื่องไหนติดไวรัส ก็ Ghost ทับเลย เร็วกว่ามานั่งไล่ลบ malware เป็นชาติ
# สมมติว่าใช้ Ghost ใน DOS (สมัยนั้น!)
ghost -clone,mode=pload,src=d:\image.gho:1,dst=1:1
อย่าให้ลูกค้าใช้ Account Admin เด็ดขาด! สร้าง User ธรรมดาให้ใช้เท่านั้น เพราะ malware ส่วนใหญ่มันต้องใช้สิทธิ์ Admin ในการติดตั้งตัวเอง ถ้าไม่มีสิทธิ์ ก็จบเห่
อันนี้ Advance ขึ้นมาหน่อย แต่คุ้มค่า SRP ช่วยให้เรากำหนดได้ว่าโปรแกรมอะไรบ้างที่สามารถรันได้ในเครื่อง เช่น กำหนดว่า .exe ที่อยู่ใน Temp folder รันไม่ได้ หรือโปรแกรมที่อยู่ใน C:\Windows\System32 ที่ไม่ใช่ของ Microsoft ห้ามรัน
SRP เปรียบเสมือนยามหน้าประตู ที่คอยตรวจตราว่าใครบ้างที่ได้รับอนุญาตให้เข้าบ้าน
Deep Freeze นี่เหมือนแช่แข็งทุกอย่างบนเครื่อง Restart ทีไร กลับมาเหมือนเดิมเป๊ะ เหมาะกับร้านเน็ตที่ต้องการความง่าย แต่ข้อเสียคือ ลูกค้าจะ Save อะไรไม่ได้เลย ต้องบอกก่อน ไม่งั้นมีเคือง
สมัยผมใช้ Deep Freeze ควบคู่กับ Image และ SRP ครับ ป้องกัน 3 ชั้นเลยทีเดียว
Anti-virus มันเก่งนะ แต่ก็ไม่ได้ครอบจักรวาล Malware ใหม่ๆ เกิดขึ้นทุกวัน Anti-virus อาจจะยังไม่รู้จัก ถ้าเราวิเคราะห์เองได้ เราจะรู้ว่ามันทำงานยังไง จะได้ป้องกันและกำจัดได้ตรงจุด
มันดีทั้งคู่ครับ Static เหมือนอ่านคู่มือรถ Dynamic เหมือนลองขับรถจริงๆ Static ช่วยให้เราเห็นโครงสร้างของโปรแกรม Dynamic ช่วยให้เราเห็นพฤติกรรมตอนทำงาน ควรทำทั้งคู่ เพื่อให้ได้ข้อมูลที่ครบถ้วน
Virtual Machine (VM) คือคำตอบครับ VMware, VirtualBox เลือกเอาตามสะดวก สำคัญคือต้องแยกออกจาก Network จริงของเรา ป้องกัน Malware แพร่กระจายออกมา
อีกอย่างคือ snapshot ก่อนรัน Malware ทุกครั้ง เผื่อพลาดพลั้ง จะได้ย้อนกลับไปจุดเดิมได้
Malware Analysis ไม่ใช่เรื่องยากอย่างที่คิด เริ่มจาก Basic ก่อน ทำความเข้าใจหลักการ แล้วค่อยๆ เรียนรู้เทคนิคที่ Advance ขึ้นไป อย่ากลัวที่จะลองผิดลองถูก ประสบการณ์จะสอนเราเอง
สมัยผมทำร้านเน็ตเจอปัญหาเยอะแยะ แต่ก็ทำให้ได้เรียนรู้และพัฒนาตัวเองตลอดเวลา ลองเข้าไปอ่านประสบการณ์อื่นๆ ของผมได้ที่ SiamCafe Blog นะครับ
สุดท้ายนี้ ผมขอฝาก iCafeForex ไว้ด้วยนะครับ เผื่อใครสนใจเรื่อง Forex