Heartbleed คืออะไร ?

ผมเชื่อว่า หลายๆ คน คงได้เห็นข่าว ที่แพร่กันไปทาง Social Network เกี่ยวกับ เรื่องของ ระบบความปลอดภัย หรือ Security ที่รั่วไหล ที่เรียกกันว่า Heartbleed กันไปแล้ว ซึ่งเกี่ยวข้องกับ เวบไซต์ ที่มีระบบ Secured Socket Layer หรือ SSL ซึ่งเป็นระบบรักษาความปลอดภัย ในการเข้ารหัส เพื่อป้องกัน การจารกรรมทางอินเตอร์เน็ต ซึ่งพอหลายๆ คน เห็นคำว่า Heartbleed แล้วก็คงจะสงสัยว่า Heartbleed คืออะไร แล้ว OpenSSL มันคืออะไร เห็นข้อความ ที่ส่งมามากมาย เตือนให้ระวัง ให้เปลี่ยนพาสเวิร์ด ( Password ) ที่เราใช้กับเวบไซต์ต่างๆ ไม่ว่าจะเป็น Gmail , Yahoo , Facebook หรือแม้แต่ใน Twitter รวมทั้ง ระบบ Banking ต่างๆ ด้วย ซึ่งในวันนี้ ผมจะมาอธิบาย อย่างละเอียด ในรูปแบบของ “ภาษาคน” ให้ทุกคน ได้เข้าใจกัน เพราะหากผมอธิบาย แบบเต็มๆ ตามรูปแบบแล้ว หลายคน คงจะงง เกี่ยวกับ ศัพท์คอมพิวเตอร์ มากมายอย่างแน่นอน ดังนั้น ผมจะใช้วิธีการเปรียบเทียบ อะไรง่ายๆ เพื่อให้ผู้อ่านทุกคน ได้เข้าใจว่า Heartbleed คืออะไร

heartbleed คือ

ก่อนจะเข้าถึงเรื่อง ความหมายของ Heartbleed ( ไม่ได้แปลว่า หัวใจรั่วนะครับ ) เราคงต้องพูดถึง เรื่องของระบบรักษาความปลอดภัยก่อน ในการเล่น อินเตอร์เน็ตนั้น จำเป็นที่จะต้องมีระบบรักษาความปลอดภัย อันเนื่องมาจาก ทุกวันนี้ มีรูปแบบการขโมย ข้อมูลส่วนตัว ทางอินเตอร์เน็ต โดยเฉพาะอย่างยิ่ง ข้อมูลบัตรเครดิต หรือข้อมูลทางการเงิน ซึ่งสำคัญมาก โดยเทคนิคการขโมยข้อมูล ทางอินเตอร์เน็ต ในปัจจุบันนั้น มีมากมาย หลายรูปแบบ ตั้งแต่ การเจาะเข้าฐานข้อมูล การดักขโมยข้อมูล ระหว่างการรับส่งข้อมูล ตรงกลางทาง หรือที่เรียกว่า Man-in-the-middle ซึ่งไอ้เจ้า Man-in-the-middle ตัวนี้แหละครับ ที่อันตรายมาก เพราะการส่งข้อมูล หากเราส่งไปแบบเดิมๆ ไม่มีการเข้ารหัส คือส่งไปแบบ Plain text เมื่อถูกแฮกเกอร์มาดักรับข้อมูล ก็จะเห็นเลยว่า ข้อมูลที่เราส่งไป มีอะไรบ้าง เมื่อไม่มีการเข้ารหัส ก็เป็นเรื่องง่าย และเป็นจุดอ่อน ของเวบไซต์นั้นๆ ที่พวกแฮกเกอร์ จะชอบมาดักขโมยข้อมูล ที่ผู้ใช้งาน กรอกลงไป ตัวอย่างง่ายๆ ก็เช่น Username หรือ Password ดังนั้น เพื่อเป็นการป้องกัน ทางเวบไซต์ต่างๆ จึงนิยม สร้างระบบรักษาความปลอดภัย เพื่อป้องกัน การดักขโมยข้อมูล จากพวกแฮกเกอร์ จึงได้เริ่มทำการ ติดตั้ง ระบบป้องกัน ที่เรียกว่า Secured Socket Layer หรือ SSL ที่จะเห็นเป็นสัญลักษณ์ รูปกุญแจ ที่หน้า URL หรือ จะเห็นเป็นตัวอักษรจาก http:// เป็น http:// แทน โดยระบบนี้ จะทำการเข้ารหัส ข้อมูล ก่อนที่จะทำการส่งมาที่ server ปลายทาง

ระบบการเข้ารหัสข้อมูล เพื่อป้องกัน การรั่วไหลของข้อมูล หรือการดักของแฮกเกอร์ ที่แม้จะได้ข้อมูลไป แต่ก็ถอดรหัสไม่ได้ เป็นระบบที่นิยมใช้กันอยู่ ในปัจจุบัน ไม่ว่าจะเป็น เวบไซต์ที่เกี่ยวกับการเงิน อย่าง Paypal หรือ เวบที่เป็น Banking ต่างๆ รวมทั้ง Gmail และ Hotmail และเวบอื่นๆ อีกมากมาย ก็ใช้ ssl เข้ามาช่วยเช่นกัน เพื่อเป็นการการันตี กับผู้ใช้งานว่า เวบไซต์นั้นๆ ได้ติดตั้งระบบรักษาความปลอดภัย เข้ารหัสข้อมูลของลูกค้า ทุกครั้ง ก่อนที่จะทำการส่ง เช่น การ Log in เข้าแต่ละครั้ง จะไม่ถูกแฮกข้อมูลไปได้อย่างแน่นอน ซึ่งในส่วนของการเข้ารหัสนี้ จะเป็นการเข้ารหัส และถอดรหัส ระหว่าง เครื่องคอมพิวเตอร์ของเรา ( ลูกค้า ) กับ เครื่องของ web server ปลายทาง ตัวอย่างเช่น Gmail เวลาคุณจะทำการล็อคอิน ด้วยการ กรอก email และ password หลังจากที่คุณ ทำการกดปุ่ม log in แล้ว ข้อมูลนั้น จะถูกทำการเข้ารหัส แล้วส่งไปที่เครื่อง Server ของ Gmail ที่อเมริกา ซึ่งเครื่องที่ถอดรหัส ข้อมูลที่คุณกรอกมาได้นั้น ก็มีแต่เครื่องที่เป็น server ของ Gmail เท่านั้น ขั้นตอนต่างๆ เหล่านี้ ทำงาน ภายในเสี้ยววินาที เร็วมากๆ คุณถึงไม่เห็นว่า มันใช้เวลาในการประมวลผลอะไรเลย

SSL หรือ Secured Socket Layer ที่เป็นระบบการเข้ารหัสนี้ มีอยู่ 2 แบบ คือ แบบที่เป็น Hardware ซึ่งมีราคาแพงมาก นิยมติดตั้งกันในระบบธนาคาร เพราะเชื่อถือได้ เข้ารหัสได้สูงมาก ทำให้ยากแก่การถอดรหัสโดยแฮกเกอร์เป็นที่สุด อีกแบบนึง ก็เป็นแบบ Software ซึ่งจะมีราคาถูกลงมา และก็มีแบบที่เป็นของฟรี อีกเช่นกัน ซึ่งจะทำการได้ดีมากแค่ไหน ก็อยู่ที่ว่า เป็นของแบรนด์ไหน เสียเงินซื้อลิขสิทธิ์ หรือเป็นของฟรี ที่เป็นปัญหาก็คือ ในส่วนที่เป็น Software ซึ่งเป็นของฟรี ที่นิยมใช้กันนี่แหละครับ ที่มีชื่อว่า OpenSSL ทีนี้ก็รู้แล้วนะครับ ว่า OpenSSL เป็นโปรแกรมการเข้ารหัส ที่นิยมใช้กัน ในเวบ server ต่างๆ เพราะมันฟรี ไม่ต้องเสียเงินซื้อ

ยังจำได้มั้ยครับ ที่ในเมืองไทยเรา ก่อนหน้านี้ ที่มีข่าวเกี่ยวกับ พวกแฮกเกอร์ ที่แฮกข้อมูลของผู้ใช้งาน เวบ i-Banking หรือ เข้าใช้งาน ระบบธนาคาร ผ่านอินเตอร์เน็ต แล้วถูกดักข้อมูล จนเสียเงินไปหลายแสนบาท โดยเป็นทีมงานแฮกเกอร์จากต่างประเทศ จนกระทั่ง มีการเชิญตำรวจ และผู้มีความรู้มาออกรายการเรื่องเด่นเย็นนี้ ของคุณสรยุทธ์กันไป ซึ่งก็มีคำแนะนำจากผู้รู้ว่า เวลาจะเข้าล็อคอิน หรือกรอก username หรือ password ในเวบไซต์ไหน ให้แน่ใจว่า บนมุมบนด้านซ้าย หรือที่ด้านหน้าของ URL มีสัญลักษณ์รูปกุญแจ หรือที่เขียนว่า http:// ก่อนที่จะทำการกรอกข้อมูลเพื่อล็อคอิน เพราะจะแน่ใจได้ว่า มีการเข้ารหัส ด้วย SSL แล้ว จนมาถึงตอนนี้ https มันไม่ปลอดภัย อย่างที่ผู้รู้หลายท่าน ออกมาเตือนกันซะแล้วสิ เพราะ 80% ของเวบไซต์ทั่วโลก นิยมใช้งาน OpenSSL เพราะอย่างที่บอกไปว่า มันฟรี เป็นการลดต้นทุน ในการติดตั้ง Server และใช้งานง่าย แล้วบนเวบไซต์ ที่ใช้งาน ก็มีคำว่า https ขึ้นมาด้วยเช่นกัน ผู้ใช้งานอย่างเราๆ ดูไม่ออกหรอกครับ ว่าเวบไหนใช้ OpenSSL หรือเวบไหน ใช้ SSL แบบ Hardware หรือ software ยี่ห้ออื่น ความเชื่อที่ว่า “เวบไซต์ไหน ที่ใช้โปรโตคอล HTTPS จะต้องปลอดภัยอย่างแน่นอน” ใช้ไม่ได้อีกต่อไปแล้ว

ปัญหาที่เกิดขึ้นมา เกิดจาก Bug หรือช่องโหว่ ในโปรแกรม OpenSSL นี่แหละครับ OpenSSL อย่างที่บอกไป มันฟรี เพราะเป็น Open source และมักจะมาพร้อมกับ ระบบปฏิบัติการ Linux สะดวกในการติดตั้ง และใช้งานมากๆ และอย่างที่รู้กัน ในวงการคอมพิวเตอร์ Server ส่วนใหญ่ นิยมใช้ระบบปฏิบัติการ Linux เหตุผลก็เพราะ เร็ว และฟรี เท่านั้นแหละครับ โดยใน OpenSSL เวอร์ชั่น ที่มีปัญหานี้ ออกมาได้ 2 ปีกว่าแล้ว ซึ่งมีคนได้ไปพบว่ามีช่องโหว่ ซึ่งสำคัญมากๆ นั่นคือ ส่วนที่ทำการติดต่อ กับทาง Server เพื่อเช็คดูว่า server ยัง online ทำงานอยู่หรือไม่ ซึ่งฟีเจอร์ส่วนนี้ มีชื่อว่า Heartbeat ที่แปลว่า จังหวะการเต้นของหัวใจ

มารู้จักกับ Heartbleed ว่าจริงๆ แล้วมันคืออะไร ?

ไอ้เจ้า Heartbeat ตัวนี้แหละครับ ที่เป็นช่องโหว่ คือหน้าที่ของเจ้า Heartbeat ก็คือ ทำหน้าที่ ติดต่อสื่อสารกัน ระหว่างเครื่องเรา ในฐานะผู้ใช้งาน กับเครื่องของ web server ในฐานะผู้ให้บริการ ว่ายังทำงานดีอยู่หรือไม่ พูดง่ายๆ ก็คือการถามตอบ เช่น ถามไปว่า เครื่อง server ยังทำงานอยู่หรือไม่ ถ้าอยู่ ให้ตอบกลับมา 2 ตัวอักษร ซึ่งถ้าเครื่อง server ยังทำงานอยู่ ก็จะตอบกลับมาว่า OK 2 ตัวอักษรแค่นั้น ปัญหามันอยู่ตรงคำสั่งนี้แหละครับ ด้วยคำสั่งนี้ แฮกเกอร์สามารถที่จะล้วงเอาข้อมูล ที่อยู่ใน RAM ออกมาได้ ซึ่งเป็นข้อมูลสำคัญๆ ซึ่งได้ถูกถอดรหัสเป็นที่เรียบร้อยแล้ว แทนที่จะถามไป แล้วให้ตอบกลับมา 2 ตัวอักษร พวกแฮกเกอร์ ก็จะส่งคำสั่งนี้ ถามเครื่อง Server ไป แต่ให้ตอบกลับมา มากกว่า 2 ตัวอักษร ซึ่งสามารถกำหนดให้ทาง Server ตอบกลับมาได้ถึง 64K หรือ 64,000 ตัวอักษร ซึ่งข้อมูลที่ทาง server จะตอบกลับมานั้น ก็เป็นข้อมูลใน RAM นั่นเอง ดังนั้น โปรแกรมเมอร์ทั่วโลกจึงตั้งชื่อช่องโหว่นี้ว่า Heartbleed ที่แปลว่า เลือดไหลออกจากหัวใจ เป็นชื่อของช่องโหว่นี้ไปแทน

เมื่อแฮกเกอร์เอาข้อมูลใน RAM ไปได้ แล้วยังไงต่อ ประเด็นก็คือ สิ่งที่แฮกเกอร์จะได้ไปอีก ก็คือ Private Key หรือ กุญแจ ที่จะทำการถอดรหัสของ SSL ของทางฝั่ง server ที่มีเอาไว้ถอดรหัส ข้อมูลที่ลูกค้าอย่างเราๆ กรอกเข้าไป แล้วถูกเข้ารหัส โดยวิธีการก็คือ แฮกเกอร์จะทำการยิงคำสั่ง heartbeat ที่ว่ามานี้ เข้าไปที่ server เรื่อยๆ เพื่อดูว่า ข้อมูลจาก RAM ที่ได้ออกมา มีตัวไหน ที่เป็นเลขชุด หรือ Private Key หรือไม่ พอได้กุญแจ สำหรับถอดรหัสแล้วล่ะก็ ทีนี้ก็ง่ายแล้วล่ะครับ ที่จะทำการถอดรหัส ทุกข้อมูล ที่ถูกส่งเข้ามาที่ server ได้เลย จากที่ก่อนหน้านี้ แฮกเกอร์อาจจะดักรับข้อมูลได้ จาก SSL แต่ไม่มีปัญหาถอดได้ เพราะไม่รู้รหัส แต่เพราะช่องโหว่ของ Hearbleed นี้ แฮกเกอร์ก็จะได้ตัวถอดรหัส เข้าไปเรียบร้อย ทีนี้ก็ทำการดักรับข้อมูล แล้วถอดรหัสได้สบายล่ะ

พอมีคนค้นพบช่องโหว่แบบนี้แล้ว ก็เกิดโกลาหล กันเลยทีเดียวครับ เพราะปัญหาที่เกิดขึ้นก็คือ เราไม่รู้ว่า ช่องโหว่นี้ ถูกค้นพบขึ้นเมื่อไหร่ อาจจะถูกค้นพบโดยแฮกเกอร์นานแล้ว แต่ไม่ได้เอาออกมาแจ้ง หรือเอาออกมาเปิดเผย อาจจะถูกเหล่าแฮกเกอร์ใช้เป็นช่องทาง ดักข้อมูลมานานแล้วก็ได้ เพราะอย่างที่บอกไปว่า OpenSSL ตัวที่มีปัญหานี้ เป็นเวอร์ชั่นที่ออกมากว่า 2 ปีแล้ว ไม่รู้ว่า ป่านนี้ ข้อมูลถูกดักรับ และถอดรหัส รั่วไหลไปถึงไหนต่อไหนแล้ว ซึ่งจากการทดสอบ จากทางผู้ให้บริการ Server ระดับโลก อย่าง CDN ได้ออกมาทำการทดสอบ โดยลองติดตั้ง server ที่มีช่องโหว่ heartbleed ตัวนี้ แล้วทำการทดสอบ เจาะระบบโดยใช้ช่องโหว่ตัวนี้ดู ปรากฏว่า ใช้เวลาไม่เกิน 10 ชม. ก็สามารถเจาะเอา private key ออกไปได้แล้ว

กรณีตัวอย่าง ที่ถูกเปิดเผยก็คือ แฮกเกอร์ชาวแคนาดา อายุ 19 ปี ได้ใช้ ช่องโหว่ Heartbleed ตัวนี้ ทำการเจาะข้อมูล ประกันสังคม และข้อมูลผู้เสียภาษี ของแคนาดา ไปเป็นที่เรียบร้อยแล้ว ได้ข้อมูลไปเป็นที่เรียบร้อย ซึ่งก็ถูกทางการแคนาดา จับได้ในเวลาต่อมา เป็นตัวอย่างที่เห็นได้ว่า ช่องโหว่นี้ ร้ายแรง และเป็นภัยแค่ไหน เวบไซต์ต่างๆ ที่เรารู้จักแล้วใช้ OpenSSL ก็ได้แก่ Facebook , Instagram , Twitter , Pinterest , Google , Youtube , Flickr , Gmail , Yahoo , GoDaddy และอื่นๆ อีกมากมาย ตามรูปเลยครับ

การแก้ไขนั้น ไม่ใช่เรื่องยากเลยครับ แค่ทำการ อัพเดทเวอร์ชั่น ของ OpenSSL เท่านั้น ก็เป็นที่เรียบร้อยแล้ว โดยเวอร์ชั่น ของ openssl ที่มีช่องโหว่ ในส่วนของคำสั่ง Heartbeat ได้แก่ OpenSSL 1.0.1 จนถึง 1.0.1f แค่อัพเดท เป็นเวอร์ชั่นล่าสุด ปัญหาช่องโหว่นี้ ก็จะหมดไป แต่อย่างที่บอก เราไม่รู้ว่า ช่องโหว่นี้ โดนเจาะไปเมื่อไหร่

สิ่งที่เรา ในฐานะผู้ใช้งาน ต้องทำก็คือ ทำการตรวจสอบเวบไซต์ ที่เราใช้งานอยู่ และมีการใช้งาน OpenSSL ว่ามีการอัพเดท เป็นเวอรชั่นใหม่ แล้วหรือยัง โดยสามารถ เข้าไปทำการตรวจสอบได้ที่ หรืออีกเวบหนึ่ง โดยเข้าไป ที่ 2 เวบที่ว่านี้ แล้วเอา URL เวบที่เราต้องการตรวจสอบ กรอกใส่เข้าไป ในช่องที่ทำการตรวจสอบ ก็จะพบว่า เวบนั้นๆ ได้ทำการปิดช่องโหว่นี้หรือยัง

ณ ตอนนี้ ต้องบอกว่า เวบไซต์ ที่เป็นเวบใหญ่ๆ อย่าง Gmail หรือ Facebook ได้ทำการแก้ไขไปหมดแล้ว แต่สิ่งที่เรา ในฐานะผู้ใช้งาน ต้องทำอีกอย่างหนึ่งก็คือ การเข้าไปแก้ไข password ที่เราได้ใช้กับเวบไซต์นั้นๆ เพื่อป้องกันเอาไว้ก่อน อย่างที่บอกไปว่า เราไม่รู้ว่า ข้อมูลถูกเจาะออกไปแล้วหรือไม่ และรั่วไหลไปเมื่อไหร่ และมากแค่ไหน ทางที่ดีที่สุด คือการเปลี่ยน password เอาไว้ก่อนเลย จะดีกว่า

สำหรับทางฝั่งของผู้ใช้งาน Microsoft เช่น Hotmail หรือ Outlook ก็ไม่ต้องกังวล เพราะไม่ได้รับผลกระทบ เพราะเค้าใช้ SSL ที่เป็นของเค้าเอง ไม่ใช่ OpenSSL และในส่วนของธนาคารในต่างประเทศ ก็ใช้ SSL ที่เป็น hardware แพงๆ อยู่แล้ว ก็ไม่ได้รับผลกระทบตรงนี้เช่นกัน ส่วนธนาคารในเมืองไทยนั้น ยังมีบางส่วนที่ใช้ OpenSSL อยู่ ก็ถือว่า ยังอันตรายอยู่ครับ ก็อย่างที่รู้ๆ กัน SSL แบบ hardware มันแพงนะครับ ธนาคารบ้านเรา คงไม่อยากลงทุนสักเท่าไหร่

ก็หวังว่า คงจะพอเข้าใจกันแล้วว่า Heartbleed คืออะไร และเราในฐานะผู้ใช้งาน เวบไซต์ที่มีความเสี่ยง กับช่องโหว่ ของ SSL ควรทำเช่นไรหลังจากนี้ ไม่ว่าจะเป็น Facebook , Gmail , Twitter และ Yahoo ล้วนมีความเสี่ยงหมดนะครับ ก็รีบๆ ไปเปลี่ยนรหัสกันนะครับ เพื่อความปลอดภัยของข้อมูลของทุกท่านเอง

เรื่องก่อนหน้านี้Google จะขาย มือถือใหม่ แบบสั่งประกอบ เริ่มต้นปี 2015 นี้
เรื่องถัดไปโทรศัพท์สมาร์ทโฟน Galaxy S5 น้ำซึมเข้าได้ ระวังกันไว้นะครับ