Cyber Security Academy · บทเรียน

การเขียนกฎตรวจจับและการหาความสัมพันธ์

สร้างคำค้นหา Splunk SPL หรือ Kibana KQL เพื่อตรวจจับการเดารหัสผ่านแบบรัว การเคลื่อนที่ภายในเครือข่าย และการนำข้อมูลออก

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

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

พื้นฐานการออกแบบการตรวจจับ

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

SPL ของสปลังก์: ภาษาประมวลผลการค้นหา

คำค้นหา SPL ใช้ไวยากรณ์แบบไปป์: search → transform → display ให้เริ่มต้นด้วยดัชนีและประเภทแหล่งข้อมูล จากนั้นกรองเหตุการณ์ที่เกี่ยวข้อง และรวมหรือแจ้งเตือนจากผลลัพธ์

# Basic SPL structure
index=security sourcetype=WinEventLog EventCode=4625
| stats count by src_ip, user
| where count > 10
| sort -count

# Explanation:
# Search Security index for logon failures
# Count failures per source IP + user
# Alert if more than 10 failures
# Sort descending by count

การตรวจจับการโจมตีแบบเดารหัสผ่านซ้ำในสปลังก์

การตรวจจับการเดารหัสผ่านซ้ำ: นับจำนวนการเข้าสู่ระบบที่ล้มเหลวจากแต่ละแหล่งที่มา และแจ้งเตือนเมื่อเกินค่าขีดจำกัดภายในช่วงเวลา กำหนดความเชื่อมโยงกับการเข้าสู่ระบบสำเร็จหลังจากล้มเหลวหลายครั้งเพื่อพิจารณาการโจมตีแบบยัดข้อมูลรับรอง

# Failed logins by source IP
index=security EventCode=4625
| bucket _time span=5m
| stats count as failures by _time, src_ip
| where failures > 20
| table _time, src_ip, failures

# Success after failures (account takeover)
index=security EventCode=4625 OR EventCode=4624
| stats values(EventCode) as events by src_ip
| where mvfind(events,"4625") >= 0 AND mvfind(events,"4624") >= 0

KQL ของคิบานาสำหรับการตรวจจับ

ภาษาคำค้นหาคิบานา (KQL) ใช้กรองเหตุการณ์เพื่อการสืบสวน อ่านได้ง่ายกว่า Lucene สำหรับนักวิเคราะห์ และใช้ในคำค้นหาที่บันทึกไว้กับกฎการแจ้งเตือนภายในคิบานา

# KQL examples:
# Failed SSH logins
event.action: "ssh_login_failed" and source.ip: *

# Nmap scan detection
not destination.port: (80 or 443 or 22) and event.type: "connection"

# Privilege escalation
process.name: "sudo" and process.args: "-s"

กฎการตรวจจับของอีลาสติกเสิร์ช

แอปพลิเคชัน Security ของคิบานามีระบบกฎการตรวจจับ กฎอาจอิงค่าขีดจำกัด (จำนวนเหตุการณ์) อิงคำค้นหา (รูปแบบเหตุการณ์เฉพาะ) ใช้ความผิดปกติจากการเรียนรู้ของเครื่อง หรือเป็นกฎลำดับ EQL (ภาษาคำค้นหาเหตุการณ์)

# EQL sequence rule example (Kibana Security):
sequence by host.name
  [process where process.name == "cmd.exe"]
  [network where destination.port == 4444]

# Detects: cmd.exe followed by connection to port 4444
# (common reverse shell pattern)

การตรวจจับการเคลื่อนย้ายด้านข้าง

ตรวจจับการเคลื่อนย้ายด้านข้างผ่านสิ่งต่อไปนี้: การสร้างบริการของ PsExec (เหตุการณ์ 7045) การเรียกใช้ WMI จากระยะไกล การเข้าถึงส่วนแบ่งผู้ดูแลระบบที่ผิดปกติ (เหตุการณ์ 5140) และงานตามกำหนดการใหม่ที่สร้างจากระยะไกล

# Splunk: detect PsExec-style lateral movement
index=security EventCode=7045
| where Service_Name="PSEXESVC" OR Service_File_Name="\\*\\*.exe"
| table _time, ComputerName, Service_Name, Service_File_Name

# WMI remote execution
index=sysmon EventCode=1 ParentImage="*WmiPrvSE.exe"
| table _time, host, CommandLine, User

การตรวจจับการลักลอบนำข้อมูลออก

ตรวจจับการลักลอบนำข้อมูลออกผ่านสิ่งต่อไปนี้: การถ่ายโอนข้อมูลขาออกปริมาณมากไปยังปลายทางที่ไม่คุ้นเคย คำค้นหา DNS ที่มีโดเมนย่อยยาวผิดปกติ (การทำช่องสัญญาณ) และการส่งสัญญาณผ่าน HTTPS เป็นช่วง ๆ อย่างสม่ำเสมอ

# DNS tunneling detection in Splunk
index=dns
| eval subdomain_len=len(subdomain)
| where subdomain_len > 50
| stats count by query, src_ip
| sort -count

# Large outbound (NetFlow/firewall logs)
index=firewall action=allow direction=outbound
| stats sum(bytes) as total_bytes by dest_ip, src_ip
| where total_bytes > 100000000  # 100MB threshold

การค้นหาภัยคุกคามด้วยคำค้นหาที่บันทึกไว้

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

การตรวจจับที่จับคู่กับ MITRE ATT&CK

จับคู่กฎการตรวจจับกับเทคนิคของ ATT&CK วิธีนี้จะแสดงช่องว่างของความครอบคลุมและช่วยจัดลำดับความสำคัญของกฎใหม่ เครื่องมืออย่างตัวนำทาง ATT&CK ช่วยแสดงภาพว่าเทคนิคใดที่ตรวจจับได้และเทคนิคใดที่ยังมองไม่เห็น

การปรับแต่งเพื่อลดผลบวกลวง

กฎใหม่มักทำงานครอบคลุมกว้างเกินไป ให้ปรับแต่งโดยเพิ่มข้อยกเว้นสำหรับแหล่งที่มาที่ทราบว่าปลอดภัย เพิ่มค่าขีดจำกัด เพิ่มช่องข้อมูลตามบริบท (เวลาทำการ ที่อยู่ IP ของการสแกนที่ทราบ) และตรวจสอบกับข้อมูลย้อนหลังก่อนเปิดใช้งาน

ความเหนื่อยล้าจากการแจ้งเตือน

การแจ้งเตือนคุณภาพต่ำจำนวนมากทำให้นักวิเคราะห์ไม่สนใจการแจ้งเตือนเหล่านั้น ซึ่งทำให้จุดประสงค์ของระบบสูญเสียไป ควรให้ความสำคัญกับคุณภาพมากกว่าปริมาณ: การแจ้งเตือนที่มีความแม่นยำสูง 10 รายการต่อวันย่อมดีกว่าการแจ้งเตือนที่มีสัญญาณรบกวน 500 รายการ ควรระงับ ปรับแต่ง และยกเลิกกฎที่ทำงานได้ไม่ดี

ตรวจสอบความเข้าใจอย่างรวดเร็ว

กฎลำดับ EQL ตรวจจับอะไรได้บ้างที่กฎคำค้นหาแบบธรรมดาตรวจจับไม่ได้

สรุป: กฎการตรวจจับ

การออกแบบการตรวจจับแปลง TTP ของผู้โจมตีเป็นตรรกะคำค้นหา ใช้ SPL สำหรับสปลังก์ และใช้ KQL กับ EQL สำหรับคิบานา Security จับคู่กฎกับ MITRE ATT&CK เพื่อติดตามความครอบคลุม ให้ความสำคัญกับกฎที่เจาะจงและมีความแม่นยำสูงมากกว่ากฎที่กว้างและมีสัญญาณรบกวน ควรปรับแต่งอย่างต่อเนื่อง เพราะภูมิทัศน์ภัยคุกคามเปลี่ยนแปลงอยู่เสมอ ตรรกะการตรวจจับก็ควรเปลี่ยนตาม

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

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

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

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

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

บทเรียน “การเขียนกฎตรวจจับและการหาความสัมพันธ์” ฟรีหรือไม่

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

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

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

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

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

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

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

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

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

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

  1. แหล่งบันทึก: บันทึก OS เครือข่าย และแอปพลิเคชัน
  2. สถาปัตยกรรม SIEM และการนำเข้าบันทึก
  3. การเขียนกฎตรวจจับและการหาความสัมพันธ์
  4. การคัดกรองการแจ้งเตือนและขั้นตอนการทำงานของ SOC
← กลับไปที่ Cyber Security Academy