หากเราจะใช้งานคลาวด์แล้ว ความปลอดภัยเป็นเรื่องที่ผู้ใช้บริการคลาวด์ให้ความสำคัญเป็นอันดับต้นๆ ในบ่อยครั้งก็มักจะได้ยินว่า “ก่อนหน้านี้ใช้งานไม่เห็นมีปัญหาอะไรเลย แต่พอย้ายมาใช้งานคลาวด์แล้ว กลายเป็นว่าระบบโดนแฮกขึ้นมา แบบนี้แสดงว่าระบบคลาวด์ไม่ปลอดภัยสู้ระบบของตัวเองไม่ได้” ในบทความนี้จะมาอธิบายเรื่องเหล่านี้กัน...
ความปลอดภัยของระบบคลาวด์มีอะไรบ้างที่ต้องคำนึงถึง
สำหรับระบบความปลอดภัยที่ต้องคำนึงถึงในการใช้งานระบบคลาวด์ ผมขออ้างอิงหัวข้อที่เกี่ยวข้องกับความปลอดภัยของระบบคลาวด์โดยอ้างอิงจาก Certified Cloud Security Professional (CCSP) ของหน่วยงาน ISC2 ซึ่งเป็นองค์กลางที่ได้รับการยอมรับในด้านความปลอดภัยในระดับสากล โดยมีการพิจารณาทั้งหมด 6 หัวข้อดังนี้
-
ด้านพื้นฐานการใช้งานคลาวด์ (Cloud Concepts, Architecture and Design) รวมไปถึงรูปแบบการใช้งานคลาวด์ว่าเป็นรูปแบบใด เช่น IaaS, PaaS หรือ SaaS ซึ่งจะรวมไปถึงรูปแบบความรับผิดชอบร่วม (Shared Responsibility Model) ตามที่เคยที่อธิบายไปในบทความก่อนหน้านี้
- ด้านการจัดการกุญแจลับ (Cryptography and key management) การยืนยันตัวตน (Identify and access control) การกำหนดสิทธิการใช้งาน
- ด้านการออกแบบระบบของเราว่ามีการออกแบบเอาไว้เป็นอย่างไร มีการจัดการระบบเครือข่ายในระบบคลาวด์ รวมไปถึงรูปแบบการเชื่อมต่อกับระบบของเราเป็นอย่างไร
- ด้านการประเมินผู้ให้บริการคลาวด์ว่าได้รับมาตรฐานการรับรองจากหน่วยงานกลางหรือไม่ และได้รับการรับรองด้านในบ้า
- ด้านความปลอดภัยของข้อมูล (Cloud Data Security) จะต้องมีการกำหนดชั้นความลับของข้อมูล การตรวจสอบการใช้งานของข้อมูล (Data flow) การเก็บข้อมุลบนคลาวด์จะเป็นแบบใด ในกรณีที่ข้อมูลมีความสำคัญมากและต้องการเก็บบนระบบคลาวด์ก็ให้มีการเก็บโดยการเข้ารหัสเอาไว้บนคลาวด์ (Data Encryption) โดยใช้มาตรฐานในการเข้ารหัสที่เป็นที่ยอมรับในสากล เป็นต้น
- ด้านระบบและโครงสร้างของระบบคลาวด์ (Cloud Platform & Infrastructure Security) ผู้ให้บริการคลาวด์จะต้องมีมาตรฐานการออกแบบศูนย์ข้อมูลที่ได้รับมาตรฐานสากล มีแนวทางการจัดการระบบ รวมไปถึงจะต้องสามารถตรวจสอบล็อกต่างๆ ได้ในกรณีที่เกิดปัญหา รวมไปถึงมีแผนสำรองฉุกเฉินในกรณีที่ระบบเกิดปัญหา (Business Continuity Plan หรือ BCP)
- ด้านการพัฒนาโปรแกรมบนระบบคลาวด์ (Cloud Application Security) หากองค์กรของเรามีการพัฒนาโปรแกรมแบบ Cloud-Native Application แล้ว เช่น การใช้งาน Container หรือ Micro service, การใช้งาน Serverless เป็นต้น จะต้องพิจารณาความปลอดภัยในกระบวนการทำงานของเราตามหลักการของ Secure Software Development Life Cycle หรือ SDLC (โดยส่วนนี้เป็นหน้าที่ของผู้ใช้บริการคลาวด์ที่ต้องดูแลเอง เพราะผู้ให้บริการคลาวด์เป็นผู้ให้บริการเครื่องมือเท่านั้น) ในกรณีที่ระบบของเรามีปัญหาอาจจะใช้เครื่องมือที่ผู้ให้บริการคลาว์มีให้เช่น Web Application Firewall (WAF) ในการช่วยป้องการการโจมตีผ่านทางเว็บไซต์ เป็นต้น
-
ด้านการจัดการความปลอดภัย (Cloud Security Operations) โดยต้องคำนึงถึงการออกแบบระบบคลาวด์ต่างๆ ที่เกี่ยวข้องเช่น
- การจัดการกุญแจสำหรับการเข้ารหัสต่างๆ (Key Management)
- การบริหารจัดการด้านระบบคลาวด์ตามแนวนโยบายของ Information Technology Infrastructure Library หรือ ITIL ซึ่งเป็นการดำเนินงานทั้งผู้ใช้บริการคลาวด์และผู้ให้บริการคลาวด์ (หากเป็นผู้ให้บริการคลาวด์ มักจะรับรองมาตรฐาน ISO/IEC 20000-1)
- การตรวจสอบความปลอดภัยของการใช้งาน เช่น การตรวจสอบช่องโหว่ของซอฟต์แวร์ (Vulnerability Assessment หรือ VA Scan) หรือการตรวจสอบช่องโหว่ (Penetrate Testing หรือ Pen-Test) เป็นต้น
- การจัดการปัญหาที่เกิดขึ้นต่างๆ เช่น การจัดการช่องโหว่ การจัดการล็อกและการวิเคราะห์ล็อกที่เกิดขึ้น
- ด้านกฎหมาย ความเสี่ยงและข้อกำหนดของการใช้งานคลาวด์ (Legal, Risk and Compliance) ในการใช้งานคลาวด์จะต้องไม่ขัดต่อกฎระเบียบ กฎหมายหรือข้อบังคับต่างๆ ที่กำหนดเอาไว้ รวมไปถึงด้านความเป็นส่วนตัว (Privacy) และมาตรฐานที่เกี่ยวข้องเช่น PCI-DSS สำหรับองค์กรที่มีการใช้งานบัตรเครดิต
หัวข้อที่พิจารณาในการใช้งานคลาวด์ที่น่าสนใจ
สำหรับหัวข้อในการพิจารณาใช้งานคลาวด์ ผมขอสรุปออกมาเป็นตารางด้านล่าง
| ลำดับที่ |
หัวข้อ |
แนวทางการพิจารณา |
| 1 |
ความรับผิดชอบร่วม (Shared Responsibility Model) |
เลือกรูปแบบการใช้งานคลาวด์ที่เหมาะสมกับงานของเรา ซึ่งไม่ว่าจะเป็นการใช้งานแบบใดจะเป็นการแบ่งความรับผิดชอบร่วมกันระหว่างผู้ให้บริการและผู้ใช้บริการคลาวด์เสมอ |
| 2 |
การเข้ารหัสข้อมูล (Data Encryption) |
การเข้ารหัสข้อมูลจะพิจารณาทั้งข้อมูลในระหว่างการส่ง (Data in transit) และข้อมูลที่ถูกเก็บเอาไว้ในระบบคลาวด์ (Data at rest) โดยเลือกใช้รูปแบบการเข้ารหัสที่เป็นสากล และบริการจัดการกุญแจในการเข้ารหัสให้ปลอดภัย |
| 3 |
การควบคุมการเข้าถึง (Access Control) |
การกำหนดสิทธิและผู้ใช้งานให้เหมาะสม ไม่ควรมีการแชร์ชื่อผู้ใช้งาน การยืนยันตัวตนควรจะใช้งานระบบ Multi-Factor Authentication (MFA) การกำหนดสิทธิที่ใช้งานให้มีสิทธิเท่าที่จำเป็นในการใช้งานเท่านั้น (Least Privileges) เป็นต้น |
| 4 |
การตรวจสอบและบันทึกเหตุการณ์ (Monitoring and Logging) |
ต้องมีการเก็บล็อกเอาไว้อย่างสม่ำเสมอ (ตาม พรบ. คอมพิวเตอร์ของประเทศไทย ต้องมีการเก็บล็อกอย่างน้อยน 90 วัน) หากมีระบบที่ใช้ในการตรวจสอบล็อกและภัยคุกคามอัตโนมัติ เช่น ระบบ Security Information and Event Management หรือ SIEM ก็พิจาณาเลือกใช้งานตามความเสี่ยงของข้อมูล เป็นสำคัญ |
| 5 |
การปฏิบัติตามมาตรฐานและกฎหมาย |
ปัจจุบันประเทศไทยมีการกำหนดมาตรฐานผู้ให้บริการคลาวด์แล้ว โดยแบ่งตามระดับความเสี่ยงของข้อมูล (ระดับต่ำ ระดับกลางและระดับสูง) รวมไปถึงข้อกำหนดการใช้งานต่างๆ |
| 6 |
ความเสี่ยงด้านอธิปไตยไซเบอร์ (Sovereign) |
การพิจารณาด้านข้อมูลที่เกี่ยวข้อง โดยข้อมูลบางประเภทจะมีข้กำหนดในการเก็บ รวมไปถึงประเทศที่จัดเก็บข้อมูลอีกด้วย |
หากสรุปให้ง่ายๆ ก็คือ ก่อนเริ่มใช้งานคลาวด์ให้เราประเมินความสำคัญของข้อมูลก่อน หากเป็นข้อมูลที่สำคัญมาก เช่น แผนกลยุทธ์ของบริษัท ระบบบัญชีของบริษัทฯ ระบบการผลิต จะต้องพิจารณาใช้งานคลาวด์ที่มีความปลอดภัยในระดับสูง ซึ่งก็จะมีค่าใช้จ่ายในการปกป้องข้อมูลที่สูงตามไปด้วย แต่หากเป็นข้อมูลที่ไม่สำคัญ เช่นระบบเว็บไซต์ขององค์กรที่เปิดให้เข้าถึงโดยทั่วไป (Public Access) ก็พิจารณาใช้งานคลาวด์ที่มีความปลอดภัยในระดับต่ำแทน เพื่อประหยัดงบประมาณ เป็นต้น ซึ่งการใช้งานคลาวด์จะเป็นความรับผิดชอบร่วมกันระหว่างผู้ใช้บริการและผู้ให้บริการคลาวด์ หากใช้ระบบคลาวด์ที่มีมาตรฐานสูงแต่การจัดการเราทำได้ไม่ดีก็เป็นความเสี่ยงที่ถูกแฮกได้เช่นเดียวกัน เปรียบเสมือนกับมีเครื่องมือที่ดีแต่เราใช้งานไม่เป็นนั่นเอง
เอกสารอ้างอิง: