การเขียนกฎตรวจจับและการหาความสัมพันธ์
สร้างคำค้นหา Splunk SPL หรือ Kibana KQL เพื่อตรวจจับการเดารหัสผ่านแบบรัว การเคลื่อนที่ภายในเครือข่าย และการนำข้อมูลออก
การเขียนกฎตรวจจับและการหาความสัมพันธ์ เป็นบทเรียน 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") >= 0KQL ของคิบานาสำหรับการตรวจจับ
ภาษาคำค้นหาคิบานา (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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แหล่งบันทึก: บันทึก OS เครือข่าย และแอปพลิเคชัน
- สถาปัตยกรรม SIEM และการนำเข้าบันทึก
- การเขียนกฎตรวจจับและการหาความสัมพันธ์
- การคัดกรองการแจ้งเตือนและขั้นตอนการทำงานของ SOC