รายการตรวจสอบความปลอดภัย
VoicePing เผยแพร่รายการตรวจสอบความปลอดภัยข้อมูลโดยละเอียด เอกสารความปลอดภัย VoicePing.pdfการปกป้องข้อมูล
การเข้ารหัสการสื่อสาร
- แอปพลิเคชันและข้อมูลเสียง/วิดีโอใช้เฉพาะ TLS 1.3
- บังคับใช้การสื่อสาร HTTPS (กำหนดค่าผ่าน AWS ELB)
การสำรองข้อมูล
- รอบการสำรองข้อมูล: สำรองรายเดือนผ่านฐานข้อมูล AWS
- ระยะเวลาเก็บรักษา: เก็บบันทึกการเข้าถึงเซิร์ฟเวอร์ใน S3 เฉพาะระยะเวลาขั้นต่ำที่จำเป็นต่อการรักษาความปลอดภัยและตรวจสอบเหตุการณ์ บันทึกของแอปออกแบบไม่ให้มีข้อมูลส่วนบุคคลโดยตรง เช่น ชื่อ อีเมล หรือข้อความถอดเสียง หากบันทึกมีตัวระบุที่อาจเชื่อมโยงกับบุคคลได้ เช่น ที่อยู่ IP ระบบจะลบหรือทำให้ไม่สามารถระบุตัวตนได้อย่างถาวรภายใน 30 วันหลังได้รับคำขอลบที่ถูกต้อง และจะไม่เก็บบันทึกไว้ในระยะยาว
- มาตรการ BCP: จัดเก็บข้อมูลสำรองแยกในหลายภูมิภาคบน AWS
การจำกัดการเข้าถึงข้อมูล
- จำกัดการเข้าถึงฐานข้อมูลและเซิร์ฟเวอร์ตามที่อยู่ IP ที่กำหนดผ่าน AWS Security Groups
- แยกข้อมูลของแต่ละบริษัทเชิงตรรกะในฐานข้อมูล
ความพร้อมใช้งาน
อัตราการทำงาน
- เวลาให้บริการ: 24 ชั่วโมง 365 วันโดยหลักการ
- SLA: 99.9% ขึ้นไป
- ผลงาน: 99.99% ขึ้นไป (ไม่มีการหยุดทำงานของเซิร์ฟเวอร์เกินหลายสิบนาทีตั้งแต่เริ่มให้บริการ)
การตอบสนองต่อเหตุการณ์
- มีข้อมูลสำรองของซอร์สโค้ดและฐานข้อมูล จึงย้อนกลับระบบได้ตลอด 24 ชั่วโมง
- ติดตามกระบวนการของเซิร์ฟเวอร์และสถานะระบบผ่าน AWS CloudWatch และระบบแจ้งเตือนของ VoicePing
- แจ้งเตือนทันทีเมื่อตรวจพบการหยุดให้บริการ
การบำรุงรักษาตามกำหนด
- กำหนดเวลาอัปเดตประมาณ 21:00 ทุกวันศุกร์ อาจมีการขาดการเชื่อมต่อไม่กี่วินาที
- แจ้งเตือนแบบเรียลไทม์ผ่านอีเมลหรือการสนับสนุนแชทข้อความ (Intercom) หากต้องอัปเดตในเวลาทำการ
ระบบสนับสนุน
การแจ้งเตือนเหตุการณ์
- วิธีการติดต่อ: แจ้งเตือนผ่านอีเมลและบริการแชทข้อความในแอป (Intercom)
ติดต่อฉุกเฉิน
- รองรับผ่านบริการแชทข้อความ (Intercom) หรือแบบฟอร์มติดต่อ
- ตอบกลับภายใน 5 นาทีในเวลาทำการ (9:00-18:00)
การจัดการผู้ใช้
การจัดการบัญชี
- หนึ่งบัญชีต่อผู้ใช้หนึ่งคน
- ผู้ใช้สามารถลบบัญชีของตนเองได้
การจัดการรหัสผ่าน
- ผู้ใช้สามารถเปลี่ยนรหัสผ่านได้
- มีการยืนยันตัวตนสองขั้นตอนผ่านโทเค็นอีเมล
ความปลอดภัยของเว็บแอปพลิเคชัน
VoicePing ดำเนินมาตรการรักษาความปลอดภัยดังต่อไปนี้การป้องกัน SQL Injection
- แบ็กเอนด์ใช้ ORM middleware สำหรับการเข้าถึงฐานข้อมูล
- คำสั่ง SQL ทั้งหมดใช้พารามิเตอร์แทนการต่อข้อความโดยตรง
- กำหนดสิทธิ์ที่เหมาะสมให้บัญชีฐานข้อมูล (บัญชีที่มีเฉพาะสิทธิ์ READ, WRITE ที่จำเป็น)
การป้องกัน OS Command Injection
- ระบบไม่เรียกใช้เชลล์โดยตรงในการทำงานทั่วไป
- หากจำเป็นต้องประมวลผลระดับระบบ จะใช้เฉพาะไลบรารีที่ตรวจสอบด้านความปลอดภัยแล้ว
การป้องกัน Path Parameter/Directory Traversal
- จัดเก็บข้อมูลในบริการโฮสติ้งภายนอกหรือฐานข้อมูล
- ไม่มีฟังก์ชันเข้าถึงไฟล์บนเว็บเซิร์ฟเวอร์โดยตรง
- ชื่อไฟล์ใช้ชื่อสุ่ม ไม่สามารถคาดเดาได้
การจัดการเซสชัน
- Session ID เป็นสตริงสุ่มที่ยาวเพียงพอและคาดเดาไม่ได้
- เก็บ Session ID ในคุกกี้ ไม่เก็บในพารามิเตอร์ URL
- คุกกี้สำหรับ HTTPS ใช้แอตทริบิวต์ Secure
- หน้าที่ต้องเข้าสู่ระบบแยกจากหน้าที่เข้าถึงได้สาธารณะ
การป้องกัน Cross-Site Scripting (XSS)
- ใช้ไลบรารีส่วนหน้าที่รองรับการป้องกัน XSS
- บังคับ HTTPS ผ่าน AWS ELB
- ระบุชุดอักขระ (charset) ใน Content-Type ของส่วนหัวการตอบกลับ HTTP
- เพิ่มแอตทริบิวต์ HttpOnly ให้คุกกี้
การป้องกัน CSRF
- ควบคุมการเข้าถึงฝั่งแบ็กเอนด์สำหรับคำขอแบบ POST
- ตรวจสอบ Referer
- ส่งอีเมลอัตโนมัติไปยังอีเมลที่ลงทะเบียนสำหรับการดำเนินการสำคัญ
การป้องกัน HTTP Header Injection
- ส่งส่วนหัวผ่าน API ของ middleware ฝั่งแบ็กเอนด์
การป้องกัน Clickjacking
- ส่งส่วนหัว X-Frame-Options
- ไม่สามารถดำเนินการได้หากไม่มีเซสชันที่ถูกต้อง
- การดำเนินการสำคัญออกแบบให้ไม่สามารถทำได้ด้วยเมาส์เพียงอย่างเดียว
การป้องกัน Buffer Overflow
- ใช้ Node.js ซึ่งไม่อนุญาตให้เข้าถึงหน่วยความจำโดยตรง
- ตรวจสอบไลบรารีเป็นประจำผ่าน GitHub โดยสร้าง PR สำหรับไลบรารีที่มีช่องโหว่และอัปเดตทันเวลา
การควบคุมการเข้าถึงและการอนุญาต
- การยืนยันตัวตนสองขั้นตอนด้วยโทเค็นอีเมลสำหรับสิทธิ์ผู้จัดการ
- ดำเนินการควบคุมการอนุญาตนอกเหนือจากการยืนยันตัวตน ป้องกันผู้ใช้ที่เข้าสู่ระบบจากการปลอมตัวเป็นผู้อื่น
สถาปัตยกรรมระบบ
ภาพรวมสถาปัตยกรรมระบบของ VoicePing การสื่อสารทั้งหมดได้รับการปกป้องผ่าน HTTPS หรือการเชื่อมต่อแบบเข้ารหัส- แอปเดสก์ท็อป (Windows / macOS / Linux)
- แอปมือถือ (iOS / Android)
- เว็บแอป (รองรับเบราว์เซอร์)
- Cloudflare CDN (เครือข่ายส่งเนื้อหา)
- Google Cloud Storage (โฮสติ้งแบบคงที่)
- โหลดบาลานเซอร์ (AWS)
- เซิร์ฟเวอร์ธุรกิจ (การยืนยันตัวตนด้วย API Key)
- เซิร์ฟเวอร์แปลภาษาและถอดเสียง (รองรับการติดตั้งภายในองค์กรและยืนยันตัวตนด้วย API Key)
- ฐานข้อมูล (Google Cloud SQL / RDB)
- พื้นที่จัดเก็บ JSON (S3) สำหรับข้อมูลเสียง ข้อความถอดเสียง และรูปภาพ
- API ภายนอก / บริการบุคคลที่สาม (การยืนยันตัวตนด้วย API Key)