หลักการตรวจจับในรูปแบบโค้ด
ปฏิบัติต่อการตรวจจับเช่นเดียวกับซอฟต์แวร์
หลักการตรวจจับในรูปแบบโค้ด เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุผลของการตรวจจับในรูปแบบโค้ด
การตรวจจับในรูปแบบโค้ดนำแบบแผนทางวิศวกรรมซอฟต์แวร์มาใช้กับการตรวจจับด้านความปลอดภัย แทนที่นักวิเคราะห์จะแก้ไขกฎด้วยมือภายในคอนโซล SIEM การตรวจจับจะถูกจัดเก็บเป็นไฟล์ข้อความในระบบควบคุมเวอร์ชันและส่งผ่านกระบวนการทำงาน
ประโยชน์ที่เห็นได้ชัดมีดังนี้:
- ตรวจทานได้ ผ่านคำขอผสาน
- ทำซ้ำได้เมื่อนำไปใช้งานในหลายสภาพแวดล้อม
- ทดสอบได้ในส่วนตรรกะก่อนถึงระบบจริง
- ตรวจสอบย้อนหลังได้ว่าผู้ใดเปลี่ยนแปลงอะไรและเพราะเหตุใด
การตรวจจับกลายเป็นชิ้นงานที่คุณสามารถเปรียบเทียบความแตกต่าง ย้อนกลับ และวิเคราะห์ทำความเข้าใจได้เช่นเดียวกับโค้ดอื่น ๆ
การตรวจจับในรูปแบบไฟล์ที่มีการจัดการเวอร์ชัน
การตรวจจับแต่ละรายการจะถูกจัดเก็บเป็นไฟล์แยกอิสระ โดยทั่วไปใช้ YAML หรือภาษาสำหรับสร้างคำค้นหาของผู้จำหน่าย และบันทึกไว้ในที่เก็บกิต โครงสร้างที่เก็บจะสะท้อนวิธีจัดระเบียบขอบเขตการครอบคลุมของคุณ
โครงสร้างทั่วไปจะแยกกฎตามแพลตฟอร์มและยุทธวิธี:
detections/
windows/
credential_access/
lsass_memory_dump.yml
execution/
suspicious_powershell.yml
cloud/
aws/
root_account_usage.yml
tests/
windows/
lsass_memory_dump_test.ymlการตรวจทานคำขอผสาน
การตรวจจับรายการใหม่หรือรายการที่แก้ไขทุกครั้งจะต้องผ่าน คำขอผสาน วิศวกรอีกคนจะตรวจทานตรรกะ ความเสี่ยงต่อผลบวกลวง และการจับคู่ ATT&CK ก่อนผสาน
ผู้ตรวจทานจะถามว่า:
- ตรรกะตรงกับภัยคุกคามที่อธิบายไว้หรือไม่
- กิจกรรมที่ถูกต้องตามปกติใดบ้างที่อาจทำให้กฎนี้ทำงาน
- ระดับความรุนแรงและข้อมูลอ้างอิง ATT&CK ถูกต้องหรือไม่
- มีการทดสอบที่ครอบคลุมทั้งผลบวกจริงและผลบวกลวงหรือไม่
กระบวนการนี้ช่วยตรวจพบข้อผิดพลาดที่นักวิเคราะห์ซึ่งแก้ไข SIEM ตอนตีสองเพียงลำพังอาจมองข้าม
การตรวจสอบการผสานรวมอย่างต่อเนื่อง
กระบวนการทำงานของ การผสานรวมอย่างต่อเนื่องจะทำงานโดยอัตโนมัติทุกครั้งที่ส่งการเปลี่ยนแปลง และบังคับใช้เกณฑ์คุณภาพก่อนที่กฎจะผสานได้
ขั้นตอนทั่วไปของการผสานรวมอย่างต่อเนื่องสำหรับคลังที่ใช้ซิกมา:
# .github/workflows/validate.yml (excerpt)
steps:
- name: Lint Sigma syntax
run: sigma check ./detections
- name: Validate against schema
run: sigma check --validators all ./detections
- name: Run unit tests
run: pytest tests/การนำไปใช้งานโดยอัตโนมัติ
เมื่อผสานแล้ว งานนำไปใช้งานจะแปลงกฎที่ใช้งานข้ามแพลตฟอร์มได้เป็นภาษาสำหรับสร้างคำค้นหาเป้าหมาย และส่งกฎเหล่านั้นไปยัง SIEM หรือ EDR ผ่านส่วนติดต่อโปรแกรมประยุกต์
สำหรับ Sigma โดยทั่วไปคุณจะเรียกใช้ตัวแปลง เช่น sigma convert พร้อมระบบส่วนหลังที่ตรงกับแพลตฟอร์มของคุณ (สปลังก์, อีลาสติก, ไมโครซอฟท์ เซนทิเนล) จากนั้นกระบวนการทำงานจะอัปโหลดการค้นหาที่บันทึกไว้หรือกฎการวิเคราะห์ที่สร้างขึ้น
ไม่มีบุคคลใดต้องคัดลอกคำค้นหาไปวางในคอนโซล สถานะที่นำไปใช้งานจะตรงกับสิ่งที่อยู่ใน main เสมอ
sigma convert -t splunk -p splunk_windows \
detections/windows/execution/suspicious_powershell.ymlการทดสอบการตรวจจับ
การตรวจจับที่ไม่มีการทดสอบก็เป็นเพียงการคาดเดา การตรวจจับในรูปแบบโค้ดจะจับคู่แต่ละกฎกับข้อมูลทดสอบ ได้แก่ ตัวอย่างบันทึกที่ ควรทำให้กฎทำงาน (ผลบวกจริง) และตัวอย่างที่ไม่เป็นอันตรายซึ่ง ไม่ควรทำให้กฎทำงาน (ผลบวกลวง)
การทดสอบทำงานในกระบวนการผสานรวมอย่างต่อเนื่อง ดังนั้นการเปลี่ยนแปลงที่ทำให้ความครอบคลุมลดลงหรือนำสัญญาณรบกวนกลับมา จะทำให้การสร้างไม่ผ่านก่อนผสาน นี่คือแหล่งความมั่นใจที่สำคัญที่สุดเมื่อปรับโครงสร้างกฎในวงกว้าง
test:
- log: { Image: 'C:\\Windows\\System32\\rundll32.exe', CommandLine: 'rundll32 javascript:...' }
expected: match
- log: { Image: 'C:\\Windows\\System32\\rundll32.exe', CommandLine: 'rundll32 shell32.dll,Control_RunDLL' }
expected: no_matchข้อมูลเมตาของกฎและวงจรชีวิต
ให้ความสำคัญกับข้อมูลเมตาในระดับเดียวกับองค์ประกอบหลัก การตรวจจับแต่ละรายการจะบันทึก สถานะของตนเองเมื่อพัฒนาผ่านวงจรชีวิต:
experimental— เพิ่งเขียนขึ้นใหม่และต้องเฝ้าติดตามอย่างใกล้ชิดtest— ทำงานอยู่แต่ยังไม่น่าเชื่อถือพอสำหรับการแจ้งเตือนstable— ผ่านการพิสูจน์แล้วและมีอัตราผลบวกลวงต่ำdeprecated— มีกฎอื่นมาแทนที่หรือเลิกใช้งานแล้ว
การติดตามสถานะไว้ในไฟล์ช่วยให้คุณเลื่อนระดับ ลดระดับ และเลิกใช้กฎได้อย่างมีเจตนา แทนที่จะปล่อยให้ตรรกะที่ล้าสมัยค้างอยู่ในระบบจริง
การใช้งานข้ามระบบส่วนหลัง
ข้อได้เปรียบหลักของการตรวจจับในรูปแบบโค้ดคือการเขียนตรรกะการตรวจจับ เพียงครั้งเดียวในรูปแบบที่ไม่ขึ้นกับผู้จำหน่าย แล้วคอมไพล์ไปยังระบบส่วนหลังได้หลายรูปแบบ ซิกมาเป็นมาตรฐานโดยพฤตินัยสำหรับการตรวจจับที่อิงตามบันทึก
ไฟล์กฎเดียวกันสามารถกำหนดเป้าหมายเป็นสปลังก์ SPL, อีลาสติก ลูซีน/EQL, ไมโครซอฟท์ เซนทิเนล KQL และระบบอื่น ๆ ผ่านการจับคู่ฟิลด์เฉพาะของกระบวนการทำงาน คุณไม่ต้องเขียนแนวคิดเดิมซ้ำห้าครั้ง และไม่ถูกผูกติดกับผู้จำหน่ายรายใดรายหนึ่ง
sigma convert -t elasticsearch rule.yml
sigma convert -t microsoft365defender rule.yml
sigma convert -t splunk rule.ymlกระบวนการจับคู่ฟิลด์
แหล่งบันทึกต่างชนิดกันอาจตั้งชื่อข้อมูลเดียวกันแตกต่างกัน เหตุการณ์การสร้างกระบวนการของซิสโมนใช้ Image ส่วนบันทึกความปลอดภัยของวินโดวส์อาจใช้ NewProcessName กระบวนการทำงานประมวลผลช่วยเชื่อมช่องว่างนี้
กระบวนการทำงานจะแปลงชื่อฟิลด์ทั่วไปของซิกมาเป็นฟิลด์ที่ตรงกับข้อมูลของคุณ ดังนั้นกฎเชิงตรรกะหนึ่งกฎจึงจับคู่ได้อย่างราบรื่นกับโครงสร้างข้อมูลใด ๆ ที่ SIEM นำเข้า การดูแลกระบวนการทำงานไว้ที่ส่วนกลางทำให้การเปลี่ยนโครงสร้างข้อมูลได้รับการแก้ไขเพียงครั้งเดียว ไม่ใช่แก้ทีละกฎ
sigma convert -t splunk -p sysmon rule.ymlสภาพแวดล้อมและการเลื่อนระดับ
เช่นเดียวกับโค้ดของแอปพลิเคชัน การตรวจจับจะเคลื่อนผ่านสภาพแวดล้อมต่าง ๆ ก่อนถึงระบบจริง กระแสงานทั่วไปคือสภาพแวดล้อมพัฒนาไปยังสภาพแวดล้อมเตรียมใช้งาน แล้วจึงไปยังระบบจริง
- พัฒนา — เขียนและเรียกใช้การทดสอบหน่วยในกระบวนการผสานรวมอย่างต่อเนื่อง
- เตรียมใช้งาน — นำไปใช้กับสำเนาข้อมูลเทเลเมทรีจริงในโหมดตรวจสอบ
- ระบบจริง — เลื่อนระดับเมื่ออัตราผลบวกลวงอยู่ในระดับยอมรับได้
การเลื่อนระดับเป็นขั้นตอนที่ตั้งใจและผ่านการตรวจทาน โดยเชื่อมโยงกับสถานะวงจรชีวิตของกฎ ไม่ใช่ผลโดยบังเอิญจากการผสาน การนำไปใช้แบบเป็นขั้นตอนนี้สะท้อนแนวทาง “แจ้งเตือนแล้วจึงบล็อก” ที่ใช้กับการตรวจจับแบบแทรกในสายงาน
ความครอบคลุมและตัวชี้วัด
เนื่องจากการตรวจจับเป็นโค้ด คุณจึงสามารถวัดความครอบคลุมด้วยโปรแกรมได้ เชื่อมโยงกฎแต่ละข้อกับเทคนิคของ MITRE ATT&CK และสร้างแผนที่ความร้อนเพื่อดูว่าส่วนใดที่ครอบคลุมและไม่ครอบคลุม
ตัวชี้วัดที่ควรติดตามเมื่อเวลาผ่านไป:
- เทคนิคที่ครอบคลุมเทียบกับจำนวนเทคนิคทั้งหมดในแบบจำลองภัยคุกคาม
- อัตราผลบวกลวงต่อกฎ
- เวลาเฉลี่ยตั้งแต่เกิดแนวคิดกฎจนถึงการใช้งานจริง
- จำนวนกฎในแต่ละสถานะของวงจรชีวิต
ตัวเลขเหล่านี้เปลี่ยนวิศวกรรมการตรวจจับจากเรื่องเล่าหรือความเห็นส่วนตัวให้เป็นโครงการที่มีการบริหารจัดการ
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจพื้นฐานของการตรวจจับในรูปแบบโค้ด
ทบทวน
การตรวจจับในรูปแบบโค้ดนำความเคร่งครัดของวิศวกรรมซอฟต์แวร์มาใช้กับการตรวจจับ:
- กฎอยู่ในรูปของ แฟ้มที่มีการจัดการเวอร์ชัน ในระบบควบคุมเวอร์ชัน
- การเปลี่ยนแปลงต้องผ่าน การทบทวนคำขอผสาน
- การผสานรวมอย่างต่อเนื่อง จะตรวจรูปแบบ ตรวจสอบความถูกต้อง และเรียกใช้การทดสอบโดยอัตโนมัติ
- กฎที่ผสานแล้วจะถูก นำไปใช้งาน ผ่านกระบวนการส่งต่อ ทำให้ระบบจริงสอดคล้องกับสาขาหลัก
- การทดสอบ ช่วยป้องกันผลบวกลวงและการถดถอย
- การใช้งานข้ามระบบ (ซิกมา + กระบวนการส่งต่อ) ทำให้กฎข้อเดียวกำหนดเป้าหมายเป็นระบบปลายทางได้หลายระบบ
- ข้อมูลกำกับ วงจรชีวิต และตัวชี้วัด ทำให้การตรวจจับเป็นโครงการที่มีการบริหารจัดการ
ถัดไป คุณจะเขียนกฎที่ใช้งานข้ามระบบด้วยซิกมา
คำถามที่พบบ่อย
บทเรียน “หลักการตรวจจับในรูปแบบโค้ด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “หลักการตรวจจับในรูปแบบโค้ด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “หลักการตรวจจับในรูปแบบโค้ด”
ปฏิบัติต่อการตรวจจับเช่นเดียวกับซอฟต์แวร์ คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “หลักการตรวจจับในรูปแบบโค้ด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- หลักการตรวจจับในรูปแบบโค้ด
- การเขียนกฎ Sigma
- การจับคู่กับ MITRE ATT&CK
- การทดสอบและปรับแต่งการตรวจจับ