แอพ Blockchain ที่ใช้สร้างบัญชีบิทคอยด์ในโทรศัพท์มือถือมีบั๊กสำคัญในส่วนการสุ่มค่าทำให้สร้างบัญชีหมายเลขเดียวกัน ส่งผลให้ผู้ใช้หลายคนมีเลขบัญชีเดียวกันโดยไม่รู้ตัว ทาง Blockchain รายงานว่ามีผู้ใช้เสียเงินจากบั๊กนี้แล้ว
ผู้ใช้ murbul กลุ่ม r/bitcoin รายงานว่าบั๊กนี้เกิดจากสองบั๊กต่อเนื่องกัน โดย Blockchain จะใช้คลาส LinuxSecureRandom
ของตัวเองเพื่อดึงค่าสุ่มจาก /dev/urandom
มารวมเข้ากับค่าสุ่มจาก random.org เสียก่อน แล้วจึงใช้ค่านี้เป็น seed ให้กับคลาส SecureRandom อีกครั้ง แต่ปรากฎว่าในบางครั้งซอฟต์แวร์กลับไม่สามารถอ่านค่าจาก /dev/urandom
ได้ ทำให้ต้องใช้ค่าจาก random.org อย่างเดียว แต่เมื่อต้นปีที่ผ่านมา random.org บังคับว่าจะต้องเข้าเว็บผ่าน HTTPS เท่านั้น ทำให้โค้ดที่ดึงค่าสุ่มได้รับตอบกลับเป็น HTTP 301 เพื่อ redirect ไปยังหน้า HTTPS โค้ดของ Blockchain ไม่ได้ตรวจสอบโค้ดที่ได้รับกลับมาและใช้ข้อความ HTTP 301 นั้นเป็นค่าเริ่มต้นการสุ่มเพื่อสร้างบัญชีบิทคอยด์
เว็บ random.org ประกาศบังคับเข้าเว็บผ่าน HTTPS เมื่อวันที่ 4 มกราคมที่ผ่านมา โค้ดที่ผิดพลาดจะทำให้สร้างบัญชีใหม่เป็น 1Bn9ReEocMG1WEW1qYjuDrdFzEFFDCq43F บัญชีนี้เกิดขึ้นวันแรกในวันที่ 2 มกราคม ซึ่งอาจจะเป็นช่วงที่ random.org เริ่มบังคับใช้งาน HTTPS บางส่วน
เมื่อสามวันก่อน ผู้ใช้ duduqa ใน r/bitcoin ระบุว่าเขาเสียเงินไป 6BTC หรือประมาณ 48000 บาทภายในไม่กี่นาทีหลังจากโอนเงินเข้าบัญชี
ระบบการสุ่มที่มีบั๊กทำให้ผู้ใช้หลายคนใช้บัญชีร่วมกัน ผู้ใช้ที่รู้ตัวก่อนสามารถเปิดบัญชีรอผู้ใช้คนอื่นๆ ที่พบบั๊กเหมือนกันโอนเงินเข้ามาแล้วโอนออกไปยังบัญชีอื่นที่ปลอดภัยกว่าได้
ตอนนี้แอพรุ่นใหม่แก้ปัญหานี้แล้ว ทุกคนควรอัพเดตและถ้าไม่มั่นใจให้สร้างบัญชีจากแอพรุ่นใหม่แล้วโอนเงินไปเก็บไว้ในบัญชีใหม่แทน
ที่มา - ThreatPost, BlockChain