Techerest

Malware Analysis Fundamentals วิเคราะห์ไฟล์ต้องสงสัยอย่างปลอดภัยด้วย Static Analysis, SHA-256, File Signature และ Indicators of Compromise (IOC)

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
PDF 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 ขั้นตอนการทำงาน

  1. Intake: รับแจ้งเหตุและบันทึกที่มาของไฟล์
  2. Preservation: เก็บรักษาหลักฐานตามนโยบาย
  3. Hashing: คำนวณ SHA-256
  4. File Identification: ตรวจสอบชนิดไฟล์จริง
  5. Static Inspection: ตรวจสอบ Metadata และโครงสร้าง
  6. Threat Correlation: เปรียบเทียบกับ IOC ที่น่าเชื่อถือ
  7. Assessment: ประเมินความเสี่ยงและความเชื่อมั่น
  8. 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

  1. บันทึก SHA-256 ของไฟล์
  2. ตรวจสอบชื่อและประเภทไฟล์
  3. ตรวจสอบ Digital Signature หากเกี่ยวข้อง
  4. เปรียบเทียบกับแหล่ง Threat Intelligence ที่เชื่อถือได้
  5. ค้นหาหลักฐานเพิ่มเติมจาก Endpoint Logs
  6. ประเมินความน่าเชื่อถือของข้อมูล
  7. จัดทำผลการวิเคราะห์

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 กรณียังไม่ได้เปิดไฟล์

  1. ไม่เปิดหรือรันไฟล์
  2. บันทึกแหล่งที่มาและเวลาที่พบ
  3. แจ้งผู้รับผิดชอบตามกระบวนการ
  4. หลีกเลี่ยงการส่งต่อไฟล์โดยไม่จำเป็น
  5. ตรวจสอบ Metadata และ Hash ด้วยวิธีที่ได้รับอนุญาต

15.2 กรณีไฟล์ถูกเปิดใช้งานแล้ว

  1. แจ้งทีม Incident Response ทันที
  2. พิจารณาแยก Endpoint ตามความเสี่ยง
  3. เก็บบันทึก Security Alerts และเวลาที่เกิดเหตุ
  4. ตรวจสอบ Process และ Network Activity
  5. ประเมินการเข้าถึงข้อมูลและระบบอื่น
  6. ดำเนินการ 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 — แหล่งข้อมูลอ้างอิง

  1. NIST SP 800-83 Rev.1 — Guide to Malware Incident Prevention and Handling
  2. NIST SP 800-61 Rev.3 — Incident Response Recommendations
  3. RFC 9424 — Indicators of Compromise and Their Role in Attack Defence
  4. Microsoft Learn — Get-FileHash
  5. Microsoft Learn — Get-AuthenticodeSignature
  6. YARA — Official Documentation
  7. MITRE ATT&CK Knowledge Base
  8. Python Documentation — hashlib

หมายเหตุ: NIST SP 800-83 Rev.1 เผยแพร่เมื่อปี 2013 ใช้เป็นแหล่งอ้างอิงด้านพื้นฐาน Malware Prevention และ Incident Handling โดยควรพิจารณาคำแนะนำด้านความปลอดภัย และภัยคุกคามรุ่นใหม่เพิ่มเติม

Techerest Cyber Security Knowledge Base — EP.04

Learn. Verify. Defend. Improve.

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

Share this
Facebook Share X
TECHEREST COMMUNITY

Share your thoughts here

Join the conversation and share your perspective on this article.

Comments will load when you reach this section.