รายการตรวจสอบความปลอดภัย
VoicePing เผยแพร่รายการตรวจสอบความปลอดภัยข้อมูลโดยละเอียด เอกสารความปลอดภัย VoicePing.pdf| ประเภท | รายการประเมิน | เนื้อหา | สถานะ |
|---|---|---|---|
| ความปลอดภัย | สถานะการรับรองสาธารณะ | การได้รับ ISMS, P-Mark เป็นต้น | วางแผนรับรอง ISMS (กำลังเตรียมการ) |
| ความปลอดภัย | การประเมินจากบุคคลที่สาม | การประเมินมาตรการป้องกันการบุกรุก การดำเนินการ การเข้าถึงข้อมูลโดยไม่ได้รับอนุญาต | - |
| ความปลอดภัย | สภาพแวดล้อมการจัดการข้อมูล | การจำกัดการเข้าถึงข้อมูลผู้ใช้ | จำกัดเฉพาะ IP address ผ่าน AWS Security Groups |
| ความปลอดภัย | ระดับการเข้ารหัสการสื่อสาร | ความแข็งแกร่งของการเข้ารหัสการสื่อสาร | ใช้เฉพาะ TLS 1.3 |
| ความปลอดภัย | มาตรการป้องกันไวรัส | การสแกนไวรัส | ตรวจจับกิจกรรมที่ไม่ได้รับอนุญาตอย่างต่อเนื่องผ่าน AWS GuardDuty |
| การปกป้องข้อมูล | ข้อมูลสำรอง | การเข้ารหัส ตำแหน่งจัดเก็บ | AWS Tokyo Region |
| การปกป้องข้อมูล | การแยกข้อมูลระหว่างบริษัท | การแยกข้อมูลระหว่างบริษัท | การแยกแบบ logical ผ่านฐานข้อมูล |
การปกป้องข้อมูล
การเข้ารหัสการสื่อสาร
- แอปพลิเคชันและข้อมูลเสียง/วิดีโอใช้เฉพาะ TLS 1.3
- บังคับใช้การสื่อสาร HTTPS (กำหนดค่าผ่าน AWS ELB)
การสำรองข้อมูล
- รอบการสำรอง: สำรองรายเดือนผ่าน AWS Database
- ระยะเวลาเก็บรักษา: บันทึกการเข้าถึงเซิร์ฟเวอร์จัดเก็บถาวรใน S3
- มาตรการ BCP: จัดเก็บระยะไกลหลายภูมิภาคบน AWS Database
การจำกัดการเข้าถึงข้อมูล
- การเข้าถึงฐานข้อมูลและเซิร์ฟเวอร์จำกัดเฉพาะ IP address ผ่าน AWS Security Groups
- ข้อมูลระหว่างบริษัทแยกแบบ logical ผ่านฐานข้อมูล
ความพร้อมใช้งาน
อัตราการทำงาน
- เวลาให้บริการ: 24 ชั่วโมง 365 วันโดยหลักการ
- SLA: 99.9% ขึ้นไป
- ผลงาน: 99.99% ขึ้นไป (ไม่มีการหยุดทำงานของเซิร์ฟเวอร์เกินหลายสิบนาทีตั้งแต่เริ่มให้บริการ)
การตอบสนองต่อเหตุการณ์
- มีการสำรองส่วนต่างของซอร์สโค้ดและการสำรอง DB ทำให้สามารถ rollback (กู้คืน) ได้ทันทีตลอด 24 ชั่วโมง
- กระบวนการเซิร์ฟเวอร์และสถานะระบบทั้งหมดแสดงผลผ่าน AWS CloudWatch หรือระบบแจ้งเตือนของเราเอง
- การแจ้งเตือนในกรณีที่มีการหยุดทำงาน
การบำรุงรักษาตามกำหนด
- กำหนดเวลาอัปเดตประมาณ 21:00 ทุกวันศุกร์ อาจมีการขาดการเชื่อมต่อไม่กี่วินาที
- แจ้งเตือนแบบเรียลไทม์ผ่านอีเมลหรือการสนับสนุนแชทข้อความ (Intercom) หากต้องอัปเดตในเวลาทำการ
ระบบสนับสนุน
การแจ้งเตือนเหตุการณ์
- วิธีการติดต่อ: แจ้งเตือนผ่านอีเมลและบริการแชทข้อความในแอป (Intercom)
ติดต่อฉุกเฉิน
- รองรับผ่านบริการแชทข้อความ (Intercom) หรือแบบฟอร์มติดต่อ
- ตอบกลับภายใน 5 นาทีในเวลาทำการ (9:00-18:00)
การจัดการผู้ใช้
การจัดการบัญชี
- หนึ่งบัญชีต่อผู้ใช้หนึ่งคน
- ผู้ใช้สามารถลบบัญชีทางกายภาพได้เมื่อลาออกหรือโอนย้าย
การจัดการรหัสผ่าน
- ผู้ใช้สามารถเปลี่ยนรหัสผ่านได้
- มีการยืนยันตัวตนสองขั้นตอนผ่านโทเค็นอีเมล
ความปลอดภัยของเว็บแอปพลิเคชัน
VoicePing ดำเนินมาตรการรักษาความปลอดภัยดังต่อไปนี้การป้องกัน SQL Injection
- Backend ใช้ ORM middleware สำหรับการดำเนินการฐานข้อมูล
- การสร้างคำสั่ง SQL ทั้งหมดใช้ placeholder
- กำหนดสิทธิ์ที่เหมาะสมให้บัญชีฐานข้อมูล (บัญชีที่มีเฉพาะสิทธิ์ READ, WRITE ที่จำเป็น)
การป้องกัน OS Command Injection
- โดยพื้นฐานไม่เรียกใช้ Shell
- เมื่อต้องการ logic ระดับใกล้ Shell จะเรียกใช้ผ่านไลบรารีที่ตรวจสอบความปลอดภัยแล้วเท่านั้น
การป้องกัน Path Parameter/Directory Traversal
- ข้อมูลจัดเก็บบน hosting ภายนอกหรือฐานข้อมูล
- ไม่มีฟังก์ชันเข้าถึงไฟล์บนเว็บเซิร์ฟเวอร์โดยตรง
- ชื่อไฟล์ใช้ชื่อสุ่ม ไม่สามารถคาดเดาได้
การจัดการ Session
- Session ID ใช้สตริงสุ่มที่ไม่สามารถคาดเดาได้และมีความยาวเพียงพอ
- Session ID จัดเก็บใน Cookie (ไม่จัดเก็บในพารามิเตอร์ URL)
- Cookie สำหรับการสื่อสาร HTTPS ใช้แอตทริบิวต์ Secure
- หน้าที่ต้องเข้าสู่ระบบแยกจากหน้าที่เข้าถึงได้สาธารณะ
การป้องกัน Cross-Site Scripting (XSS)
- ใช้ไลบรารี frontend ที่รองรับ
- บังคับ HTTPS ผ่าน AWS ELB
- ระบุการเข้ารหัสอักขระ (charset) ในฟิลด์ Content-Type ของ HTTP response header
- เพิ่มแอตทริบิวต์ HttpOnly ให้ Cookie
การป้องกัน CSRF
- ควบคุมการเข้าถึงผ่าน POST method ฝั่ง backend
- ตรวจสอบ Referer
- ส่งอีเมลอัตโนมัติไปยังอีเมลที่ลงทะเบียนสำหรับการดำเนินการสำคัญ
การป้องกัน HTTP Header Injection
- ใช้ API สำหรับ output header ใน backend middleware
การป้องกัน Clickjacking
- Output ฟิลด์ header X-Frame-Options
- ไม่สามารถเรียกใช้ได้หากไม่มี session ที่ถูกต้อง
- การดำเนินการสำคัญออกแบบให้ไม่สามารถทำได้ด้วยเมาส์เพียงอย่างเดียว
การป้องกัน Buffer Overflow
- ใช้ Node.js ซึ่งไม่อนุญาตให้เข้าถึงหน่วยความจำโดยตรง
- ตรวจสอบไลบรารีเป็นประจำผ่าน GitHub โดยสร้าง PR สำหรับไลบรารีที่มีช่องโหว่และอัปเดตทันเวลา
การควบคุมการเข้าถึงและการอนุญาต
- การยืนยันตัวตนสองขั้นตอนด้วยโทเค็นอีเมลสำหรับสิทธิ์ผู้จัดการ
- ดำเนินการควบคุมการอนุญาตนอกเหนือจากการยืนยันตัวตน ป้องกันผู้ใช้ที่เข้าสู่ระบบจากการปลอมตัวเป็นผู้อื่น
