TheReporter.asia

ข่าวไอที เทคโนโลยี

แฉ กกต. มโนว่าโดนแฮก หลังคาดการณ์ผิดจนเซิร์ฟล่ม

เรื่องจริงของฝ่ายเทคนิค ที่โดนโบ้ยจาก กกต เรื่องแฮกผลคะแนน ทำให้เพี้ยน โทษสื่อ และคนคีย์ข้อมูล งานนี้สื่อหลังบ้านตัวจริง ออกแฉความจริง เบื้องหลังการทำงานแบบเด็กอนุบาลของ กกต ที่สะท้อนการดูงานที่ผ่านมาจากต่างประเทศอันไร้ค่า

นายชานนท์ เงินทองดี Senior IT Manager Voice TV เปิดเผยผ่านเฟซบุ๊กส่วนตัว เมื่อวันที่ 25 มีนาคมที่ผ่านมา  ระบุความจริงของการเชื่อมต่อเซิร์ฟเวอร์ ของส่วนกลาง สำนักงานคณะกรรมการ​การเลือกตั้ง ว่า

ตอนแรกว่าจะไม่โพสต์ แต่กกต.บอกว่า ถูกแฮกหลายครั้ง อย่ามา dy/dx ครับท่าน

นี่คือหน้าจอของกกต.เผยแพร่ ให้สื่อใช้เป็นแผน 3 กรณี API เชื่อมต่อไม่ได้

สื่อ Digital TV และเว็บไซต์ชั้นนำของประเทศ รวมตัวกันเพื่อขอเชื่อมคะแนนผลกกต. ขอเรียกตรงนี้ว่า dttpool ผมตลอดทุกกระบวนการที่คุยกัน กกต.อ้างว่าทีวีแสดง ข้อมูลผิด ในฐานะคนทีวีขออธิบายดังนี้

1.เตรียมงานกันตั้งแต่ช่วงเดือน ม.ค. ตอนนั้นเริ่มจากทีวี 14 ช่องและ กลายเป็น รวมเว็บไซต์ต่างๆ วันสุดท้ายกลายเป็นเกือบ 40 ช่องทาง

  1. กกต. กลัวระบบล่ม(มาก)ให้คำมั่นว่าจะไม่ทำให้ล่ม โดยการ มีแค่ Middleware ของ Dttpool ไปเชื่อมกับทาง กกต.เท่านั้น แปลว่า ในทางเทคนิค 1 connection เท่านั้นของ ไปเชื่อมกับของ กกต. (เรายืนยันว่าทำได้ นี่มันปีอะไรแล้ว ทำไมคิดว่าจะยังล่ม)
กกต
หน้าจอของกกต.เผยแพร่ ให้สื่อใช้เป็นแผน 3 กรณี API เชื่อมต่อไม่ได้ ขอบคุณข้อมูลจากเฟซบุ๊ก​ นายชานนท์ เงินทองดี Senior IT Manager Voice TV
  1. Dttpool ได้ masterfile (ข้อมูลพื้นฐานผู้สมัคร,พรรคการเมือง,เขต,เบอร์) จากกกต. ประมาณ 10 วันก่อนเลือกตั้ง และไม่ final สักที มันควรจะนิ่ง ตั้งนานแล้ว แค่ ใส่ flag มาก็ได้ในเชิงข้อมูล จนกระทั้งเช้าของวันที่ 24 มีนา

4. Dttpool ออกแบบระบบ API กันเอง โดยหารเงินกันหวังว่าจะสามารถกระจายให้ทุกช่องทางโดยไม่กระทบกกต. ซึ่งก็ dry run api (random ค่าต่างๆ) กันมาตลอด 7 วันก่อนเลือกตั้ง (จริงๆก็หวังเชื่อมการทดสอบของกกต.)

5.ระบบส่งคะแนนของกกต.เรียกว่า ECT Rapid Report หลักการทำงานคือ เมื่อแต่ละหน่วย (90,000 กว่าหน่วย )นับคะแนนเสร็จจะถูกส่งเข้า Server กลาง ผ่าน application ECT Rapid แล้วส่วนกลาง sum กลายผลคะแนนระดับเขต (หน่วย->เขต->ประเทศ)

ก็ทราบมาบ้างว่าตอนทดสอบภายใน 2-3 วันก่อนวันจริงส่งพร้อมๆกัน ไม่ถึง 30,000 ก็ล่มแล้ว และพยายาม tuning กันตลอด (มีโพสต์ของพี่ท่านนึงทำงานใน DGA ออกมาพูดเรื่องนี้แล้ว)

  1. Middleware dttpool เชื่อมกับ Ectrapidreport เพียง 1 ช่องทางเท่านั้นพวกผมเป็นผู้รับ เชื่อมได้แค่ Dttpool

7. Flow ของคะแนนคือ Rapidreport Summary->Middleware->(ช่องต่างๆ)

  1. เช้าวันที่ 24 มีนาคม การเลือกตั้งเริ่มได้อย่างสวยงาม และเวลาที่เราเฝ้ารอก็มาถึง
    17.45 คือเวลาที่เราตกลงกันว่าคะแนนจะเข้ามาสู่ middleware

18.05 ระบบกกต.ล่ม แจ้งกลับมาเบาเบาว่า middleware เรียกถี่เกิน (2 นาทีครั้ง ) ไป ให้ปรับเป็น 5 นาทีครั้ง

18.22 คะแนนเปิดกลับมา
18.28 ล่มอีกแล้ว
และวน loop ล่มไป ทุกๆ 5 นาที

ขณะนั้น 18.42 ทุกคนได้คะแนนทั้งประเทศกันที่ 775,950 คะแนน (1%) (ระดับร้อยต่อเขต) ในขณะที่หน้าจอของ กกต. วิ่งไประดับ 3-4 หมื่นต่อเขตแล้ว (40%)

  1. Middleware dttpool จึง หยุดการเชื่อมต่อ เพราะล่มจนน่ารำคาญ ใช้แผนสามคือ การ Manual key ข้อมูลทั้ง 350 เขตจาก หน้าจอกกต. เข้าไปในระบบ

ทำให้คะแนนช่วง 19.00-21.00 มีเฉพาะสามอันดับแรก ใน 350 เขต (ส่วนนี้มี human error จากการ key โดยคนด้วย

เราต้องยอมรับผิดเช่นกัน) แต่หน้าจอของกกต.เองก็ผิด และ ก็ยังไม่มีข้อมูลเป็นระยะๆ เนื่องจากล่มเช่นกัน

10.หลังจากที่ประเมินว่ากกต.จะเลิกล่มแล้ว 21.00 เปิดการเชื่อม middleware กับ กกต.อีกครั้ง ข้อมูลก็ค่อยๆ กลับมา ได้ข้อมูลทุกคะแนนของทุกเขตเลือกตั้ง แต่ก็ยังมีผิดพลาดอยู่บางเขต ทีวีเวลานั้นได้คะแนนในระบบ 10 ล้าน แต่ของกกต. วิ่งไป 25 ล้านแล้ว

11. เวลาประมาณ 23.00 คะแนนระดับกลับมาเข้าที่เข้าทาง แต่ระดับเขตก็ยังคงบิดเบี้ยวอยู่

  1. กกต. ปิดห้องสื่อกลับบ้าน 23.30

  2. จนเช้าวันที่ 25 middleware dttpool เริ่มกลับเข้าไป fetch (นำเข้า) ข้อมูลจาก กกต. ได้อีกครั้ง คะแนนกลับมา เข้าที่เข้าทาง เวลาประมาณ 10.30น.ของวันที่ 25

เมื่อครั้งก่อนๆ สมัยท่านสมชัยผมก็เป็นคนอยู่ในห้องประชุมกันเรื่องนี้ แต่อย่างน้อยสมัยท่านสมชัยก็ราบรื่นกว่านี้เยอะ มีคนแนนออกมาโชว์ อย่างไม่ติดขัด

ถ้ายังไม่หยุด dy/dx ผมจะแฉต่อเรื่องอื่น

ปล.อยากเห็นหน้าคนเขียน tor และคนตรวจรับระบบนี้จัง

โมเดลการเชื่อมต่อข้อมูล ขอบคุณข้อมูลจาก นายชานนท์ เงินทองดี Senior IT Manager Voice TV

นอกจากนี้ยังให้ข้อมูล TheReporterAsia เพิ่มเติมว่า เมื่อคืนที่ผ่านมา ผลคะแนนในช่วงต้น ที่ไม่มา เพราะ server ที่ใช้รับข้อมูลและต่อ API น่าจะเป็นตัวเดียว จากเดิมที่ทางเราคิดว่า เขาจะแยกมาอีกตัว สรุปเราอยู่ใน server production (หมายถึงเซิร์ฟเวอร์ส่วนกลางของ กกต.)

เมื่อเกิดการ loading จากการเข้าใช้จำนวนมาก เขาเลือกที่จะถอดเราออกจากระบบเป็นช่วงๆ แล้วส่ง json file (ไฟล์ข้อมูลที่จัดเก็บเป็นมาตรฐานแบบที่มนุษย์เข้าใจได้ ไม่ใช่ดาต้าสด) มาแทน หลังจากผ่าน 38% กลับมาต่อระบบเป็น api และเราถูกออกอีกหลังจากนั้น 10 นาที

ทีมตัดสินใจใช้แผน 3 ตอน 52% ถ้าไม่ทำเราจะไม่มีอะไรรายงานผล โคตรน่าเศร้า ระบบกลับมาต่อตอนคะแนน 60% แต่มาไม่ครบ และมาแต่ json จึงเป็นช่วงที่เราเริ่มจะนิ่ง จากนั้น ระบบก็หายไปอีก ทีมยังกรอกมือ

คะแนนตอน 84% มาทั้ง json และระบบกับไปต่อ api ได้

จนคะแนนมาค้างที่ 93% เป็นการ uploads file json ครั้งรองสุดท้าย ในเวลา 23:20 นาที เจอปัญหาคะแนนผู้สมัครเขต 5 ราชบุรีไม่ตรง ตรวจสอบและให้ทาง กกต ส่ง json มาอีกครั้งเพื่อเป็น final update สำหรับเมื่อคืน

โคตรเศร้า แผนหลักคือ แผน 3 แผนรองคือแผน 2 ส่วนแผน1 พิการ

ทั้งนี้ เนื่องจากเป็นเรื่องทางเทคนิคที่อาจจะอ่านเข้าใจยากสักหน่อย TheReporterAsia ขออนุญาต​สรุปใจความสำคัญของความผิดพลาดในการรายงานผลคะแนนการเลือกตั้ง ปี 2562 ให้อีกครั้ง

เบื้องต้นการรวบรวมข้อมูลผลคะแนน มีความผิดพลาดของการประเมินปริมาณข้อมูล แม้ว่าทางฝ่ายเทคนิคของสื่อได้มีการทักท้วงแล้วก็ยังดึงดันว่าพอ

และเมื่อเกิดการทดสอบช่วงก่อนการเลือกตั้งเพียงไม่กี่วัน ด้วยปริมาณหน่วยเลือกตั้งกว่า 90,000 หน่วยที่จะต้องส่งข้อมูลคะแนนหลังนับพร้อมๆกันเข้าไปที่เซิร์ฟเวอร์ส่วนกลาง ซึ่งแน่นอนว่าเมื่อทดลองส่งเพียง 30,000หน่วย ระบบก็ล่มทันที

และเมื่อวันการเลือกตั้งจริง เกิดขึ้น ระบบก็ล่ม บ่อยครั้ง เนื่องจากหลายสาเหตุทางเทคนิค ซึ่งในงานระดับมืออาชีพ จะมีการปิดช่องโหว่ของปัญหาที่คาดว่าจะเกิดทั้งหมด แต่ในการเลือกตั้งครั้งนี้กลับไม่พบการปิดช่องว่างนี้แต่อย่างใด

ฉะนั้น เรื่องของแฮกเกอร์ ตามที่ กกต. กล่าวอ้าง อาจจะไม่มีจริง แต่เป็นเพราะความไม่เป็นมืออาชีพของผู้จัดการระบบส่วนกลางของ กกต.เองซะมากกว่า งานนี้ออกมาโบ้ยกันเช่นนี้น่าเห็นใจประเทศชาติของเรา ที่พยายามก้าวเข้าสู่ยุคดิจิทัล 4.0 โดยแท้

ลิงค์ที่เกี่ยวข้อง

สำนักงานคณะกรรมการการเลือกตั้ง