เนื่องจากในปัจจุบันนี้ องค์กรส่วนใหญ่ในประเทศไทยเน้นการรักษาความปลอดภัยที่หน้าบ้านเป็นสำคัญ ไม่ว่าจะใช้ Next Generation Firewall, Next Generation IPS หรือ Web Application Firewall ราคาหลายล้านบาท โดยคาดหวังไว้ว่าระบบเครือข่ายของตนเองนั้นปลอดภัยจากการแฮ็คหรือการขโมยข้อมูล โดยไม่ได้ตระหนักเลยว่า ภัยคุกคามที่เป็นอันตรายต่อองค์กรมากที่สุด ไม่ใช่แฮ็คเกอร์ภายนอก แต่เป็นคนภายในบริษัทด้วยกันเอง โดยเฉพาะอย่างยิ่ง บริษัทที่จ้าง Outsource หรือ SI มานั่งทำงานโดยที่ไม่มีการกำหนดสิทธิ์ในการเข้าถึงระบบเครือข่ายภายในใดๆเลยแม้แต่น้อย
ในฐานะอดีตผู้ให้คำปรึกษาทางด้านระบบรักษาความปลอดภัยของฐานข้อมูล ทีมงาน TechTalkThai จึงจัดทำบทความนี้ขึ้นมาเพื่อแนะนำวิธีการดูแลระบบฐานข้อมูลของตนเองให้มีความปลอดภัยสูงอยู่เสมอ
1. ข้อมูลสำคัญ (Sensitive Data) อยู่ที่ไหน
ผู้ดูแลระบบฐานข้อมูลจำเป็นต้องระบุ และรู้ว่าข้อมูลใดที่เก็บในฐานข้อมูลเป็นข้อมูลที่สำคัญ รวมทั้งต้องรู้ว่าเก็บอยู่ที่ฐานข้อมูลใดด้วย เพื่อที่จะได้วางแผนออกแบบระบบรักษาความปลอดภัยเน้นย้ำตรงที่ฐานข้อมูลนั้นๆได้อย่างเหมาะสม เช่น กำหนดสิทธิ์ในการเข้าถึงฐานข้อมูลเฉพาะผู้ที่เกี่ยวข้อง หรือทำการเข้ารหัสฐานข้อมูลโดยใช้อัลกอริธึมที่มีความปลอดภัยสูง เป็นต้น
2. ตรวจสอบ (Audit) การใช้งานฐานข้อมูลอยู่เสมอ
โดยปกติแล้ว แนะนำให้ตรวจสอบและสรุปการใช้งานฐานข้อมูลอย่างน้อยเดือนละ 1 ครั้ง โดยเน้นตรงส่วนข้อมูลสำคัญของบริษัท เช่น ใครเข้าถึงข้อมูลชุดดังกล่าวบ้าง, เข้าถึงจากที่ใด (หมายเลข IP ใด), บ่อยแค่ไหน และทำอะไรไปบ้าง เพื่อตรวจสอบพฤติกรรมที่อาจจะผิดปกติไปจากเดิม รวมถึงความพยายามเชื่อมต่อกับฐานข้อมูลโดยบุคคลที่ไม่มีสิทธิ์ ก็เป็นอีกหนึ่งพฤติกรรมที่อาจก่อให้เกิดความเสี่ยงขึ้นได้ในอนาคต
3. พยายามติดตามการใช้งานระบบฐานข้อมูลตลอดเวลา
การตรวจสอบบ่อยๆเป็นเรื่องที่ดี แต่การติดตามการใช้งานตลอดเวลานั้นดีกว่ามาก แต่เป็นสิ่งที่ทำได้ยาก เนื่องจากต้องอาศัยเทคโนโลยีจำพวก Database Activity Monitoring เข้าช่วย จึงจะสามารถติดตามการใช้งานและตรวจจับสิ่งผิดปกติได้อย่างมีประสิทธิภาพ จากสถิติของ IOUG (Independent Oracle Users Group) ปี 2013 ระบุว่า มีเพียง 37% ขององค์กรเท่านั้น ที่สามารถตรวจจับและแก้ไขการเข้าถึงฐานข้อมูลที่ไม่มีสิทธิ์ (Unauthorized Database Access) ได้ภายใน 24 ชั่วโมง
4. เข้ารหัสฐานข้อมูล
ต่อให้ระบบฐานข้อมูลมีการตรวจสอบและติดตามการใช้งานได้ดีแค่ไหน แต่ถ้าไม่มีการเข้ารหัสและการ Masking ผู้ไม่ประสงค์ดีหรือแฮ็คเกอร์ก็สามารถทำการบายพาส (Bypass) ฐานข้อมูลเพื่อโจรกรรมข้อมูลไปได้อย่างง่ายดาย “การเข้ารหัสข้อมูลเป็นพื้นฐานสำคัญในการรักษาความปลอดภัยฐานข้อมูล ถ้าไม่มีการเข้าหรัส พวกเราก็ไม่สามารถป้องกันการบายพาสฐานข้อมูลได้” Roxana Bradescu ผู้อำนวยการฝ่ายการจัดการผลิตภัณฑ์รักษาความปลอดภัยของฐานข้อมูลของ Oracle ได้กล่าวไว้
5. แอพพลิเคชันที่ใช้เชื่อมต่อ
ผู้ดูแลระบบควรระบุแอพพลิเคชันที่อนุญาตให้ใช้เชื่อมต่อกับระบบฐานข้อมูลในองค์กรให้แน่ชัด ถ้ามีการเข้าถึงฐานข้อมูลโดยแอพพลิเคชันอื่น แสดงว่ามีความเสี่ยงที่จะเป็นการบุกรุกโจมตี
6. ควบคุมการเข้าถึงฐานข้อมูลของ Privileged Users
Privileged Users เป็นอีกหนึ่งปัจจัยที่ควรจับตาดูตลอดเวลา เนื่องจากเป็นผู้ใช้งานที่มีสิทธิ์ทำอะไรกับฐานข้อมูลก็ได้ รวมไปถึงผู้ใช้งานทั่วไปที่มีสิทธิ์พิเศษในการเข้าถึงฐานข้อมูล เช่น Developer ทำต้องเขียนโปรแกรมเพื่อเชื่อมต่อกับระบบฐานข้อมูล เป็นต้น ผู้ดูแลระบบสามารถควบคุมผู้ใช้งานเหล่านี้ได้ เช่น กำหนดช่วงเวลา, กำหนดตำแหน่งที่อนุญาตให้ใช้งาน (เครื่องคอมพิวเตอร์และหมายเลข IP), ไม่อนุญาตให้ใช้งานภายนอกห้อง Data Center รวมไปถึงคอยติดตามและตรวจสอบพฤติกรรมการใช้งานตลอดเวลา
7. เก็บ Production Data ไว้ใน Production Database
การกระจาย Production Data ไปเก็บไว้ในที่ต่างๆ เช่น ฝ่าย QA หรือฝ่าย Development ทำให้ใช้งานสะดวกก็จริง แต่ถือว่าเป็นจุดอ่อนสำคัญของระบบรักษาความปลอดภัยของฐานข้อมูล เนื่องจากภายในห้อง Data Center ที่ใช้เก็บฐานข้อมูลเป็นจุดที่มีการออกแบบและติดตั้งระบบรักษาความปลอดภัยสำหรับฐานข้อมูลไว้สูงสุด ผิดกับฝ่ายอื่นๆที่อาจจะยังไม่ปลอดภัยเพียงพอ กลายเป็นช่องโหว่สำคัญที่ผู้ไม่ประสงค์ดีใช้ในการขโมยข้อมูลได้
สำหรับผู้ดูแลระบบที่สนใจผลิตภัณฑ์ทางด้านระบบรักษาความปลอดภัยของฐานข้อมูล ทางทีมงาน TechTalkThai ขออนุญาตแนะนำผลิตภัณฑ์ที่มีชื่อเสียง 3 ยี่ห้อ ที่ช่วยให้ผู้ดูแลระบบสามารถทำงานได้ง่ายและมีประสิทธิภาพมากยิ่งขึ้น คือ Imperva Database Security, IBM InfoSphere Guardium และ McAfee Database Security ซึ่งทั้ง 3 ยี่ห้อมีฟังก์ชันที่สำคัญ ดังนี้
- การค้นหาและระบุข้อมูลสำคัญของฐานข้อมูล
- การตรวจสอบช่องโหว่ของฐานข้อมูล รวมทั้งการอุดช่องโหว่เหล่านั้น
- การตรวจสอบและติดตามการใช้งานฐานข้อมูลแบบเรียลไทม์
- การควบคุมจัดการสิทธิ์ในการเข้าถึงฐานข้อมูลแต่ละผู้ใช้
- การเข้ารหัสฐานข้อมูลและการทำ Masking
- รองรับการทำงานร่วมกับหลาย DBMS เช่น MsSQL, Oracle, MySQL, Sybase, DB2, Informix