Mandiant บริษัทในเครือ FireEye รายงานว่ามีแฮกเกอร์ขโมย session ของเซิร์ฟเวอร์ VPN ด้วยบั๊ก Heartbleed สำเร็จ กระบวนการขโมย session นี้ทำให้แฮกเกอร์สามารถข้ามกระบวนการยืนยันตัวตนทุกรูปแบบ รวมไปถึงการยืนยันตัวตนด้วยปัจจัยที่สอง (2-factor authentication) ไปได้
รายงานบั๊ก Heartbleed ก่อนหน้านี้มักเป็นการขโมยกุญแจลับของเซิร์ฟเวอร์ ซึ่งหากขโมยสำเร็จก็มีโอกาสที่แฮกเกอร์จะถอดรหัสข้อมูลหรือขโมยรหัสผ่านของผู้ใช้ แต่การขโมย session เช่นนี้ทำให้แฮกเกอร์สามารถสวมรอยเข้าเป็นผู้ใช้ที่ล็อกอิน VPN สำเร็จแล้ว
ในไทยผู้ใช้ VPN ส่วนมากเป็นองค์กรขนาดใหญ่ การแจ้งเตือนจาก Mandiant ครั้งนี้ก็ย้ำว่าไม่ใช่เฉพาะเซิร์ฟเวอร์ HTTPS เท่านั้นที่ต้องตรวจสอบและอัพเดตซอฟต์แวร์ แต่รวมไปถึง VPN ทั้งหลายที่ใช้งานอยู่ก็ต้องอัพเดตทั้งหมดอย่างเร่งด่วนเช่นกัน
ที่มา - Mandiant
Comments
ที่ตกใจกว่าคือ 2-factor authentication มันก็ผ่านได้!!!!
แบบนี้จะกี่ชั้นก็ผ่านได้หมด มันก็เหมือนเราไขประตูรั้ว ไขประตูบ้าน ไขประตูห้อง เข้ามานั่งดูทีวีบนโซฟา แต่คุณพระ เงาของคุณตามคุณมาถึงในห้องด้วย
เข้าใจว่าการจะทะลุ 2-factor authen ได้ ต้องมาจากการขโมย session ตัว VPN ที่ยังไม่หมดอายุมาใช้งานต่อ (คล้ายๆ ขโมย session ของเว็บ) ถ้าจะแฮกแบบนี้ ต้องรอให้เป้าหมายเข้าใช้งานแล้วขโทยระหว่างทางตอนออกจากระบบแล้วเข้าไปใช้งานต่อหลังจาก logout แล้ว แต่คิดว่าถ้า session นั้น logout และทำล้าย session ทิ้ง ก็อาจจะรอดก็ได้มั้ง
สงสัยว่า Heartbleed มันเกิดฝั้งลูกข่ายได้ไหมครับ
ถ้า client มี push service (ทำงานคล้ายๆ server service ซึ่งรอรับการส่งข้อมูลย้อนกลับ) ก็โดนเหมือนกันครับ
ได้ครับ เครื่องแม่ข่ายของผู้ไม่ประสงค์ดี ก็สามารถใช้ Heartbleed bug มาโจมตีเครื่องลูกข่ายที่ใช้ OpenSSL รุ่นที่มีปัญหาเช่น Android 4.1.1 ได้เช่นกันครับ
http://www.theregister.co.uk/2014/04/10/many_clientside_vulns_in_heartbleed_says_sans/
สูตรนี้ไม่ต้องถึงขนาดได้ private key แค่ยิงจนได้ session token ของคนที่พิสูจน์ตัวตนสำเร็จ แค่นี้ก็ติดต่อกับเซิร์ฟเวอร์เสมือนกับตัวจริง (หรือแย่งกับตัวจริง)
งามล่ะงานนี้
ที่จริงแล้วหลายคนคิดกันกว่า session น่าจะยากกว่า private key ครับ (ถึงได้แนะนำ 2-factor) เพราะ session id มักจะ random มาไม่เหมือน private key ที่เวลาดึงข้อมูลแล้วสามารถนำมา "ตรวจสอบ" หา prime ได้
กรณีนี้แฮกเกอร์สามารถจับ pattern บางอย่างของ VPN ที่ใช้ OpenSSL ได้ ทำให้สามารถแยก session id ออกมาจากหน่วยความจำอื่นๆ ได้
ยังไม่มีข้อมูลว่ามันแยกออกมาได้ยังไงเหมือนกัน
lewcpe.com, @wasonliw
อยากรู้เหมือนกัน เพราะค่า session token ควรจะสุ่ม ซึ่งตามทฤษฎีแล้วการที่ล้วงข้อมูลออกมาได้ ก็น่าจะ'รู้'ได้ว่าเป็น session token ได้ยาก
เลยอยากรู้ว่า มัน'รู้' ได้ไงว่าข้อมูลที่โกยมาได้ มี session key ด้วย
อาจเพราะรู้อยู่แล้วว่ามีรึเปล่าครับ ที่เหลือแค่มาหั่นข้อมูลดู
รู้น่ะคงรู้ครับ แต่หั่นยังไงให้ถูกนี่อีกเรื่องเลย
lewcpe.com, @wasonliw
00000000 00000000
00000000 00000000
00000000 01234567
89ABCDEF 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
? อันนี้โพสต์เอาฮานะครับ
ผมเชื่อว่า context มันน่าจะช่วยเยอะครับ ส่วนตัวมองว่าแฮกเกอร์คนนี้พอจะรู้ตื้นลึกหนาบางเกี่ยวกับเป้าหมาย ทำให้รู้ว่าข้อมูลที่ดึงมาประกอบด้วยอะไรบ้าง
64K ก็ไม่ใช่ว่าเยอะ brute force โลด
ครั้งละ 64K ครับ ในความเป็นจริงกว่าจะเจอ session key ต้องควานออกมาหลายพันหลายหมื่นครั้ง การ brute force เฉยๆ คงเป็นไปไม่ได้
lewcpe.com, @wasonliw
LUK 99+10 ครับ ไม่มีเหตุผลอื่นๆ แล้ว อิอิ
จับ hacker รายนี้ได้ ส่งเข้าห้องวิจัยให้ไปช่วยถอดรหัส DNA เลย
หรือจะถึงยุคของ biometrics authentication แล้วนะ
Educational Technician
ไม่เกี่ยวครับ
lewcpe.com, @wasonliw
ไม่ว่าจะวิธีไหน เขาก็ข้ามขั้นตอนไปได้งั้นใช่ไหมครับ
Educational Technician