Cyber Security Academy · บทเรียน

กฎ YARA สำหรับตรวจจับมัลแวร์

เขียนกฎ YARA จากสตริง รูปแบบไบต์ และโครงสร้างไฟล์เพื่อจำแนกตระกูลมัลแวร์

บทเรียน 4 จาก 413 ขั้นตอน

กฎ YARA สำหรับตรวจจับมัลแวร์ เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

YARA คืออะไร

YARA เป็นเครื่องมือจับคู่รูปแบบที่ออกแบบมาสำหรับจำแนกมัลแวร์ กฎจะอธิบายตระกูลมัลแวร์ด้วยการรวมรูปแบบสตริง ลำดับไบต์ และเงื่อนไขบูลีนเข้าด้วยกัน YARA สแกนไฟล์ โพรเซส หรือหน่วยความจำ แล้วรายงานรายการที่ตรงกัน

โครงสร้างกฎ YARA

กฎประกอบด้วยสามส่วน ได้แก่ ส่วนข้อมูลกำกับ (ข้อมูลอย่างผู้เขียนและวันที่) ส่วนสตริง (รูปแบบที่ต้องค้นหา) และส่วนเงื่อนไข (ตรรกะบูลีนที่รวมสตริงเข้าด้วยกัน) กฎจะถูกคอมไพล์เป็นตัวสแกนเพื่อกวาดตรวจระบบไฟล์ได้อย่างรวดเร็ว

rule ExampleRule {
  meta:
    author = "analyst"
  strings:
    $a = "malicious_string"
    $b = { 4D 5A 90 00 }
  condition:
    $a and $b
}

รูปแบบสตริง

YARA รองรับสตริงสามประเภท ได้แก่ สตริงข้อความธรรมดา (พร้อมตัวปรับที่ไม่คำนึงถึงตัวพิมพ์และตัวปรับความกว้าง) รูปแบบเลขฐานสิบหกที่มีไวลด์การ์ด ({ 4D 5A ?? ?? }) และนิพจน์ปกติ (/pattern/) ตัวปรับความกว้างรองรับสตริง UTF-16 ซึ่งพบได้ทั่วไปในมัลแวร์วินโดวส์

รูปแบบเลขฐานสิบหกและไวลด์การ์ด

ใช้ ?? แทนไวลด์การ์ดขนาดหนึ่งไบต์ และใช้ [n-m] แทนการข้ามช่วงที่มีความยาวแปรผันในรูปแบบเลขฐานสิบหก ตัวอย่าง: { 60 89 E5 31 C0 [4-8] 5D C3 } จะตรงกับส่วนเริ่มต้นของเชลล์โค้ดโดยไม่ขึ้นกับส่วนที่มีความยาวแปรผัน

ตรรกะของเงื่อนไข

เงื่อนไขรวมสตริงด้วยตัวดำเนินการ and, or และ not ใช้ any of them, all of them หรือ 2 of ($a*) เพื่อจับคู่ได้อย่างยืดหยุ่น เงื่อนไขแบบกำหนดเกณฑ์ เช่น 5 of ($s*) ช่วยลดผลบวกลวงจากสตริงทั่วไป

เงื่อนไขคุณสมบัติไฟล์

YARA สามารถตรวจสอบขนาดไฟล์ (filesize < 1MB) คุณสมบัติส่วนหัว PE (pe.imphash()) และไบต์ของจุดเริ่มต้น (uint16(0) == 0x5A4D) ได้ เงื่อนไขของโมดูล PE ใช้ตรวจจับร่องรอยเฉพาะของคอมไพเลอร์และข้อมูลกำกับของตัวเชื่อมโยง

การเขียนกฎจากการวิเคราะห์พฤติกรรม

ใช้สตริงที่ดึงมาระหว่างการวิเคราะห์แบบสถิตและแบบพลวัตเป็นสตริงของกฎ URL ของเซิร์ฟเวอร์ควบคุมและสั่งการ ชื่อมิวเทกซ์เฉพาะ ข้อความแสดงข้อผิดพลาด หรือลำดับไบต์จากส่วนเริ่มต้นของเชลล์โค้ด ล้วนเป็นสตริง YARA ที่มีความจำเพาะสูงและมี FP ต่ำ

การทดสอบกฎ YARA

ทดสอบด้วย yara rule.yar /path/to/sample ตรวจสอบกับชุดไฟล์สะอาดเพื่อวัดอัตราผลบวกลวง ใช้ --no-warnings เพื่อให้เอาต์พุตเงียบ และใช้ -r เพื่อสแกนไดเรกทอรีแบบย้อนลงไปในไดเรกทอรีย่อย

yara -r rules/family.yar /malware_corpus/
yara -r rules/family.yar /System32/ 2>/dev/null

YARA ในผลิตภัณฑ์ความปลอดภัย

กฎ YARA ทำงานภายใน ClamAV, OSSEC, เวโลซิแรปเตอร์, สปังก์ และแพลตฟอร์ม EDR รวมกฎไว้ในคลังโค้ด กำหนดเวอร์ชัน ตรวจทานโดยผู้ร่วมงานก่อนนำไปใช้งาน และติดตามสถิติการตรวจพบเพื่อยกเลิกกฎที่มีคุณค่าน้อย

การหลีกเลี่ยงข้อผิดพลาดที่พบบ่อย

สตริงที่กว้างเกินไปทำให้เกิดผลบวกลวง รูปแบบเลขฐานสิบหกที่สั้นมากตรงกับข้อมูลรบกวนได้ โปรดจัดทำประวัติการทำงานของกฎกับตัวอย่างสะอาดที่เป็นตัวแทนก่อนนำไปใช้งานเสมอ ใช้ all of them แทน any of them เมื่อทำได้ เพื่อเพิ่มความแม่นยำ

แหล่งข้อมูลชุมชน YARA

ยาราฟอร์จรวบรวมกฎคุณภาพสูงจากชุมชน แหล่งเก็บมัลแวร์อย่าง MalwareBazaar มีตัวอย่างสำหรับการทดสอบ คลัง GitHub ของผู้จำหน่าย เช่น แมนเดียนท์และแคสเปอร์สกี เผยแพร่กฎระดับงานวิจัยที่คุณสามารถศึกษาและปรับใช้ได้

แบบทดสอบความรู้

เงื่อนไข YARA 2 of ($s*) หมายความว่าอย่างไร

สรุป

กฎ YARA รวมรูปแบบสตริง ลำดับไบต์ และเงื่อนไขบูลีนเพื่อจำแนกตระกูลมัลแวร์ การสร้างกฎจากข้อค้นพบในการวิเคราะห์พฤติกรรม การทดสอบกับชุดตัวอย่างสะอาด และการนำไปใช้งานผ่านแพลตฟอร์มความปลอดภัย จะสร้างความครอบคลุมด้านการตรวจจับที่ขยายได้

เริ่มต้นได้ฟรี

เรียนรู้ Cyber Security Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
76
บทเรียน
303

คำถามที่พบบ่อย

บทเรียน “กฎ YARA สำหรับตรวจจับมัลแวร์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กฎ YARA สำหรับตรวจจับมัลแวร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กฎ YARA สำหรับตรวจจับมัลแวร์”

เขียนกฎ YARA จากสตริง รูปแบบไบต์ และโครงสร้างไฟล์เพื่อจำแนกตระกูลมัลแวร์ คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “กฎ YARA สำหรับตรวจจับมัลแวร์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การวิเคราะห์แบบสถิต: สตริง แฮช และส่วนหัว PE
  2. การวิเคราะห์แบบไดนามิกในแซนด์บ็อกซ์
  3. IOC เชิงพฤติกรรม: รีจิสทรี เครือข่าย และร่องรอยไฟล์
  4. กฎ YARA สำหรับตรวจจับมัลแวร์
← กลับไปที่ Cyber Security Academy