Lecture 5 — Auditing
องค์ประกอบสุดท้ายของ AAA ที่ทำง่ายที่สุดแต่ถูกมองข้ามบ่อยที่สุด เก็บร่องรอยไว้ทำไม และเอาไปทำอะไรต่อได้บ้าง
เลกเชอร์ 5 · อ่าน 28 นาที · เรียบเรียงจากสไลด์ Chapter 5 ของ Krerk Piromsopa, Ph.D.
Auditing คือองค์ประกอบที่ ทำง่ายที่สุด ในสามตัวของ AAA แต่มันคือฐานของระบบที่ปลอดภัย เพราะยิ่งเรารู้จักระบบของตัวเองมาก เราก็ยิ่งเขียนนโยบายได้ตรงจุด — และ log ที่เก็บไว้เฉย ๆ โดยไม่มีใครอ่าน ก็ไม่ต่างจากไม่ได้เก็บ
เนื้อหามาจากสไลด์ Chapter 5 ทั้ง 23 หน้า คำนิยาม ชื่อเครื่องมือ ชื่อคดี ปี และตัวเลขมาจากสไลด์จริง ส่วนคำอธิบาย รูป และกล่องที่ติดป้าย "เสริม" เขียนขึ้นใหม่
คาบนี้จะพาไปไหน
| คำถาม | คำตอบอยู่ที่ |
|---|---|
| Auditing คืออะไร และทำไมถึงสำคัญ | ส่วนที่ 1 |
| ข้อมูลที่เอามาตรวจมาจากไหน | ส่วนที่ 2 |
| ได้ log มาแล้วเอาไปทำอะไร | ส่วนที่ 3 |
| เอาไปจับผู้บุกรุกได้ยังไง | ส่วนที่ 4 |
| ตรวจเจอแล้วทำไมไม่หยุดมันเลย | ส่วนที่ 5 |
ส่วนที่ 1 — Auditing คืออะไร
Without continual growth and progress, such words as improvement, achievement, and success have no meaning.
ถ้าไม่มีการเติบโตและความก้าวหน้าอย่างต่อเนื่อง คำอย่างการพัฒนา ความสำเร็จ และชัยชนะ ก็ไม่มีความหมาย
— Benjamin Franklin
นิยาม
Auditing (การเก็บและตรวจสอบร่องรอยการใช้งาน) มีนิยามสองท่อน
- a systematic review or assessment of something — การทบทวนหรือประเมินสิ่งใดสิ่งหนึ่งอย่างเป็นระบบ
- a report or description of an event or experience — รายงานหรือคำบรรยายของเหตุการณ์หรือประสบการณ์ ซึ่งเป็นที่มาของคำว่า account
สองท่อนนี้คือสองครึ่งของงานเดียวกัน และคนมักทำแค่ครึ่งเดียว
ท่อนหลังคือ การจดว่าเกิดอะไรขึ้น ซึ่งระบบส่วนใหญ่ทำอยู่แล้วโดยอัตโนมัติ
ท่อนแรกคือ การกลับไปอ่านและประเมิน ซึ่งแทบไม่มีใครทำ
log ที่เก็บไว้เต็มดิสก์แต่ไม่มีใครเปิดดู มีครบแค่ท่อนที่สอง และไม่ได้ทำให้ระบบปลอดภัยขึ้นเลย
ทำไมมันสำคัญทั้งที่ทำง่ายที่สุด
จุดสำคัญมีสามข้อ
- นี่อาจเป็นองค์ประกอบที่ทำได้ง่ายที่สุด และเป็นพื้นฐานของระบบที่ปลอดภัย
- ในอดีต ความปลอดภัยคือการมี ทหารยืนเฝ้าประตู
- ยิ่งเรียนรู้จากระบบได้มาก ก็ยิ่งเขียนนโยบายได้ดี
ข้อสุดท้ายมีชื่อเรียกว่า Continuous Quality Improvement (CQI)
ประโยคที่ว่ายิ่งเรียนรู้จากระบบได้มาก ยิ่งเขียนนโยบายได้ดี คือสะพานที่เชื่อมคาบนี้กับคาบที่แล้ว
คาบที่ 4 บอกว่าต้องเขียน security policy แต่ไม่ได้บอกว่าจะรู้ได้ยังไงว่านโยบายที่เขียนไปนั้นเหมาะกับระบบจริง
คำตอบอยู่ที่นี่ — ดูจากสิ่งที่คนใช้ระบบทำจริง นโยบายที่เขียนจากการเดาว่าคนจะใช้ยังไง มักจะแน่นเกินไปในจุดที่ไม่มีใครไป และหลวมเกินไปในจุดที่มีคนไปกันเยอะ
ทหารยืนเฝ้าประตูทำสองอย่างพร้อมกัน คือ กันคนที่ไม่ควรเข้า และ จำได้ว่าใครเข้าออกตอนไหน
สองอย่างนี้แยกกันได้ และคอมพิวเตอร์ก็แยกมันออกจากกันจริง ๆ — Authorization ทำอย่างแรก Auditing ทำอย่างที่สอง
ที่สำคัญคือ อย่างที่สองยังทำงานได้แม้อย่างแรกจะพัง ถ้ามีคนผ่านประตูเข้าไปได้ทั้งที่ไม่ควรผ่าน สิ่งเดียวที่จะบอกเราได้ว่าเกิดอะไรขึ้นคือบันทึกของทหารคนนั้น
ส่วนที่ 2 — ร่องรอยมาจากไหน
Audit Trail (ร่องรอยที่ระบบทิ้งไว้ให้ตามย้อนหลังได้) มาจากสองทาง
- Physical trails — ร่องรอยทางกายภาพ เช่นภาพจากกล้องวงจรปิด
- Log files — ไฟล์บันทึกของระบบ เช่น
auth.log
ประวัติของ log
ก่อนจะมี syslog ระบบส่วนใหญ่ไม่ได้เก็บ log อะไรเลย
| ปี | เกิดอะไรขึ้น |
|---|---|
| ทศวรรษ 1980 | Eric Allman พัฒนา syslog ขึ้นเป็นส่วนหนึ่งของโครงการ Sendmail แล้วแอปอื่นก็รับไปใช้จนกลายเป็นมาตรฐานของระบบตระกูล Unix |
| 1993 | Microsoft รับแนวคิดไปทำ Windows Event Log ซึ่งก็คือ Event Viewer ที่ยังอยู่ใน Windows ทุกวันนี้ |
| ยุคที่เว็บได้รับความนิยม | รูปแบบ NCSA Common log format ถูกนำไปใช้กับบริการอื่นที่คล้ายกัน |
ปัญหาที่ยังไม่หายไป
นอกจาก syslog แล้ว ไม่มีรูปแบบมาตรฐานสำหรับการเก็บ log ผลที่ตามมาโดยตรงคือ ไม่มีเครื่องมือมาตรฐานสำหรับวิเคราะห์ log เช่นกัน
พอ Java ได้รับความนิยม ก็เกิด log4j ขึ้นมา แล้วตามด้วย log4php และ log4[xxxx] อีกเป็นชุด
ชื่อ log4[xxxx] ทั้งชุดคือหลักฐานของปัญหา ไม่ใช่ทางแก้
แต่ละภาษาสร้างไลบรารีของตัวเองขึ้นมาเพราะไม่มีมาตรฐานกลางให้ใช้ ผลคือระบบหนึ่งระบบที่เขียนด้วยสามภาษา จะได้ log สามรูปแบบที่เอามาต่อกันไม่ได้
และนี่คือเหตุผลที่การวิเคราะห์ log ในส่วนถัดไปถึงยากกว่าที่ควรจะเป็น งานครึ่งหนึ่งหมดไปกับการแปลงรูปแบบก่อนจะได้เริ่มวิเคราะห์จริง
syslog เวอร์ชันแรก ไม่มีฟิลด์สำหรับเก็บปี เพราะคนสร้างรีบติดตั้งมันเพื่อจะจับแฮกเกอร์ให้ทัน
ปี 1986 หัวหน้าชื่อ Dave Cleveland ให้ Clifford Stoll ไปหาสาเหตุว่าทำไมบัญชีค่าใช้คอมพิวเตอร์ถึงคลาดเคลื่อนไป 75 เซ็นต์
การตามหาความคลาดเคลื่อนก้อนนั้นนำไปสู่การจับแฮกเกอร์ที่โด่งดังที่สุดครั้งหนึ่ง และกลายเป็น คดีแฮกข้ามเครือข่ายคดีแรกที่เป็นที่รู้จัก
จุดที่น่าสังเกตคือ การเก็บ log ตอนนั้นทำด้วยมือ
อ่านเพิ่มได้ในหนังสือ The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage
เคสนี้ถูกยกมาเพราะมันแสดงสองอย่างที่ขัดกันเอง
อย่างแรก ความผิดปกติที่เล็กจนไม่มีใครสนใจ กลับเป็นปลายเชือกของเรื่องใหญ่ ไม่มีใครตั้งระบบแจ้งเตือนสำหรับเงิน 75 เซ็นต์ สิ่งที่ทำให้เจอคือมีคนตัดสินใจไล่ดูจนถึงที่สุด
อย่างที่สอง เครื่องมือไม่ได้เป็นตัวตัดสิน การเก็บ log ทำด้วยมือ ไม่มี machine learning ไม่มี data mining ในส่วนถัดไปสักอย่าง
สองอย่างนี้รวมกันคือประเด็นของทั้งคาบ — auditing ไม่ได้แพ้เพราะเครื่องมือไม่ดีพอ แต่แพ้เพราะไม่มีใครกลับไปอ่าน
ส่วนที่ 3 — ได้ log มาแล้วเอาไปทำอะไร
เครื่องมือวิเคราะห์ไล่จากง่ายไปยาก
| กลุ่ม | วิธี |
|---|---|
| Statistic | สถิติพื้นฐาน |
| Data Mining | Clustering, Association-Rule Mining, Anomaly Detection |
| Machine Learning | Neural Network รวมถึง Deep Learning |
Clustering — จัดกลุ่มสิ่งที่คล้ายกันเข้าด้วยกัน เช่นแยกผู้ใช้ออกเป็นกลุ่มตามพฤติกรรม
Association-Rule Mining — หาว่าอะไรมักเกิดขึ้นพร้อมกัน เช่นคนที่ทำ A มักจะทำ B ต่อ
Anomaly Detection — หาสิ่งที่ไม่เหมือนพวก ซึ่งเป็นวิธีที่ใช้จับผู้บุกรุกในส่วนถัดไป
กล่องนี้เป็นคำอธิบายเสริม สไลด์ให้มาแค่ชื่อทั้งสามวิธี
ตัวอย่างจริงจาก CU CAS
ระบบ CU CAS ของจุฬาฯ ถูกยกมาเป็นตัวอย่าง โดยมีสองข้อสังเกตนำ
- Free information. With simple analysis, facts unveiled. ข้อมูลมีอยู่แล้วโดยไม่ต้องลงทุนเพิ่ม แค่วิเคราะห์ง่าย ๆ ก็เห็นข้อเท็จจริง
- ใช้ NCSA common log แบบขยาย เป็นฐาน
สิ่งที่พบมีสองเรื่อง
- นิสิตตื่นราวแปดโมงเช้า และเข้านอนราวตีหนึ่ง
- คนส่วนใหญ่ใช้ Apple iPhone/iPad และ Google Chrome
แล้วทิ้งคำถามไว้ว่า Do you know how people use your system? คุณรู้ไหมว่าคนใช้ระบบของคุณยังไง
สองข้อค้นพบนี้ดูไม่เกี่ยวกับความปลอดภัยเลย แต่มันเกี่ยวโดยตรง
เรื่องเวลานอน ให้เส้นฐานว่าอะไรคือปกติ ถ้ามีบัญชีหนึ่งล็อกอินตอนตีสามทุกคืนติดกัน นั่นคือสิ่งที่ควรไปดู และเราจะรู้ว่ามันผิดปกติก็ต่อเมื่อรู้ก่อนว่าอะไรคือปกติ
เรื่องอุปกรณ์ ก็เหมือนกัน ถ้าบัญชีที่ใช้ iPhone มาตลอดจู่ ๆ ล็อกอินจากเบราว์เซอร์ที่ไม่เคยเห็น นั่นคือสัญญาณ
นี่คือ anomaly detection ในรูปแบบที่ง่ายที่สุด และมันทำงานได้เพราะมีคนไปอ่าน log ที่ระบบเก็บไว้อยู่แล้ว โดยไม่ต้องติดตั้งอะไรเพิ่มเลย
ข้อมูลชุดเดียวกันนี้บอกได้ว่านิสิตคนไหนนอนดึก ซึ่งไม่ใช่เรื่องที่ระบบลงทะเบียนควรรู้
Free information จึงมีราคาที่มองไม่เห็น log ที่เก็บไว้เพื่อความปลอดภัย เป็นข้อมูลส่วนตัวไปพร้อมกัน และหลักการที่ 7 ในคาบแรก Promote privacy ก็ใช้กับ log ด้วยเหมือนกัน
คำถามที่ควรถามคู่กันเสมอคือ เก็บนานแค่ไหน ใครอ่านได้ และลบเมื่อไหร่ ซึ่งก็คือ Who can do what when? ที่ใช้กับตัว log เอง
ส่วนที่ 4 — เอาไปจับผู้บุกรุก
Intrusion Detection System (ระบบตรวจจับการบุกรุก) หรือ IDS เป็น passive system คือระบบที่เฝ้าดูอย่างเดียว ไม่ลงมือเอง
ชนิดของ IDS แบ่งตามว่าเอา audit trail มาจากไหน
| ชนิด | ดูจากอะไร | ตัวอย่าง |
|---|---|---|
| Network IDS (NIDS) | ทราฟฟิกบนเครือข่าย | snort |
| protocol-based IDS | โปรโตคอลที่ใช้ | |
| application protocol-based IDS | โปรโตคอลระดับแอปพลิเคชัน | |
| host-based IDS | สิ่งที่เกิดขึ้นบนเครื่องนั้น | OSSEC |
| hybrid IDS | หลายทางรวมกัน | Prelude |
IDS ส่วนใหญ่ทำงานด้วย signature คือกฎของรูปแบบที่รู้จักแล้ว
คำว่า รูปแบบที่รู้จักแล้ว คือข้อจำกัดที่สำคัญที่สุดของ IDS แบบ signature
ถ้าการโจมตีนั้นไม่เคยมีใครเห็นมาก่อน ก็ไม่มี signature ให้จับ IDS แบบนี้จึงตามหลังผู้โจมตีอยู่หนึ่งก้าวเสมอ
นี่คือเหตุผลที่ anomaly detection ในส่วนที่ 3 น่าสนใจ เพราะมันไม่ต้องรู้จักการโจมตีมาก่อน แค่รู้ว่าอะไรคือปกติของระบบนี้ก็พอ
MINDS
Minnesota INtrusion Detection System (MINDS) เป็นตัวอย่างของ IDS ที่ไม่ได้ใช้ signature
- ใช้ data mining คือ unsupervised anomaly detection และ association pattern analysis
- เป็น ตัวแรกที่ตรวจจับ SQL Slammer ได้
Slammer ปี 2003 คือหนอนที่เจาะเข้าเครือข่ายภายในของโรงไฟฟ้านิวเคลียร์ Davis-Besse ในหลักการที่ 9 ของ Chapter 1
จุดที่น่าสังเกตคือ MINDS จับมันได้เป็นตัวแรก ทั้งที่ตอนนั้นยังไม่มีใครรู้ว่ามันคืออะไร เพราะ MINDS ไม่ได้มองหาสิ่งที่รู้จัก แต่มองหาสิ่งที่ผิดปกติ
ส่วนที่ 5 — ตรวจจับ ป้องกัน และไฟร์วอลล์
ทำไมแค่ตรวจจับ ไม่ป้องกันไปเลย
เห็นคนใส่แว่นกันแดดเดินเข้ามา แล้วรู้ว่าเขากำลังจะปล้นธนาคาร
การตรวจจับทำได้แค่เตือน ธนาคารก็ยังโดนปล้นอยู่ดี
ทางแก้คือ Intrusion Prevention System (ระบบป้องกันการบุกรุก) หรือ IPS ซึ่งเป็น active system คือลงมือเองได้
- ตอบสนองต่อกิจกรรมที่น่าสงสัย ด้วยการตัดการเชื่อมต่อ หรือสั่งไฟร์วอลล์ให้บล็อกต้นทางที่ต้องสงสัย
- เป็น ไฟร์วอลล์ในระดับ application layer รูปแบบหนึ่ง
แต่มีข้อแลกเปลี่ยนอยู่หนึ่งข้อ
However, a false alarm is more severe.
แต่การแจ้งเตือนผิดพลาดจะร้ายแรงกว่า
IDS ที่เตือนผิด แค่เสียเวลาคนที่ไปตรวจ
IPS ที่เตือนผิด ตัดผู้ใช้จริงออกจากระบบ ถ้าเป็นเว็บขายของ ก็คือลูกค้าเข้าเว็บไม่ได้ ถ้าเป็นระบบภายใน ก็คือพนักงานทำงานไม่ได้
นี่คือเหตุผลที่หลายองค์กรมี IPS ติดตั้งไว้แต่ตั้งเป็นโหมดเตือนอย่างเดียว ความเสียหายจากการบล็อกคนผิดนั้นเกิดขึ้นทันทีและเห็นชัด ส่วนความเสียหายจากการปล่อยผู้บุกรุกผ่านไปนั้นเกิดช้าและมองไม่เห็น
IDS กับ IPS กับ Firewall ต่างกันตรงไหน
จุดที่แยกทั้งสามตัวออกจากกันคือ IDS ไม่จำเป็นต้องคั่นกลางเครือข่าย ส่วนไฟร์วอลล์กับ IPS ต้องอยู่บนเส้นทางที่ข้อมูลวิ่งผ่าน
ลองตอบดู: เป็นไปได้ไหมที่จะหลบ IDS และ IPS และถ้าได้ ทำยังไง
คำถามนี้ถูกทิ้งไว้โดยไม่มีคำตอบเขียนไว้ ต่อไปนี้เป็นคำอธิบายเสริม
ได้ และวิธีหลักมาจากช่องว่างระหว่างสิ่งที่ IDS เห็น กับสิ่งที่เครื่องปลายทางเห็นจริง
- เข้ารหัส — IDS ที่อ่านเนื้อหาไม่ออกก็เทียบ signature ไม่ได้
- หั่นแพ็กเก็ตให้เล็ก แล้วให้ signature ขาดครึ่งอยู่คนละแพ็กเก็ต
- เปลี่ยนรูปแบบให้ต่างจาก signature เดิม ทั้งที่ผลลัพธ์เหมือนกัน เช่นเข้ารหัสสตริงในคำสั่งใหม่
- ยิงช้ามาก จนไม่เข้าเกณฑ์ที่ตั้งไว้ว่ากี่ครั้งต่อนาที
ทั้งหมดนี้โยงกลับไปที่ข้อจำกัดของ signature ในส่วนที่ 4 คือมันจับได้เฉพาะสิ่งที่หน้าตาตรงกับที่เคยเห็น
Firewall
Firewall (เครื่องกั้นระหว่างเครือข่ายภายในกับภายนอก) ทำหน้าที่ แยกเครือข่ายสาธารณะออกจากเครือข่ายส่วนตัว คือแยกข้างในออกจากข้างนอก และพัฒนามาสามรุ่น
| รุ่น | แบบ | ดูอะไร |
|---|---|---|
| 1st generation | packet filters | ดูทีละแพ็กเก็ต |
| 2nd generation | stateful filters | จำสถานะของการเชื่อมต่อได้ |
| 3rd generation | application layer | เข้าใจโปรโตคอลระดับแอป |
นอกจากนี้ยังมี Personal Firewall และ NAT
ไฟร์วอลล์รุ่นแรกดูแพ็กเก็ตทีละใบโดยไม่จำอะไรเลย จึงตอบไม่ได้ว่าแพ็กเก็ตที่วิ่งเข้ามานี้เป็นคำตอบของคำขอที่เราส่งออกไปหรือเปล่า
รุ่นที่สองจำได้ว่ามีการเชื่อมต่อไหนเปิดค้างอยู่บ้าง จึงแยกออกว่าอันไหนคือขากลับของสิ่งที่เราขอเอง กับอันไหนคือคนนอกที่จู่ ๆ ก็ยิงเข้ามา
ความสามารถข้อนี้คือสิ่งที่ทำให้ pinhole ในหัวข้อสุดท้ายเกิดขึ้นได้ กล่องนี้เป็นคำอธิบายเสริม
DMZ
DMZ (โซนกันชนที่คนนอกเข้าถึงได้) คือ โซนที่สามของไฟร์วอลล์ ซึ่งคนภายนอกเข้าถึงได้
สร้างได้สองแบบคือ 3-arms firewall ใช้ไฟร์วอลล์ตัวเดียวที่มีสามขา และ 2 × 2-arms firewall ใช้ไฟร์วอลล์สองตัวเรียงกัน
Let's fight in the field, not in our room.
ถ้าจะสู้ ก็ออกไปสู้กันในสนาม อย่าสู้กันในห้องของเรา
เครื่องที่คนนอกต้องเข้าถึงได้ เช่นเว็บเซิร์ฟเวอร์ คือเครื่องที่มีโอกาสถูกยึดมากที่สุด ถ้าวางไว้ในเครือข่ายภายใน พอมันถูกยึด ผู้โจมตีก็อยู่ในห้องเราแล้ว การวางมันไว้ใน DMZ แปลว่าต่อให้มันถูกยึด ผู้โจมตีก็ยังติดไฟร์วอลล์อีกชั้นก่อนจะถึงของจริง
Compartmentalization ในคาบแรกยกตัวอย่างการวางเว็บเซิร์ฟเวอร์ไว้ใน DMZ แล้ววางข้อมูลไว้หลังไฟร์วอลล์อีกชั้น พร้อมเงื่อนไขว่าฝั่งข้อมูลรับการเชื่อมต่อจากเว็บเซิร์ฟเวอร์เท่านั้น
หน้านี้คือรูปแบบเดียวกันนั้น มองจากฝั่งอุปกรณ์เครือข่ายแทนที่จะมองจากฝั่งหลักการ
Pinhole และ Punch hole
Pinhole คือรูที่เกิดขึ้นเมื่อ การเชื่อมต่อเริ่มจากเครือข่ายภายใน และ รูนี้ปิดเองโดยอัตโนมัติหลังจากไม่มีการใช้งานไปช่วงเวลาหนึ่ง
แล้วคำถามที่ตามมาคือ เราสร้างรูระหว่างสองระบบที่อยู่หลังไฟร์วอลล์ทั้งคู่ได้ไหม ซึ่งเรียกว่า punch hole
คำตอบคือได้ และ การเชื่อมต่อแบบ Peer-to-Peer อย่าง Skype และ Line ก็ใช้วิธีนี้
คำถามสุดท้ายที่ทิ้งไว้คือ ถ้าทำได้ แล้วจะบล็อกมันยังไง
เครื่อง A และเครื่อง B อยู่หลังไฟร์วอลล์คนละตัว ทั้งคู่รับการเชื่อมต่อจากข้างนอกไม่ได้
- ทั้งคู่ต่อออกไปหา เซิร์ฟเวอร์ตัวกลาง ที่อยู่บนอินเทอร์เน็ต — ขาออกทำได้ ไฟร์วอลล์ทั้งสองตัวจึงเปิด pinhole ให้
- ตัวกลางเห็นที่อยู่และพอร์ตของรูทั้งสองข้าง แล้ว บอกให้แต่ละฝั่งรู้ที่อยู่ของอีกฝั่ง
- ทั้งคู่ยิงหากันโดยตรงผ่านรูที่เปิดค้างอยู่แล้ว ไฟร์วอลล์เห็นว่าเป็นขากลับของการเชื่อมต่อที่ตัวเองอนุญาตไป จึงปล่อยผ่าน
จุดสำคัญคือ ไม่มีใครเจาะไฟร์วอลล์เลย ทุกขั้นตอนเป็นการใช้กติกาของไฟร์วอลล์เองตามที่มันถูกออกแบบมา
คำถามว่าจะบล็อกยังไง ตอบยากด้วยเหตุผลเดียวกับที่ phishing ในคาบแรกกันไม่ได้ด้วยเทคนิค
ทราฟฟิกของ punch hole หน้าตาเหมือนการเชื่อมต่อขาออกปกติทุกอย่าง ไฟร์วอลล์ที่บล็อกมันได้จึงต้องบล็อกการเชื่อมต่อขาออกไปด้วย ซึ่งกระทบการใช้งานปกติทั้งหมด
ทางที่ทำได้จริงคือขยับขึ้นไปที่ไฟร์วอลล์รุ่นที่สาม คือดูถึงระดับแอปพลิเคชันแล้วบล็อกตามชนิดของแอป แทนที่จะบล็อกตามพอร์ตหรือที่อยู่
Auditing คืออะไร
- นิยามสองท่อน: การทบทวนหรือประเมินอย่างเป็นระบบ และ รายงานของเหตุการณ์ ซึ่งเป็นที่มาของคำว่า account
- เป็นองค์ประกอบที่ ทำได้ง่ายที่สุด และเป็นพื้นฐานของระบบที่ปลอดภัย
- ในอดีตความปลอดภัยคือทหารยืนเฝ้าประตู
- ยิ่งเรียนรู้จากระบบมาก ยิ่งเขียนนโยบายได้ดี — เรียกว่า Continuous Quality Improvement (CQI)
ร่องรอยมาจากไหน
- Audit trail มีสองทางคือ physical trails เช่นกล้องวงจรปิด และ log files เช่น
auth.log - ก่อนมี syslog ระบบส่วนใหญ่ไม่ได้เก็บ log เลย
- syslog โดย Eric Allman ในทศวรรษ 1980 เป็นส่วนหนึ่งของ Sendmail แล้วกลายเป็นมาตรฐานของ Unix
- Windows Event Log ปี 1993 · NCSA Common log format มาพร้อมความนิยมของเว็บ
- นอกจาก syslog ไม่มีรูปแบบมาตรฐาน จึง ไม่มีเครื่องมือวิเคราะห์มาตรฐาน —
log4j,log4php,log4[xxxx] - syslog รุ่นแรกไม่มีฟิลด์ปี เพราะคนสร้างรีบติดตั้งเพื่อจับแฮกเกอร์
- ปี 1986 Clifford Stoll ตามหาบัญชีที่คลาดเคลื่อน 75 เซ็นต์ จนกลายเป็นคดีแฮกข้ามเครือข่ายคดีแรกที่เป็นที่รู้จัก และการเก็บ log ตอนนั้นทำด้วยมือ
เอา log ไปทำอะไร
- Statistic · Data Mining (Clustering, Association-Rule Mining, Anomaly Detection) · Machine Learning (Neural Network รวม Deep Learning)
- ตัวอย่างจาก CU CAS ใช้ NCSA common log แบบขยาย พบว่านิสิตตื่นราว 8 โมงเช้า นอนราวตีหนึ่ง และส่วนใหญ่ใช้ iPhone/iPad กับ Chrome
- คำถามที่ทิ้งไว้: Do you know how people use your system?
จับผู้บุกรุก
- IDS เป็น passive system แบ่งตามแหล่งข้อมูล: NIDS (
snort), protocol-based, application protocol-based, host-based (OSSEC), hybrid (Prelude) - IDS ส่วนใหญ่ทำงานด้วย signature คือรูปแบบที่รู้จักแล้ว จึงจับของใหม่ไม่ได้
- MINDS ใช้ data mining แทน signature และเป็นตัวแรกที่จับ SQL Slammer ได้
ตรวจจับ ป้องกัน ไฟร์วอลล์
- เห็นคนใส่แว่นกันแดดจะปล้นธนาคาร การตรวจจับเตือนได้อย่างเดียว ธนาคารก็ยังโดนปล้น
- IPS เป็น active system ตัดการเชื่อมต่อหรือสั่งไฟร์วอลล์ให้บล็อกได้ เป็นไฟร์วอลล์ระดับ application layer แบบหนึ่ง แต่ false alarm ร้ายแรงกว่า
- IDS ไม่จำเป็นต้องคั่นกลางเครือข่าย ต่างจากไฟร์วอลล์และ IPS
- ไฟร์วอลล์สามรุ่น: packet filters → stateful filters → application layer บวก Personal Firewall และ NAT
- DMZ คือโซนที่สามที่คนนอกเข้าถึงได้ สร้างแบบ 3-arms หรือ 2 × 2-arms —
Let's fight in the field, not in our room - Pinhole เกิดเมื่อข้างในเริ่มการเชื่อมต่อ และปิดเองเมื่อไม่มีการใช้งาน
- Punch hole คือรูระหว่างสองเครื่องที่อยู่หลังไฟร์วอลล์ทั้งคู่ ใช้โดย Skype และ Line
- ข้อสรุปของบท: auditing ทำให้เฝ้าดูระบบได้ต่อเนื่อง รายงานที่ดีนำไปสู่นโยบายที่ดีหรือกฎของ IDS และ ถ้าใช้ร่วมกับไฟร์วอลล์ก็จะได้ IPS