ข้ามไปที่เนื้อหา
CEDTAN

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)

Auditing คือวงจร ไม่ใช่เส้นตรง — ผลที่ได้ย้อนกลับไปแก้นโยบายAudit Trailsphysical trailslog filesAnalysis Toolsstatistic, data miningmachine learningเอาไปทำอะไรกฎของ IDSนโยบายที่ดีขึ้นนโยบายใหม่เปลี่ยนว่าระบบต้องเก็บอะไรเพิ่มยิ่งรู้จักระบบของตัวเองมาก ยิ่งเขียนนโยบายได้ตรงจุด
รูปที่ 1: ร่องรอย ผ่านการวิเคราะห์ กลายเป็นกฎและนโยบาย แล้ววนกลับไปเปลี่ยนสิ่งที่ต้องเก็บ
ทำไมต้องมีสิ่งนี้

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

คาบที่ 4 บอกว่าต้องเขียน security policy แต่ไม่ได้บอกว่าจะรู้ได้ยังไงว่านโยบายที่เขียนไปนั้นเหมาะกับระบบจริง

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

เทียบให้เห็นภาพ

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

สองอย่างนี้แยกกันได้ และคอมพิวเตอร์ก็แยกมันออกจากกันจริง ๆ — Authorization ทำอย่างแรก Auditing ทำอย่างที่สอง

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


ส่วนที่ 2 — ร่องรอยมาจากไหน

Audit Trail (ร่องรอยที่ระบบทิ้งไว้ให้ตามย้อนหลังได้) มาจากสองทาง

  • Physical trails — ร่องรอยทางกายภาพ เช่นภาพจากกล้องวงจรปิด
  • Log files — ไฟล์บันทึกของระบบ เช่น auth.log

ประวัติของ log

ก่อนจะมี syslog ระบบส่วนใหญ่ไม่ได้เก็บ log อะไรเลย

ปีเกิดอะไรขึ้น
ทศวรรษ 1980Eric Allman พัฒนา syslog ขึ้นเป็นส่วนหนึ่งของโครงการ Sendmail แล้วแอปอื่นก็รับไปใช้จนกลายเป็นมาตรฐานของระบบตระกูล Unix
1993Microsoft รับแนวคิดไปทำ Windows Event Log ซึ่งก็คือ Event Viewer ที่ยังอยู่ใน Windows ทุกวันนี้
ยุคที่เว็บได้รับความนิยมรูปแบบ NCSA Common log format ถูกนำไปใช้กับบริการอื่นที่คล้ายกัน

ปัญหาที่ยังไม่หายไป

นอกจาก syslog แล้ว ไม่มีรูปแบบมาตรฐานสำหรับการเก็บ log ผลที่ตามมาโดยตรงคือ ไม่มีเครื่องมือมาตรฐานสำหรับวิเคราะห์ log เช่นกัน

พอ Java ได้รับความนิยม ก็เกิด log4j ขึ้นมา แล้วตามด้วย log4php และ log4[xxxx] อีกเป็นชุด

ทำไมต้องมีสิ่งนี้

ชื่อ log4[xxxx] ทั้งชุดคือหลักฐานของปัญหา ไม่ใช่ทางแก้

แต่ละภาษาสร้างไลบรารีของตัวเองขึ้นมาเพราะไม่มีมาตรฐานกลางให้ใช้ ผลคือระบบหนึ่งระบบที่เขียนด้วยสามภาษา จะได้ log สามรูปแบบที่เอามาต่อกันไม่ได้

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

syslog รุ่นแรกไม่มีช่องสำหรับปี

syslog เวอร์ชันแรก ไม่มีฟิลด์สำหรับเก็บปี เพราะคนสร้างรีบติดตั้งมันเพื่อจะจับแฮกเกอร์ให้ทัน

คดีที่เริ่มจากบัญชีขาดไป 0.75 ดอลลาร์

ปี 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 MiningClustering, Association-Rule Mining, Anomaly Detection
Machine LearningNeural Network รวมถึง Deep Learning
สามวิธีของ Data Mining ตอบคำถามคนละข้อ

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 ได้
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 ต่างกันตรงไหน

ต่างกันที่ "อยู่ตรงไหนของทาง" และ "ลงมือเองได้ไหม"อุปกรณ์อยู่ตรงไหนทำอะไรได้ตอนไหนFirewallคั่นกลางทางบล็อกตามกฎที่ตั้งไว้ก่อนเข้าIDSดูสำเนา ไม่คั่นทางเตือนอย่างเดียวระหว่างหรือหลังIPSคั่นกลางทางตัดการเชื่อมต่อเองระหว่างIDS + firewall ที่สั่งงานกันได้ = IPS และนั่นคือที่มาของ false alarm ที่แพงขึ้น
รูปที่ 2: ต่างกันที่ตำแหน่งบนเส้นทางข้อมูล และที่ว่าลงมือเองได้หรือไม่

จุดที่แยกทั้งสามตัวออกจากกันคือ IDS ไม่จำเป็นต้องคั่นกลางเครือข่าย ส่วนไฟร์วอลล์กับ IPS ต้องอยู่บนเส้นทางที่ข้อมูลวิ่งผ่าน

ลองตอบดู: เป็นไปได้ไหมที่จะหลบ IDS และ IPS และถ้าได้ ทำยังไง

คำถามนี้ถูกทิ้งไว้โดยไม่มีคำตอบเขียนไว้ ต่อไปนี้เป็นคำอธิบายเสริม

ได้ และวิธีหลักมาจากช่องว่างระหว่างสิ่งที่ IDS เห็น กับสิ่งที่เครื่องปลายทางเห็นจริง

  • เข้ารหัส — IDS ที่อ่านเนื้อหาไม่ออกก็เทียบ signature ไม่ได้
  • หั่นแพ็กเก็ตให้เล็ก แล้วให้ signature ขาดครึ่งอยู่คนละแพ็กเก็ต
  • เปลี่ยนรูปแบบให้ต่างจาก signature เดิม ทั้งที่ผลลัพธ์เหมือนกัน เช่นเข้ารหัสสตริงในคำสั่งใหม่
  • ยิงช้ามาก จนไม่เข้าเกณฑ์ที่ตั้งไว้ว่ากี่ครั้งต่อนาที

ทั้งหมดนี้โยงกลับไปที่ข้อจำกัดของ signature ในส่วนที่ 4 คือมันจับได้เฉพาะสิ่งที่หน้าตาตรงกับที่เคยเห็น

Firewall

Firewall (เครื่องกั้นระหว่างเครือข่ายภายในกับภายนอก) ทำหน้าที่ แยกเครือข่ายสาธารณะออกจากเครือข่ายส่วนตัว คือแยกข้างในออกจากข้างนอก และพัฒนามาสามรุ่น

รุ่นแบบดูอะไร
1st generationpacket filtersดูทีละแพ็กเก็ต
2nd generationstateful filtersจำสถานะของการเชื่อมต่อได้
3rd generationapplication layerเข้าใจโปรโตคอลระดับแอป

นอกจากนี้ยังมี Personal Firewall และ NAT

ความต่างของรุ่นที่ 1 กับรุ่นที่ 2

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

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

ความสามารถข้อนี้คือสิ่งที่ทำให้ pinhole ในหัวข้อสุดท้ายเกิดขึ้นได้ กล่องนี้เป็นคำอธิบายเสริม

DMZ

DMZ (โซนกันชนที่คนนอกเข้าถึงได้) คือ โซนที่สามของไฟร์วอลล์ ซึ่งคนภายนอกเข้าถึงได้

สามโซนเหมือนกัน ต่างกันที่จำนวนไฟร์วอลล์3-arms firewallข้างนอกFWข้างในDMZ2 × 2-arms firewallข้างนอกFWDMZFWข้างในคนนอกไปได้ไกลสุดแค่ DMZเครื่องที่คนนอกต้องเข้าถึงได้ อยู่ใน DMZ ไม่ใช่ในเครือข่ายภายในLet's fight in the field, not in our room
รูปที่ 3: สามโซนเหมือนกัน สร้างได้จากไฟร์วอลล์ตัวเดียวสามขา หรือสองตัวเรียงกัน

สร้างได้สองแบบคือ 3-arms firewall ใช้ไฟร์วอลล์ตัวเดียวที่มีสามขา และ 2 × 2-arms firewall ใช้ไฟร์วอลล์สองตัวเรียงกัน

เทียบให้เห็นภาพ

Let's fight in the field, not in our room.

ถ้าจะสู้ ก็ออกไปสู้กันในสนาม อย่าสู้กันในห้องของเรา

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

นี่คือหลักการที่ 5 ของคาบแรกในรูปของเครือข่าย

Compartmentalization ในคาบแรกยกตัวอย่างการวางเว็บเซิร์ฟเวอร์ไว้ใน DMZ แล้ววางข้อมูลไว้หลังไฟร์วอลล์อีกชั้น พร้อมเงื่อนไขว่าฝั่งข้อมูลรับการเชื่อมต่อจากเว็บเซิร์ฟเวอร์เท่านั้น

หน้านี้คือรูปแบบเดียวกันนั้น มองจากฝั่งอุปกรณ์เครือข่ายแทนที่จะมองจากฝั่งหลักการ

Pinhole และ Punch hole

Pinholeข้างในเริ่มก่อน ไฟร์วอลล์เปิดรูให้ข้างในFWเซิร์ฟเวอร์นอกขากลับผ่านได้ เพราะขาไปเปิดรูไว้เงียบไปพักหนึ่ง รูปิดเองPunch holeสองฝั่งอยู่หลังไฟร์วอลล์ทั้งคู่เครื่อง AFWFWเครื่อง Bตัวกลางรูที่เจาะไว้ทั้งคู่เริ่มออกไปหาตัวกลางก่อนแล้วใช้รูที่เปิดไว้คุยกันตรงSkype และ Line ใช้วิธีนี้ — ไฟร์วอลล์ไม่ได้ถูกเจาะ แต่ถูกใช้ตามกติกาของมันเอง
รูปที่ 4: รูที่ไฟร์วอลล์เปิดให้เอง กับรูที่สองฝั่งนัดกันเปิดผ่านตัวกลาง

Pinhole คือรูที่เกิดขึ้นเมื่อ การเชื่อมต่อเริ่มจากเครือข่ายภายใน และ รูนี้ปิดเองโดยอัตโนมัติหลังจากไม่มีการใช้งานไปช่วงเวลาหนึ่ง

แล้วคำถามที่ตามมาคือ เราสร้างรูระหว่างสองระบบที่อยู่หลังไฟร์วอลล์ทั้งคู่ได้ไหม ซึ่งเรียกว่า punch hole

คำตอบคือได้ และ การเชื่อมต่อแบบ Peer-to-Peer อย่าง Skype และ Line ก็ใช้วิธีนี้

คำถามสุดท้ายที่ทิ้งไว้คือ ถ้าทำได้ แล้วจะบล็อกมันยังไง

punch hole ทำงานยังไงเสริม — ไม่ได้อยู่ในสไลด์

เครื่อง A และเครื่อง B อยู่หลังไฟร์วอลล์คนละตัว ทั้งคู่รับการเชื่อมต่อจากข้างนอกไม่ได้

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

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

ทำไมต้องมีสิ่งนี้

คำถามว่าจะบล็อกยังไง ตอบยากด้วยเหตุผลเดียวกับที่ 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

เกริ่นนำ0%

ข้ามไปสรุป

On this page