(แปล) DoS Detection System Based on Dynamic Thresholding Algorithm using Netflow and Elasticsearch

Saksit Jantaraplin
3 min readDec 1, 2021

Reference

  • not found in public

Abstract

ด้วยความจำเป็นที่ผู้ดูแลระบบจะต้องคอยติดตามการทำงานและตรวจสอบปัญหาที่เกิดขึ้นในระบบเครือข่ายอยู่ตลอดเวลา ซึ่งแน่นอนว่าไม่สามารถทำงานได้อย่างมีประสิทธิภาพตลอด 24 ชั่วโมง ระบบ Network attack identification systems จึงถูกสร้างขึ้นมาเพื่อแก้ไขปัญหานี้ การศึกษานี้จึงถูกสร้างขึ้นโดยมีจุดประสงค์เพื่อตรวจหาการโจมตีแบบ DoS (Denial of Service) ด้วยวิธีการที่เรียกว่า Dynamic Thresholding ข้อมูลที่นำมาใช้ในการศึกษานี้ประกอบด้วยชุดข้อมูล DARPA 2000 และชุดข้อมูลที่สร้างขึ้นมาเอง โดยใช้เครื่องมือ Netflowและ Elasticsearch ผลจากการศึกษาสรุปได้ว่ามีอัตรา false-positive ที่ต่ำกว่า เมื่อเปรียบเทียบกับงานวิจัยที่มีอยู่ (อัตรา false-positive ของชุดข้องมูล DARPA 2000 เป็น 50% และ ชุดข้อมูลที่สร้างขึ้นเองอยู่ที่ 33.33% ส่วนงานวิจับเดิมที่พบอยู่ที่ 98%)

Intro

ในปัจจุบันที่เป็นยุคแห่งข้อมูลข่าวสารและการใช้งานอินเทอร์เน็ต นอกจากจจะมีการพัฒนาเทคโนโลยีที่สนับสนุนการทำงานในด้านต่างๆแล้ว การโจมตีด้วยวิธีการต่างๆยังถูกพัฒนาตามกันไปด้วย ใน CIA ทั้ง 3 ข้อที่ประกอบด้วย ความลับ, ความสมบูรณ์, ความพร้อมใช้งาน ยังมีการโจมตีจำนวนมากที่มุ่งเป้าหมายไปยังด่านที่ 3 หรือความพร้อมใช้งาน เช่นการโจมตีแบบ DoS ซึ่งถือว่าเป็นการโจมตีที่อันตรายมาก เพราะอาจก่อให้เกิดความเสียหายต่อระบบได้อย่างมากในระยะเวลาอันสั้น

เพราะเหตุนี้การศึกษาจำนวนมากจึงคิดที่นะเสนอแนวทางในการเอาชนะการโจมตีแบบ DoS จากกระบวนการตรวจหาและระบุถึงการโจมตีนั้น ไปจนถึงการบรรเทาผลกระทบจากกการถูกโจมตี ซึ่งวิธีการระบุลักษณะการโจมตีแบบ DoS สามารถแบ่งออกได้โดยใช้แหล่งข้อมูล และวิธีการที่ใช้

แบ่งโดยแหล่งข้อมูล

  • Log ของเครื่องโฮสต์
  • Log ของอุปกรณ์เครือข่าย
  • ใช้ Log ทั้งสองแหล่ง (Hybrid)

แบ่งโดยวิธีการที่ใช้

  • Signature-based (ข้อดี: ตรวจจับได้เร็วและอัตราการผิดพลาดต่ำ, ข้อเสีย: ไม่สามารถตรวจจับรูปแบบการโจมตีใหม่ๆได้)
  • Anomaly-based (ข้อดี: ตรวจจับรูปแบบการโจมตีใหม่ๆได้, ข้อเสีย: อัตราการผิดพลาดสูงและต้องการทรัพยากรในการประมวลผลมาก)

Mukhlish et al. (2019) เสนอระบบ Log Management System โดยใช้ ELK Stack เพื่อช่วยผู้ดูแลระบบในการตรวจติดตามปัญหาของเครือข่าย ระบบนี้จะแบ่งแยกประเภท log ของอุปกรณ์เครือข่ายตามระดับความสำคัญของอุปกรณ์ ซึ่งการศึกษาทั้งหมดเน้นไปที่การประมวลผลข้อมูล log จากอุปกรณ์ภายในเครือข่าย

Kaur H. (2016) ทำการศึกษาเพื่อเปรียบเทียบและแบ่งแยกลักษณะเกี่ยวกับการโจมตีประเภท DoS โดยใช้แหล่งข้อมูลหลากหลายชนิด จากต่าง protocol และ ต่างชนิดอุปกรณ์ ซึ่งอธิบายถึงเครื่องมือที่ใช้ในการโจมตีเพื่อช่วยนักวิจัยในการเลือกเครื่องมือมาทำการทดลอง

David J. (2019) ทำการสร้างวิธีการในการตรวจจับ DoS โดยดูที่ความผิดปกติของข้อมูลที่ไหลผ่านเครือข่าย โดยใช้ประโยชน์จากวิธีการ Dynamic Thresholding วิธีการเปรียบเทียบคือดูที่ 4 แอตทริบิวต์บน header ที่ไหลเข้ามาในเครือข่าย ว่ามีค่าเฉลี่ยและความแปรปวนเป็นอย่างไรในช่วงระยะเวลาหนึ่ง ข้อดีคือใช้ทรัพยากรต่ำ แต่จะต้องตั้งค่าพารามิเตอร์ให้เหมาะสมกับการใช้งาน

จากการวิจัยของ David J. ผู้เขียนจึงพิจารณานำวิธีการ Dynamic Thresholding ไปใช้ในระบบจริง และพยายามทำให้ใกล้เคียงกับการใช้งานจริงมากที่สุด โดยมีจุดประสงค์เพื่อสร้างวิธีการตรวจจับและแยกประเภทการโจมตีแบบ DoS โดยใช้ข้อมูลจาก Cisco CSR1000v virtual router

Research Methodology

วิธีการวิจัยแบบ DSR (Design Science Research)

  1. กำหนดลักษณะโดยรวมของระบบ เช่น ความต้องการของระบบ, Topology, ขั้นตอนการทำงาน, วัตถุประสงค์ และประโยชน์
  2. ระบุข้อกำหนด ข้อจำกัดต่างๆ ของระบบ
  3. ปรับตั้งค่าและออกแบบระบบให้ตรงตามที่ความต้องการที่กำหนดเอาไว้
  4. ทดสอบและสรุปผลการทดสอบ

A. ระบุข้อกำหนด

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

B. ออกแบบ Topology

ในการทดลองใช้ PC 3 เครื่อง เป็นโฮสต์ที่จะส่ง request ปกติไปยังเว็บเซิร์ฟเวอรN และ ใช้ ีPC อีกเครื่องทำจำลองเป็นผู้โจมตี โดยจะส่ง request จำนวนมากๆไปยังเว็บเซิร์ฟเวอร์ การรับส่งข้อมูลทั้งหมดที่เข้ามายังเว็บเซิร์ฟเวอร์ จะถูกบันทึกและส่งไปยัง Filebeat ผ่านโปรโตคอล Netflow

C. ออกแบบระบบและขั้นตอนการทำงาน

Traffic จากโฮสต์ปกติส่งมายัง router -> router ทำงานตาปกติและส่งข้อมูล header ไปยัง Netflow -> Filebeat รับข้อมูลต่อจาก Netflow ปรับรูปแบบข้อมูลและส่งไปให้ Elasticsearch เก็บ -> ทุกๆ X วินาที ตัวตรวจจับจะมาเรียกข้อมูลจาก Elasticsearch ไปตรวจสอบ header ที่เก็บมาด้วยวิธีการที่กำหนดไว้ -> ตัวตรวจจับได้รับข้อมูลและวิเคราะห์ออกมาว่าเป็น traffic ปกติ หรือเป็นการโจมตี

D. ทดลองและสรุปผล

  1. สร้างระบบตรวจจับด้วยวิธีการ Dynamic Thresholding

ใช้ ภาษา python ในการพัฒนาโดยใช้ library ต่างๆที่สำคัญ และรับ parameter 2 ตัวคือ Window Size (K) และ Sampling Interval (T)

Window Size (K) ใช้กำหนดขนาดของค่าเฉลี่ยเคลื่อนที่และความแปรปรวน

Sampling Interval (T) ใช้กำหนดช่วงเวลาที่จะสุ่มตัวอย่างมาวิเคราะห์การโจมตี

ภาพแสดงจำนวน traffic ที่ไหลผ่านเครือข่ายในหน่วยวินาที

ภาพแสดงจำนวน traffic ที่ไหลผ่านเครือข่ายจาก ip ต้นทางที่แตกต่างกัน

ภาพแสดงจำนวน traffic ที่ไหลผ่านเครือข่ายจาก ip ปลายทางที่แตกต่างกัน

ภาพแสดงจำนวน protocol ที่แตกต่างกันในช่วงเวลาที่สุ่มมา

สรุปผลโดยใช้ Confusion Matrix

True Positive (TP)= วิเคราะห์ถูกต้องว่าเป็นการโจมตี

True Negative (TN)= วิเคราะห์ถูกต้องว่าเป็นข้อมูลปกติไม่ใช่การโจมตี

False Positive (FP)= วิเคราะห์ผิดว่าเป็นการโจมตี

False Negative (FN)= วิเคราะห์ผิดว่าเป็นข้อมูลปกติไม่ใช่การโจมตี

สรุปผลโดยการใช้ประโยชร์จาก Confusion Matrix

อัตราการโจมตีที่วิเคราะห์ได้ถูกต้องจากข้อมูลทั้งหมด

ความแม่นยำของการวิเคราะห์

อัตราความถูกต้องของการวิเคราะห์ข้อมูลที่ไม่ใช่การโจมตี

ผลการประเมินระบบแสดงอัตราการวิเคราะก์ที่ถูกต้องต่ำกว่างานวิจัยต้นฉบับในชุดข้อมูล DARPA2000

จากการทดลองกับชุดข้อมูลที่สร้างขึ้นเอง พบปัญหาว่าโปรโตคอล Netflow ไม่สอดคล้องกันในการรับส่งข้อมูล โดยมีความถูกต้องถึง OSI Layer 4 เท่านั้น แต่ในชุดข้อมูล DARPA 2000 โปรโตคอลการรับส่งข้อมูลสามารถแยกความแตกต่างได้ถึง OSI Layer 7 ดั้งนั้้นข้อแนะนำสำหรับการทำวิจัยเพิ่มเติมคือไปใช้เครื่องมืออื่นที่ไม่ใช่ Netflow เช่น tcpdump จะได้ความแม่นยำในการวิเคราะห์ที่มากกว่า

--

--