Okta เผยรายละเอียดของการโดนแฮ็กระบบ เมื่อปลายเดือนตุลาคม 2023 ที่ผ่านมา หลังการสอบสวนเชิงลึกเสร็จสิ้นแล้ว
David Bradbury ประธานเจ้าหน้าที่ฝ่ายความมั่นคง (Chief Security Officer) เป็นผู้แถลงผ่านบล็อกของบริษัท เล่าถึงสาเหตุว่าเกิดจากพนักงานรายหนึ่งใช้โน้ตบุ๊กของบริษัท ล็อกอินบัญชี Google ส่วนตัวบน Chrome และเก็บรหัสผ่านต่างๆ ไว้ใน Chrome ทำให้โดนแฮ็กเอารหัสผ่านจากจุดนั้น ลามมายังบัญชีภายในของบริษัทต่อในภายหลัง
Okta บอกว่าได้รับแจ้งพฤติกรรมผิดปกติจากลูกค้า 3 รายคือ 1Password, BeyondTrust และลูกค้าอีกรายที่ไม่ระบุชื่อ ทำให้ทีม Okta เข้ามาสอบสวนว่าเกิดอะไรขึ้น บริษัทได้รับแจ้งพฤติกรรมน่าสงสัยครั้งแรกในวันที่ 29 กันยายน และค้นพบบัญชีที่โดนแฮ็กวันที่ 16 ตุลาคม (นานเกือบ 3 สัปดาห์) หลังจากนั้นจึงดำเนินมาตรการยกเลิก token เก่าที่ใช้ในเซสชันล็อกอิน และแจ้งเตือนให้ลูกค้าทราบ
Okta ระบุว่ามีลูกค้าจำนวน 134 องค์กรที่ได้รับผลกระทบ มีลูกค้าตกเป็นเป้าโจมตี โดนขโมย token เข้าเซสชันอย่างน้อย 5 รายคือ 3 รายข้างต้น บวกกับ Cloudflare และบริษัทอีกแห่งที่ไม่ระบุชื่อ
เว็บไซต์ Ars Technica วิจารณ์ Okta ว่าการที่พนักงานโดนแฮ็กบัญชีส่วนตัวเป็นเรื่องที่พบเจอได้ทั่วไป แต่การที่พนักงานโดนแฮ็กแล้วลุกลามมายังระบบภายในของบริษัท แปลว่ามาตรการภายในของ Okta เองต่างหากที่เป็นปัญหา พนักงานไม่ควรได้สิทธิใช้งานบัญชีส่วนตัวในบริษัทความปลอดภัยแบบ Okta ด้วยซ้ำ และมีคำถามตามมาอีกมากมายว่าทำไมแฮ็กเกอร์ถึงสามารถล็อกอินบัญชีพนักงาน Okta โดยใช้เพียงแค่รหัสผ่านที่ถูกขโมย ไม่ติดขั้นตอน MFA ที่ควรต้องมีเป็นมาตรฐาน, ไม่มี access control จำกัดสิทธิของบัญชีพนักงาน, ระบบมอนิเตอร์ของ Okta เองตรวจจับไม่ได้เลย ต้องรอคนอื่นแจ้งมา ฯลฯ แปลว่าระบบภายในของ Okta หละหลวมมาก
ที่มา - Okta, Ars Technica, ภาพจาก Okta
Comments
งามไส้เลย ระบบ Login 2 Factors ขั้นต่ำก็ยังไม่มี
โดนแฮ็คไปรอบนึงแล้วแต่ก็มิได้นำพา
อาวว ตกลงเก็บ password ไว้ใน Chrome ปลอดภัยไหม?
ถ้าโดนแฮคเครื่องก็ไม่ปลอดภัย
คือโครมเก็บเป็น plain text เหรอครับ?
ระบบเก็บรหัสผ่านใน Web Browser เป็นแบบ plaintext อยู่แล้วครับ
ลองนึกสภาพการใช้งานจริง ๆ เราต้องกรอก plaintext เข้าไปในช่อง Password อยู่แล้ว เพื่อส่งต่อไปยัง Web Server ซึ่งจะมี Hash ก่อนส่งหรือไม่มีขึ้นกับแต่ละเว็บ แล้วแต่ละเว็บก็ใช้ Hash ไม่เหมือนกัน ถ้าเราเก็บเป็น Hash หรืออย่างอื่นที่ไม่สามารถย้อนกลับมาเป็น planintext จะเอาไปใช้จริงไม่ได้ครับ
การเก็บรหัสผ่านแบบ plaintext ใน Web Browser ต้องมีระบบป้องกันการเข้าถึงรหัสผ่านโดยไม่มีสิทธิ์เข้าด้วยวิธีต่าง ๆ ให้เป็นที่ยอมรับได้มากที่สุด เป็นเหตุให้ทำไมถึงยังเป็นที่ยอมรับเพราะต้องเอารหัสผ่านจริง ๆ ไปกรอกได้
แต่ทั้งนี้ทั้งนั้น การเก็บรหัสผ่านใน Web Browser ถือว่าเป็นเรื่องที่ไม่แนะนำให้ทำครับ
ปัจจุบันเลยมีระบบ Passkey หรือ Passwordless เข้ามาที่จะพยายามทดแทนการใช้ Password แบบเดิม ๆ
อันนี้เป็นเพิ่มเติมน่าจะเคยมีคนเขียนข่าวไปแล้วว่าส่วนขยายของ Chrome หลายตัวสามารถอ่าน HTML หรือ DOM API ที่มีรหัสผ่านแบบ plaintext ส่งไปด้วยได้
https://www.bleepingcomputer.com/news/security/chrome-extensions-can-steal-plaintext-passwords-from-websites/
อ่อแบบนี้เองปกติใช้ Bitwarden แต่ก็มีพาสเก่าๆ ที่เก็บในโครมสงสัยต้องย้ายแล้ว
web browser ไม่ได้เก็บรหัสเป็น plaintext ครับ อย่างน้อยๆ ก็ Chrome แต่เป็นในลักษณะใกล้เคียงกับที่ dedicate password manager เก็บคือเข้ารหัสแบบถอดกลับมาได้
จุดที่จะเสี่ยงมากก็น่าจะเป็น web browser password manager ใช้รหัสผ่านร่วมกับเจ้าของค่าย
แต่รหัสผ่านก็เป็นจุดอ่อนที่สุดของระบบจริงๆ ครับ หวังว่าจะมีทางที่ทดแทนได้กว้างขวางเร็วๆ passkey ก็ยังไม่ค่อยทั่วถึงเท่าไหร่แล้วก็ยังไม่ได้สะดวกขนาดนั้น
ตามที่ว่ามาหละครับ การทำงานจริง Web Browser อย่างพวก Chrome, Firefox, Edge, Safari ไม่ได้เก็บเป็น plaintext ตรง ๆ ลงไปครับอย่าง Chrome ก็จะชูว่าเป็น On-device encryption ทำการเข้ารหัสด้วยรหัสสุ่มที่อยู่ในเครื่องเรา แยกแต่ละรหัสผ่านก่อนเก็บ และเก็บในเครื่องเรา ส่งไปให้ Google วิเคราะห์ก็ไม่ได้ส่งตัวถอดรหัสไปด้วย แต่เอาของที่เข้ารหัสแล้วส่งไปวิเคราะห์ได้ผลลัพธ์กลับมา
แต่ตรงนี้ทำให้หลาย ๆ คนเข้าใจผิดคิดว่ามันปลอดภัยมาก ๆ ทั้งที่จริง ๆ ไม่กี่คลิก บาง web browser password manager ไม่ต้องใช่ master password หรือ factor อื่น ๆ ก็อ่านรหัสผ่านแบบ cleartext ได้แล้ว บางอันแสดงทั้งหมดพร้อมกันหมดทุกอันที่บันทึกไว้ด้วยช้ำ มันเลยน่ากลัวมากเพราะมันถูกทำให้เข้าใจว่ามันปลอดภัยมาก ๆ ผมถึงมองว่ามันไม่ได้ต่างอะไรกับ plaintext ซักเท่าไหร่กับการเก็บไว้บนเครื่อง User อย่างเรา ๆ
นอกเรื่องจากเรื่องนี้ ตลกร้ายคือหลายระบบที่ถูกพัฒนาขึ้นในปัจจุบันนี้ ผู้พัฒนามักจะอ้างว่าที Web Browser ยังถอดกลับมาเป็น cleartext ได้ เราไม่จำเป็นต้อง Hash รหัสผ่านผู้ใช้ก็ได้เก็บเป็น plaintext เวลาขอคือรหัสผ่านก็ส่งกลับเป็น plaintext แสดง cleartext ตัวโต ๆ เลยแล้วกัน ความปลอดภัยเป็นเรื่องของผู้ใช้งาน ไม่เรื่องของระบบและนักพัฒนา