Imperva ผู้ให้บริการโซลูชัน Database Security ชื่อดัง ออกมาให้คำแนะนำเกี่ยวกับสิ่งที่พึงกระทำและไม่พึงกระทำในการติดตามและเฝ้าระวังระบบฐานข้อมูล รวมไปถึงสรุปฟีเจอร์สำคัญที่เครื่องมือ Database Activity Monitoring ควรมีจากเอกสาร Understanding and Selecting a Database Activity Monitoring Solution โดย Rich Mogull จาก SANS Institute เพื่อให้ผู้ดูแลระบบฐานข้อมูลสามารถนำไปปรับใช้กับองค์กรของตนได้

ก่อนที่จะเข้าสู่เนื้อหา ทำความรู้จัก Database Activity Monitoring (DAM) สักเล็กน้อย … Gartner ได้นิยาม DAM ไว้ว่า “เป็นชุดเครื่องมือที่ … รองรับความสามารถในการตรวจจับและรายงานการหลอกลวง การกระทำที่ผิดกฎหมาย หรือพฤติกรรมที่ไม่พึงประสงค์อื่นๆ ซึ่งส่งผลกระทบต่อการปฏิบัติงานของผู้ใช้และผลิตภาพน้อยที่สุด” หรืออาจกล่าวได้ว่าเป็นเครื่องมือที่พัฒนาจากการวิเคราะห์การกระทำของผู้ใช้ กลายเป็นเครื่องมือชี้วัดด้านความมั่นคงปลอดภัยของข้อมูล เช่น การค้นหาและจำแนกประเภทข้อมูล การบริหารจัดการสิทธิ์ของผู้ใช้ การติดตามการใช้สิทธิ์ระดับสูง การปกป้องข้อมูล และการป้องกันการรั่วไหลของข้อมูล เป็นต้น
Imperva ได้สรุปรายการฟีเจอร์ขั้นต่ำที่เครื่องมือ DAM ควรมี ดังนี้
- ติดตาม (Monitor) และตรวจสอบ (Audit) การกระทำบนฐานข้อมูลทั้งหมดอย่างอิสระ ทั้งการกระทำที่ต้องใช้สิทธิ์ Admin และ SELECT Query Transactions เครื่องมือที่ใช้ต้องสามารถบันทึก SQL Transactions ได้ทั้งหมด ไม่ว่าจะเป็น DML, DDL, DCL (และบางกรณีอาจจะมี TCL ด้วย) โดยไม่จำเป็นต้องพึงหา Log ของ Local Database ซึ่งช่วยให้ประสิทธิภาพของฐานข้อมูลตกลงน้อยกว่า 0 – 2%
- จัดเก็บ Audit Log แบบรวมศูนย์ภายนอกฐานข้อมูลที่ทำการตรวจสอบ และต้องเก็บอย่างมั่นคงปลอดภัย
- ติดตาม รวบรวม และเชื่อมความสัมพันธ์ของการกระทำจากหลายๆ Database Management System (DMBS) ที่แตกต่างกันได้ เช่น Oracle, Microsoft SQL Server และ IBM DB2 รวมไปถึงสามารถแปลง Transaction ให้กลายเป็นรูปมาตรฐานทั่วไปที่นำไปใช้วิเคราะห์ต่อได้ (ทำ Normalization)
- กำหนดหมายเลข IP ที่อนุญาตให้ใช้งาน Service Account เพื่อเข้าถึงฐานข้อมูล รวมไปถึงกำหนดสิทธิ์เฉพาะเท่าที่จำเป็น
- บังคับให้มีการแบ่งแยกหน้าที่การทำงาน (Segegration of Duties) ผ่านทางการติดตามและบันทึกหลักฐานการกระทำของ DBA
- สร้างระบบแจ้งเตือนแบบ Rule-based หรือ Heuristic-based เมื่อมีการละเมิดนโยบายด้านความมั่นคงปลอดภัย เช่น แจ้งเตือนเมื่อผู้มีสิทธิ์ระดับสูงส่ง SQL Query ซึ่งคืนค่าข้อมูลบัตรเครดิตกลับคืนมาเกิน 5 รายการ เป็นต้น เพื่อช่วยแจ้งเตือนผู้ดูแลระบบเมื่อแอพพลิเคชันถูกแฮ็คหรือถูก SQL Injection
นอกจากนี้ เครื่องมือ DAM บางยี่ห้อยังมีฟีเจอร์
- ค้นหาและตรวจสอบที่อยู่ ขนาด และบริบทของข้อมูลที่จัดเก็บอยู่ใน Data Center บนระบบ Cloud หรือบนฐานข้อมูลแบบเก่า
- จำแนกประเภทของข้อมูล เช่น หมายเลขบัตรเครดิต อีเมล บันทึกการแพทย์ รวมไปถึงระดับความเสี่ยงของข้อมูลดังกล่าว
- จัดทำนโยบายหรือรายงานตามข้อกำหนดต่างๆ เช่น PCI-DSS หรือ SOX ได้
- ผสานการทำงานร่วมกับเครื่องมือทำ Change Management เพื่อติดตามการเปลี่ยนแปลงข้อมูลในฐานข้อมูล หรือติดตามการกระทำของ DBA รวมไปถึงจัดทำรายงาน Change Management

สำหรับรายการสิ่งที่พึงกระทำและไม่พึงกระทำในการติดตามและเฝ้าระวังระบบฐานข้อมูล มีทั้งหมดอย่างละ 5 ข้อ ได้แก่
สิ่งที่พึงกระทำ
- Agent ที่ใช้ในการเก็บข้อมูลควรบริโภคทรัพยากร CPU และ Disk เพียง 1 – 3% และควรใช้ Agent เก็บข้อมูลแทนที่จะวางขวาง (Bridge) หรือดักจับข้อมูล (Sniff) เนื่องจากสามารถทำคลัสเตอร์ Gateway ได้ง่าย เพราะเพิ่มประสิทธิภาพในการทำ HA ฐานข้อมูล
- หมายเหตุ การบริโภคทรัพยากรนี้ถือว่าน้อยมากเมื่อเทียบกับการใช้ Database Auditing บนระบบฐานข้อมูลซึ่งบริโภคทรัพยากรเครื่องมากถึง 20%
- ติดตาม Local SQL Traffic อย่างต่อเนื่อง และอย่างเรียลไทม์ เช่น IPC และ Bequeth รวมไปถึงติดตาม SQL Traffic ที่วิ่งเข้ามายังฐานข้อมูลผ่านระบบเครือข่าย (ถ้าต้องการ)
- ยิง TCP Reset เมื่อต้องการบล็อกเซสชัน ซึ่งจะทำให้เสมือนว่าเครื่อง Client หลุดจากการเชื่อมต่อ ผลลัพธ์คือ ฐานข้อมูลไม่มีอะไรเปลี่ยนแปลงและเครื่อง Client ที่เชื่อมต่อกับฐานข้อมูลจะถูกจัดการตามปกติ
- ติดตาม SQL Query ขาเข้าที่จะไปยัง Gateway รวมไปถึงข้อมูล Metadata บางอย่าง เช่น เวลาที่ใช้ตอบสนอง หรือจำนวน Record ที่คืนกลับมา โดยกิน Bandwidth ของระบบเครือข่ายให้น้อยที่สุด
- หมายเหตุ สามารถติดตามทราฟฟิกขาออกผ่านทางอีกอินเทอร์เฟสหนึ่ง แต่ต้องระวังเรื่องการดักจับข้อมูลที่เป็นความลับด้วย
- ควรมีหน้า Dashboard ที่เป็นกราฟิกแสดงภาพรวมข้อมูลทั้งหมดไว้ในหน้าเดียว เพื่อให้สามารถแก้ปัญหาได้ง่ายและรวดเร็ว โดยต้องสามารถตรวจสอบการทำงานของ Agent และสามารถแจ้งเตือนไปยังระบบอื่นๆ เช่น SIEM เมื่อมีการบล็อกเกิดขึ้นได้
สิ่งที่ไม่พึงกระทำ
- Agent ไม่ควรติดตั้ง Object ใดๆ บนฐานข้อมูล เช่น สคริปต์หรือข้อมูลล็อกอิน
- Agent ต้องไม่ยุ่งเกี่ยวใดๆ กับฐานข้อมูล ไม่ว่าจะเป็นข้อมูลในฐานข้อมูล ไฟล์ที่ใช้ตั้งค่าฐานข้อมูล หรือแม้แต่พารามิเตอร์ของฐานข้อมูล
- หลังติดตั้งหรือแก้ไขการตั้งค่า Agent ไม่ควรมีการรีสตาร์ทเครื่อง เว้นแต่ในกรณีที่หลีกเลี่ยงไม่ได้จริงๆ
- ไม่ควรมีการสร้างชื่อบัญชีฐานข้อมูลใหม่สำหรับติดตั้ง ติดตาม หรือบล็อก SQL Traffic บน Agent
- Agent ไม่ควรแก้ไขไฟล์ของระบบ เว้นแต่ในกรณีที่การเชื่อมต่อไปยัง Gateway ถูกตัดขาดจากการบล็อก และควรกลับไปเป็นแบบเดิมหลังจากที่การเชื่อมต่อถูกสร้างขึ้นมาใหม่
ที่มา: https://www.imperva.com/blog/2017/05/database-activity-monitoring-checklist/