ความปลอดภัยในการใช้งานและข้อกำหนดที่ซาบีแอพปฏิบัติตาม
บริการออนไลน์แบบ
เราพัฒนาซาบีแอพมาให้เป็นโปรแกรมออนไลน์ หรือที่รู้จักกันในคำว่า cloud based ซึ่งมีข้อดีอยู่มากมาย คุณสามารถเข้าถึงโปรแกรมได้เพียงมีการเชื่อมต่ออินเตอร์เน็ต เว็บบราวเซอร์ และบัญชีผู้ใช้งานซาบีแอพ ซาบีแอพไม่มีซอฟต์แวร์ที่สามารถติดตั้งในอุปกรณ์ใด ๆ ได้ ซึ่งหมายความว่าการใช้งานจะแตกต่างไปจากซอฟต์แวร์แบบติดตั้งลงเครื่องในบางแง่มุม
เซิร์ฟเวอร์ที่ซาบีแอพใช้ในการปฏิบัติการคือ AWS (Amazon Web Services) cloud infrastructure ซึ่งเป็นบริการในด้านซอฟต์แวร์ หรือ SAAS (Software as a Service) โดยจะลงรายละเอียดเกี่ยวกับแพลตฟอร์มนี้ต่อไปด้านล่าง
ซาบีแอพใช้ฐานข้อมูลและฐานรหัสแบบแชร์ ซึ่งหมายความว่ามีผู้ใช้งานมากกว่าหนึ่งคนที่ใช้งานฐานข้อมูลเดียวกัน (multi-tenant infrastructure) ข้อดีของการจัดการฐานข้อมูลแบบนี้คือผู้ใช้งานซาบีแอพทุกคนจะได้ใช้ซอฟต์แวร์ที่เป็นเวอร์ชันใหม่ล่าสุดอยู่เสมอ นอกจากนี้ยังมีความปลอดภัยสูงมากอีกด้วย เนื่องจากมีผู้ใช้งานหลากหลาย เราจึงใช้ระบบการอนุญาตให้เข้าถึงข้อมูลในซาบีแอพ โดยพนักงานแต่ละคนจะมีบัญชีผู้ใช้งานที่สามารถเข้าถึงข้อมูลที่จำเป็นได้เท่านั้น
โครงสร้างพื้นฐาน
ซอฟต์แวร์ซาบีแอพดำเนินการได้ด้วยบริการ AWS (Amazon Web Services) จากศูนย์ข้อมูล Amazon ในประเทศไอร์แลนด์ ซอฟต์แวร์ที่ใช้บริการ AWS นั้นใช้ระบบ multi-zones ซึ่งแปลว่าหากหน่วยการทำงานหนึ่งเกิดเหตุขัดข้องขึ้น หน่วยการทำงานอื่น ๆ ในระบบสามารถรับภาระงานต่อได้โดยไม่ก่อให้เกิดปัญหาในการใช้งาน
- Route53
- WAF (Web Application Firewall)
- S3 (Simple Storage Service)
- ALB (Application Load Balancer)
- VPC (Virtual Private Network)
- RDS (Relational Database Service)
- ElastiCache
- Elasticsearch Service
- CloudWatch (monitoring, alarming)
- KMS (Key Management Service)
- Certificate Manager
- OpsWorks
- CodeCommit
ผู้ให้บริการ
- Beanstalk (svn, git) -ระบบแชร์รหัสต้นฉบับ (Source code sharing)
- Github - ระบบแชร์รหัสต้นฉบับ (Source code sharing)
- Google Analytics - ใช้ในการวิเคราะห์ข้อมูล
- Twillio - ผู้ให้บริการส่งข้อความไปยังโทรศัพท์มือถือ
- Mandrillapp, Mailchimp -ผู้ให้บริการส่งอีเมล
- Technical stack (dev, test, prod)
ซาบีแอพใช้ภาษา PHP, Javascript และ Bootstrap ในการเขียนโปรแกรม โดยมีขั้นตอนในการพัฒนาดังต่อไปนี้:
ความปลอดภัยของข้อมูลและฐานข้อมูล และการกู้คืนข้อมูลเมื่อเกิดภัยพิบัติ
เนื่องจากซาบีแอพเป็นระบบที่ปฏิบัติการบนคลาวด์ หากฐานข้อมูลหรือระบบเก็บไฟล์มีปัญหา อาจมีโอกาสทำให้สูญเสียข้อมูลได้
แผนการลดความเสี่ยงในการสูญเสียข้อมูล เป็นไปตามขั้นตอนต่อไปนี้:
- ข้อมูลต่าง ๆ จะได้รับการจัดเก็บในฐานข้อมูลหลายฐานข้อมูล เนื่องจากมีการทำซ้ำของข้อมูลเก็บสำรองไว้เสมอ
- จะมีการสำรองข้อมูลประจำวันในทุก ๆ คืน ซึ่งชุดข้อมูลสำรองนี้สามารถถูกเรียกใช้ได้ภายในไม่กี่นาที เราจะเก็บข้อมูลสำรอง 9 ชุดล่าสุดไว้เสมอ
- มีการเข้ารหัสช่องทางการสื่อสารระหว่าง RDS และ EC2 ทุกเครื่อง
- สามารถเข้าถึงฐานข้อมูลได้จากระบบภายใน หรือเข้าผ่านระบบ SSH โดยเชื่อมต่อกับเซิร์ฟเวอร์หลักได้เท่านั้น
- ข้อมูลสำคัญในฐานข้อมูลจะมีการเข้ารหัสที่ต่างไปจากข้อมูลอื่น เช่น ข้อมูลบัตรเครดิตใช้ระบบ 2-key encryption และใช้ระบบ salted SHA-512 encryption เพื่อปกป้องข้อมูลรหัสผ่าน เป็นต้น
- ฐานข้อมูลถูกแบ่งเป็นทั้งหมด 3 หน่วย โดยหากหน่วยใดหน่วยหนึ่งมีปัญหา อีกหน่วยหนึ่งจะรับหน้าที่ทำงานต่อทันทีโดยอัตโนมัติ
กระบวนการแก้ไขปัญหา
ขั้นตอนการแก้ไขปัญหาของซาบีแอพเป็นไปตามกฎเกณฑ์ที่ชัดเจนและรัดกุม รวมทั้งมีการบันทึกรายละเอียดไว้เสมอ พนักงานซาบีแอพทุกคนรับทราบกฎเกณฑ์และสามารถเข้าถึงขั้นตอนในการแก้ไขปัญหาเพื่อการใช้งานภายในองค์กรได้
- ในกรณีที่เกิดปัญหา เรามีขั้นตอนในการแก้ไขปัญหาดังต่อไปนี้:
- ระบุปัญหาให้แน่ชัด
- สื่อสารปัญหานั้น ๆ กับพนักงานซาบีแอพทั้งหมด
- แต่งตั้งผู้รับผิดชอบในการแก้ไขปัญหา ในกรณีที่จำเป็น
- สื่อสารกับลูกค้าเกี่ยวกับปัญหา ในกรณีที่ลูกค้ามีส่วนเกี่ยวข้องในเหตุการณ์นั้น ๆ
- แก้ไขปัญหา
- ป้องกันไม่ให้เกิดปัญหาเดิมซ้ำสอง (พร้อมตรวจสอบและแก้ไขขั้นตอนในกรณีที่จำเป็น)
- กู้คืนข้อมูลและรหัสต้นฉบับในกรณีที่จำเป็น
- เขียนสคริปต์และทดลองใช้งานในกรณีที่ต้องแก้ไขข้อมูลหรือหาข้อมูลใหม่มาแทนที่
- แจ้งพาร์ทเนอร์ทางเทคนิกที่เกี่ยวข้อง ในกรณีที่จำเป็น
- แจ้งลูกค้าเกี่ยวกับการแก้ไขปัญหา
- บันทึกรายละเอียดที่เกี่ยวข้องกับเหตุการณ์ทั้งหมด
- ตรวจสอบความปลอดภัยของโครงสร้างพื้นฐาน (amazon security measures, pentest, tl, MFA)
ตามระบบการปฏิบัติงานของ AWS cloud system การอัพเดทเซิร์ฟเวอร์ รวมถึงการดูแลและรักษาความปลอดภัยทั้งหมด เป็นหน้าที่ของวิศวกรของ Amazon โดยมีการกำจัดจุดอ่อนทั้งหมดที่ทำได้โดยทีมวิศวกรและเจ้าหน้าที่รักษาความปลอดภัย
ข้อมูลในการเข้าถึง AWS นั้นจะถูกแบ่งปันกับพนักงานซาบีแอพเมื่อมีเหตุจำเป็นเท่านั้น และมีการรักษาความปลอดภัยการใช้งานอย่างรัดกุม โดยใช้รหัสผ่านที่มีความปลอดภัยสูง รวมถึงใช้ MFA หรือการยืนยันตัวตนแบบหลายขั้นตอน
เราใช้ซอฟต์แวร์ภายนอกในการทดสอบเจาะระบบเพื่อตรวจหาช่องโหว่ในซอฟต์แวร์อย่างสม่ำเสมอ
มีการวิเคราะห์ความปลอดภัยและคุณภาพของรหัสโดยใช้เครื่องมือ SonarQube อย่างสม่ำเสมอ
การจราจรของข้อมูลทั้งหมดอยู่ภายใต้การเข้ารหัส TLS 1.2 เป็นอย่างต่ำ ข้อมูลทั้งหมดที่เราจัดเก็บก็ถูกเข้ารหัสด้วยเช่นกัน
รหัสผ่านทั้งหมดที่จัดเก็บโดยซาบีแอพนั้นได้รับการเปลี่ยนแปลงข้อมูลโดยใช้ฟังก์ชันแฮชก่อนจัดเก็บทั้งหมด เราจะไม่จัดเก็บรหัสผ่านหรือข้อมูลที่เป็นความลับใด ๆ ในรูปของข้อความดั้งเดิมเด็ดขาด
การบันทึกประสิทธิภาพในการทำงานของระบบภายใน เป็นแบบ multi level
การจัดการความปลอดภัยภายในองค์กร
- สัญญาการทำงานของพนักงานทุกคนมีข้อมูลเกี่ยวกับการจัดการข้อมูลและหน้าที่ในการรักษาความลับ รวมถึงมีการอบรมเรื่องการรักษาความปลอดภัยของข้อมูลให้พนักงานใหม่ทุกคน
- พนักงานสามารถเข้าถึง AWS ได้ในกรณีที่จำเป็นต่อการทำงานเท่านั้น
- วิศวกรของเราได้รับสิทธิ์ให้อ่านได้เฉพาะ live database เท่านั้น
- รหัสผ่านของซอฟต์แวร์ที่ใช้ภายในองค์กร เป็นรหัสผ่านที่มีความปลอดภัยสูงและจัดการโดย 1Password รวมถึงมีการใช้การยืนยันตัวตนแบบหลายขั้นตอนในทุกกรณีที่ทำได้
- เรามีการอบรมเพื่อเพิ่มพูนทักษะการรักษาความปลอดภัยของข้อมูลอยู่เสม
ประกาศนียบัตร
- PCI - DSS Level1 AOC
- NTAK certification
- VIZA certification