Malware Analysis Fundamentals — วิเคราะห์ไฟล์ต้องสงสัยด้วย Static Analysis, SHA-256, File Signature และ IOC
สมมติว่าคุณได้รับไฟล์แนบชื่อ Invoice_2026.pdf.exe ผ่านทางอีเมล ผู้ส่งแจ้งว่าเป็นใบแจ้งหนี้สำคัญ ที่ต้องเปิดตรวจสอบทันที
เมื่อมองผ่านชื่อไฟล์ อาจดูเหมือน เอกสาร PDF ธรรมดา แต่ส่วนขยายสุดท้ายกลับเป็น .exe ซึ่งเป็นไฟล์ประเภทที่สามารถรัน โปรแกรมบน Windows ได้
คำถามคือ เราจะตรวจสอบไฟล์นี้ โดยไม่เสี่ยงเปิดใช้งานโปรแกรม ที่อาจเป็นอันตรายได้อย่างไร?
นี่คือจุดเริ่มต้นของ Malware Analysis หรือกระบวนการวิเคราะห์ซอฟต์แวร์ ที่อาจมีพฤติกรรมประสงค์ร้าย
บทความนี้จาก Techerest จะพาคุณเรียนรู้การวิเคราะห์ไฟล์ ด้วย Static Analysis, SHA-256, File Signature และ Indicators of Compromise (IOC) พร้อม Hands-on Lab ที่ปลอดภัย บน Windows 11 และ Linux
เป้าหมายไม่ใช่การทดลองรัน Malware แต่เป็นการฝึกตรวจสอบหลักฐาน เพื่อประเมินความเสี่ยงก่อนตัดสินใจ ดำเนินการขั้นต่อไป
1. Malware คืออะไร และทำไมต้องวิเคราะห์?
Malware หรือ Malicious Software คือซอฟต์แวร์ที่มีวัตถุประสงค์ สร้างผลกระทบที่เป็นอันตราย ต่อข้อมูล อุปกรณ์ หรือระบบ เช่น ขโมยข้อมูล ควบคุมเครื่อง หรือทำให้บริการหยุดชะงัก
1.1 ประเภทของ Malware
- Trojan: ปลอมตัวเป็นโปรแกรมปกติ เพื่อหลอกให้ผู้ใช้ติดตั้งหรือรัน
- Ransomware: เข้ารหัสข้อมูลหรือใช้การข่มขู่ เพื่อเรียกค่าไถ่
- Spyware: ลอบติดตามหรือรวบรวมข้อมูล
- Infostealer: มุ่งขโมย Credentials, Cookies หรือข้อมูลสำคัญ
- Worm: สามารถแพร่กระจายระหว่างระบบได้
- Remote Access Trojan (RAT): เปิดช่องให้ผู้โจมตีควบคุมอุปกรณ์ จากระยะไกล
- Rootkit: ใช้เทคนิคซ่อนการทำงาน หรือการเข้าถึงระบบโดยไม่ได้รับอนุญาต
1.2 ทำไม Malware Analysis จึงสำคัญ?
การวิเคราะห์ Malware ช่วยให้ Security Analyst สามารถ ตอบคำถามสำคัญได้ เช่น
- ไฟล์นี้เป็นไฟล์ประเภทใด?
- ไฟล์ถูกเปลี่ยนแปลงจากต้นฉบับหรือไม่?
- มีสัญญาณเกี่ยวข้องกับภัยคุกคามหรือไม่?
- มีระบบใดได้รับไฟล์ลักษณะเดียวกัน?
- ควรเก็บหลักฐานเพิ่มเติมหรือไม่?
- ต้องดำเนินการ Incident Response หรือไม่?
อย่างไรก็ตาม การตรวจสอบข้อมูลเบื้องต้น ไม่สามารถยืนยันได้ทุกกรณีว่า ไฟล์ปลอดภัยหรือเป็น Malware จึงต้องพิจารณาหลักฐานหลายด้านร่วมกัน
2. Static Analysis และ Dynamic Analysis ต่างกันอย่างไร?
Malware Analysis แบ่งแนวทางกว้าง ๆ ได้เป็นการวิเคราะห์โดยไม่รันไฟล์ และการวิเคราะห์พฤติกรรมขณะทำงาน
2.1 Static Analysis
Static Analysis คือการตรวจสอบโครงสร้างและข้อมูลของไฟล์ โดยไม่เรียกใช้งานโค้ดภายในไฟล์
ตัวอย่างการตรวจสอบ ได้แก่
- File Name และ Extension
- File Size
- SHA-256 Hash
- Magic Bytes หรือ File Signature
- Embedded Strings
- Executable Headers และ Metadata
- Digital Signature
- Known Indicators of Compromise
2.2 Dynamic Analysis
Dynamic Analysis คือการศึกษาพฤติกรรมของโปรแกรม ขณะทำงานในสภาพแวดล้อมที่ควบคุมได้
ตัวอย่างข้อมูลที่อาจตรวจสอบ ได้แก่ Process Activity, File Changes, Registry Changes และ Network Connections
การวิเคราะห์ประเภทนี้มีความเสี่ยงสูงกว่า เพราะต้องจัดการกับการทำงาน ของโปรแกรมที่อาจเป็นอันตรายจริง
2.3 ควรเริ่มจากวิธีใด?
สำหรับผู้เริ่มต้น ควรเริ่มด้วย Static Analysis บนไฟล์ตัวอย่างที่ปลอดภัย โดยใช้เครื่องมือแบบอ่านข้อมูลเท่านั้น
หากเป็นไฟล์ที่สงสัยว่าเป็น Malware จริง ไม่ควรเปิดหรือรันบนเครื่องทำงานประจำวัน และควรส่งต่อกระบวนการวิเคราะห์ขั้นสูง ให้ผู้รับผิดชอบที่มีระบบ Lab และมาตรการควบคุมเหมาะสม
3. SHA-256 — รู้จักลายนิ้วมือดิจิทัลของไฟล์
SHA-256 เป็น Cryptographic Hash Algorithm ที่สร้างผลลัพธ์ความยาว 256 บิต จากข้อมูลต้นฉบับ
ค่า SHA-256 มักแสดงในรูปแบบ เลขฐานสิบหก 64 ตัวอักษร
3.1 SHA-256 ใช้ทำอะไร?
- ตรวจสอบความถูกต้องของไฟล์
- เปรียบเทียบไฟล์กับค่าอ้างอิง
- ช่วยระบุไฟล์ที่ตรงกับ Known Malware Hash
- ใช้จัดทำหลักฐานในงาน Digital Forensics
- ตรวจสอบว่าตัวอย่างไฟล์เปลี่ยนแปลงหรือไม่
3.2 ตัวอย่าง SHA-256
ค่า SHA-256 ของข้อความ ASCII ที่ประกอบด้วยตัวอักษร abc โดยไม่มี Newline คือ
ba7816bf8f01cfea414140de5dae2223
b00361a396177a9cb410ff61f20015ad
ค่านี้เป็น Test Vector ที่สามารถใช้ตรวจสอบเครื่องมือคำนวณ Hash ได้
3.3 SHA-256 บอกว่าไฟล์ปลอดภัยหรือไม่?
ไม่สามารถยืนยันได้โดยตรง
หาก Hash ตรงกับฐานข้อมูล ของ Malware ที่เชื่อถือได้ อาจเป็นหลักฐานสำคัญ ว่าไฟล์ตรงกับตัวอย่างที่เคยตรวจพบ
แต่หากไม่พบ Hash ในฐานข้อมูล ก็ไม่ได้หมายความว่าไฟล์ปลอดภัย เพราะอาจเป็นไฟล์ใหม่ หรือไฟล์ที่ยังไม่เคยถูกวิเคราะห์
3.4 Hash กับ Digital Signature ต่างกันอย่างไร?
Hash ใช้ตรวจสอบความตรงกันของเนื้อหา ขณะที่ Digital Signature ใช้กลไกการเข้ารหัสแบบกุญแจสาธารณะ เพื่อช่วยตรวจสอบความถูกต้อง และความสัมพันธ์กับผู้ลงลายเซ็น
ไฟล์ที่มี Digital Signature ถูกต้อง ก็ยังไม่สามารถรับประกัน ว่าไม่มีพฤติกรรมประสงค์ร้าย
4. File Signature และ Magic Bytes คืออะไร?
File Extension เช่น .pdf, .jpg หรือ .exe เป็นส่วนหนึ่งของชื่อไฟล์ ซึ่งสามารถเปลี่ยนได้โดยง่าย
แต่ไฟล์หลายประเภทมีโครงสร้าง หรือข้อมูลเฉพาะที่เรียกว่า Magic Bytes หรือ File Signature ซึ่งช่วยระบุชนิดไฟล์จากเนื้อหาจริง
4.1 ตัวอย่าง File Signatures
| File Type | Hex Signature | รายละเอียด |
|---|---|---|
| Windows PE | 4D 5A | MZ DOS Header |
| 25 50 44 46 2D | %PDF- | |
| PNG | 89 50 4E 47 0D 0A 1A 0A | PNG Signature |
| ZIP | 50 4B 03 04 | ZIP Local Header |
| ELF | 7F 45 4C 46 | Linux/Unix ELF |
4.2 กรณีตัวอย่าง: ไฟล์ PDF ปลอม
สมมติพบไฟล์ชื่อ
invoice.pdf
แต่เมื่ออ่านส่วนต้นของไฟล์ กลับพบค่า
4D 5A
ค่า MZ เป็นลักษณะหนึ่ง ที่พบในโครงสร้างไฟล์ Windows PE จึงควรตรวจสอบเพิ่มเติม ว่าไฟล์นี้เป็น Executable ที่ถูกเปลี่ยนชื่อหรือไม่
ข้อควรระวัง: การพบ MZ เพียงสองไบต์ ไม่เพียงพอจะยืนยันว่าเป็น PE ที่ถูกต้อง ต้องตรวจสอบโครงสร้าง PE Header และข้อมูลอื่นประกอบ
4.3 ข้อจำกัดของ File Signature
- บางชนิดไฟล์ใช้ Signature ร่วมกัน
- ไฟล์อาจถูกตัดทอนหรือเสียหาย
- ไฟล์แบบ Polyglot อาจตีความได้หลายรูปแบบ
- Magic Bytes ไม่ได้ยืนยันว่าเนื้อหาไม่เป็นอันตราย
5. IOC — Indicators of Compromise คืออะไร?
Indicators of Compromise (IOC) คือหลักฐานหรือสิ่งบ่งชี้ ที่อาจสัมพันธ์กับการบุกรุก หรือกิจกรรมที่เป็นอันตราย
IOC ช่วยให้ Security Analyst ค้นหาเหตุการณ์ที่เกี่ยวข้อง ใน Endpoint, Network และ Logs
5.1 ตัวอย่าง IOC
| IOC Type | ตัวอย่าง |
|---|---|
| File Hash | SHA-256 ของไฟล์ต้องสงสัย |
| IP Address | IP ที่พบในเหตุการณ์ |
| Domain | โดเมนที่เกี่ยวข้องกับกิจกรรมผิดปกติ |
| URL | ตำแหน่งที่เกี่ยวข้องกับการโจมตี |
| File Path | ตำแหน่งไฟล์ที่ต้องตรวจสอบ |
| Registry | ค่าที่เกี่ยวข้องกับ Persistence |
| Process | ชื่อและพฤติกรรมของ Process |
5.2 IOC ไม่เท่ากับหลักฐานยืนยันการโจมตี
การพบ IP, Domain หรือชื่อไฟล์ ที่อยู่ใน Threat Intelligence ไม่ได้หมายความว่าระบบ ถูกโจมตีสำเร็จเสมอไป
ต้องพิจารณาบริบท ความน่าเชื่อถือของแหล่งข้อมูล ระยะเวลาที่ IOC ยังมีความเกี่ยวข้อง และหลักฐานสนับสนุนอื่น
5.3 IOC กับ TTP ต่างกันอย่างไร?
IOC มักเป็นร่องรอย หรือสิ่งบ่งชี้เฉพาะที่ตรวจพบได้
ส่วน TTPs หรือ Tactics, Techniques and Procedures อธิบายแนวทางและวิธีการ ที่ผู้โจมตีใช้ดำเนินกิจกรรม
ตัวอย่างเช่น SHA-256 ของไฟล์ เป็น File Indicator ขณะที่การใช้โปรแกรมบางประเภท เพื่อสร้าง Persistence เป็นพฤติกรรมที่สามารถวิเคราะห์ ในระดับ Technique ได้
การตรวจจับจากพฤติกรรม ช่วยเสริมการตรวจจับจาก Hash ซึ่งอาจเปลี่ยนทันที เมื่อมีการแก้ไขไฟล์
6. Malware Analysis Workflow — ขั้นตอนการวิเคราะห์อย่างเป็นระบบ
ก่อนตรวจสอบไฟล์จริง ควรวางกระบวนการทำงาน ให้ลดการเปลี่ยนแปลงหลักฐาน และลดโอกาสเกิดอันตราย
6.1 ขั้นตอนการทำงาน
- Intake: รับแจ้งเหตุและบันทึกที่มาของไฟล์
- Preservation: เก็บรักษาหลักฐานตามนโยบาย
- Hashing: คำนวณ SHA-256
- File Identification: ตรวจสอบชนิดไฟล์จริง
- Static Inspection: ตรวจสอบ Metadata และโครงสร้าง
- Threat Correlation: เปรียบเทียบกับ IOC ที่น่าเชื่อถือ
- Assessment: ประเมินความเสี่ยงและความเชื่อมั่น
- Reporting: จัดทำรายงานและเสนอการดำเนินการ
6.2 หลักการเก็บหลักฐาน
เมื่อเกี่ยวข้องกับเหตุการณ์จริง ควรเก็บข้อมูลต่อไปนี้
- เวลาที่ได้รับหรือค้นพบไฟล์
- แหล่งที่มาของไฟล์
- Original File Name
- File Size
- SHA-256 Hash
- ผู้รับผิดชอบและประวัติการส่งมอบ
- เครื่องมือและเวอร์ชันที่ใช้วิเคราะห์
หากไฟล์เป็นหลักฐานในคดี หรือเหตุการณ์ร้ายแรง ต้องปฏิบัติตามข้อกำหนด ด้าน Chain of Custody และนโยบายขององค์กร
6.3 ข้อควรระวังในการจัดการไฟล์ต้องสงสัย
ไม่ควรดับเบิลคลิก เปิด Preview หรือทดลองเรียกใช้งานไฟล์ ที่สงสัยว่าเป็น Malware บนเครื่องทำงานปกติ
สำหรับไฟล์ที่อาจเป็นอันตรายจริง ต้องใช้เครื่องมือและสภาพแวดล้อม ที่องค์กรอนุญาต เพราะแม้เครื่องมือวิเคราะห์ไฟล์ ก็อาจมีช่องโหว่ในการประมวลผล ข้อมูลที่ถูกสร้างขึ้นมาโดยผู้โจมตี
7. Hands-on Lab: Static Analysis บน Windows 11
Lab นี้ใช้ไฟล์ข้อความจำลอง ที่สร้างขึ้นด้วยตนเอง ไม่ใช้ Malware จริง
เครื่องมือที่ใช้คือ PowerShell ซึ่งมีอยู่ใน Windows 11
7.1 สร้างโฟลเดอร์ Lab
$Lab = Join-Path $HOME "Techerest-Malware-Lab"
New-Item -ItemType Directory `
-Path $Lab -Force
คำสั่งนี้สร้างโฟลเดอร์ สำหรับทดลองภายในบัญชีผู้ใช้
7.2 สร้างไฟล์ตัวอย่างที่ปลอดภัย
$Sample = Join-Path $Lab "sample.txt"
[System.IO.File]::WriteAllText(
$Sample,
"TECHEREST SAFE STATIC ANALYSIS LAB",
[System.Text.Encoding]::ASCII
)
ไฟล์นี้เป็นข้อความธรรมดา ไม่มีโค้ด Malware และไม่มีคำสั่งให้รันโปรแกรม
7.3 ตรวจสอบข้อมูลพื้นฐาน
Get-Item -LiteralPath $Sample |
Select-Object Name,
Length,
Extension,
CreationTimeUtc,
LastWriteTimeUtc
ข้อมูลนี้ช่วยระบุชื่อไฟล์ ขนาด ส่วนขยาย และเวลาใน Metadata
อย่างไรก็ตาม File Timestamps สามารถเปลี่ยนแปลงได้ จึงไม่ควรใช้เป็นหลักฐานเดียว เพื่อสรุปเวลาเกิดเหตุการณ์
7.4 คำนวณ SHA-256
Get-FileHash -LiteralPath $Sample `
-Algorithm SHA256 |
Format-List
คำสั่งจะแสดง Algorithm, Hash และ Path
ให้บันทึกค่า Hash เพื่อนำมาเปรียบเทียบ ในขั้นตอนถัดไป
7.5 ตรวจสอบ Hexadecimal Header
Format-Hex -LiteralPath $Sample
คุณควรเห็นข้อมูล Hexadecimal ที่สัมพันธ์กับข้อความ TECHEREST SAFE STATIC ANALYSIS LAB
ตัวอย่างส่วนต้นของไฟล์
54 45 43 48 45 52 45 53 54
เมื่อนำค่าเหล่านี้ไปแปลงเป็น ASCII จะได้ข้อความว่า
TECHEREST
7.6 ทดลองเปลี่ยนชื่อไฟล์
คัดลอกไฟล์ตัวอย่าง และเปลี่ยนส่วนขยายเป็น .pdf
$Renamed = Join-Path $Lab "sample.pdf"
Copy-Item -LiteralPath $Sample `
-Destination $Renamed
จากนั้นตรวจสอบ Hash ของไฟล์ทั้งสอง
Get-FileHash -LiteralPath $Sample `
-Algorithm SHA256
Get-FileHash -LiteralPath $Renamed `
-Algorithm SHA256
ผลที่คาดหวัง: ค่า SHA-256 ของทั้งสองไฟล์ ต้องตรงกัน เนื่องจากเนื้อหา ไม่ถูกเปลี่ยนแปลง
แม้ไฟล์ใหม่ใช้ส่วนขยาย .pdf แต่เนื้อหาภายในยังเป็นข้อความ ASCII ไม่ใช่เอกสาร PDF ที่ถูกต้อง
นี่แสดงให้เห็นว่า File Extension ไม่ใช่หลักฐาน ยืนยันประเภทของไฟล์
7.7 ทดลองเปลี่ยนเนื้อหาไฟล์
Add-Content -LiteralPath $Sample `
-Value "CHANGED"
จากนั้นคำนวณ Hash อีกครั้ง
Get-FileHash -LiteralPath $Sample `
-Algorithm SHA256
Get-FileHash -LiteralPath $Renamed `
-Algorithm SHA256
ผลที่คาดหวัง: ค่า Hash ของสองไฟล์จะต่างกัน เพราะเนื้อหาของ sample.txt ถูกแก้ไขแล้ว
Lab นี้ช่วยให้เข้าใจการใช้งาน Hash สำหรับตรวจสอบ File Integrity ด้วยตนเอง
8. Hands-on Lab: Static Analysis บน Linux
สำหรับผู้ใช้ Ubuntu, Debian หรือ Linux Distribution อื่น สามารถใช้คำสั่งมาตรฐาน เพื่อฝึกตรวจสอบไฟล์ได้
8.1 สร้างโฟลเดอร์ Lab
mkdir -p ~/techerest-malware-lab
cd ~/techerest-malware-lab
8.2 สร้างไฟล์ทดสอบ
printf 'TECHEREST SAFE STATIC ANALYSIS LAB' \
> sample.txt
8.3 ตรวจสอบชนิดไฟล์
file sample.txt
คำสั่ง file ใช้วิเคราะห์ข้อมูล และรูปแบบของเนื้อหา เพื่อประมาณชนิดไฟล์
สำหรับไฟล์ที่สร้างใน Lab นี้ ผลลัพธ์โดยทั่วไปจะแสดง ว่าเป็นข้อความ ASCII
8.4 คำนวณ SHA-256
sha256sum sample.txt
ผลลัพธ์จะแสดงค่า SHA-256 พร้อมชื่อไฟล์
8.5 ตรวจสอบ Magic Bytes
xxd -l 32 sample.txt
หากไม่มี xxd สามารถใช้คำสั่ง od ที่มีในระบบ Linux ทั่วไป
od -An -tx1 -N32 sample.txt
8.6 ทดลองเปลี่ยน Extension
cp sample.txt sample.pdf
file sample.pdf
ผลที่คาดหวัง: แม้เปลี่ยนชื่อไฟล์เป็น .pdf คำสั่ง file ยังคงระบุ ว่าเนื้อหามีลักษณะเป็นข้อความ
หมายเหตุ: ผลลัพธ์ของ file เป็นการระบุประเภทตาม Signature และ Heuristics ไม่ใช่การรับรองว่าไฟล์ปลอดภัย
9. Python Lab — สร้างเครื่องมือตรวจสอบไฟล์เบื้องต้น
Python สามารถใช้พัฒนา เครื่องมือช่วยวิเคราะห์ข้อมูลไฟล์ โดยไม่จำเป็นต้องใช้ Library ภายนอก
ตัวอย่างนี้ตรวจสอบ File Size, SHA-256 และ Magic Bytes เบื้องต้น
9.1 Python Static File Inspector
from pathlib import Path
import hashlib
import sys
SIGNATURES = {
"PNG": bytes.fromhex("89504E470D0A1A0A"),
"PDF": b"%PDF-",
"ELF": bytes.fromhex("7F454C46"),
"ZIP": bytes.fromhex("504B0304"),
"MZ Header": b"MZ",
}
def sha256_file(path):
digest = hashlib.sha256()
with path.open("rb") as f:
for chunk in iter(
lambda: f.read(1024 * 1024),
b""
):
digest.update(chunk)
return digest.hexdigest()
def inspect_file(path):
if not path.is_file():
print("File not found")
return
with path.open("rb") as f:
header = f.read(32)
matches = [
name
for name, signature in SIGNATURES.items()
if header.startswith(signature)
]
print("Name:", path.name)
print("Size:", path.stat().st_size)
print("SHA256:", sha256_file(path))
print("Header:", header.hex(" ").upper())
print("Signature Candidates:",
", ".join(matches) if matches
else "Unknown")
print(
"Note: Signature matching does not "
"prove that a file is safe or valid."
)
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python inspector.py FILE")
sys.exit(1)
inspect_file(Path(sys.argv[1]))
9.2 วิธีใช้งาน
บันทึกโค้ดเป็นไฟล์
inspector.py
จากนั้นทดลองกับไฟล์ข้อความ ที่สร้างขึ้นใน Lab
python inspector.py sample.txt
9.3 ผลลัพธ์ที่ได้
โปรแกรมจะแสดงชื่อไฟล์ ขนาด SHA-256 และข้อมูลส่วนต้น ในรูปแบบ Hexadecimal
หากไม่พบ Signature ที่กำหนด จะแสดง Unknown ซึ่งหมายถึงไม่ตรงกับรายการ ที่โปรแกรมตรวจสอบเท่านั้น
ข้อจำกัด: โปรแกรมนี้เป็นตัวอย่างพื้นฐาน ไม่ได้ตรวจสอบโครงสร้างไฟล์ทั้งหมด ไม่ได้ทำ Malware Detection และไม่ควรนำไปใช้เป็นระบบ ตัดสินความปลอดภัยแบบอัตโนมัติ
การตรวจสอบ MZ Header เพียงอย่างเดียวไม่ได้ยืนยัน ว่าไฟล์มีโครงสร้าง Windows PE ที่ถูกต้อง
10. Digital Signature — ตรวจสอบผู้ลงลายเซ็นไฟล์ Windows
ไฟล์โปรแกรม Windows บางประเภท มี Authenticode Signature เพื่อช่วยตรวจสอบลายเซ็น และความถูกต้องของข้อมูล
10.1 ตรวจสอบด้วย PowerShell
Get-AuthenticodeSignature `
-LiteralPath "C:\Path\To\File.exe" |
Format-List
เปลี่ยน Path เป็นไฟล์ ที่ได้รับอนุญาตให้ตรวจสอบ และไม่จำเป็นต้องรันไฟล์นั้น
10.2 ผลลัพธ์ที่ควรพิจารณา
- Signature Status
- Signer Certificate
- Certificate Validity
- ความสัมพันธ์กับผู้ผลิตที่คาดหวัง
10.3 Digital Signature ยืนยันว่าไฟล์ปลอดภัยหรือไม่?
ไม่ได้ยืนยันอย่างสมบูรณ์ เพราะโปรแกรมที่มีลายเซ็นถูกต้อง ก็อาจมีช่องโหว่หรือพฤติกรรม ที่เป็นอันตรายได้
ในทางกลับกัน โปรแกรมที่ไม่มีลายเซ็น ก็ไม่ได้หมายความว่าเป็น Malware เสมอไป
จึงควรตรวจสอบลายเซ็นร่วมกับ Hash, File Metadata, Source และบริบทของเหตุการณ์
11. IOC Investigation — เชื่อมโยงหลักฐานกับภัยคุกคาม
หลังจากได้ SHA-256 และข้อมูลของไฟล์ ขั้นตอนถัดไปคือการตรวจสอบ ว่ามีหลักฐานเชื่อมโยง กับภัยคุกคามที่รู้จักหรือไม่
11.1 ตัวอย่าง Investigation Workflow
- บันทึก SHA-256 ของไฟล์
- ตรวจสอบชื่อและประเภทไฟล์
- ตรวจสอบ Digital Signature หากเกี่ยวข้อง
- เปรียบเทียบกับแหล่ง Threat Intelligence ที่เชื่อถือได้
- ค้นหาหลักฐานเพิ่มเติมจาก Endpoint Logs
- ประเมินความน่าเชื่อถือของข้อมูล
- จัดทำผลการวิเคราะห์
11.2 เครื่องมือที่เกี่ยวข้อง
- VirusTotal: ใช้ค้นหาข้อมูลเกี่ยวกับ Hash และผลการวิเคราะห์จากหลายแหล่ง
- YARA: ใช้เขียนกฎตรวจจับรูปแบบ หรือคุณลักษณะของไฟล์
- PEStudio: ใช้ตรวจสอบโครงสร้าง และข้อมูลของ Windows PE
- Detect It Easy: ช่วยตรวจสอบ File Format และคุณลักษณะของไฟล์
- Microsoft Defender: ใช้ตรวจสอบภัยคุกคามบน Endpoint
11.3 ข้อควรระวังเรื่องข้อมูลส่วนตัว
ไม่ควรอัปโหลดไฟล์ภายในองค์กร เอกสารลูกค้า หรือข้อมูลลับ ไปยังบริการวิเคราะห์ภายนอก โดยไม่มีการอนุมัติ
การค้นหาด้วย Hash มักลดความจำเป็นในการส่งไฟล์จริง แต่ยังต้องพิจารณานโยบาย การเปิดเผย Metadata และข้อมูล กับผู้ให้บริการภายนอกด้วย
11.4 ผลจาก Threat Intelligence ต้องตีความอย่างไร?
หากไม่พบข้อมูลตรงกับ Hash ไม่ควรสรุปว่าไฟล์ปลอดภัย
หากพบ Detection เพียงบาง Engine ก็ควรตรวจสอบเพิ่มเติม เพราะอาจเป็น False Positive หรือมีความแตกต่างด้าน Detection Logic ของแต่ละผลิตภัณฑ์
จำนวน Detection ไม่ใช่คะแนนความเสี่ยง ที่สามารถตีความแบบตายตัวได้
12. YARA Fundamentals — รู้จักการตรวจจับด้วย Rule
YARA เป็นเครื่องมือสำหรับระบุ และจัดประเภทไฟล์ จากรูปแบบข้อมูลที่กำหนด
Security Analyst สามารถสร้าง Rule เพื่อค้นหาข้อความหรือ Byte Pattern ที่สัมพันธ์กับตัวอย่างไฟล์
12.1 ตัวอย่าง YARA Rule ที่ปลอดภัย
ตัวอย่างนี้ออกแบบมา เพื่อตรวจจับข้อความในไฟล์ Lab ที่เราสร้างขึ้นเอง
rule Techerest_Safe_Lab
{
meta:
description = "Safe training rule"
author = "Techerest"
strings:
$marker = "TECHEREST SAFE STATIC ANALYSIS LAB"
condition:
$marker
}
12.2 วิธีทดลอง
เมื่อมี YARA ที่ติดตั้ง จากแหล่งทางการและตรวจสอบแล้ว ให้บันทึก Rule เป็น
techerest_lab.yar
จากนั้นใช้คำสั่ง
yara techerest_lab.yar sample.txt
ผลที่คาดหวัง: หาก sample.txt ยังมีข้อความ ที่ตรงกับ Rule เครื่องมือจะแสดงชื่อ Rule และไฟล์ที่ตรงเงื่อนไข
12.3 YARA Detection มีข้อจำกัดอย่างไร?
YARA Rule สามารถให้ผลตรงเงื่อนไข โดยไม่ได้หมายความว่าไฟล์เป็น Malware
Rule ที่กว้างเกินไปอาจให้ False Positive และ Rule ที่เฉพาะเจาะจงเกินไป อาจไม่ตรวจพบไฟล์รูปแบบใหม่
13. Verification — ตรวจสอบผลการทดลอง
หลังจากทำ Lab ควรสามารถตรวจสอบ สิ่งต่อไปนี้ได้
- สร้างไฟล์ข้อความทดสอบได้สำเร็จ
- คำนวณ SHA-256 ได้
- ค่า Hash ตรงกันเมื่อไฟล์มีเนื้อหาเดียวกัน
- ค่า Hash เปลี่ยนเมื่อแก้ไขเนื้อหาไฟล์
- อ่านข้อมูลส่วนต้นของไฟล์ในรูปแบบ Hex ได้
- แยก File Extension ออกจาก File Content ได้
- อธิบายข้อจำกัดของ File Signature ได้
- แยก IOC ออกจากข้อสรุปการโจมตีได้
13.1 ตัวอย่าง Verification Checklist
| Test | Expected Result |
|---|---|
| SHA-256 Comparison | ไฟล์เนื้อหาเดียวกันได้ Hash ตรงกัน |
| Content Modification | Hash เปลี่ยนเมื่อเนื้อหาเปลี่ยน |
| Extension Rename | เนื้อหาจริงไม่เปลี่ยนตามชื่อ |
| Magic Bytes | อ่าน Byte Header ได้ |
| YARA Lab | Rule ตรงกับข้อความทดสอบ |
การผ่าน Checklist หมายถึงทำแบบฝึกได้ถูกต้อง ไม่ได้ยืนยันว่าเครื่องคอมพิวเตอร์ ปลอดภัยจาก Malware ทุกประเภท
14. Troubleshooting — ปัญหาที่พบบ่อยในการวิเคราะห์ไฟล์
14.1 Get-FileHash ไม่พบไฟล์
ตรวจสอบว่าระบุ Path ถูกต้อง ไฟล์ยังอยู่ในตำแหน่งเดิม และบัญชีผู้ใช้มีสิทธิ์อ่านไฟล์
14.2 Hash ไม่ตรงกันทั้งที่ข้อความดูเหมือนกัน
สาเหตุอาจเกิดจาก Encoding, Newline, BOM หรืออักขระที่มองไม่เห็น
SHA-256 คำนวณจาก Bytes จริง ไม่ใช่จากข้อความที่มองเห็นบนหน้าจอ
14.3 Linux file แสดงผลไม่ตรงกับ Extension
อาจเกิดจากการเปลี่ยนชื่อไฟล์ ไฟล์มี Header ผิดปกติ หรือ File Signature ไม่เพียงพอ สำหรับระบุรูปแบบ
ต้องตรวจสอบโครงสร้างจริงเพิ่มเติม ก่อนสรุปประเภทไฟล์
14.4 ไฟล์ไม่มี Digital Signature
ไฟล์ที่ไม่มีลายเซ็น ไม่ได้หมายความว่าเป็น Malware ควรพิจารณาประเภทไฟล์ แหล่งที่มา และบริบทอื่นร่วมด้วย
14.5 VirusTotal ไม่พบ Hash
อาจเป็นไฟล์ที่ยังไม่มีข้อมูล หรือยังไม่ถูกส่งเข้าสู่ระบบวิเคราะห์
ไม่ควรตีความว่าไฟล์ปลอดภัย และไม่ควรรีบอัปโหลดไฟล์ลับ เพื่อหาคำตอบ
14.6 YARA ไม่พบข้อความ
ตรวจสอบว่าข้อความตรงกันจริง รวมถึงตัวพิมพ์ใหญ่เล็ก Encoding และการเปลี่ยนแปลง ของไฟล์ตัวอย่าง
หากได้แก้ไข sample.txt ใน Lab ก่อนหน้า ให้ตรวจสอบว่าเนื้อหาที่ต้องการค้นหา ยังคงอยู่ภายในไฟล์
15. Incident Response — เมื่อพบไฟล์ต้องสงสัยจริง
หากพบไฟล์ที่สงสัยว่าเป็น Malware บนเครื่องใช้งานจริง ควรแยกการตรวจสอบไฟล์ ออกจากการตอบสนองต่อเหตุการณ์ ที่อาจกำลังเกิดขึ้น
15.1 กรณียังไม่ได้เปิดไฟล์
- ไม่เปิดหรือรันไฟล์
- บันทึกแหล่งที่มาและเวลาที่พบ
- แจ้งผู้รับผิดชอบตามกระบวนการ
- หลีกเลี่ยงการส่งต่อไฟล์โดยไม่จำเป็น
- ตรวจสอบ Metadata และ Hash ด้วยวิธีที่ได้รับอนุญาต
15.2 กรณีไฟล์ถูกเปิดใช้งานแล้ว
- แจ้งทีม Incident Response ทันที
- พิจารณาแยก Endpoint ตามความเสี่ยง
- เก็บบันทึก Security Alerts และเวลาที่เกิดเหตุ
- ตรวจสอบ Process และ Network Activity
- ประเมินการเข้าถึงข้อมูลและระบบอื่น
- ดำเนินการ Containment และ Recovery ตามแผน
สำหรับระบบองค์กร ไม่ควรรีบลบไฟล์หรือ Format เครื่อง ก่อนประเมินความจำเป็นในการเก็บหลักฐาน โดยผู้รับผิดชอบด้าน DFIR
15.3 การค้นหาระบบอื่นที่เกี่ยวข้อง
หากตรวจพบไฟล์ที่ยืนยันว่าอันตราย Security Team อาจใช้ Hash และหลักฐานอื่นค้นหาในระบบ EDR หรือ Endpoint Inventory
การค้นหาเพียง Hash เดียว อาจไม่พบ Malware Variant อื่น จึงควรใช้พฤติกรรมและหลักฐาน หลายประเภทประกอบกัน
16. Security Best Practices — แนวทางป้องกัน Malware
16.1 สำหรับผู้ใช้ทั่วไป
- ดาวน์โหลดโปรแกรมจากแหล่งทางการ
- เปิด Automatic Security Updates
- ใช้ Endpoint Protection ที่เชื่อถือได้
- ระวังไฟล์แนบที่ไม่คาดคิด
- แสดง File Extensions บน Windows
- ไม่เปิดโปรแกรมที่ไม่ทราบแหล่งที่มา
- สำรองข้อมูลสำคัญอย่างสม่ำเสมอ
16.2 สำหรับ Security Analyst
- แยกเครื่องทำงานออกจากสภาพแวดล้อมวิเคราะห์
- เก็บ File Hash และ Metadata
- ตรวจสอบ File Type ก่อนประมวลผล
- บันทึกเครื่องมือและเวอร์ชันที่ใช้
- ใช้ IOC จากแหล่งที่น่าเชื่อถือ
- ตรวจสอบ False Positive และ False Negative
- จัดทำรายงานโดยแยกข้อเท็จจริงจากสมมติฐาน
16.3 สำหรับองค์กร
- ใช้ Endpoint Detection and Response ตามความเหมาะสม
- กำหนด Application Control
- ลดสิทธิ์ Local Administrator
- จัดการ Vulnerabilities อย่างต่อเนื่อง
- ตรวจสอบ Email และ Web Threats
- ใช้ Network Segmentation
- ทดสอบ Backup และ Incident Response Plan
17. ตัวอย่าง Malware Investigation Report
หลังการวิเคราะห์ ควรจัดทำรายงานที่สามารถตรวจสอบย้อนหลังได้ และระบุข้อจำกัดของหลักฐานอย่างชัดเจน
17.1 ตัวอย่างรายงานจาก Safe Lab
Case ID: TECHEREST-MAL-004
Case Type:
Static File Inspection
Sample:
sample.txt
Source:
Locally generated safe training file
Analysis:
- File Metadata Inspection
- SHA-256 Calculation
- Hex Header Inspection
- File Extension Comparison
Findings:
- File contains plain text
- SHA-256 calculated successfully
- Renamed extension did not change content
- Hash changed after content modification
Threat Classification:
Not assessed as real malware
Confidence:
High confidence in lab observations
Limitations:
No real malware sample analyzed
No dynamic execution performed
No threat intelligence attribution
Recommended Action:
No incident response required
Continue defensive analysis training
17.2 สิ่งที่รายงานจริงควรมีเพิ่มเติม
- Case Owner และ Analysis Date
- Evidence Source และ Chain of Custody
- SHA-256 และ File Metadata
- เครื่องมือและเวอร์ชัน
- Observed Facts
- Analyst Assessment
- Confidence Level และข้อจำกัด
- Recommendations และ Follow-up Actions
18. FAQ — คำถามที่พบบ่อย
18.1 Malware Analysis ต้องเขียนโปรแกรมเป็นหรือไม่?
ไม่จำเป็นสำหรับขั้นพื้นฐาน แต่ Python, PowerShell และ Linux Shell จะช่วยเพิ่มความสามารถ ในการทำงานแบบอัตโนมัติ
18.2 Static Analysis ปลอดภัย 100% หรือไม่?
ไม่ใช่ 100% แม้ไม่มีการรันโปรแกรมเป้าหมาย แต่เครื่องมือที่ใช้ประมวลผลไฟล์ อาจมีช่องโหว่ของตนเอง
ไฟล์ที่สงสัยว่าอันตรายจริง จึงควรตรวจสอบในสภาพแวดล้อม ที่ควบคุมความเสี่ยงอย่างเหมาะสม
18.3 SHA-256 สามารถตรวจจับ Malware ได้หรือไม่?
SHA-256 เป็น Hash Algorithm ไม่ใช่ Malware Scanner แต่สามารถใช้เปรียบเทียบไฟล์ กับ Hash ที่ทราบว่าเกี่ยวข้อง กับ Malware ได้
18.4 File Signature สามารถปลอมได้หรือไม่?
สามารถสร้างหรือแก้ไข Byte Header ให้คล้ายรูปแบบที่ต้องการได้ การตรวจสอบจึงต้องดู โครงสร้างไฟล์อื่นประกอบ
18.5 ไม่พบ IOC แปลว่าระบบปลอดภัยหรือไม่?
ไม่จำเป็น เพราะการโจมตี อาจใช้เทคนิคใหม่ หรือไม่มี IOC ที่ตรงกับฐานข้อมูล ที่ใช้ตรวจสอบ
18.6 ควรเริ่มเรียน Malware Analysis จากเครื่องมือใด?
เริ่มจาก PowerShell Get-FileHash, Format-Hex, Linux file, sha256sum และ Python hashlib ก่อนต่อยอดไปสู่ YARA และเครื่องมือวิเคราะห์ไฟล์ขั้นสูง
19. Conclusion — วิเคราะห์ Malware ด้วยหลักฐาน ไม่ใช่การคาดเดา
การวิเคราะห์ Malware ที่ดี เริ่มต้นจากการเข้าใจไฟล์ และวิธีตรวจสอบข้อมูลพื้นฐาน อย่างถูกต้อง
SHA-256 ช่วยตรวจสอบความตรงกัน ของเนื้อหาไฟล์ File Signature ช่วยระบุรูปแบบ ขณะที่ IOC ช่วยเชื่อมโยงข้อมูล กับเหตุการณ์ด้านความปลอดภัย
อย่างไรก็ตาม ไม่มีเครื่องมือใด สามารถยืนยันความปลอดภัย ได้จากข้อมูลเพียงรายการเดียว
Never Execute an Unknown File. Preserve the Evidence. Analyze the Data. Verify Before You Conclude.
Techerest มุ่งสร้าง Cyber Security Knowledge Base ที่ผู้อ่านสามารถ เรียนรู้ ทดลอง ตรวจสอบ และนำไปแก้ปัญหาจริงได้อย่างเป็นระบบ
20. References — แหล่งข้อมูลอ้างอิง
- NIST SP 800-83 Rev.1 — Guide to Malware Incident Prevention and Handling
- NIST SP 800-61 Rev.3 — Incident Response Recommendations
- RFC 9424 — Indicators of Compromise and Their Role in Attack Defence
- Microsoft Learn — Get-FileHash
- Microsoft Learn — Get-AuthenticodeSignature
- YARA — Official Documentation
- MITRE ATT&CK Knowledge Base
- Python Documentation — hashlib
หมายเหตุ: NIST SP 800-83 Rev.1 เผยแพร่เมื่อปี 2013 ใช้เป็นแหล่งอ้างอิงด้านพื้นฐาน Malware Prevention และ Incident Handling โดยควรพิจารณาคำแนะนำด้านความปลอดภัย และภัยคุกคามรุ่นใหม่เพิ่มเติม
Share your thoughts here
Join the conversation and share your perspective on this article.