(สรุป) Machine Learning and Deep Learning Methods for Intrusion Detection Systems: A Survey

Saksit Jantaraplin
6 min readJun 17, 2021

Reference

Words

  • IDS (Intrusion Detection System) คือระบบตรวจจับการบุกรุกในระบบคอมพิวเตอร์หรือเครือข่าย
  • ML (Machine Learning) การทำให้ระบบคอมพิวเตอร์มีความสามารถในการเรียนรู้ด้วยตัวเอง

Abstract

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

Deep Learning เป็น ML รูปแบบหนึ่งที่มีประสิทธิภาพและเป็นที่สนใจของนักวิจัย

แบบสำรวจนี้จะเสนอการจัดหมวดหมู่ของ IDS โดยใช้ลักษณะของข้อมูลเป็นเกณฑ์ในการจำแนก และอธิบายถึง IDS ที่ใช้ความสามารถจาก ML และ Deep learning

Introduction

เนื่องจากระบบเครือข่ายมีอิทธิพลต่อโลกสมัยใหม่มากขึ้น การรักษาความปลอดภัยในโลกไซเบอร์จึงเป็นหนึ่งในเรื่องสำคัญสำหรับการศึกษาวิจัย
Cybersecurity โดยหลักแล้วมักพูดถึงเทคนิคการรักษาความปลอดภัยเป็นส่วนใหญ่ ซึ่งประกอบด้วย ซอฟต์แวร์ป้องกันไวรัส, ไฟร์วอลล์ และระบบตรวจจับการบุกรุก เทคนิคเหล่านี้ปกป้องเครือข่ายจากการโจมตีทั้งภายในและภายนอก ซึ่งส่วนประกอบที่กล่าวมานี้ ระบบ IDS เป็นระบบตรวจจับที่มีบทบาทสำคัญในการปกป้องความปลอดภัยทางไซเบอร์ โดยใช้วิธีการตรวจสอบสถานะของซอฟต์แวร์และฮาร์ดแวร์ที่ทำงานในเครือข่าย

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

เพื่อแก้ไขปัญหาทั้งหมดที่พบ นักวิจัยจึงได้เริ่มให้ความสำคัญกับการสร้างระบบ IDS โดยใช้ ML ซึ่งเป็นเทคนิคที่จะสามารถค้นหา/วิเคราะห์ข้อมูลจากชุดข้อมูลขนาดใหญ่ได้โดยอัตโนมัติ เทคนิค Deep learning เป็นหนึ่งในรูปแบบของ ML ที่มีประสิทธิภาพเมื่อเปรียบเทียบกับ ML แบบดั้งเดิม เนื่องจากสามารถที่จะจัดการกับข้อมูลขนาดใหญ่ได้ดีกว่า สามารถที่จะแสดงคุณลักษณะของข้อมูลดิบได้โดยอัตโนมัติ และมีโครงสร้างการเรียบรู้เชิงลึกซึ่งมีระดับของการเรียนรู้ที่ซ่อนอยู่ภายในหลายชั้น ในทางตรงกันข้ามโมเดลการเรียนรู้แบบดั้งเดิม เช่น support vector machine (SVM) และ k-nearest Neighbor (KNN) อาจจะไม่มีหรือมีเพียงระดับชั้นการเรียนรู้เดียว

วัตถุประสงค์ของการสำรวจนี้คือการจัดประเภท และสรุปเกี่ยวกับระบบ IDS ที่ใช้ ML เป็นเครื่องมือในปัจจุบัน รวมถึงสรุปแนวคิดหลักของการใช้ ML กับปัญหาเรื่องของความปลอดภัย วิเคราะห์ความท้าทายในปัจจุบัน และการพัฒนาในอนาคต
การสำรวจนี้พิจารณาจากเอกสารงานวิจัยตั้งแต่ปี 2015 ถึง 2019 ซึ่งจะสะท้อนถึงความคืบหน้าของการพัฒนา โดยที่มีวัตถุประสงค์เพื่อแนะนำอัลกอริทึม ML ที่ใช้กับระบบ IDS ซึ่งอาจเป็นประโยชน์ต่อนักวิจัย
อย่างไรก็ตามการการแบ่งประเภทในการสำรวจนี้เน้นไปที่การพัฒนาเทคโนโลยีเพื่อการใช้งานแบบเฉพาะด้าน มากกว่ามองที่ปัญหาทางด้านความปลอดภัย ด้วยเหตุนี้แบบสำรวจจึงไม่ได้กล่าวถึงการแก้ไขปัญหาด้านความปลอดภัยโดยใช้ ML โดยตรง

ข้อมูลเป็นองค์ประกอบสำคัญของระบบ IDS เนื่องจากข้อมูลจะเป็นสิ่งที่แสดงให้เห็นคุณสมบัติหรือลักษณะที่เกี่ยวข้องกับพฤติกรรมการโจมตี ประเภทหรือลักษณะของข้อมูลจะมีองค์ประกอบที่แตกต่างกัน ทำให้โมเดลการเรียนรู้ของ ML ที่จะเลือกนำมาใช้กับแต่ละชุดข้อมูลนั้นแตกต่างกันออกไปด้วย ในการสำรวจนี้จึงจะวิเคราะห์ข้อมูลอย่างละเอียด และจัดแบ่งประเภทของระบบ IDS ตามแหล่งที่มาของชุดข้อมูล

ตัวอย่างปัญหาที่จะสามารถตอบโจทย์ได้ด้วยการแบ่งแยกประเภท
1. คุณลักษณะใดที่แสดงถึงการโจมตีที่แตกต่างกันได้ดีที่สุด
2. ข้อมูลประเภทใดที่เหมาะสมที่สุดสำหรับการตรวจจับการโจมตีแต่ละรูปแบบ
3. อัลกอริธึมการเรียนรู้ของ ML แบบใดที่เหมาะสมที่สุดสำหรับประเภทข้อมูลเฉพาะ
4. วิธีการเรียนรู้ของ ML ช่วยปรับปรุง IDS ในด้านต่างๆ ได้อย่างไร

Concept and Taxonomy of IDS

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

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

Classification by Detection Methods

การตรวจจับการใช้งานในรูปแบบผิดๆ (Misuse detection) หรือเรียกอีกอย่างว่า การตรวจจับแบบ signature-based แนวคิดพื้นฐานก็คือดูพฤติกรรมการโจมตีและมองลักษณะเด่นของมันหรือ signature แล้วกระบวนการตรวจจับก็ตรวจจับจาก signature นั้นๆ โดยเปรียบเทียบกับข้อมูลที่เก็บเอาไว้ในฐานข้อมูล แต่ปัญหาที่พบจากการใช้วิธีนี้คือการออกแบบลักษณะ signature ที่จะต้องมีประสิทธิภาพเพียงพอในการตรวจจับ
ข้อดี มีอัตราความผิดพลาดในการตรวจจับต่ำและสามารถรายงานประเภทการโจมตีและสาเหตุที่เป็นไปได้อย่างละเอียด
ข้อเสีย มีอัตราการตรวจจับที่พลาด(ไม่พบความผิดปกติ)จำนวนมาก และไม่สามารถตรวจจับการโจมตีใหม่ๆ ที่ยังไม่รู้จักได้

การตรวจจับหาความผิดปกติ (Anomaly detection) ใช้แนวคิดแบบสร้างลักษณะโปรไฟล์ของความปกติขึ้นมาก่อน แล้วจึงค่อยกำหนดพฤติกรรมที่มีระดับความเบี่ยงเบนออกไปจากโปรไฟล์ปกติ ดังนั้นการกำหนดโปรไฟล์ปกติที่มีความชัดเจนจึงเป็นกุญแจหลักในประสิทธิภาพของการตรวจจับ
ข้อดี สามารถระบุลักษณะความปกติที่คาดหวังเอาไว้ได้ และสามารถที่จะรับรู้ได้ถึงการโจมตีที่ไม่รู้จักมาก่อน
ข้อเสีย อัตราการตรวจจับที่ผิดพลาดสูง และไม่สามารถให้เหตุผลของความผิดปกติที่ตรวจพบได้

Classification by Source of Data

IDS แบบ host-based
ข้อดี
สามารถระบุตำแหน่งการบุกรุกได้อย่างแม่นยำ เพราะสามารถตรวจสอบลักษณะพฤติกรรมของ ไฟล์ โปรแกรม และพอร์ท ได้
ข้อเสีย ทำงานบนเครื่องโฮสต์ไม่สามารถตรวจจับการโจมตีเครือข่ายได้

IDS แบบ network-based
ข้อดี
มักถูกนำไปปรับใช้กับโฮสต์หรือสวิทช์หลักบนเครือข่าย ซึ่งสามารถใช้ได้กับสภาพแวดล้อมที่แตกต่างกันโดยไม่ขึ้นกับระบบปฏิบัติการ และสามารถตรวจจับเฉพาะเจาะจงโปรโตคอลและการโจมตีที่มาทางเครือข่ายได้
ข้อเสีย
สามารถตรวจสอบได้เฉพาะข้อมูลที่มีการรับ-ส่งผ่านเครือข่ายเท่านั้น

วิธีการแบบ host-based ใช้ audit logs เป็นแหล่งข้องมูล ส่วนวิธีการตรวจหาความผิดปกติก็เป็นแบบผสมตามกฎที่กำหนดขึ้นมา และอัลกอริทึมของ ML ซึ่งทั้งนี้ขึ้นอยู่กับ attribute ของชุดข้อมูล และวิธีวิเคราะห์ข้อมูลแบบ text-based ด้วย

วิธีการแบบ network-based ใช้แหล่งข้อมูลจาก ข้อมูลที่รับ-ส่ง ผ่านเครือข่าย หรือแพ็คเก็ต ข้อมูล session ก็เป็นแพ็คเก็ตหนึ่งที่ประกอบด้วยข้อมูล เช่น ip client, port client, ip server, port server, protocol ซึ่งล้วนแต่เป็นข้อมูลที่มีความสำคัญ

วิธีการตรวจจับจากแพ็คเก็ต

  • parsing-based methods
  • payload analysis-based methods

วิธีการตรวจจับจากการไหลของข้อมูล (Flow detection)

  • feature engineering-based methods
  • deep learning-based methods

วิธีการตรวจจับจาก session

  • statistical feature-based methods
  • sequence feature-based methods

Common Machine Learning Algorithms in IDS

Machine Learning Models

ML มี 2 ประเภทหลัก ก็คือ Supervised Learning กับ Unsupervised Learning
Supervised Learning ใช้กับชุดข้อมูลที่มี label กำกับ หรือเป็นข้อมูลทั่วไปที่มีความหมายในตัวเองอยู่แล้ว นิยมใช้กับระบบ IDS แต่การคาดการ label ของ supervised ค่อนข้างใช้ทรัพยากรมากและใช้เวลานาน ซึ่งในทางตรงกันข้าม unsupervised จะแบ่งแยกประเภทของข้อมูลโดยการดึงคุณลักษณะสำคัญออกมาแบบไม่มี label กำกับทำให้การเรียนรู้นั้นง่ายขึ้น แต่ประสิทธิภาพการตรวจจับแบบ supervised จะดีกว่า

Shallow Models

เป็นโมเดล ML แบบดั้งเดิมที่ใช้กับ IDS ส่วนใหญ่มาเป็นระยะเวลานาน ประกอบด้วย artificial neural network (ANN), support vector machine (SVM), K-nearest neighbor (KNN), naïve Bayes, logistic regression (LR), decision tree, clustering รวมถึงวิธีการแบบผสมและแบบ hybrid วิธีการเหล่านี้ที่ได้เคยศึกษากันมาไม่ได้แค่เพียงดูที่ผลการตรวจจับเท่านั้น แต่ยังมีการศึกษาและพัฒนาประสิทธิภาพ การจัดการกับข้อมูลด้วย

Deep Learning Models

โมเดลการเรียนรู้เชิงลึก ประกอบด้วย deep brief networks (DBNs), deep neural networks (DNNs), convolutional neural networks (CNNs), and recurrent neural networks (RNNs) เป็น supervised และ autoencoders, restricted Boltzmann machines (RBMs) และ generative adversarial networks (GANs) เป็น unsupervised โมเดลแบบการเรียนรู้เชิงลึกซึ่งเรียนรู้จากลักษณะของข้อมูลต้นฉบับโดยตรง โดยที่ไม่ต้องใช้วิธีการจัดเตรียมข้อมูลใดๆ เป็นข้อได้เปรียบหากเปรียบเทียบกับโมเดลแบบดั้งเดิม ในกรณีที่ต้องวิเคราะห์ข้อมูลขนาดใหญ่ แต่ทั้งนี้ต้องปรับตั้งค่าพารามิเตอร์ต่างๆ ให้เหมาะสม

Shallow Models Compared to Deep Models

Deep learning เป็นการเรียนรู้ประเภทนึงของ ML แต่ deep learning มีประสิทธิภาพเหนือกว่าการเรียนรู้แบบ Shallow ซึ่งความแตกต่างหลักๆมีดังนี้

  1. Running Time การทำงานของ deep learning กับชุดข้อมูล train และ test จะใช้เวลาค่อนข้างนานกว่า shallow เพราะ deep learning เป็นการเรียนรู้ที่มีความซับซ้อนสูง
  2. Number of parameters พารามิเตอร์มี 2 แบบ คือ แบบที่เรียนรู้เองได้และไฮเปอร์พารามิเตอร์ พารามิเตอร์แบบเรียนรู้ได้จะเกิดการเรียนรู้ในระหว่างที่เรา train model ส่วน ไฮเปอร์พารามิเตอร์เกิดขึ้นจากที่เราปรับตั้งเองในขั้นตอนก่อนที่จะ train model โดยรวมแล้วพารามิเตอร์ของ deep learning มีจำนวนมากกว่า แบบ shallow ทำให้การ train model และการเพิ่มประสิทธิภาพต่างๆ ให้กับ deep learning นั้นจะใช้เวลามาก
  3. Feature representation การเรียนรู้แบบดั้งเดิมหรือ shallow มีการจัดเตรียมฟีเจอร์เป็นขั้นตอนที่สำคัญ แต่ในทางตรงกันข้าม การเรียนรู้แบบ deep learning สามารถเรียนรู้จากข้อมูลดิบได้เลยไม่ต้องเตรียมการใดๆ และไม่ต้องพึ่งพาเครื่องมือในการดัดแปลง/ปรับแต่งข้อมูล ทำให้เป็นข้อได้เปรียบข้อหนึ่ง
  4. Learning capability เนื่องจากการเรียนรู้แบบ deep learning มีกลไลที่ซับซ้อนกว่า ทำให้มีความสามารถมากกว่า แต่ทั้งนี้จะต้องมีข้อมูลมากเพียงพอในการ train model การเรียนรู้จึงจะออกมาสมบูรณ์และได้ผลลัพธ์ที่ดีกว่าการเรียนรู้แบบ shallow
  5. Interpretability (การตีความ) จุดสำคัญอย่างหนึ่งของ deep learning คือมันเป็นการเรียนรู้แบบกล่องดำ ผลลัพธ์แทบจะไม่สามารถตีความออกมาได้ ต่างกับการเรียนรู้แบบ shallow เช่น decision tree และ naïve Bayes ที่สามารถตีความได้อย่างชัดเจน

Metrics

การที่จะประเมินผลการเรียนรู้ของ ML จะต้องใช้ metric จำนวนมากเพื่อเลือกโมเดลที่เหมาะสมที่สุด เราจะจะใช้ metric หลายตัวพร้อมกันในการศึกษาระบบ IDS

Accuracy

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

Precision (P)

อัตราส่วนของ “ตัวอย่างที่เป็น positive” ต่อ “ตัวอย่างที่ทำนายออกมาเป็น positive” แสดงถึงความมั่นใจในการตรวจจับการโจมตี

Recall (R)

อัตราส่วนของ “ตัวอย่างที่เป็น positive” ต่อ “ตัวอย่างที่เป็น positive ทั้งหมด” หรือเรียกว่าอัตราการตรวจจับ แสดงถึงความสามารถของโมเดลในการจดจำการโจมตี เป็นตัวชี้วัดที่สำคัญใน IDS

F-measure (F)

ค่าเฉลี่ยของ Precision และ Recall

The false negative rate (FNR)

อัตราส่วนของ “ตัวอย่างที่เป็น negative แบบผิดๆ” ต่อ “อัตราส่วนของตัวอย่างที่เป็น positive” หรือเรียกอย่างว่าอัตราการเตือนที่พลาดไป (พลาดที่ไม่ได้เตือน)

The false positive rate (FPR)

อัตราส่วนของ “ตัวอย่างที่เป็น positive แบบผิดๆ” ต่อ “ตัวอย่างที่ทำนายเป็น positive” หรือเรียกอย่างว่าอัตราการเตือนที่ผิดพลาด

จุดประสงค์ของ IDS คือการรับรู้การโจมตี ดังนั้นตัวอย่างที่เป็นการโจมตีมักจะถือเป็น positive และตัวอย่างปกติมักจะถือเป็น negative ส่วน metric ที่ใช้บ่อย ได้แก่ accuracy, recall (or detection rate), FNR (or missed alarm rate) และ FPR (or false alarm rate)

Benchmark Datasets in IDS

การเรียนรู้ของ ML คือการดึงข้อมูลที่มีความหมายหรือมีประโยชน์ออกมาจากชุดข้อมูล ดังนั้นประสิทธิภาพของการเรียนรู้อาจจะขึ้นอยู่กับคุณภาพของชุดข้อมูลด้วยส่วนหนึ่ง ชุดข้อมูลที่นำมาใช้ควรเป็นชุดข้อมูลที่ง่ายต่อการนำมาใช้งานและต้องมีข้อมูลที่สะท้อนให้เห็นพฤติกรรมของเครือข่ายจริงๆ ชนิดของข้อมูลที่นำมาใช้กับ IDS มักจะเป็น packets, flow, sessions และ logs การสร้างชุดข้อมูลที่พร้อมนำไปใช้นั้นซับซ้อนและใช้เวลานาน แต่หลังจากที่ได้ชุดข้อมูลมาแล้วสามารถนำมาใช้ซ้ำได้ การใช้ชุดข้อมูลมาตรฐาน มีข้อดีคือมีความน่าเชื่อถือและส่งผลให้การวิจัยมีความน่าเชื่อถือไปด้วย อีกทั้งยังสามารถเปรียบเทียบผลการศึกษาใหม่กับผลการศึกษาก่อนหน้าได้ เนื่องจากใช้ชุดข้อมูลมาตรฐานเหมือนกัน

ตัวอย่างชุดข้อมูลเกณฑ์มาตรฐาน Benchmark Datasets

  1. DARPA1998
  2. KDD99
  3. NSL-KDD
  4. UNSW-NB15

Research on Machine Learning-Based IDSs

ในหัวข้อนี้พูดถึงวิธีการที่จะนำ ML ไปใช้กับระบบ IDS โดยการออกแบบจะมีความแตกต่างจากชนิดของข้อมูลที่ต่างกัน ชนิดของข้อมูลที่ต่างกันจะสะท้อนให้เห็นพฤติกรรมการโจมตีที่แตกต่างกัน ซึ่งหลักๆแล้วจะแบ่งออกเป็น พฤติกรรมของเครื่องโฮสต์และพฤติกรรมของเครือข่าย โดยที่พฤติกรรมของเครื่องโฮสต์ จะสะท้อนได้จาก log ของระบบ และพฤติกรรมของเครือข่ายจะสะท้อนได้จากข้อมูลการรับ-ส่ง ในเครือข่าย
การโจมตีมีหลายประเภท แต่ละประเภทก็มีลักษณะเฉพาะของตัวเอง ดังนั้นการเลือกแหล่งข้อมูลที่เหมาะสมจึงเป็นสิ่งจำเป็นในการตรวจจับการโจมตีที่แตกต่างกันตามลักษณะการโจมตี เช่น DOS จะทำการส่งแพ็คเก็ตจำนวนมากๆ ภายในระยะเวลาสั้นๆ ดังนั้นการไหลของข้อมูลจึงมีความเหมาะสมที่จะนำมาตรวจจับการโจมตี DOS

Packet-Based Attack Detection

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

  1. ในแพ็คเก็ตมีข้อมูลเกี่ยวกับการสื่อสารอยู่ด้วยจึงสามารถใช้ตรวจจับการโจมตีแบบ U2L และ R2L ได้
  2. ในแพ็คเก็ตมีข้อมูล IP และ Timestamps สามารถระบุแหล่งที่มาและเวลาของการโจมตีได้อย่างแม่นยำ
  3. แพ็คเก็ตสามารถประมวลผลได้เลยทันทีโดยไม่ต้องเก็บแคช ทำให้ตรวจจับได้แบบเรียลไทม์

อย่างไรก็ตามแพ็คเก็ตหนึ่งๆ ไม่สามารถที่จะสะท้อนสถานะของการสื่อสารออกมาได้จึงทำให้การตรวจจับการโจมตีบางประเภททำได้ยาก เช่น DDOS การตรวจจับโดยใช้แพ็คเก็ตแบ่งได้เป็น 2 วิธีการหลักๆคือ packet parsing และ payload analysis

Flow-Based Attack Detection

ข้อมูลการรับ-ส่ง หรือการไหลของแพ็คเก็ต จะอยู่ในลักษณะเป็นกลุ่มของช่วงเวลา ซึ่งเป็นชุดข้อมูลที่มีความหลากหลายมากที่สุดสำหรับการนำไปใช้กับ IDS ชุดข้อมูล KDD99 และ NSL-KDD ก็เป็นข้อมูลการไหลของแพ็คเก็ต การตรวจจับรูปแบบนี้มีประโยชน์ 2 อย่าง คือ

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

อย่างไรก็ตามการตรวจจับการไหลของข้อมูลจะไม่สนใจเนื้อหาด้านในแพ็คเก็ตทำให้ตรวจจับการโจมตีแบบ U2R และ R2L ไม่ได้
การตรวจจับการโจมตีจากการไหลของข้อมูลแบ่งออกได้เป็น 3 วิธีการคือ feature engineering, deep learning และ traffic grouping (สำหรับชุดข้อมูลที่มีความแตกต่างกันมากๆ)

Session-Based Attack Detection

เซสชันเป็นการปฏิสัมพันธ์กันระหว่างเครื่อง 2 เครื่อง เซสชันสามารถที่จะแสดงข้อมูลรายละเอียดได้ในระดับสูง และมักจะแบ่งออกเป็น 5 ส่วนหลักคือ client IP, client port, server IP, server port และ protocol ข้อดีของการตรวจจับโดยใช้เซสชัน คือ

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

ระยะเวลาของเซสชันอาจจะมีความแตกต่างกันมากได้ ซึ่งทำให้การตรวจจับจะต้องอาศัยการเก็บแคชจำนวนมาก ส่งผลให้อาจมีอาการ lag ได้

การตรวจจับแบบเซสชันแบ่งออกเป็น 2 วิธีการหลักๆ คือ statistics-based features และ sequence-based features

Log-Based Attack Detection

log เป็นบันทึกข้อมูลกิจกรรมการทำงานของระบบปฏิบัติการหรือแอปพลิเคชัน ซึ่งประกอบไปด้วยข้อมูลการติดต่อ, การแจ้งเตือน และการเข้าถึงต่างๆ ประโยชน์ของการตรวจจับด้วยข้อมูลรูปแบบนี้คือ

  1. ข้อมูล log ประกอบด้วยรายละเอียดของเนื้อหาข้อมูลทั้งหมด จึงเหมาะกับการตรวจจับการโจมตีแบบ SQL injection, U2R, และ R2L
  2. log มักจะเก็บเอาข้อมูลของผู้ใช้งานและเวลาการใช้งานซึ่งสามารถที่จะเอาไปใช้ในการติดตามหรือแกะรอยการโจมตี และเวลาในการโจมตี
  3. ข้อมูล log เป็นข้อมูลที่จะบันทึกการบุกรุกอย่างสมบูรณ์ ซึ่งมีความหมายในตัวเองอยู่แล้ว

การตรวจจับโดยใช้ข้อมูล log ผู้ศึกษาจะต้องทราบถึงหลักการความรู้พอสมควร ว่าควรจะต้องคำนึงถึงเรื่องใดบ้าง เช่น ความแตกต่างของลักษณะข้อมูล จากแอปพลิเคชันที่แตกต่างกัน การตรวจจับโดยใช้ข้อมูล log แบ่งออกได้เป็น 3 วิธีการหลักๆ คือ hybrid methods involving rules and machine learning, log feature extraction-based methods และ text analysis-based methods

Challenges and Future Directions

ตารางต่อไปนี้จะแสดงรายการงานวิจัยที่ใช้ machine learning based IDSs และถูกพูดถึงในการสำรวจครั้งนี้ จะเห็นได้ว่าวิธีการเรียนรู้แบบ deep learning ได้กลายเป็นจุดสนใจของการวิจัย (จาก 26 งานวิจัย มีทั้งหมด 14 งานวิจัยที่ใช้วิธีการแบบ deep learning) อีกทั้งงานวิจัยต่างๆ ยังคงใช้ชุดข้อมูล KDD99 และ NSL-KDD

(1) Lack of available datasets

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

(2) Inferior detection accuracy in actual environments

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

(3) Low efficiency

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

จากการสรุปผลของการศึกษาวิจัยก่อนหน้านี้ เราสามารถสรุปได้ว่าแนวโน้มหลักของการวิจัย IDS จะเป็นไปในแนวทางต่อไปนี้ …

(1) Utilizing domain knowledge

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

  • การตรวจจับแบบ rule-based มีความผิดพลาดของการแจ้งเตือนที่ต่ำแต่มีการแจ้งเตือนที่พลาด(ไม่ได้แจ้งเตือน)ไปสูง และต้องอาศัยความรู้จากผู้เชี่ยวชาญ ในทางตรงกันข้าม ML มักจะมีการแจ้งเตือนที่ผิดสูงแต่การแจ้งเตือนที่พลาดน้อย ข้อดีของทั้งสองวิธีการจะช่วยทำให้ระบบมีความสมบูรณ์ เมื่อรวม rule-based เข้ากับ ML
  • การโจมตีแบบเฉพาะเจาะจงเช่น DOS, botnet และ phishing จะต้องดึงเอาคุณลักษณะการโจมตีที่สามารถสรุปได้จากความรู้ในโดเมนนั้นๆ
  • สำหรับสถานการณ์การทำงานของแอปพลิเคชันเช่น cloud computing, IoT และ smart grids ความรู้ในแต่ละโดนเมนจะช่วยให้ข้อมูลคุณลักษณะของสภาพแวดล้อมที่จะเป็นประโยชน์ต่อการเก็บข้อมูลและประมวลผลข้อมูล

(2) Improving machine learning algorithms

การพัฒนาวิธีการของ ML เป็นวิธีการหลักที่จะปรับปรุงประสิทธิภาพของการตรวจจับ ดังนั้นการศึกษาเกี่ยวกับ deep learning และ unsupervised learning จึงมีแนวโน้มเพิ่มขึ้น

  • เปรียบเทียบกับโมเดลแบบดั้งเดิม วิธีการแบบ deep learning เรียนรู้ฟีเจอร์โดยตรงจากข้อมูลดิบ ทำให้ความสามารถที่เหมาะสมมีความแข็งแกร่งมาก โมเดล deep learning ด้วย deep structure สามารถที่จะใช้ทำ classification, feature extraction, feature reduction, data denoising และ data augmentation tasks ได้ ดังนั้นวิธีการแบบ deep learning จึงสามารถพัฒนาระบบ IDSs ได้ในหลายๆด้าน
  • วิธีการแบบ unsupervised learning ต้องการข้อมูลที่ไม่มี label กำกับ ดังนั้นเราสามารถใช้วิธีนี้ได้แม้ว่าชุดข้อมูลจะมีน้อย เป็นวิธีการทั่วไปของการแบ่งข้อมูลโดยใช้โมเดล unsupervised learning จะกำหนด label สำหรับ cluster ขึ้นมาและนำไป train ต่อ ด้วย supervised learning

(3) Developing practical models

การทำงานของระบบ IDSs ไม่ได้ต้องการเพียงแค่ความแม่นยำในการตรวจจับสูง แต่ควรที่จะทำงานอย่างมีประสิทธิผล และต้องตีความหมายได้

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

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

Conclusions

บทความนี้นำเสนอการแบ่งแยกประเภทของระบบ IDS ซึ่งใช้แหล่งข้อมูลเป็นปัจจัยหลักเพื่ออธิบายถึงโมเดลการเรียนรู้ของ ML จำนวนหนึ่ง ในการจัดแบ่งประเภทนี้ เราวิเคราะห์และอภิปรายการปรับใช้ IDS กับแหล่งข้อมูลที่หลากหลายแตกต่างกัน เช่น logs, packets, flow และ sessions
IDS มีจุดมุ่งหมายเพื่อตรวจจับการโจมตี ดังนั้นการเลือกแหล่งข้อมูลที่เหมาะสมตามลักษณะการโจมตีจึงเป็นเรื่องสำคัญ

  • Log เป็นข้อมูลรายละเอียดซึ่งมีความหมายในตัวเอง ซึ่งเหมาะที่จะเอาไปใช้ตรวจจับการโจมตี SQL injection, U2R และ R2L
  • Packet เป็นข้อมูลเนื้อหาเกี่ยวกับการสื่อสาร เหมาะที่จะนำมาตรวจจับการโจมตี U2L และ R2L
  • Flow เป็นข้อมูลสภาพแวดล้อมทั้งเครือข่ายที่สามารถใช้ตรวจจับการโจมตี DOS และ Probe
  • Session เป็นข้อมูลที่สะท้อนถึงการสื่อสารระหว่าง client กับ server สามารถใช้ตรวจจับการโจมตี U2L, R2L, tunnel และ trojan

โมเดลการเรียนรู้เชิงลึก (deep learning) กำลังมีบทบาทสำคัญมากขึ้นเรื่อยๆ และกลายเป็นแนวทางที่ได้รับความสนใจในการศึกษา เพราะ deep learning ประกอบด้วย multiple deep network ซึ่งสามารถใช้ในการปรับปรุงประสิทธิภาพของ IDS เมื่อเปรียบเทียบกับโมเดล ML แบบดั้งเดิม deep learning มีความเหมาะสมและมีความสามารถ นอกจากนี้ deep learning ยังมีความเป็นอิสระในการใช้งานฟีเจอร์ และความรู้ในโดเมนนั้นๆ ทำให้มีข้อดีที่โดดเด่นมากกว่าโมเดล ML แบบดั้งเดิม แต่อย่างไรก็ตามเวลาในการทำงานของ deep learning มักจะใช้เวลานานกว่าที่จะเป็นแบบเรียลไทม์ตามที่ควรจะเป็นสำหรับระบบ IDS

บทความนี้วิเคราะห์และกลั่นกรองความท้าทายรวมถึงแนวโน้มในอนาคตในด้านนี้ เป็นการสรุปการศึกษาทั่วไปของงานวิจัยในปัจจุบัน เพื่อเป็นข้อมูลอ้างอิงแก่ผู้วิจัยคนอื่นๆ ที่ทำการศึกษาในเชิงลึก การขาดชุดข้อมูลที่ดีเป็นความท้าท้ายที่ยากที่สุด ดังนั้นการเรียนรู้แบบ unsupervised learning และ incremental learning จึงมีโอกาสที่จะพัฒนาในวงกว้าง สำหรับ IDS ที่ใช้งานได้จริง ความสามารถในการตีความเป็นสิ่งสำคัญ เนื่องจากโมเดลที่ตีความได้นั้นน่าเชื่อ และสามารถเป็นแนวทางให้ผู้ใช้ตัดสินใจได้ ความสามารถในการตีความของโมเดล อาจกลายเป็นทิศทางการวิจัยที่สำคัญเกี่ยวกับ IDS ในอนาคต

--

--