Cyber Security Academy · บทเรียน

การขยายขนาดและทำให้การสแกนเป็นอัตโนมัติ

เรียกใช้ YARA ทั่วทั้งสภาพแวดล้อม

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

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

จากโฮสต์เดียวสู่ทั้งสภาพแวดล้อม

rule ที่ทำงานได้บนแล็ปท็อปของคุณต้องทำงานได้ทั่วทั้งอุปกรณ์ปลายทางนับพันเครื่อง กระแสอีเมล และแหล่งป้อนตัวอย่างอย่างน่าเชื่อถือ โดยไม่ทำให้ประสิทธิภาพลดลงจนใช้งานไม่ได้ การขยาย YARA เป็นปัญหาด้านวิศวกรรมที่เกี่ยวข้องกับการกระจาย ประสิทธิภาพ และผลป้อนกลับ

บทเรียนนี้ครอบคลุมการปรับแต่งประสิทธิภาพ การจัดการ rule กระบวนการอัตโนมัติ และวิธีใช้งาน YARA ให้เป็นความสามารถในการตรวจจับอย่างต่อเนื่อง แทนที่จะเป็นเครื่องมือที่ใช้เพียงครั้งเดียว

พื้นฐานประสิทธิภาพ

YARA สร้างอะตอม (สตริงย่อยของไบต์ขนาดสั้น) สำหรับแต่ละสตริง แล้วค้นหาอะตอมก่อน โดยประเมินเงื่อนไขทั้งหมดเฉพาะกับตัวเลือกที่อาจตรงกันเท่านั้น rule ที่ไม่เปิดโอกาสให้กลไกสร้างอะตอมที่ดีจะทำงานช้า

  • สตริงที่สั้นกว่าประมาณ 4 ไบต์จะสร้างอะตอมที่ไม่ดีและสแกนได้ช้า
  • นิพจน์ปกติที่ไม่ยึดตำแหน่งและไวลด์การ์ดที่มากเกินไปใช้ทรัพยากรสูง
  • การยึดตำแหน่งด้วยออฟเซตและ filesize ช่วยตัดงานที่ไม่จำเป็นตั้งแต่ต้น

วิเคราะห์ประสิทธิภาพของ rule ที่ช้าและเขียนส่วนที่เป็นปัญหาใหม่ก่อนนำไปใช้งานในวงกว้าง

# Report per-rule scan timing to find slow rules
yara --print-stats -r rules.yar /samples/
yara -a 10 -r rules.yar /samples/   # warn on rules slower than 10s

หลีกเลี่ยงรูปแบบที่ช้า

ข้อผิดพลาดด้านประสิทธิภาพที่พบบ่อยและวิธีแก้:

  • แทนที่สตริงขนาดเล็กหรือสตริงที่เป็นไวลด์การ์ดทั้งหมดด้วยสตริงที่ยาวกว่าและมีเอกลักษณ์
  • กำหนดให้ rule ที่ใช้ทรัพยากรสูงทำงานต่อเมื่อผ่านเงื่อนไขเบื้องต้นที่ประเมินได้รวดเร็ว (ไบต์บ่งชี้รูปแบบ, filesize)
  • เลือกใช้ไบต์คงที่แทนนิพจน์ปกติ และกำหนดจุดยึดของนิพจน์ปกติให้รัดกุม
  • ใช้ rule global เพื่อข้ามประเภทไฟล์ที่ไม่เกี่ยวข้องทั้งหมด

rule ที่มีปัญหาเพียงรายการเดียวอาจครองเวลาสแกนทั้งหมดในสภาพแวดล้อมได้ ดังนั้นควรถือว่าประสิทธิภาพเป็นเกณฑ์หนึ่งในการตรวจทาน

global rule OnlyPE { condition: uint16(0) == 0x5A4D }

การคอมไพล์ rule

การแยกวิเคราะห์ข้อความ rule ในทุกครั้งที่สแกนทำให้เสียเวลา ควรคอมไพล์ rule เพียงครั้งเดียวเป็นกลุ่มข้อมูลไบนารี แล้วโหลดกลุ่มนั้นในทุกแห่ง

rule ที่คอมไพล์แล้วโหลดได้รวดเร็ว และทำให้มั่นใจว่าอุปกรณ์ปลายทางทุกเครื่องใช้ตรรกะที่ผ่านการตรวจสอบแล้วเหมือนกันทุกประการ ควรคอมไพล์ใหม่เป็นส่วนหนึ่งของกระบวนการอัตโนมัติทุกครั้งที่ rule เปลี่ยนแปลง แล้วแจกจ่ายไฟล์ผลลัพธ์ที่คอมไพล์แล้ว

yarac -r detections/ ruleset.yarac   # compile
yara -C ruleset.yarac /target/        # scan with compiled rules

การจัดการ rule ในระดับใหญ่

ปฏิบัติต่อ rule ของ YARA ในฐานะโค้ด เช่นเดียวกับซิกมา จัดเก็บไว้ในการควบคุมรุ่น พร้อมการตรวจทาน การทดสอบ และ CI

  • หนึ่ง rule ต่อหนึ่งไฟล์ จัดระเบียบตามตระกูลหรือแหล่งที่มา
  • CI ตรวจไวยากรณ์ ตรวจสอบประสิทธิภาพ และทดสอบกับชุดข้อมูล
  • เครื่องมือตรวจไวยากรณ์อย่าง yaraLint ช่วยตรวจจับข้อผิดพลาดที่พบบ่อย
  • ติดแท็กและกำหนดเนมสเปซให้ rule เพื่อหลีกเลี่ยงชื่อซ้ำกันระหว่างแหล่งป้อนข้อมูล

วิธีนี้ช่วยป้องกันความยุ่งเหยิงจาก rule หลายพันรายการที่ไม่มีการจัดการ ขัดแย้งกัน หรือซ้ำกัน

การสแกนอุปกรณ์ปลายทางด้วย EDR

องค์กรส่วนใหญ่เรียกใช้ YARA ผ่านEDR ซึ่งสามารถส่งชุดกฎไปยังเอเจนต์และสแกนดิสก์กับหน่วยความจำตามคำขอหรือตามกำหนดเวลา วิธีนี้ช่วยเลี่ยงการติดตั้ง YARA แบบแยกเดี่ยวในทุกโฮสต์

หาก EDR ไม่รองรับ YARA เฟรมเวิร์กเอเจนต์และเครื่องมือประสานงานก็สามารถแจกจ่ายชุด rule ที่คอมไพล์แล้วและรวบรวมผลจากส่วนกลางได้ ไม่ว่าจะใช้วิธีใด การสแกนจะถูกควบคุมจากส่วนกลาง ไม่ต้องทำด้วยมือแยกทีละโฮสต์

การสแกนหน่วยความจำในระดับขนาดใหญ่

เนื่องจากมัลแวร์ที่ถูกแพ็กจะแสดงตัวเฉพาะในหน่วยความจำ ให้กำหนดเวลาการ สแกนหน่วยความจำ ทั่วทั้ง the กลุ่มเครื่อง ไม่ใช่แค่การสแกนดิสก์ ตัวแทน EDR สามารถสแกนหน่วยความจำของกระบวนการเป็นระยะ ๆ หรือเพื่อตอบสนองต่อเหตุการณ์ที่น่าสงสัยได้

การสแกนหน่วยความจำใช้ทรัพยากรมากกว่าการสแกนดิสก์ ดังนั้นจึงต้องสร้างสมดุลระหว่างความถี่กับ scope: สแกนอย่างต่อเนื่องบนโฮสต์ที่มีมูลค่าสูง และสแกนเมื่อเกิดเหตุการณ์ในส่วนอื่น เพื่อควบคุมผลกระทบต่อประสิทธิภาพ

การผนวกรวมกระบวนการส่งต่อข้อมูล

ทำให้ YARA ทำงานอัตโนมัติ ณ จุดที่ไฟล์เข้าสู่สภาพแวดล้อมของคุณ:

  • เกตเวย์อีเมล/เว็บ สแกนไฟล์แนบและรายการดาวน์โหลดโดยตรง
  • สภาพแวดล้อมแยกกัก (CAPE, Cuckoo) เรียกใช้ YARA กับสิ่งตกค้างที่ถูกปล่อยและคลายแพ็กแล้ว
  • กระบวนการรับไฟล์เข้า สแกนการอัปโหลดก่อนจัดเก็บ
  • การผสานรวมอย่างต่อเนื่องสำหรับคลังมัลแวร์ จัดประเภทตัวอย่างใหม่โดยอัตโนมัติ

ผลการตรวจพบแต่ละครั้งจะส่งไปยัง the SIEM/SOAR เพื่อเชื่อมโยงเหตุการณ์และตอบสนอง

# Example: scan every new file dropped into an intake bucket
yara -C ruleset.yarac "$NEW_FILE" && route_to_soar "$NEW_FILE"

การค้นหาย้อนหลังและวงจรข่าวกรอง

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

ป้อนสิ่งที่เรียนรู้กลับเข้าสู่ชุดกฎ: สายพันธุ์ใหม่ที่พบระหว่างการค้นหาย้อนหลังจะช่วยปรับกฎให้แม่นยำขึ้น จากนั้นกฎดังกล่าวจะตรวจจับคลื่นถัดไปได้ วงจรปิดนี้ทำให้ YARA เป็นระบบตรวจจับที่มีชีวิตและพัฒนาได้อย่างต่อเนื่อง

การจัดการผลตรวจพบและการตอบสนอง

การสแกนที่ไม่พบอะไรนอกจากบรรทัดบันทึกหนึ่งบรรทัดย่อมสูญเปล่า จงเชื่อมโยงผลตรวจพบเข้ากับการตอบสนอง

  • ส่งผลลัพธ์ที่มีโครงสร้าง (ชื่อกฎ ไฟล์ โฮสต์ ค่าแฮช) ไปยัง the SIEM
  • เรียกใช้ชุดขั้นตอนปฏิบัติการของ SOAR: แยกกักโฮสต์ เก็บตัวอย่าง และเพิ่มข้อมูลจากข่าวกรอง
  • กักกันโดยอัตโนมัติเฉพาะกฎที่มีความเชื่อมั่นสูงและผ่านการทดสอบอย่างดีแล้ว
  • ส่งผลตรวจพบที่มีความเชื่อมั่นต่ำกว่าให้นักวิเคราะห์คัดกรอง

เชื่อมโยงระดับความเชื่อมั่นในการตอบสนองกับความสมบูรณ์ของกฎ โดยใช้หลักปฏิบัติแจ้งเตือนแล้วจึงบล็อกแบบเดียวกับที่ใช้กับกฎ IPS

yara -C ruleset.yarac --print-meta "$F" \
  | jq -R . | send_to_siem

การวัดผลและการบำรุงรักษา

ดูแลชุดกฎเสมือนเป็นโครงการหนึ่งที่มีตัวชี้วัด:

  • อัตราการตรวจพบ และ อัตราผลบวกลวง ของแต่ละกฎ
  • ต้นทุนการสแกน ของแต่ละกฎทั่วทั้งกลุ่มเครื่อง
  • ความครอบคลุมตามตระกูลและเทคนิคของ ATT&CK

เลิกใช้กฎที่ล้าสมัย แก้ไขกฎที่สร้างผลตรวจพบมากเกินไป และทดสอบซ้ำกับซอฟต์แวร์ที่ไม่เป็นอันตรายเป็นประจำ กฎต่าง ๆ เสื่อมประสิทธิภาพลงเมื่อซอฟต์แวร์และมัลแวร์พัฒนาไป ดังนั้นการบำรุงรักษาจึงต้องทำอย่างต่อเนื่อง ไม่ใช่สิ่งที่เลือกทำได้

ตรวจสอบอย่างรวดเร็ว

ใช้วิจารณญาณด้านการขยายระบบกับการนำออกใช้งาน

สรุปทบทวน

การใช้งาน YARA ในระดับขนาดใหญ่:

  • ทำความเข้าใจ อะตอม หลีกเลี่ยงสตริงขนาดเล็ก อักขระไวลด์การ์ดทั้งหมด และนิพจน์ปกติที่ไม่มีจุดยึด
  • กำหนดจุดยึดด้วยออฟเซ็ต/ขนาดไฟล์ และวางเงื่อนไขไว้หลังเงื่อนไขเบื้องต้น ระดับโกลบอล
  • คอมไพล์ กฎ (yarac) และแจกจ่ายบล็อบไบนารี
  • จัดการกฎเสมือน โค้ด: ควบคุมเวอร์ชัน การผสานรวมอย่างต่อเนื่อง การตรวจไวยากรณ์ และการกำหนดเนมสเปซ
  • สแกนปลายทางผ่าน EDR และกำหนดเวลา สแกนหน่วยความจำ ไม่ใช่แค่ดิสก์
  • ผนวกรวม YARA เข้ากับ เกตเวย์ สภาพแวดล้อมแยกกัก และกระบวนการรับข้อมูลเข้า แล้วส่งข้อมูลไปยัง SIEM/SOAR
  • ใช้ การค้นหาย้อนหลัง และป้อนสิ่งที่ค้นพบกลับเข้าสู่กฎ
  • วัดผล อัตราการตรวจพบ อัตรา FP และต้นทุนการสแกน พร้อมบำรุงรักษาอย่างต่อเนื่อง

คุณเรียนจบหลักสูตร YARA สำหรับการตรวจจับมัลแวร์แล้ว

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

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

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

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

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

บทเรียน “การขยายขนาดและทำให้การสแกนเป็นอัตโนมัติ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การขยายขนาดและทำให้การสแกนเป็นอัตโนมัติ”

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

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

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

บทเรียน “การขยายขนาดและทำให้การสแกนเป็นอัตโนมัติ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. YARA ใช้ทำอะไร
  2. ไวยากรณ์กฎ YARA
  3. การล่าภัยคุกคามด้วยสตริงและเลขฐานสิบหก
  4. การขยายขนาดและทำให้การสแกนเป็นอัตโนมัติ
← กลับไปที่ Cyber Security Academy