- พบช่องโหว่ด้านความปลอดภัยร้ายแรงใน แอปหาคู่ ชื่อ Cerca
- OTP ถูกเปิดเผยอยู่ใน response ทำให้ใครก็ตามที่รู้แค่หมายเลขโทรศัพท์ก็เข้าถึงบัญชีได้
- API endpoint หลายจุดถูกเปิดไว้โดยไม่มีการยืนยันตัวตน ทำให้ข้อมูลส่วนบุคคลรั่วไหลได้ง่าย
- มีการเปิดเผยข้อมูลอ่อนไหวของผู้ใช้จำนวนมาก เช่น รสนิยมทางเพศ เนื้อหาแชต เอกสารยืนยันตัวตน
- ฝั่งผู้ให้บริการมีการตอบสนองและการแจ้งเตือนที่ไม่เพียงพอ แม้นักวิจัยจะรายงานอย่างมีความรับผิดชอบแล้ว
ความสำคัญที่สตาร์ทอัพต้องให้ความสำคัญกับความปลอดภัยอย่างจริงจัง
- ช่วงหลังมานี้ สตาร์ทอัพ หลายแห่งเร่งเปิดตัวสู่ตลาดจน ละเลยเรื่องความปลอดภัย
- ทั้งที่เป็น แอปหาคู่ ซึ่งรวมศูนย์ข้อมูลส่วนบุคคลไว้มาก แต่ด้วย ความไม่พร้อมด้านการพัฒนาและการปฏิบัติการ ทำให้ผู้ใช้ตกอยู่ในความเสี่ยง
ขั้นตอนการค้นพบช่องโหว่และการแจ้งเตือน
- วันที่ 23 กุมภาพันธ์ 2025 มีการอธิบาย ช่องโหว่ด้านความปลอดภัยและปัญหาที่เกี่ยวข้องให้ Cerca ทางอีเมล
- วันที่ 24 กุมภาพันธ์ ได้หารือ รายละเอียดช่องโหว่ แนวทางรับมือ และขั้นตอนถัดไป ผ่านวิดีโอคอล
- ทีม Cerca แจ้งว่า รับทราบความร้ายแรง จะดำเนินการอย่างรวดเร็ว และจะแจ้งผู้ใช้
- หลังจากนั้นมีการส่ง คำถามติดตามความคืบหน้า หลายครั้ง แต่ ณ วันที่ 21 เมษายน ยังไม่มีคำตอบหรือประกาศใดๆ
- จากการตรวจสอบอย่างอิสระพบว่า ช่องโหว่นี้ถูกแพตช์แล้ว
ช่องโหว่ OTP และขั้นตอนแฮ็กแบบง่ายๆ
- ระหว่างกระบวนการล็อกอินของแอป รหัสผ่านใช้ครั้งเดียว (OTP) ถูกเปิดเผยตรงๆ ใน network response
- ผู้โจมตี เพียงรู้หมายเลขโทรศัพท์ก็สามารถเข้าถึงบัญชีได้ง่ายและรวดเร็ว
การเข้าถึง API endpoint และการรั่วไหลของข้อมูล
- ยืนยันได้ว่าสามารถเข้าถึงทุกเส้นทางของ API ได้เพียง ใส่ app version header
- มีการเปิดเผย เอกสาร OpenAPI ทั้งหมด ผ่าน endpoint
/docs
- สามารถใช้เครื่องมืออย่าง Burp Suite เพื่อ ฉีด app header และโทเค็นอัตโนมัติ แล้วควบคุม API ได้
- บาง endpoint เปลี่ยนแค่ business logic แต่ endpoint สำคัญหลายจุดส่งคืนข้อมูลส่วนบุคคลอย่างร้ายแรง
- ผ่าน
user/{user_id} เป็นต้น สามารถเข้าถึงข้อมูลส่วนบุคคล หมายเลขโทรศัพท์ และแม้กระทั่งยึดบัญชีได้
สถานะการเปิดเผยข้อมูลส่วนบุคคลและข้อมูลเอกสารยืนยันตัวตนจำนวนมาก
- ผ่าน endpoint ข้อมูลส่วนบุคคล มีการเปิดเผย PII จำนวนมาก เช่น เพศ เมือง วันเกิด อีเมลมหาวิทยาลัย และข้อมูลเอกสารยืนยันตัวตน
- โดยเฉพาะฟิลด์เกี่ยวกับเอกสารยืนยันตัวตน เช่น
national_id_verified ทำให้เข้าถึงไฟล์อ่อนไหวได้ เช่น ภาพหนังสือเดินทางและบัตรประชาชน
- จากสคริปต์โจมตีพบว่าสามารถ ระบุตัวผู้ใช้ได้ 6,117 คน และในจำนวนนี้ 207 คนได้กรอกข้อมูลเอกสารยืนยันตัวตนแล้ว
- มีบางบัญชีที่แสดงว่าเป็นสังกัดมหาวิทยาลัยเยล
- เมื่ออ้างอิงจาก Instagram ทางการของ Cerca นี่เทียบได้กับ ผู้ใช้ 10,000 คนในสัปดาห์แรก
ความเสี่ยงของความเสียหายจริงและความร้ายแรงของปัญหา
- มีการรั่วไหลของ ข้อมูลที่อ่อนไหวอย่างยิ่ง เช่น รสนิยมทางเพศ เนื้อหาบทสนทนา เอกสารยืนยันตัวตน ทำให้เกิดความเสี่ยงร้ายแรง เช่น การสะกดรอย การขโมยตัวตน และการข่มขู่
- Cerca ระบุว่า 'ปฏิบัติตามมาตรฐานอุตสาหกรรม เช่น การเข้ารหัส' แต่ไม่สอดคล้องกับสภาพการดำเนินงานจริง
- ผู้ใช้ไม่สามารถตรวจสอบได้ด้วยตนเอง ดังนั้น การจัดการความปลอดภัยเชิงรุกและอย่างมีความรับผิดชอบจากผู้ให้บริการแอป จึงเป็นสิ่งจำเป็น
- ในทางปฏิบัติยังมีความเป็นไปได้ว่า บุคคลไม่ระบุจำนวนอาจขโมยข้อมูลส่วนบุคคลครั้งใหญ่ไปแล้ว
บทสรุปและความจำเป็นของวัฒนธรรมความปลอดภัยที่มีความรับผิดชอบ
- การให้บริการแอปที่ เปราะบางจนใครก็แฮ็กได้ง่าย เป็นปัญหาสังคมที่ร้ายแรง
- หากไม่ให้ การปกป้องข้อมูลผู้ใช้ เป็นลำดับความสำคัญสูงสุด ความเสียหายก็อาจเกิดขึ้นได้แบบเรียลไทม์
- กรณีของ Cerca ที่ ตอบสนองต่อรายงานของนักวิจัยและการแจ้งผู้ใช้ได้ไม่เพียงพอ เป็นบทเรียนสำคัญ
- เพื่อสร้างสภาพแวดล้อมอินเทอร์เน็ตที่ปลอดภัยยิ่งขึ้น การวางระบบความปลอดภัยต้องเป็นสิ่งสำคัญสูงสุดสำหรับทุกบริษัทพัฒนา
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
แม้จะคำนึงว่านี่เป็นผลงานที่ดูเหมือนทำโดยนักศึกษามหาวิทยาลัยระดับค่อนข้างเริ่มต้น ฉันก็ยังคิดว่าพวกเขาควรทำด้านความปลอดภัยและการสื่อสารให้ดีที่สุดอยู่ดี แต่พอเห็นว่าบริษัทสำหรับผู้ใหญ่ที่มี VC รายใหญ่หนุนหลังก็ยังเจอปัญหาแบบนี้และตอบสนองคล้ายกัน ก็เลยคิดว่าไม่จำเป็นต้องเข้มงวดกับนักศึกษากลุ่มนี้เกินไปนัก ขอแชร์ลิงก์บทความ
ในฐานะนักพัฒนาที่ทำงานอยู่ในบริษัทขนาดเล็ก ฉันก็กังวลเรื่องความรับผิดชอบส่วนตัวของตัวเองอยู่บ่อย ๆ หลายบริษัทดำเนินงานในพื้นที่ที่ไม่ต้องอยู่ภายใต้ข้อบังคับอย่าง PCI หรือ HIPAA ในองค์กรเล็ก ๆ ความปลอดภัยมักถูกมองว่าเป็นงานของวิศวกรรม ไม่ใช่ภารกิจของทั้งองค์กร ทีมผลิตภัณฑ์สนใจฟีเจอร์ PM สนใจตารางเวลา QA สนใจบั๊ก และแทบไม่มีใครส่งเสียงเรื่องความปลอดภัย บรรยากาศก็เหมือนวิศวกรแค่ทำงานที่ได้รับมอบหมายก็พอ ถ้าวิศวกรช่วยดูเรื่องความปลอดภัยได้ก็ดี แต่ไม่อย่างนั้นก็อาจโดน PM หรือคนอื่นตำหนิ และจะได้ยินประโยคเดิม ๆ เสมอ เช่น "งานนี้ใช้เวลานานแค่ไหน?" "โอกาสที่มันจะเกิดขึ้นจริงมีมากแค่ไหน?" "รีบปล่อย MVP ไปก่อนแล้วค่อยแก้ทีหลัง" เพราะแบบนี้ฉันเลยลงเอยด้วยการทำตามที่บริษัทสั่งในฐานะพนักงาน แต่พอบริษัทโดนฟ้องเรื่องการแฮ็กหรือข้อมูลรั่ว ฉันก็กังวลอยู่บ่อย ๆ ว่าฉันจะต้องรับผิดในฐานะวิศวกรที่ "ควรรู้ดีกว่านี้" แค่คนเดียวหรือเปล่า
เพื่อลดความรับผิดทางกฎหมายของนักวิจัย ฉันคิดว่าแค่สร้างบัญชีเพิ่มอีกบัญชีหนึ่ง หรือสร้างโปรไฟล์โดยได้รับความยินยอมจากเพื่อนเพื่อให้ได้สิทธิ์เข้าถึง ก็เพียงพอแล้ว ไม่จำเป็นต้องดึงข้อมูลจริงออกมา เช่น ถ้า id ของฉันคือ 12345 และ id ของเพื่อนคือ 12357 ก็สามารถพิสูจน์ได้แล้วว่าคุณเข้าถึงโปรไฟล์ของบัญชีอื่นผ่าน id ตรงกลางได้ อย่างที่หลายคนพูดไว้แล้ว ไม่จำเป็นต้องเข้าถึงข้อมูลส่วนบุคคลของคนเป็นพัน ๆ คน แค่พิสูจน์ช่องโหว่และเปิดเผยในระดับที่เพียงพอก็พอ
ตัวบทความเองทำให้รู้สึกค่อนข้างสับสน มันอธิบายเหมือนว่า API ที่รับ OTP (รหัสผ่านใช้ครั้งเดียว) ง่ายมากจนตัว OTP ถูกเปิดเผยตรง ๆ ใน response ของเซิร์ฟเวอร์ ทำให้ใครก็ตามที่รู้หมายเลขโทรศัพท์สามารถเข้าถึงบัญชีได้ ดูเหมือน API จะเป็นแค่ otp/หมายเลขโทรศัพท์ และใส่ OTP กลับมาใน response ดังนั้นถ้าเดาหมายเลขโทรศัพท์ถูกก็จะได้โค้ดทันที แล้วก็มีการบอกว่าใช้สคริปต์ไล่เลข user ID และหยุดเมื่อเจอ ID ว่างติดกัน 1,000 ครั้ง ทำให้ยืนยันได้ว่ามีผู้ใช้ทั้งหมด 6,117 คน มีข้อมูลบัตรประจำตัว 207 รายการ และมีนักศึกษา Yale 19 คน แต่การเข้าถึงข้อมูลส่วนบุคคลของคนอื่นโดยไม่ได้รับความยินยอมในระดับนี้คล้ายกับกรณีที่ weev แฮ็ก AT&T แล้วติดคุกในอดีต แม้ขนาดจะเล็กกว่า แต่งานวิจัยแบบนี้ก็มีความเสี่ยงทางกฎหมาย และน่ากังวลว่าผู้เขียนอาจไม่ตระหนักว่าสภาพแวดล้อมทางกฎหมายไม่ได้คุ้มครองนักวิจัยด้านความปลอดภัย
ฉันก็เคยมีประสบการณ์คล้ายกัน ตอนพยายามแจ้งบั๊กให้แอปหาคู่อีกตัวหนึ่งแต่ติดต่อไม่ได้ ก็เลยเปลี่ยนโปรไฟล์ของผู้ก่อตั้งเป็นข้อความว่า "กรุณาติดต่อกลับ" แต่พวกเขากู้คืนจากแบ็กอัปไปเฉย ๆ หลายปีต่อมาฉันเห็นโฆษณาแอปนั้นบน Instagram แล้วลองอีกครั้ง ก็ยังพบช่องโหว่เดิมอยู่เหมือนเดิม ถ้ารู้แค่ API endpoint ใครก็ได้สิทธิ์แอดมิน เข้าถึงข้อความและการแมตช์ทั้งหมดได้ ฉันยังลังเลว่าควรติดต่อไปอีกไหม
ฉันคิดว่าการเก็บข้อมูลอ่อนไหวอย่างหนังสือเดินทางหรือที่อยู่ในแอปควรเป็นเรื่องที่ต้องคิดแล้วคิดอีกจริง ๆ ไม่ควรถูกมองข้ามว่า "ก็เป็นแอปที่นักศึกษาสร้างนี่" แล้วปล่อยผ่านไป
การคืน OTP กลับมาใน API response ตรง ๆ เป็นอะไรที่เหลือเชื่อมาก ฉันนึกไม่ออกว่าทำไปทำไม
มีการแชร์ลิงก์ไปยังอีกบทความที่เกี่ยวข้องจาก Yale Daily News
ฉันอยากให้มีกฎหมายที่ปฏิบัติต่อข้อมูลส่วนบุคคลเหมือนของเสียกัมมันตรังสี คืออันตรายระดับสูงมาก ถ้ารั่วแล้วควรทำให้บริษัทล้มละลายได้ และคนที่รับผิดชอบก็ควรเจอวิกฤตทางกฎหมายด้วย ตอนนี้การเก็บข้อมูลผู้ใช้มันง่ายเกินไป แถมพอรั่วก็แค่ขอโทษแล้วก็ผ่านไป
เพิ่งมารู้จักเครื่องมือชื่อ Charle's Proxy บน iOS ตอนนี้เอง เมื่อก่อนฉันเคยทำ pentesting ด้วยการค้นหาสตริงในไบนารีแอปโดยตรง สำหรับการวิเคราะห์แอปที่มีเฉพาะบน iOS มันน่าจะช่วยได้มากจริง ๆ