นักแสวงหา

ผู้เขียน : นักแสวงหา

อัพเดท: 23 เม.ย. 2014 05.25 น. บทความนี้มีผู้ชม: 7280 ครั้ง

“HEARTBLEED BUG”เป็นที่พูดถึงกันเป็นส่วนใหญ่มาดูกันว่า มันคืออะไร


รู้จักบั๊กสะท้านโลก Heartbleed ทำไมถึงส่งผลกระทบต่อเว็บไซต์เป็นจำนวนมาก

Heartbleed Bug คืออะไร?

Heartbleed Bug เป็นช่องโหว่ความเสี่ยงสูงที่มีอยู่ใน OpenSSL Library ซึ่งเว็บไซต์นับล้านทั่วโลกใช้งาน Library นี้อยู่ โดยที่ OpenSSL Library นี้จะถูกเรียกใช้งานโดย Application ที่ต้องการเข้ารหัสการรับส่งข้อมูลโดยใช้ SSL/TLS (เช่น HTTPS, VPN, EMAIL) ผลกระทบที่เกิดจาก Heartbleed Bug คือการที่ผู้โจมตีสามารถเข้าถึงข้อมูลที่อยู่ในหน่วยความจำหลัก (หรือ RAM นั่นเอง) ได้จากระยะไกล ซึ่งเป็นที่ทราบกันดีอยู่แล้วว่าข้อมูลในระหว่างการรับ-ส่ง นั้น จะถูกเข้ารหัสโดย SSL/TLS แต่เมื่อข้อมูลถูกส่งมาถึงผู้รับและเข้าไปอยู่ใน RAM นั้นจะเป็น plaintext หรือพูดง่าย ๆ ว่า ไม่ได้ถูกเข้ารหัสแล้วนั่นเอง เป็นเหตุให้ข้อมูลความลับ ไม่ว่าจะเป็น key ที่ใช้ถอดรหัสข้อมูล รวมถึงข้อมูลอื่น ๆ เช่น username/password ถูกเข้าถึงได้โดย Hacker (ขอแถมอีกนิดว่าการที่ช่องโหว่นี้ได้ชื่อว่า Heartbleed เนื่องจากตัว Extension ตัวหนึ่งใน OpenSSL Library ชื่อว่า “Heartbeat” เป็นตัวการให้เกิดการรั่วไหลของข้อมูล)

Heartbleed Bug ได้ข้อมูลหมดทุกอย่างใน RAM เลยหรือ?

คำตอบคือ ไม่ จะได้ข้อมูลเฉพาะของ Application ที่ใช้งาน OpenSSL Library นั้น ๆ เช่น สมมติว่า มีเครื่อง server 1 เครื่อง ให้บริการ HTTPS Web, VPN, Email แล้วทั้ง 3 บริการนี้มีช่องโหว่ Heartbleed Bug เหมือนกันหมด การโจมทีไปที่ VPN จะไม่ได้ข้อมูลใน RAM ของ Web และ Email ได้เฉพาะ VPN เองเท่านั้น (หากสงสัยว่าทำไม ต้องตอบว่านี่คือการทำงานปกติของระบบคอมพิวเตอร์ โปรแกรมต่าง ๆ ที่ทำงานอยู่ใน RAM จะรู้สึกเหมือนกับว่าตัวมันเองใช้งาน RAM อยู่เพียงผู้เดียว ทั้ง ๆ ที่จริงแล้วมีโปรแกรมนับร้อยทำงานอยู่)

 

heartbleed-aรูปที่ 1: ตัวอย่างการรั่วไหลของข้อมูลจาก RAM จากช่องโหว่ Heartbleed

ช่องโหว่นี้เกิดกับ OpenSSL version ใดบ้าง?

OpenSSL version 1.0.1a – 1.0.1f
OpenSSL version 1.0.1:beta1 – 1.0.1:beta3
OpenSSL version 1.0.2-beta1

 

พื้นฐานของการเข้ารหัส (Encryption)

อย่างแรกเลยต้องเข้าใจพื้นฐานของการเข้ารหัสข้อมูลหรือ encryption เสียก่อน การเข้ารหัสในปัจจุบันมักใช้รูปแบบ "กุญแจคู่อสมมาตร" คือสุ่มสร้างกุญแจ (key) ออกมาสองตัวพร้อมกัน (แต่กุญแจไม่เหมือนกัน = อสมมาตร) คือ private key และ public key

กุญแจสาธารณะ (public key) จะถูกส่งออกไปในที่สาธารณะ เช่น อินเทอร์เน็ต (ในมิติของความปลอดภัยคือ untrusted space) ส่วนกุญแจส่วนตัว (private key) จะถูกเก็บไว้ในเครื่องของผู้ใช้งานเท่านั้น (มองว่าเป็น trusted หรือ safe space)

เมื่อ A ต้องการส่งข้อมูลลับให้ B ภายใต้สถาปัตยกรรมการเข้ารหัสแบบนี้ A จะนำ public key ของ B (ที่อยู่บนอินเทอร์เน็ต) มาผสมกับตัว "ข้อมูล" (data) ที่ต้องการส่ง เพื่อไม่ให้ใครคนอื่นอ่านได้ยกเว้นแต่ B ที่มีกุญแจคู่กันคือ private key ที่เก็บอยู่กับตัวของ B เท่านั้น

ภาพประกอบจาก Microsoft/MSDN

ความน่าเชื่อถือของการเข้ารหัสข้อมูลลักษณะนี้จึงอยู่ที่ความน่าเชื่อถือในการเก็บรักษา private key ที่ใช้เป็นเครื่องมือถอดรหัสนั่นเอง 

 

ผู้ดูแลระบบจะรับมือช่องโหว่ได้อย่างไร?

1. ทำการปิดช่องโหว่ ซึ่งทำได้โดย

1.1 ทำการอัพเดท software OpenSSL และตรวจสอบหมายเลข version ให้แน่ชัด ว่า version ของ software ได้รับการอัพเดทแล้ว

1.2 หากต้องการใช้ version เดิม ให้ทำการ recompile OpenSSL Library ใหม่ แล้วจึงนำมาใช้งาน (ข้อมูลเพิ่มเติมได้ที่ heartbleed.com) เนื่องจาก OpenSSL เป็น Open Source Software

1.3 ผู้ดูแลระบบสามารถดูรายชื่อ product ที่ได้รับผลกระทบจากช่องโหว่ และอาจอยู่ในความดูแลของท่านได้ที่ http://www.kb.cert.org/vuls/byvendor?searchview&Query=FIELD+Reference=720951&SearchOrder=4

2. หากตรวจสอบแล้วพบว่ามีช่องโหว่จริง ควรประกาศให้ผู้ใช้งานได้รับทราบ เพราะเราไม่สามารถรู้ได้ว่าก่อนหน้าที่เราจะรู้ตัวเราถูกโจมตีหรือไม่ (เป็นอีกหนึ่งความพิเศษของช่องโหว่นี้) และเสียหายไปเท่าไร เพื่อให้ผู้ใช้งานได้รับมือกับการรั่วไหลของข้อมูลได้อย่างทันท่วงที

3. สร้าง X.509 Certificates ใหม่ เพราะเป็นไปได้ว่าถ้าหากถูกโจมตี ข้อมูลของ Certificates อาจรั่วไหลไปได้เช่นกัน ถ้าหากยังใช้ Certificate เดิมที่ข้อมูลรั่วไหลไปแล้ว ต่อให้เราปิดช่องโหว่ที่ OpenSSL แต่ข้อมูลใน Certificate เดิมก็สามารถนำมาใช้ถอดรหัสข้อมูลใหม่ ๆ ได้

ผู้ใช้งานหากได้รับประกาศช่องโหว่จากผู้ให้บริการควรทำอย่างไร?

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

 

ปัญหา Heartbleed

ตามมาตรฐาน SSL/TLS จะมีตัวเลือกหนึ่งที่ชื่อว่า heartbeat (แปลตรงตัวคือ "หัวใจเต้น") เพื่อให้คอมพิวเตอร์ฝั่งใดฝั่งหนึ่งส่งข้อความสั้นๆ ไปยังอีกคอมพิวเตอร์ฝั่งหนึ่งเพื่อเช็คว่าอีกฝั่งยังออนไลน์อยู่ ปัญหาของ OpenSSL ที่เราเรียกกันว่า Heartbleed (ล้อตามชื่อ heartbeat) คือ OpenSSL ดัน "พลาด" เปิดโอกาสให้คอมพิวเตอร์ฝั่งหนึ่งสามารถส่งข้อความในฟอร์แมตพิเศษ เมื่ออีกฝั่งหนึ่งได้รับข้อความนี้ก็จะส่งข้อมูล (ที่อยู่ในหน่วยความจำ) แถมกลับไปให้ด้วย ข้อมูลแถมที่ว่านี้จึง "มีความเป็นไปได้" ที่จะเป็น private key ที่อยู่ในเครื่องปลายทางครับ เพื่อให้เข้าใจง่ายลองดูการ์ตูนของ xkcd ที่อธิบายเรื่องนี้ได้ดีมาก

ผลกระทบของ Heartbleed

บั๊ก Heartbleed ถูกแก้ไขใน OpenSSL เวอร์ชันล่าสุดเรียบร้อยแล้ว แก้ง่ายมากแค่อัพเวอร์ชันหรือลงแพตช์ก็หาย

แต่ประเด็นคือไม่มีใครทราบว่า private key ที่ถูกส่งผ่าน OpenSSL มาตั้งแต่ปี 2012 ถูกเจาะผ่านบั๊ก Heartbleed นั้นมีจำนวนเท่าไร และมีเว็บไซต์ไหนที่โดนเจาะบ้าง

ในทางทฤษฎี ผลสะเทือนของ Heartbleed กว้างมาก แต่ในทางปฏิบัติไม่มีใครทราบว่าเคยมีใครใช้ช่องโหว่ Heartbleed มาเจาะข้อมูลแบบนี้ไปก่อนหรือไม่

เมื่อ private key หลุดออกไปจึงทำให้ข้อมูลที่ถูกเข้ารหัสด้วย key อันนั้น (เช่น รหัสผ่านที่เราใช้เข้าเว็บไซต์ เลขบัตรเครดิต) ไม่ปลอดภัยตามไปด้วยนั่นเองครับ

ตอนนี้คงเป็นหน้าที่ของเว็บไซต์และบริการออนไลน์ต่างๆ ที่จะสอบสวนดูว่าตัวเองได้รับผลกระทบจาก Heartbleed มากน้อยแค่ไหน รายละเอียดลองดูในข่าวเก่าๆ ของ Blognone

ผู้ใช้ควรทำตัวอย่างไรให้ปลอดภัยจาก Heartbleed

ผู้ใช้คงทำอะไรไม่ได้มากนักเพราะไม่เกี่ยวข้องกับ Heartbleed โดยตรง แต่สิ่งที่ทำได้ คือแก้ไขข้อมูลส่วนตัวที่อาจไม่ปลอดภัยเพราะ Heartbleed เช่น รหัสผ่าน

นอกจากนี้เราอาจใช้มาตรการด้านความปลอดภัยอื่นๆ นอกเหนือจากรหัสผ่านในการปกป้องข้อมูลของเรา (เพราะรหัสผ่านอย่างเดียวอาจไม่ปลอดภัยจาก Heartbleed) เช่น เปิดใช้งาน Two-step Verification บนเว็บไซต์หรือบริการออนไลน์ต่างๆ

สรุป 5 ข้อ

  1. เราส่งข้อมูลสำคัญที่เป็นความลับ เช่น รหัสผ่าน โดยเข้ารหัสผ่านมาตรฐาน SSL/TLS
  2. ซอฟต์แวร์เข้ารหัสตามมาตรฐาน SSL/TLS ที่ได้รับความนิยมสูงที่สุดในโลกคือ OpenSSL
  3. OpenSSL มีบั๊ก (ชื่อ Heartbleed) ที่ทำให้กุญแจการเข้ารหัส "อาจ" รั่วได้
  4. ข้อมูลที่เคยส่งผ่าน SSL/TLS ไปยังเว็บไซต์ต่างๆ จึง "อาจ" รั่วได้
  5. ไม่มีใครรู้ว่าคำว่า "อาจ" มันมีโอกาสโดนจริงๆ มากน้อยแค่ไหน ดังนั้นควรป้องกันตัวไว้ก่อน (โดยการเปลี่ยนรหัสผ่าน)

ขอขอบคุณแหล่งที่มาภาพ http://blog.linio.com.co/noticias-tecnologicas-e-internet/heartbleed-un-fallo-que-se-roba-claves-y-amenaza-nuestra-seguridad

ขอบคุณแหล่งที่มา :https://www.blognone.com/node/55302

ขอบคุณแหล่งที่มา : http://ch3.sanook.com/15214/%E0%B8%82%E0%B9%88%E0%B8%B2%E0%B8%A7-3-%E0%B8%A1%E0%B8%B4%E0%B8%95%E0%B8%B4-%E0%B9%80%E0%B8%9D%E0%B9%89%E0%B8%B2%E0%B8%A3%E0%B8%B0%E0%B8%A7%E0%B8%B1%E0%B8%87-heartbleed-bug

 


บทความนี้เกิดจากการเขียนและส่งขึ้นมาสู่ระบบแบบอัตโนมัติ สมาคมฯไม่รับผิดชอบต่อบทความหรือข้อความใดๆ ทั้งสิ้น เพราะไม่สามารถระบุได้ว่าเป็นความจริงหรือไม่ ผู้อ่านจึงควรใช้วิจารณญาณในการกลั่นกรอง และหากท่านพบเห็นข้อความใดที่ขัดต่อกฎหมายและศีลธรรม หรือทำให้เกิดความเสียหาย หรือละเมิดสิทธิใดๆ กรุณาแจ้งมาที่ ht.ro.apt@ecivres-bew เพื่อทีมงานจะได้ดำเนินการลบออกจากระบบในทันที