อ่าน 33 นาที
เลือดออกในหัวใจ
Heartbleed เป็น ช่องโหว่ด้านความปลอดภัย ใน ไลบรารี การเข้ารหัส OpenSSL เวอร์ชันเก่าบางเวอร์ชัน ซึ่งเป็นการใช้งาน โปรโตคอล Transport Layer Security (TLS) ที่ใช้กันอย่างแพร่หลาย...
เลือดออกในหัวใจ
| ตัวระบุ CVE | CVE-2014-0160 |
|---|---|
| คะแนน CVSS | ฐาน: 7.5 สูง, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| ปล่อยแล้ว | 14 มีนาคม 2555 |
| วันที่ค้นพบ | 1 เมษายน 2557 |
| วันที่แก้ไข | 7 เมษายน 2557 |
| ดิสคัฟเวอร์เนอร์ |
|
| ซอฟต์แวร์ที่ได้รับผลกระทบ | OpenSSL (1.0.1) |
| เว็บไซต์ | heartbleed.com |
Heartbleedเป็นช่องโหว่ด้านความปลอดภัยใน ไลบรารี การเข้ารหัสOpenSSL เวอร์ชันเก่าบางเวอร์ชัน ซึ่งเป็นการใช้งาน โปรโตคอล Transport Layer Security (TLS) ที่ใช้กันอย่างแพร่หลาย ช่องโหว่นี้ถูกนำเข้ามาในซอฟต์แวร์ในปี 2012 และเปิดเผยต่อสาธารณะในเดือนเมษายน 2014 Heartbleed สามารถถูกโจมตีได้ไม่ว่าอินสแตนซ์ OpenSSL ที่มีช่องโหว่จะทำงานเป็นเซิร์ฟเวอร์ TLS หรือไคลเอ็นต์ก็ตาม ช่องโหว่นี้เกิดจากการตรวจสอบความถูกต้องของข้อมูลขาเข้า ที่ไม่เหมาะสม (เนื่องจากการตรวจสอบขอบเขต ที่ขาดหายไป) ในการใช้งาน ส่วนขยายheartbeatของ TLS [ 5 ]ดังนั้นชื่อของช่องโหว่นี้จึงมาจากheartbeat [ 6 ]ช่องโหว่นี้ถูกจัดประเภทเป็นbuffer over-read [ 7 ] ซึ่งเป็นสถานการณ์ที่สามารถอ่านข้อมูลได้มากกว่าที่ควรอนุญาต[ 8 ]
Heartbleed ได้รับการลงทะเบียนใน ฐานข้อมูลช่องโหว่และการเปิดเผยทั่วไป ( Common Vulnerabilities and Exposures)ในชื่อCVE - 2014-0160 [ 7 ] OpenSSL เวอร์ชันแก้ไขได้รับการเผยแพร่เมื่อวันที่ 7 เมษายน 2557 ซึ่งเป็นวันเดียวกับที่ Heartbleed ถูกเปิดเผยต่อสาธารณะ[ 9 ]
การใช้งาน TLS อื่นๆ นอกเหนือจาก OpenSSL เช่นGnuTLS , บริการรักษาความปลอดภัยเครือข่ายของMozillaและการใช้งาน TLS บนแพลตฟอร์ม Windowsไม่ได้รับผลกระทบเนื่องจากข้อบกพร่องนั้นมีอยู่ในการใช้งาน TLS ของ OpenSSL มากกว่าในตัวโปรโตคอลเอง[ 10 ]
ผู้ดูแลระบบมักจะอัปเดตแพตช์ระบบช้า ณ วันที่ 20 พฤษภาคม 2557 เว็บไซต์ที่เปิดใช้งาน TLS ยอดนิยม 1.5% จากทั้งหมด 800,000 เว็บไซต์ยังคงมีความเสี่ยงต่อช่องโหว่นี้[ 11 ]และ ณ วันที่ 21 มิถุนายน 2557 เซิร์ฟเวอร์เว็บสาธารณะ 309,197 เครื่องยังคงมีความเสี่ยง[ 12 ]ตามรายงานเมื่อวันที่ 23 มกราคม 2560 [ 13 ]จากShodanอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ตเกือบ 180,000 เครื่องยังคงมีความเสี่ยงต่อช่องโหว่นี้[ 14 ] [ 15 ]แต่ ณ วันที่ 6 กรกฎาคม 2560 จำนวนดังกล่าวลดลงเหลือ 144,000 เครื่อง ตามการค้นหาช่องโหว่บน shodan.io [ 16 ]ประมาณสองปีต่อมา ในวันที่ 11 กรกฎาคม 2562 Shodan รายงาน[ 17 ]ว่ามีอุปกรณ์ 91,063 เครื่องที่มีความเสี่ยง สหรัฐอเมริกามีอุปกรณ์ที่เสี่ยงต่อการถูกโจมตีมากที่สุด โดยมีจำนวน 21,258 เครื่อง (23%) และ 10 ประเทศที่มีอุปกรณ์เสี่ยงต่อการถูกโจมตีมากที่สุดมีจำนวนรวม 56,537 เครื่อง (62%) ส่วนประเทศที่เหลือมีจำนวนอุปกรณ์เสี่ยงต่อการถูกโจมตีรวม 34,526 เครื่อง (38%) รายงานยังได้แบ่งอุปกรณ์ออกเป็น 10 หมวดหมู่ย่อย เช่น องค์กร (3 อันดับแรกเป็นบริษัทผู้ให้บริการเครือข่ายไร้สาย) ผลิตภัณฑ์ ( Apache httpd , Nginx ) และบริการ ( HTTPS , 81%)
ประวัติศาสตร์
ส่วนขยาย Heartbeat สำหรับ โปรโตคอล Transport Layer Security (TLS) และDatagram Transport Layer Security (DTLS) ได้รับการเสนอให้เป็นมาตรฐานในเดือนกุมภาพันธ์ 2012 โดยRFC 6520 [ 18 ] ส่วนขยายนี้ช่วยให้สามารถทดสอบและรักษาการเชื่อมต่อการสื่อสารที่ปลอดภัยไว้ได้โดยไม่จำเป็นต้องเจรจาการเชื่อมต่อใหม่ทุกครั้ง ในปี 2011 Robin Seggelmann หนึ่งในผู้เขียน RFC ซึ่งขณะนั้นเป็นนักศึกษาปริญญาเอกที่Fachhochschule Münsterได้นำส่วนขยาย Heartbeat มาใช้กับ OpenSSL หลังจากที่ Seggelmann ร้องขอให้ใส่ผลงานของเขาลงใน OpenSSL [ 19 ] [ 20 ] [ 21 ]การเปลี่ยนแปลงของเขาได้รับการตรวจสอบโดย Stephen N. Henson หนึ่งในนักพัฒนาหลักสี่คนของ OpenSSL Henson ไม่ได้สังเกตเห็นข้อบกพร่องในการใช้งานของ Seggelmann และได้นำโค้ดที่บกพร่องนั้นเข้าสู่คลังซอร์สโค้ดของ OpenSSL เมื่อวันที่ 31 ธันวาคม 2011 ข้อบกพร่องดังกล่าวแพร่กระจายไปพร้อมกับการเปิดตัว OpenSSL เวอร์ชัน 1.0.1 เมื่อวันที่ 14 มีนาคม 2012 การสนับสนุน Heartbeat ถูกเปิดใช้งานโดยค่าเริ่มต้น ทำให้เวอร์ชันที่ได้รับผลกระทบมีความเสี่ยง[ 3 ] [ 22 ]
การค้นพบ
ตามที่ Mark J. Cox จาก OpenSSL กล่าวไว้ Neel Mehta จากทีมรักษาความปลอดภัยของ Google ได้รายงาน Heartbleed ให้กับทีม OpenSSL เป็นการส่วนตัวเมื่อวันที่ 1 เมษายน 2557 เวลา 11:09 UTC [ 23 ]
ข้อบกพร่องนี้ได้รับการตั้งชื่อโดยวิศวกรที่ Synopsys Software Integrity Group บริษัทรักษาความปลอดภัยทางไซเบอร์ของฟินแลนด์ ซึ่งเป็นผู้สร้างโลโก้รูปหัวใจเลือดไหล[ 24 ]ออกแบบโดยนักออกแบบกราฟิกชาวฟินแลนด์ Leena Kurjenniska และเปิดตัวเว็บไซต์ข้อมูล heartbleed.com [ 25 ]แม้ว่าทีมรักษาความปลอดภัยของ Google จะรายงาน Heartbleed ให้กับ OpenSSL ก่อน แต่ทั้ง Google และ Codenomicon ค้นพบข้อบกพร่องนี้โดยอิสระในเวลาใกล้เคียงกัน[ 26 ] [ 27 ] Codenomicon รายงานวันที่ 3 เมษายน 2557 เป็นวันที่พวกเขาค้นพบและวันที่แจ้งNCSC-FIเพื่อประสานงานด้านช่องโหว่[ 28 ]
ในขณะที่มีการเปิดเผยข้อมูล เชื่อกันว่า เซิร์ฟเวอร์เว็บที่ปลอดภัยของอินเทอร์เน็ตประมาณ 17% (ประมาณครึ่งล้านเครื่อง) ที่ได้รับการรับรองจากหน่วยงานที่เชื่อถือได้ นั้นมีความเสี่ยงต่อการโจมตี ทำให้สามารถขโมย คีย์ส่วนตัว ของเซิร์ฟเวอร์ คุกกี้เซสชัน และรหัสผ่านของผู้ใช้ได้[ 29 ] [ 30 ] [ 31 ] [ 32 ] [ 33 ]มูลนิธิElectronic Frontier [ 34 ] Ars Technica [ 35 ] และ Bruce Schneier [ 36 ]ต่างก็ถือว่าข้อบกพร่อง Heartbleed นั้น "ร้ายแรง" โจเซฟ สไตน์เบิร์ก คอลัมนิสต์ด้านความปลอดภัยทางไซเบอร์ ของ Forbesเขียนว่า:
บางคนอาจโต้แย้งว่า Heartbleed เป็นช่องโหว่ที่ร้ายแรงที่สุดที่พบ (อย่างน้อยก็ในแง่ของผลกระทบที่อาจเกิดขึ้น) นับตั้งแต่มีการรับส่งข้อมูลเชิงพาณิชย์บนอินเทอร์เน็ต[ 37 ]
โฆษกสำนักงานคณะรัฐมนตรีสหราชอาณาจักรที่ไม่เปิดเผยชื่อได้แนะนำว่า:
ผู้คนควรขอคำแนะนำเกี่ยวกับการเปลี่ยนรหัสผ่านจากเว็บไซต์ที่พวกเขาใช้ เว็บไซต์ส่วนใหญ่ได้แก้ไขข้อผิดพลาดแล้วและอยู่ในตำแหน่งที่ดีที่สุดที่จะให้คำแนะนำว่าผู้คนต้องดำเนินการอย่างไรบ้าง[ 38 ]
ในวันที่เปิดเผยข้อมูลโครงการ Torได้ให้คำแนะนำดังนี้:
หากคุณต้องการความเป็นส่วนตัวหรือความไม่เปิดเผยตัวตนอย่างมากบนอินเทอร์เน็ต คุณอาจต้องการหลีกเลี่ยงการใช้อินเทอร์เน็ตโดยสิ้นเชิงในช่วงสองสามวันข้างหน้าจนกว่าสถานการณ์จะคลี่คลาย[ 39 ]
หนังสือพิมพ์ Sydney Morning Heraldได้เผยแพร่ลำดับเหตุการณ์การค้นพบเมื่อวันที่ 15 เมษายน 2557 โดยแสดงให้เห็นว่าบางองค์กรสามารถแก้ไขข้อบกพร่องได้ก่อนที่จะมีการเปิดเผยต่อสาธารณะ ในบางกรณี ไม่ชัดเจนว่าพวกเขาค้นพบได้อย่างไร [ 40 ]
แก้ไขข้อผิดพลาดและปรับใช้
Bodo Möller และ Adam Langley จากGoogleได้เตรียมการแก้ไขสำหรับ Heartbleed แพทช์ ที่ได้นั้น ถูกเพิ่มเข้าไปในระบบติดตามปัญหาของRed Hatเมื่อวันที่ 21 มีนาคม 2014 [ 41 ] Stephen N. Henson ได้นำการแก้ไขนี้ไปใช้กับระบบควบคุมเวอร์ชันของ OpenSSL เมื่อวันที่ 7 เมษายน[ 42 ]เวอร์ชันที่แก้ไขแล้วเวอร์ชันแรก 1.0.1g ได้รับการเผยแพร่ในวันเดียวกัน ณ วันที่ 21 มิถุนายน 2014 เซิร์ฟเวอร์เว็บสาธารณะ 309,197 เครื่องยังคงมีความเสี่ยง[ 12 ]ณ วันที่ 23 มกราคม 2017 ตามรายงาน[ 13 ]จาก Shodan อุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ตเกือบ 180,000 เครื่องยังคงมีความเสี่ยง[ 14 ] [ 15 ]จำนวนดังกล่าวลดลงเหลือ 144,000 เครื่อง ณ วันที่ 6 กรกฎาคม 2017 ตามการค้นหาบน shodan.io สำหรับ "vuln:cve-2014-0160" [ 16 ]
การต่ออายุและการเพิกถอนใบรับรอง
ตามข้อมูลของNetcraft ใบรับรองX.509 ประมาณ 30,000 ใบจากทั้งหมดกว่า 500,000 ใบที่อาจถูกบุกรุกเนื่องจาก Heartbleed ได้รับการออกใหม่ภายในวันที่ 11 เมษายน 2557 แม้ว่าจะมีจำนวนน้อยกว่าที่ถูกเพิกถอน[ 43 ]
ภายในวันที่ 9 พฤษภาคม 2557 มีเพียง 43% ของเว็บไซต์ที่ได้รับผลกระทบเท่านั้นที่ออกใบรับรองความปลอดภัยใหม่ นอกจากนี้ 7% ของใบรับรองความปลอดภัยที่ออกใหม่ยังใช้คีย์ที่อาจถูกบุกรุก Netcraft ระบุว่า:
การใช้คีย์ส่วนตัวเดียวกันทำให้เว็บไซต์ที่ได้รับผลกระทบจากบั๊ก Heartbleed ยังคงเผชิญกับความเสี่ยงแบบเดียวกันกับเว็บไซต์ที่ยังไม่ได้เปลี่ยนใบรับรอง SSL [ 44 ]
eWeekกล่าวว่า "[Heartbleed] มีแนวโน้มที่จะยังคงเป็นความเสี่ยงต่อไปอีกหลายเดือนหรือหลายปี" [ 45 ]
Cloudflareเพิกถอนใบรับรอง TLS ทั้งหมด และประเมินว่าการเผยแพร่รายการเพิกถอนใบรับรองจะทำให้ผู้ออก ใบรับรอง GlobalSign ต้องเสียค่าใช้จ่าย 400,000 ดอลลาร์ต่อเดือนในปีนั้น[ 46 ]
การแสวงหาประโยชน์
สำนักงานสรรพากรแคนาดารายงานการขโมยหมายเลขประกันสังคมของผู้เสียภาษี 900 ราย และระบุว่าหมายเลขเหล่านั้นถูกเข้าถึงผ่านช่องโหว่ในช่วงเวลา 6 ชั่วโมงของวันที่ 8 เมษายน 2557 [ 47 ] หลังจากการค้นพบการโจมตี สำนักงานได้ปิดเว็บไซต์และขยายกำหนดเวลาการยื่นภาษีของผู้เสียภาษีจากวันที่ 30 เมษายน เป็นวันที่ 5 พฤษภาคม[ 48 ]สำนักงานกล่าวว่าจะให้บริการคุ้มครองเครดิตโดยไม่คิดค่าใช้จ่ายแก่ผู้ที่ได้รับผลกระทบ ในวันที่ 16 เมษายนRCMPประกาศว่าได้ตั้งข้อหานักศึกษาวิทยาการคอมพิวเตอร์ที่เกี่ยวข้องกับการขโมยดังกล่าวในข้อหาใช้คอมพิวเตอร์โดยไม่ได้รับอนุญาตและทำลายข้อมูล[ 49 ] [ 50 ]
เว็บไซต์Mumsnet ของสหราชอาณาจักร ซึ่งเป็นเว็บไซต์เกี่ยวกับการเลี้ยงดูบุตร ถูกแฮ็กบัญชีผู้ใช้หลายบัญชี และมีการแอบอ้างเป็นซีอีโอ[ 51 ]ต่อมาเว็บไซต์ได้เผยแพร่คำอธิบายเกี่ยวกับเหตุการณ์ดังกล่าว โดยระบุว่าเป็นผลมาจาก Heartbleed และเจ้าหน้าที่ฝ่ายเทคนิคได้แก้ไขอย่างรวดเร็ว[ 52 ]
นักวิจัยด้านแอนตี้มัลแวร์ยังใช้ประโยชน์จาก Heartbleed เพื่อเข้าถึงฟอรัมลับที่อาชญากรไซเบอร์ใช้[ 53 ]นอกจากนี้ยังมีการศึกษาโดยการตั้งค่าเครื่องที่มีช่องโหว่โดยเจตนา ตัวอย่างเช่น เมื่อวันที่ 12 เมษายน 2557 นักวิจัยอิสระอย่างน้อยสองคนสามารถขโมยคีย์ส่วนตัว จากเซิร์ฟเวอร์ทดลอง ที่CloudFlareตั้งขึ้นโดยเจตนาเพื่อจุดประสงค์นั้น[ 54 ] [ 55 ]นอกจากนี้ เมื่อวันที่ 15 เมษายน 2557 เจ. อเล็กซ์ ฮัลเดอร์แมนศาสตราจารย์จากมหาวิทยาลัยมิชิแกนรายงานว่า เซิร์ฟเวอร์ honeypot ของเขา ซึ่งเป็นเซิร์ฟเวอร์ที่มีช่องโหว่โดยเจตนาที่ออกแบบมาเพื่อดึงดูดการโจมตีเพื่อศึกษา ได้รับการโจมตีจำนวนมากจากประเทศจีน ฮัลเดอร์แมนสรุปว่าเนื่องจากเป็นเซิร์ฟเวอร์ที่ไม่ค่อยมีคนรู้จัก การโจมตีเหล่านี้จึงน่าจะเป็นการโจมตีแบบวงกว้างที่ส่งผลกระทบต่อพื้นที่ขนาดใหญ่ของอินเทอร์เน็ต[ 56 ]
ในเดือนสิงหาคม พ.ศ. 2557 มีการเปิดเผยต่อสาธารณะว่าช่องโหว่ Heartbleed ทำให้แฮกเกอร์สามารถขโมยคีย์ความปลอดภัยจากCommunity Health Systemsซึ่งเป็นเครือข่ายโรงพยาบาลเอกชนที่ใหญ่เป็นอันดับสองในสหรัฐอเมริกา ส่งผลให้ข้อมูลผู้ป่วย 4.5 ล้านรายถูกละเมิด การละเมิดดังกล่าวเกิดขึ้นหนึ่งสัปดาห์หลังจากที่ Heartbleed ถูกเปิดเผยต่อสาธารณะเป็นครั้งแรก[ 57 ]
ความรู้เดิมที่เป็นไปได้และการแสวงหาประโยชน์
เว็บไซต์หลักหลายแห่งแก้ไขข้อบกพร่องหรือปิดใช้งานส่วนขยาย Heartbeat ภายในไม่กี่วันหลังจากมีการประกาศ[ 58 ]แต่ยังไม่ชัดเจนว่าผู้โจมตีที่มีศักยภาพทราบเรื่องนี้ก่อนหน้านี้หรือไม่ และมีการใช้ประโยชน์จากข้อบกพร่องนี้ในระดับใด
จากการตรวจสอบบันทึกการตรวจสอบโดยนักวิจัย พบว่าผู้โจมตีบางรายอาจใช้ประโยชน์จากช่องโหว่นี้เป็นเวลาอย่างน้อยห้าเดือนก่อนที่จะมีการค้นพบและประกาศ[ 59 ] [ 60 ] Errata Security ชี้ให้เห็นว่าโปรแกรมที่ไม่เป็นอันตรายซึ่งใช้กันอย่างแพร่หลายชื่อMasscanซึ่งเปิดตัวหกเดือนก่อนการเปิดเผย Heartbleed จะยุติการเชื่อมต่ออย่างกะทันหันในระหว่างการจับมือในลักษณะเดียวกับ Heartbleed ทำให้เกิดข้อความบันทึกเซิร์ฟเวอร์แบบเดียวกัน โดยเสริมว่า "สิ่งใหม่สองอย่างที่สร้างข้อความแสดงข้อผิดพลาดแบบเดียวกันอาจดูเหมือนว่าทั้งสองมีความสัมพันธ์กัน แต่แน่นอนว่าไม่ใช่[ 61 ] "
ตามรายงานของBloomberg News แหล่งข่าวภายในที่ไม่เปิดเผยชื่อสองแหล่งแจ้งว่า สำนักงานความมั่นคงแห่งชาติของสหรัฐอเมริกาทราบถึงข้อบกพร่องนี้มาตั้งแต่ไม่นานหลังจากที่ปรากฏขึ้น แต่แทนที่จะรายงาน กลับเก็บเป็นความลับร่วมกับ ช่องโหว่ zero-day อื่นๆ ที่ไม่ได้รายงาน เพื่อใช้ประโยชน์จากช่องโหว่นี้เพื่อวัตถุประสงค์ของ NSA เอง[ 62 ] [ 63 ] [ 64 ] NSA ได้ปฏิเสธข้อกล่าวอ้างนี้[ 65 ]เช่นเดียวกับRichard A. Clarkeสมาชิกของกลุ่มทบทวนข่าวกรองแห่งชาติเกี่ยวกับเทคโนโลยีข่าวกรองและการสื่อสารที่ทบทวนนโยบายการเฝ้าระวังทางอิเล็กทรอนิกส์ของสหรัฐอเมริกา เขาบอกกับ Reuters เมื่อวันที่ 11 เมษายน 2014 ว่า NSA ไม่ทราบเรื่อง Heartbleed [ 66 ]ข้อกล่าวหานี้กระตุ้นให้รัฐบาลอเมริกันออกแถลงการณ์ต่อสาธารณะเป็นครั้งแรกเกี่ยวกับนโยบายช่องโหว่ Zero-day โดยยอมรับคำแนะนำของรายงานปี 2013 ของกลุ่มตรวจสอบที่ระบุว่า "ในเกือบทุกกรณี สำหรับโค้ดที่ใช้กันอย่างแพร่หลาย การกำจัดช่องโหว่ของซอฟต์แวร์เป็นประโยชน์ต่อชาติมากกว่าการนำไปใช้ในการรวบรวมข้อมูลข่าวกรองของสหรัฐฯ" และกล่าวว่าการตัดสินใจที่จะระงับควรย้ายจาก NSA ไปยังทำเนียบขาว[ 67 ]
พฤติกรรม

ส่วนขยาย Heartbeat ของ RFC 6520 ทดสอบการเชื่อมต่อการสื่อสารที่ปลอดภัยของ TLS/DTLS โดยอนุญาตให้คอมพิวเตอร์ที่ปลายด้านหนึ่งของการเชื่อมต่อส่ง ข้อความ Heartbeat Requestซึ่งประกอบด้วยเพย์โหลด โดยทั่วไปจะเป็นสตริงข้อความ พร้อมกับความยาวของเพย์โหลดในรูป แบบจำนวนเต็ม 16 บิตจากนั้นคอมพิวเตอร์ที่รับจะต้องส่งเพย์โหลดเดียวกันนั้นกลับไปยังผู้ส่ง
OpenSSL เวอร์ชันที่ได้รับผลกระทบจะจัดสรรบัฟเฟอร์หน่วยความจำสำหรับข้อความที่จะส่งคืนโดยอิงจากฟิลด์ความยาวในข้อความที่ร้องขอ โดยไม่คำนึงถึงขนาดที่แท้จริงของส่วนข้อมูลในข้อความนั้น เนื่องจากความล้มเหลวในการตรวจสอบขอบเขต อย่างถูกต้อง ข้อความที่ส่งคืนจึงประกอบด้วยส่วนข้อมูล ตามด้วยข้อมูลอื่นๆ ที่อาจอยู่ในบัฟเฟอร์หน่วยความจำที่จัดสรรไว้
ดังนั้น Heartbleed จึงถูกใช้ประโยชน์โดยการส่งคำขอ Heartbeat ที่ผิดรูปแบบพร้อมเพย์โหลดขนาดเล็กและฟิลด์ความยาวขนาดใหญ่ไปยังฝ่ายที่อ่อนแอ (โดยปกติคือเซิร์ฟเวอร์) เพื่อกระตุ้นให้เหยื่อตอบสนอง ทำให้ผู้โจมตีสามารถอ่านหน่วยความจำของเหยื่อได้มากถึง 64 กิโลไบต์ ซึ่งน่าจะเคยถูกใช้โดย OpenSSL มาก่อน[ 68 ]ในขณะที่คำขอ Heartbeat อาจขอให้ฝ่ายหนึ่ง "ส่งคำสี่ตัวอักษร 'bird ' กลับมา " ซึ่งส่งผลให้ได้รับคำตอบเป็น "bird" แต่ "คำขอ Heartbleed" (คำขอ Heartbeat ที่เป็นอันตราย) ที่ขอให้ "ส่งคำ 500 ตัวอักษร 'bird ' กลับมา " จะทำให้เหยื่อส่ง "bird" ตามด้วยอักขระ 496 ตัวถัดไปที่เหยื่อมีอยู่ในหน่วยความจำที่ใช้งานอยู่ ผู้โจมตีสามารถรับข้อมูลที่ละเอียดอ่อนได้ด้วยวิธีนี้ ซึ่งเป็นการละเมิดความลับของการสื่อสารของเหยื่อ แม้ว่าผู้โจมตีจะสามารถควบคุมขนาดของบล็อกหน่วยความจำที่เปิดเผยได้บ้าง แต่ก็ไม่สามารถควบคุมตำแหน่งของบล็อกนั้นได้ ดังนั้นจึงไม่สามารถเลือกเนื้อหาที่จะเปิดเผยได้
การติดตั้ง OpenSSL ที่ได้รับผลกระทบ
เวอร์ชันของ OpenSSL ที่ได้รับผลกระทบคือ OpenSSL 1.0.1 ถึง 1.0.1f (รวม) เวอร์ชันต่อมา (1.0.1g [ 69 ]และเวอร์ชันที่ใหม่กว่า) และเวอร์ชันก่อนหน้า (สาขา 1.0.0 และเก่ากว่า) ไม่มีความเสี่ยง[ 70 ]การติดตั้งเวอร์ชันที่ได้รับผลกระทบมีความเสี่ยง เว้นแต่ OpenSSL จะถูกคอมไพล์-DOPENSSL_NO_HEARTBEATSด้วย[ 71 ] [ 72 ]
โปรแกรมและฟังก์ชันที่เปราะบาง
ไฟล์ซอร์สโค้ดของโปรแกรมที่มีช่องโหว่คือt1_lib.cและd1_both.cและฟังก์ชันที่มีช่องโหว่คือtls1_process_heartbeat()และ[ 73 ] [ 74 ]dtls1_process_heartbeat()
แพทช์
ปัญหาดังกล่าวสามารถแก้ไขได้โดยการเพิกเฉยต่อข้อความ Heartbeat Request ที่ขอข้อมูลมากกว่าที่ payload ต้องการ ตามข้อกำหนดของ RFC
OpenSSL เวอร์ชัน 1.0.1g เพิ่มการตรวจสอบขอบเขตบางอย่างเพื่อป้องกันการอ่านบัฟเฟอร์เกินขอบเขต การทดสอบที่แสดงด้านล่างเป็นการทดสอบที่เพิ่มเข้ามาเพื่อตรวจสอบว่าคำขอ Heartbeat จะกระตุ้น Heartbleed หรือไม่ โดยจะปฏิเสธคำขอที่เป็นอันตรายโดยไม่แจ้งให้ทราบล่วงหน้า
ถ้า( 1 + 2 + payload + 16 > s -> s3 -> rrec . length ) return 0 ; /* ละทิ้งโดยไม่แจ้งให้ทราบตาม RFC 6520 มาตรา 4 */ผลกระทบ
ข้อมูลที่ได้รับจากการโจมตี Heartbleed อาจรวมถึงการแลกเปลี่ยนที่ไม่ได้เข้ารหัสระหว่างฝ่าย TLS ซึ่งมีแนวโน้มที่จะเป็นความลับ รวมถึงข้อมูลโพสต์ ฟอร์มใดๆ ในคำขอของผู้ใช้ ยิ่งไปกว่านั้น ข้อมูลที่เป็นความลับที่ถูกเปิดเผยอาจรวมถึงความลับในการตรวจสอบสิทธิ์ เช่นคุกกี้เซสชันและรหัสผ่าน ซึ่งอาจทำให้ผู้โจมตีสามารถปลอมตัวเป็นผู้ใช้บริการได้[ 75 ]
การโจมตีอาจเปิดเผยคีย์ส่วนตัวของฝ่ายที่ถูกบุกรุกได้ เช่นกัน [ 3 ] [ 76 ]ซึ่งจะทำให้ผู้โจมตีสามารถถอดรหัสการสื่อสารได้ (การรับส่งข้อมูลที่จัดเก็บไว้ในอนาคตหรือในอดีตที่ถูกดักฟังแบบพาสซีฟ เว้นแต่ จะใช้ ความลับแบบส่งต่อที่สมบูรณ์แบบซึ่งในกรณีนี้จะสามารถถอดรหัสการรับส่งข้อมูลในอนาคตได้ก็ต่อเมื่อถูกดักฟังผ่านการโจมตีแบบคนกลางเท่านั้น )
ผู้โจมตีที่ได้รับข้อมูลการตรวจสอบสิทธิ์อาจปลอมตัวเป็นเจ้าของข้อมูลหลังจากที่เหยื่อได้แก้ไข Heartbleed แล้ว ตราบใดที่ข้อมูลนั้นยังได้รับการยอมรับ (เช่น จนกว่าจะมีการเปลี่ยนรหัสผ่านหรือเพิกถอนคีย์ส่วนตัว) ดังนั้น Heartbleed จึงถือเป็นภัยคุกคามร้ายแรงต่อการรักษาความลับ อย่างไรก็ตาม ผู้โจมตีที่ปลอมตัวเป็นเหยื่ออาจเปลี่ยนแปลงข้อมูลได้เช่นกัน โดยทางอ้อม ผลกระทบของ Heartbleed จึงอาจขยายไปไกลกว่าการละเมิดการรักษาความลับสำหรับหลายระบบ[ 77 ]
จากการสำรวจผู้ใหญ่ชาวอเมริกันที่ดำเนินการในเดือนเมษายน พ.ศ. 2557 พบว่าร้อยละ 60 เคยได้ยินเกี่ยวกับ Heartbleed ในกลุ่มผู้ที่ใช้งานอินเทอร์เน็ต ร้อยละ 39 ได้ปกป้องบัญชีออนไลน์ของตน เช่น การเปลี่ยนรหัสผ่านหรือยกเลิกบัญชี ร้อยละ 29 เชื่อว่าข้อมูลส่วนบุคคลของตนตกอยู่ในความเสี่ยงเนื่องจากบั๊ก Heartbleed และร้อยละ 6 เชื่อว่าข้อมูลส่วนบุคคลของตนถูกขโมย[ 78 ]
ช่องโหว่ฝั่งไคลเอ็นต์
แม้ว่าบั๊กจะได้รับความสนใจมากขึ้นเนื่องจากเป็นภัยคุกคามต่อเซิร์ฟเวอร์[ 79 ]ไคลเอนต์ TLS ที่ใช้อินสแตนซ์ OpenSSL ที่ได้รับผลกระทบก็มีความเสี่ยงเช่นกัน ในสิ่งที่The Guardianเรียกอย่าง เสียดสีว่า Reverse Heartbleedเซิร์ฟเวอร์ที่เป็นอันตรายสามารถใช้ประโยชน์จาก Heartbleed เพื่ออ่านข้อมูลจากหน่วยความจำของไคลเอนต์ที่มีความเสี่ยง[ 80 ]นักวิจัยด้านความปลอดภัย Steve Gibson กล่าวถึง Heartbleed ว่า:
ไม่ใช่แค่ช่องโหว่ฝั่งเซิร์ฟเวอร์เท่านั้น แต่ยังเป็นช่องโหว่ฝั่งไคลเอ็นต์ด้วย เพราะเซิร์ฟเวอร์หรือผู้ที่คุณเชื่อมต่อด้วยนั้นสามารถขอสัญญาณชีพจรกลับจากคุณได้เช่นเดียวกับที่คุณขอจากพวกเขา[ 81 ]
ข้อมูลที่ถูกขโมยอาจมีชื่อผู้ใช้และรหัสผ่าน[ 82 ] Reverse Heartbleed ส่งผลกระทบต่ออินสแตนซ์แอปพลิเคชันหลายล้านรายการ[ 80 ]แอปพลิเคชันที่เสี่ยงต่อช่องโหว่บางส่วนแสดงอยู่ในส่วน "แอปพลิเคชันซอฟต์แวร์" ด้านล่าง
ระบบเฉพาะที่ได้รับผลกระทบ
Cisco Systemsได้ระบุผลิตภัณฑ์ 78 รายการของตนว่ามีช่องโหว่ ซึ่งรวมถึงระบบโทรศัพท์ IP และระบบการประชุมทางไกล (การประชุมผ่านวิดีโอ) [ 83 ]
เว็บไซต์และบริการออนไลน์อื่นๆ
การวิเคราะห์ที่โพสต์บนGitHubของเว็บไซต์ที่มีผู้เข้าชมมากที่สุดเมื่อวันที่ 8 เมษายน 2557 เผยให้เห็นช่องโหว่ในเว็บไซต์ต่างๆ รวมถึงYahoo!, Imgur , Stack Overflow , SlateและDuckDuckGo [ 84 ] [ 85 ] เว็บไซต์ต่อ ไป นี้มีบริการที่ได้รับผลกระทบหรือประกาศแนะนำให้ผู้ใช้อัปเดตรหัสผ่านเพื่อตอบสนองต่อข้อบกพร่อง:
- บริษัท อากาไม เทคโนโลยีส์[ 86 ]
- บริการเว็บ Amazon [ 87 ]
- อาร์ส เทคนิคา[ 88 ]
- บิตบัคเก็ต[ 89 ]
- แบรนด์เวริตี้[ 90 ]
- ฟรีโหนด[ 91 ]
- GitHub [ 92 ]
- IFTTT [ 93 ]
- อินเทอร์เน็ตอาร์ไคฟ์[ 94 ]
- โมจัง[ 95 ]
- Mumsnet [ 51 ]
- PeerJ [ 96 ]
- Pinterest [ 97 ]
- พรีซี่[ 98 ]
- Reddit [ 99 ]
- สิ่งที่แย่มาก[ 100 ]
- SoundCloud [ 101 ]
- SourceForge [ 102 ]
- SparkFun [ 103 ]
- แถบ[ 104 ]
- Tumblr [ 105 ] [ 106 ]
- วิกิทั้งหมดของมูลนิธิวิกิมีเดีย (รวมถึงวิกิพีเดียในทุกภาษา) [ 107 ] [ 108 ]
- วันเดอร์ลิสต์[ 109 ]
รัฐบาลกลางแคนาดาได้ปิดบริการออนไลน์ของสำนักงานสรรพากรแคนาดา (CRA) และหน่วยงานรัฐบาลหลายแห่งเป็นการชั่วคราวเนื่องจากความกังวลด้านความปลอดภัยจากบั๊ก Heartbleed [ 110 ] [ 111 ]ก่อนที่บริการออนไลน์ของ CRA จะถูกปิด แฮ็กเกอร์ได้หมายเลขประกันสังคม ประมาณ 900 หมายเลข[ 112 ] [ 113 ]หน่วยงานรัฐบาลแคนาดาอีกแห่งหนึ่งคือ สำนักงานสถิติแคนาดาเซิร์ฟเวอร์ก็ถูกโจมตีเนื่องจากบั๊กดังกล่าวและต้องปิดบริการชั่วคราวเช่นกัน[ 114 ]
ผู้ดูแลแพลตฟอร์ม เช่น มูลนิธิวิกิมีเดีย แนะนำให้ผู้ใช้เปลี่ยนรหัสผ่าน[ 107 ]
เซิร์ฟเวอร์ของLastPassมีช่องโหว่[ 115 ]แต่เนื่องจากการเข้ารหัสเพิ่มเติมและการรักษาความลับแบบส่งต่อ การโจมตีที่อาจเกิดขึ้นจึงไม่สามารถใช้ประโยชน์จากช่องโหว่นี้ได้ อย่างไรก็ตาม LastPass แนะนำให้ผู้ใช้เปลี่ยนรหัสผ่านสำหรับเว็บไซต์ที่มีช่องโหว่[ 116 ]
โครงการTorแนะนำให้ผู้ดำเนินการรีเลย์ Tor และผู้ดำเนินการบริการที่ซ่อนอยู่เพิกถอนและสร้างคีย์ใหม่หลังจากแก้ไข OpenSSL แต่ตั้งข้อสังเกตว่ารีเลย์ Tor ใช้คีย์สองชุด และการออกแบบแบบหลายฮอปของ Tor ช่วยลดผลกระทบจากการโจมตีรีเลย์ตัวเดียว[ 39 ]รีเลย์ 586 ตัวที่พบว่ามีความเสี่ยงต่อบั๊ก Heartbleed ถูกปิดใช้งานเพื่อเป็นการป้องกันไว้ก่อน[ 117 ] [ 118 ] [ 119 ] [ 120 ]
บริการที่เกี่ยวข้องกับเกม ได้แก่Steam , Minecraft , Wargaming , League of Legends , GOG.com , Origin , Sony Online Entertainment , Humble BundleและPath of Exileได้รับผลกระทบและได้รับการแก้ไขในภายหลัง[ 121 ]
แอปพลิเคชันซอฟต์แวร์
แอปพลิเคชันซอฟต์แวร์ที่มีช่องโหว่ ได้แก่:
- แอปพลิเคชันเซิร์ฟเวอร์ของ Hewlett-Packardหลายรายการเช่น HP System Management Homepage (SMH) สำหรับ Linux และ Windows [ 122 ]
- บางเวอร์ชันของFileMaker 13 [ 123 ]
- LibreOffice 4.2.0 ถึง 4.2.2 (แก้ไขใน 4.2.3) [ 124 ] [ 125 ]
- LogMeInอ้างว่าได้ "อัปเดตผลิตภัณฑ์และบริการหลายส่วนที่ใช้ OpenSSL" [ 126 ]
- ผลิตภัณฑ์ McAfeeหลายรายการโดยเฉพาะซอฟต์แวร์บางเวอร์ชันที่ให้การครอบคลุมการป้องกันไวรัสสำหรับ Microsoft Exchange, ไฟร์วอลล์ซอฟต์แวร์ และ McAfee Email and Web Gateways [ 127 ]
- Oracle MySQL Connector/C 6.1.0-6.1.3 และ Connector/ODBC 5.1.13, 5.2.5-5.2.6, 5.3.2 [ 128 ]
- Oracle Big Data Appliance (รวมถึง Oracle Linux 6) [ 128 ]
- Primavera P6 Professional Project Management (รวมถึง Primavera P6 Enterprise Project Portfolio Management) [ 128 ]
- WinSCP (ไคลเอนต์ FTP สำหรับ Windows) 5.5.2 และบางเวอร์ชันก่อนหน้า (มีช่องโหว่เฉพาะกับ FTP ผ่าน TLS/SSL ซึ่งได้รับการแก้ไขในเวอร์ชัน 5.5.3) [ 129 ]
- ผลิตภัณฑ์VMwareหลายรายการ รวมถึง VMware ESXi 5.5, VMware Player 6.0, VMware Workstation 10 และผลิตภัณฑ์ Horizon ซีรีส์ อีมูเลเตอร์ และชุดซอฟต์แวร์คลาวด์คอมพิวติ้ง[ 130 ]
แอปพลิเคชัน อื่นๆของ Oracle Corporationได้รับผลกระทบเช่นกัน[ 128 ]
ระบบปฏิบัติการ/เฟิร์มแวร์
ระบบปฏิบัติการ Linux หลายระบบได้รับผลกระทบ รวมถึงDebian [ 131 ] (และระบบปฏิบัติการที่พัฒนาต่อยอด เช่นLinux MintและUbuntu [ 132 ] ) และRed Hat Enterprise Linux [ 133 ] (และระบบปฏิบัติการที่พัฒนาต่อยอด เช่นCentOS [ 134 ] Oracle Linux 6 [ 128 ]และAmazon Linux [ 135 ] )ตลอดจนระบบปฏิบัติการและเฟิร์มแวร์ต่อไปนี้:
- Android 4.1.1 ใช้ในอุปกรณ์พกพาต่างๆ[ 136 ] Chris Smith เขียนในBoy Genius Reportว่ามีเพียง Android เวอร์ชันนี้เวอร์ชันเดียวที่ได้รับผลกระทบ แต่เป็น Android เวอร์ชันที่ได้รับความนิยม ( Chitikaอ้างว่า 4.1.1 อยู่ในอุปกรณ์ 50 ล้านเครื่อง[ 137 ] Google อธิบายว่าน้อยกว่า 10% ของอุปกรณ์ Android ที่เปิดใช้งาน) Android เวอร์ชันอื่นๆ ไม่มีความเสี่ยง เนื่องจากมีการปิดใช้งาน heartbeat หรือใช้ OpenSSL เวอร์ชันที่ไม่ได้รับผลกระทบ[ 138 ] [ 139 ]
- เฟิร์มแวร์สำหรับสถานีฐานAirPort บางรุ่น [ 140 ]
- เฟิร์มแวร์สำหรับเราเตอร์Cisco Systems บางรุ่น [ 83 ] [ 141 ] [ 142 ]
- เฟิร์มแวร์สำหรับเราเตอร์Juniper Networks บางรุ่น [ 142 ] [ 143 ]
- pfSense 2.1.0 และ 2.1.1 (แก้ไขใน 2.1.2) [ 144 ]
- เวอร์ชัน DD-WRTระหว่าง 19163 และ 23881 (แก้ไขใน 23882) [ 145 ]
- เฟิร์มแวร์ตระกูลผลิตภัณฑ์ Western Digital My Cloud [ 146 ]
บริการทดสอบช่องโหว่
มีบริการหลายอย่างที่พร้อมใช้งานเพื่อทดสอบว่า Heartbleed ส่งผลกระทบต่อไซต์ที่กำหนดหรือไม่ อย่างไรก็ตาม มีการอ้างว่าบริการหลายอย่างไม่มีประสิทธิภาพในการตรวจจับบั๊ก[ 147 ]เครื่องมือที่มีอยู่ ได้แก่:
- Tripwire SecureScan [ 148 ]
- AppCheck – การสแกนไบนารีแบบคงที่และการทดสอบแบบฟัซซิ่ง จาก Synopsys Software Integrity Group (เดิมคือ Codenomicon) [ 149 ]
- Pravail Security Analytics ของ Arbor Network [ 150 ]
- เครื่องมือตรวจสอบ Heartbleed ของ Norton Safeweb [ 151 ]
- เครื่องมือทดสอบ Heartbleed โดยบริษัทรักษาความปลอดภัยด้านไอทีของยุโรป[ 152 ]
- การทดสอบ Heartbleed โดยนักเข้ารหัสชาวอิตาลี Filippo Valsorda [ 153 ]
- การทดสอบช่องโหว่ Heartbleed โดย Cyberoam [ 154 ]
- Critical Watch เครื่องทดสอบภาวะเลือดออกในหัวใจออนไลน์ฟรี[ 155 ]
- โมดูลสแกนเนอร์ Metasploit Heartbleed [ 156 ]
- Heartbleed Server Scanner โดย Rehmann [ 157 ]
- Lookout Mobile Security Heartbleed Detector เป็นแอปสำหรับ อุปกรณ์ Androidที่ตรวจสอบเวอร์ชัน OpenSSL ของอุปกรณ์และระบุว่าเปิดใช้งาน heartbeat ที่มีช่องโหว่หรือไม่[ 158 ]
- ตัวตรวจสอบ Heartbleed ที่โฮสต์โดยLastPass [ 159 ]
- เครื่องสแกนช่วงเครือข่ายออนไลน์สำหรับช่องโหว่ Heartbleed โดย Pentest-Tools.com [ 160 ]
- เครื่องสแกนแบบออฟไลน์ อย่างเป็นทางการของ Red Hatที่เขียนด้วยภาษา Python [ 161 ]
- การทดสอบเซิร์ฟเวอร์ SSL ของ Qualys SSL Labs [ 162 ]ซึ่งไม่เพียงแต่ตรวจสอบข้อบกพร่อง Heartbleed เท่านั้น แต่ยังสามารถค้นหาข้อผิดพลาดในการใช้งาน SSL/TLS อื่นๆ ได้อีกด้วย
- ส่วนขยายเบราว์เซอร์ เช่น Chromebleed [ 163 ]และ FoxBleed [ 164 ]
- การวินิจฉัย SSL [ 165 ]
- CrowdStrike Heartbleed Scanner [ 166 ] – สแกนเราเตอร์ เครื่องพิมพ์ และอุปกรณ์อื่นๆ ที่เชื่อมต่อภายในเครือข่าย รวมถึงเว็บไซต์อินทราเน็ต[ 167 ]
- รายงานเว็บไซต์ Netcraft [ 168 ] – ระบุว่าความลับของเว็บไซต์อาจตกอยู่ในความเสี่ยงเนื่องจากการใช้ประโยชน์จาก Heartbleed ในอดีต โดยตรวจสอบข้อมูลจากแบบสำรวจ SSL ของ Netcraft เพื่อพิจารณาว่าเว็บไซต์นั้นได้เสนอส่วนขยาย TLS heartbeat ก่อนที่จะมีการเปิดเผย Heartbleed หรือไม่ ส่วนขยาย Netcraft สำหรับ Chrome, Firefox และ Opera [ 169 ]ยังทำการตรวจสอบนี้ด้วย ในขณะที่มองหาใบรับรองที่อาจถูกบุกรุก[ 170 ]
เครื่องมือรักษาความปลอดภัยอื่นๆ ได้เพิ่มการสนับสนุนสำหรับการค้นหาข้อบกพร่องนี้ ตัวอย่างเช่น Tenable Network Security ได้เขียนปลั๊กอินสำหรับ เครื่องสแกนช่องโหว่ Nessusที่สามารถสแกนหาข้อผิดพลาดนี้ได้[ 171 ]เครื่อง สแกนความปลอดภัย Nmapมีสคริปต์ตรวจจับ Heartbleed ตั้งแต่เวอร์ชัน 6.45 [ 172 ]
Sourcefireได้เผยแพร่ กฎ Snortเพื่อตรวจจับทราฟฟิกการโจมตี Heartbleed และทราฟฟิกตอบสนอง Heartbleed ที่เป็นไปได้[ 173 ]ซอฟต์แวร์วิเคราะห์แพ็กเก็ตแบบโอเพนซอร์ส เช่นWiresharkและtcpdumpสามารถระบุแพ็กเก็ต Heartbleed ได้โดยใช้ตัวกรองแพ็กเก็ต BPF เฉพาะที่สามารถใช้กับแพ็กเก็ตที่บันทึกไว้หรือทราฟฟิกสดได้[ 174 ]
การแก้ไข
ช่องโหว่ Heartbleed สามารถแก้ไขได้โดยการอัปเดต OpenSSL เป็น เวอร์ชัน ที่ได้รับการแก้ไขแล้ว (1.0.1g หรือใหม่กว่า) OpenSSL สามารถใช้งานได้ทั้งในรูปแบบโปรแกรมแบบสแตนด์อโลน ออบเจ็กต์ที่ใช้ร่วมกันแบบไดนามิกหรือไลบรารีที่เชื่อมโยงแบบคงที่ดังนั้น กระบวนการอัปเดตอาจต้องรีสตาร์ทกระบวนการที่โหลดด้วย OpenSSL เวอร์ชันที่มีช่องโหว่ รวมถึงการเชื่อมโยงโปรแกรมและไลบรารีที่เชื่อมโยงแบบคงที่อีกครั้ง ในทางปฏิบัติ หมายความว่าต้องอัปเดตแพ็กเกจที่เชื่อมโยง OpenSSL แบบคงที่ และรีสตาร์ทโปรแกรมที่กำลังทำงานอยู่เพื่อลบสำเนาโค้ด OpenSSL เก่าที่มีช่องโหว่ในหน่วยความจำ
หลังจากแก้ไขช่องโหว่แล้ว ผู้ดูแลระบบเซิร์ฟเวอร์ต้องจัดการกับการละเมิดความลับที่อาจเกิดขึ้น เนื่องจาก Heartbleed อนุญาตให้ผู้โจมตีเปิดเผยคีย์ส่วนตัวได้จึงต้องถือว่าคีย์เหล่านั้นถูกบุกรุก คู่คีย์ต้องสร้างใหม่ และใบรับรองที่ใช้คีย์เหล่านั้นต้องออกใหม่ ใบรับรองเก่าต้องถูกเพิกถอน Heartbleed ยังมีศักยภาพที่จะอนุญาตให้เปิดเผยความลับในหน่วยความจำอื่นๆ ดังนั้น วัสดุการตรวจสอบสิทธิ์อื่นๆ (เช่นรหัสผ่าน ) ก็ควรสร้างใหม่ด้วยเช่นกัน แทบเป็นไปไม่ได้เลยที่จะยืนยันว่าระบบที่ได้รับผลกระทบไม่ได้ถูกบุกรุก หรือเพื่อตรวจสอบว่าข้อมูลเฉพาะส่วนใดส่วนหนึ่งรั่วไหลหรือไม่[ 175 ]
เนื่องจากเป็นการยากหรือเป็นไปไม่ได้ที่จะระบุว่าข้อมูลประจำตัวอาจถูกบุกรุกเมื่อใดและผู้โจมตีอาจนำไปใช้ได้อย่างไร ระบบบางระบบอาจจำเป็นต้องมีการแก้ไขเพิ่มเติมแม้หลังจากแก้ไขช่องโหว่และเปลี่ยนข้อมูลประจำตัวแล้ว ตัวอย่างเช่น ลายเซ็นที่สร้างโดยคีย์ที่ใช้กับ OpenSSL เวอร์ชันที่มีช่องโหว่ อาจถูกสร้างขึ้นโดยผู้โจมตี ซึ่งทำให้เกิดความเป็นไปได้ที่ความสมบูรณ์ของข้อมูลจะถูกละเมิด และทำให้ลายเซ็นนั้นเสี่ยงต่อการถูกปฏิเสธการตรวจสอบความถูกต้องของลายเซ็นและความถูกต้องของการตรวจสอบสิทธิ์อื่นๆ ที่ทำด้วยคีย์ที่อาจถูกบุกรุก (เช่น การใช้ ใบรับรองไคลเอ็นต์ ) จะต้องดำเนินการโดยคำนึงถึงระบบที่เกี่ยวข้องโดยเฉพาะ
การรับรู้เกี่ยวกับการเพิกถอนใบรับรองความปลอดภัยของเบราว์เซอร์
เนื่องจาก Heartbleed คุกคามความเป็นส่วนตัวของคีย์ส่วนตัว ผู้ใช้เว็บไซต์ที่ถูกบุกรุกอาจยังคงได้รับผลกระทบจาก Heartbleed ต่อไปจนกว่าเบราว์เซอร์ของพวกเขาจะรับทราบการเพิกถอนใบรับรองหรือใบรับรองที่ถูกบุกรุกหมดอายุ[ 176 ] ด้วยเหตุนี้ การแก้ไขจึงขึ้นอยู่กับผู้ใช้ที่ใช้เบราว์เซอร์ที่มีรายการเพิกถอนใบรับรองที่ทันสมัย (หรือ รองรับ OCSP ) และเคารพการเพิกถอนใบรับรอง[ 177 ]
สาเหตุหลัก บทเรียนที่อาจได้รับ และปฏิกิริยาตอบสนอง
แม้ว่าการประเมินต้นทุนทั้งหมดของ Heartbleed จะทำได้ยาก แต่eWeekประมาณการไว้ที่ 500 ล้านดอลลาร์สหรัฐเป็นจุดเริ่มต้น[ 178 ]
บทความของ David A. Wheeler เรื่องHow to Prevent the next Heartbleedวิเคราะห์ว่าทำไม Heartbleed จึงไม่ถูกค้นพบเร็วกว่านี้ และเสนอเทคนิคหลายอย่างที่อาจนำไปสู่การระบุได้เร็วขึ้น รวมถึงเทคนิคที่อาจลดผลกระทบของมันได้ ตามที่ Wheeler กล่าว เทคนิคที่มีประสิทธิภาพที่สุดที่สามารถป้องกัน Heartbleed ได้คือชุดทดสอบที่ทำการทดสอบความทนทาน อย่างละเอียดถี่ถ้วน กล่าวคือ การทดสอบว่าอินพุตที่ไม่ถูกต้องทำให้เกิดความล้มเหลวแทนที่จะเป็นความสำเร็จ Wheeler เน้นว่าชุดทดสอบอเนกประสงค์ชุดเดียวสามารถใช้เป็นพื้นฐานสำหรับการใช้งาน TLS ทั้งหมดได้[ 179 ]
จากบทความในThe Conversationที่เขียนโดย Robert Merkel Heartbleed เผยให้เห็นความล้มเหลวครั้งใหญ่ของการวิเคราะห์ความเสี่ยง Merkel คิดว่า OpenSSL ให้ความสำคัญกับประสิทธิภาพมากกว่าความปลอดภัย ซึ่งในความคิดของเขาแล้วไม่สมเหตุสมผลอีกต่อไป แต่ Merkel พิจารณาว่า OpenSSL ไม่ควรถูกตำหนิมากเท่ากับผู้ใช้ OpenSSL ที่เลือกใช้ OpenSSL โดยไม่ลงทุนกับการตรวจสอบและการทดสอบที่ดีกว่า Merkel อธิบายว่ามีสองแง่มุมที่กำหนดความเสี่ยงที่บั๊กที่คล้ายกันมากขึ้นจะทำให้เกิดช่องโหว่ ประการแรก ซอร์สโค้ดของไลบรารีมีอิทธิพลต่อความเสี่ยงในการเขียนบั๊กที่มีผลกระทบมากเช่นนี้ ประการที่สอง กระบวนการของ OpenSSL ส่งผลต่อโอกาสในการตรวจจับบั๊กได้อย่างรวดเร็ว ในแง่มุมแรก Merkel กล่าวถึงการใช้ภาษาโปรแกรม Cเป็นปัจจัยเสี่ยงหนึ่งที่ทำให้เกิด Heartbleed ซึ่งสอดคล้องกับการวิเคราะห์ของ Wheeler [ 179 ] [ 180 ]
ในประเด็นเดียวกันนี้Theo de Raadtผู้ก่อตั้งและผู้นำ โครงการ OpenBSDและOpenSSHได้วิพากษ์วิจารณ์นักพัฒนา OpenSSL ที่เขียนรูทีนการจัดการหน่วยความจำของตนเอง และด้วยเหตุนี้ เขาอ้างว่าเป็นการหลีกเลี่ยง มาตรการตอบโต้การโจมตี ของไลบรารีมาตรฐาน C ของ OpenBSD โดยกล่าวว่า "OpenSSL ไม่ได้ถูกพัฒนาโดยทีมที่มีความรับผิดชอบ" [ 181 ] [ 182 ]หลังจากการเปิดเผย Heartbleed สมาชิกของโครงการ OpenBSD ได้แยก OpenSSL ออกเป็นLibreSSL [ 183 ] LibreSSLได้ทำการล้างโค้ดครั้งใหญ่ โดยลบโค้ด C มากกว่า 90,000 บรรทัดในสัปดาห์แรก[ 184 ]
Robin Seggelmann ผู้เขียนการเปลี่ยนแปลงที่นำ Heartbleed มาใช้[ 185 ]ระบุว่าเขาพลาดการตรวจสอบตัวแปรที่มีความยาวและปฏิเสธเจตนาที่จะส่งการใช้งานที่บกพร่อง[ 19 ]หลังจากการเปิดเผย Heartbleed Seggelmann แนะนำให้มุ่งเน้นไปที่ประเด็นที่สอง โดยระบุว่า OpenSSL ไม่ได้รับการตรวจสอบจากผู้คนมากพอ[ 186 ]แม้ว่างานของ Seggelmann จะได้รับการตรวจสอบโดยนักพัฒนาหลักของ OpenSSL แต่การตรวจสอบนั้นมีจุดประสงค์เพื่อตรวจสอบการปรับปรุงการทำงานด้วย ซึ่งเป็นสถานการณ์ที่ทำให้มองข้ามช่องโหว่ได้ง่ายขึ้นมาก[ 179 ]
นักพัฒนาหลักของ OpenSSL อย่าง Ben Laurieอ้างว่าการตรวจสอบความปลอดภัยของ OpenSSL จะตรวจพบ Heartbleed [ 187 ]วิศวกรซอฟต์แวร์ John Walsh แสดงความคิดเห็นว่า:
ลองคิดดูสิ OpenSSL มีคนทำงานเต็มเวลาแค่สองคนเท่านั้นที่จะเขียน บำรุงรักษา ทดสอบ และตรวจสอบโค้ดสำคัญทางธุรกิจถึง 500,000 บรรทัด[ 188 ]
สตีฟ มาร์เควส ประธานมูลนิธิ OpenSSL กล่าวว่า "ปริศนาไม่ได้อยู่ที่อาสาสมัครที่ทำงานหนักเกินไปเพียงไม่กี่คนพลาดบั๊กนี้ไป ปริศนาอยู่ที่ว่าทำไมมันถึงไม่เกิดขึ้นบ่อยกว่านี้" [ 188 ]เดวิด เอ. วีลเลอร์ อธิบายว่าการตรวจสอบเป็นวิธีที่ยอดเยี่ยมในการค้นหาช่องโหว่ในกรณีทั่วไป แต่ตั้งข้อสังเกตว่า "OpenSSL ใช้โครงสร้างที่ซับซ้อนโดยไม่จำเป็น ซึ่งทำให้ทั้งมนุษย์และเครื่องจักรตรวจสอบได้ยากขึ้น" เขาเขียนว่า:
ควรมีการพยายามอย่างต่อเนื่องเพื่อลดความซับซ้อนของโค้ด เพราะมิเช่นนั้น การเพิ่มความสามารถเพียงอย่างเดียวจะทำให้ซอฟต์แวร์มีความซับซ้อนมากขึ้นเรื่อยๆ โค้ดควรได้รับการปรับปรุงแก้ไขเมื่อเวลาผ่านไปเพื่อให้ง่ายและชัดเจน ไม่ใช่แค่เพิ่มฟีเจอร์ใหม่ๆ อย่างต่อเนื่อง เป้าหมายควรเป็นโค้ดที่ "ถูกต้องอย่างเห็นได้ชัด" ตรงข้ามกับโค้ดที่ซับซ้อนจน "ฉันมองไม่เห็นปัญหาใดๆ" [ 179 ]
ตามที่นักวิจัยด้านความปลอดภัยDan Kaminskyกล่าวไว้ Heartbleed เป็นสัญญาณของปัญหาทางเศรษฐกิจที่ต้องได้รับการแก้ไข เมื่อพิจารณาถึงเวลาที่ใช้ในการตรวจจับข้อผิดพลาดง่ายๆ นี้ในฟีเจอร์ง่ายๆ จากการพึ่งพา "ที่สำคัญ" Kaminsky เกรงว่าจะมีช่องโหว่มากมายในอนาคตหากไม่มีการดำเนินการใดๆ เมื่อ Heartbleed ถูกค้นพบ OpenSSL ได้รับการดูแลโดยอาสาสมัครเพียงไม่กี่คน โดยมีเพียงคนเดียวที่ทำงานเต็มเวลา[ 189 ]เงินบริจาคประจำปีให้กับโครงการ OpenSSL อยู่ที่ประมาณ 2,000 ดอลลาร์สหรัฐ[ 190 ]เว็บไซต์ Heartbleed จาก Codenomicon แนะนำให้บริจาคเงินให้กับโครงการ OpenSSL [ 3 ]หลังจากทราบเกี่ยวกับเงินบริจาคในช่วง 2 หรือ 3 วันหลังจากการเปิดเผย Heartbleed ซึ่งรวมเป็นเงิน 841 ดอลลาร์สหรัฐ Kaminsky แสดงความคิดเห็นว่า "เรากำลังสร้างเทคโนโลยีที่สำคัญที่สุดสำหรับเศรษฐกิจโลกบนโครงสร้างพื้นฐานที่ได้รับเงินทุนน้อยอย่างน่าตกใจ" [ 191 ] Ben Laurie นักพัฒนาหลักได้ระบุว่าโครงการนี้ "ไม่ได้รับเงินทุนเลย" [ 190 ]แม้ว่ามูลนิธิซอฟต์แวร์ OpenSSL จะไม่มีโปรแกรมให้รางวัลสำหรับการค้นหาข้อบกพร่องแต่โครงการ Internet Bug Bounty ได้มอบเงินรางวัล 15,000 ดอลลาร์สหรัฐให้กับ Neel Mehta จาก Google ซึ่งเป็นผู้ค้นพบ Heartbleed สำหรับการเปิดเผยข้อมูลอย่างมีความรับผิดชอบ[ 190 ]ต่อมา Mehta ได้บริจาคเงินรางวัลของเขาให้กับการระดมทุนของมูลนิธิ Freedom of the Press [ 192 ]
Paul Chiusano แนะนำว่า Heartbleed อาจเป็นผลมาจากเศรษฐศาสตร์ซอฟต์แวร์ที่ล้มเหลว[ 193 ]
การตอบสนองโดยรวมของอุตสาหกรรมต่อวิกฤตการณ์นี้คือโครงการCore Infrastructure Initiativeซึ่งเป็นโครงการมูลค่าหลายล้านดอลลาร์ที่มูลนิธิ Linux ประกาศ เมื่อวันที่ 24 เมษายน 2557 เพื่อจัดหาเงินทุนให้กับองค์ประกอบสำคัญของโครงสร้างพื้นฐานข้อมูลทั่วโลก[ 194 ]โครงการนี้มีจุดประสงค์เพื่อให้ผู้พัฒนาหลักสามารถทำงานเต็มเวลาในโครงการของตนและจ่ายค่าใช้จ่ายสำหรับการตรวจสอบความปลอดภัย โครงสร้างพื้นฐานฮาร์ดแวร์และซอฟต์แวร์ การเดินทาง และค่าใช้จ่ายอื่นๆ[ 195 ] OpenSSL เป็นผู้เข้าชิงที่จะได้รับเงินทุนจากโครงการนี้เป็นรายแรก[ 194 ]
หลังจากการค้นพบ Google ได้ก่อตั้งProject Zeroซึ่งมีหน้าที่ค้นหาช่องโหว่ Zero-dayเพื่อช่วยรักษาความปลอดภัยของเว็บและสังคม[ 196 ] [ 197 ]
บรรณานุกรม
- บร็อก, เควิน (2019). "สู่การศึกษาเชิงวาทศิลป์ของรหัส"การศึกษาเชิงวาทศิลป์เกี่ยวกับรหัสสำนักพิมพ์มหาวิทยาลัยมิชิแกน หน้า 9–32 . ISBN 978-0-472-13127-3. JSTOR j.ctvndv9pc.8 . สืบค้นเมื่อ 19 มกราคม 2021 .
- หวู่ ฮัน (พฤษภาคม 2014). ช่องโหว่ Heartbleed ใน OpenSSL: กรณีศึกษาเชิงนิติวิทยาศาสตร์ในโรงเรียนแพทย์(PDF) . NJMS Advancing Research IT (รายงาน). มหาวิทยาลัยรัตเกอร์ส. สืบค้นเมื่อ19 มกราคม 2021 .
- Durumeric, Zakir; Li, Frank; และคณะ (5 พฤศจิกายน 2014). "เรื่องของ Heartbleed". รายงานการประชุม Internet Measurement Conference ปี 2014.นิวยอร์ก, นิวยอร์ก, สหรัฐอเมริกา: ACM. หน้า 475–488 . doi : 10.1145/2663716.2663755 . ISBN 978-1-4503-3213-2S2CID 142767
ลิงก์ภายนอก
- สรุปและคำถามและคำตอบเกี่ยวกับบั๊กโดย Codenomicon Ltd
- ข้อมูลสำหรับองค์กรและบุคคลชาวแคนาดา
- รายชื่อประกาศด้านความปลอดภัยทั้งหมดจัดเก็บไว้เมื่อวันที่ 19 กรกฎาคม 2561 ที่Wayback Machine
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เลือดออกในหัวใจ
Heartbleed เป็น ช่องโหว่ด้านความปลอดภัย ใน ไลบรารี การเข้ารหัส OpenSSL เวอร์ชันเก่าบางเวอร์ชัน ซึ่งเป็นการใช้งาน โปรโตคอล Transport Layer Security (TLS) ที่ใช้กันอย่างแพร่หลาย...
ประวัติศาสตร์
ส่วนขยาย Heartbeat สำหรับ โปรโตคอล Transport Layer Security (TLS) และ Datagram Transport Layer Security (DTLS) ได้รับการเสนอให้เป็นมาตรฐานในเดือนกุมภาพันธ์ 2012 โดยRFC 6520 [ 18 ] ส่วน...
การค้นพบ
ตามที่ Mark J. Cox จาก OpenSSL กล่าวไว้ Neel Mehta จากทีมรักษาความปลอดภัยของ Google ได้รายงาน Heartbleed ให้กับทีม OpenSSL เป็นการส่วนตัวเมื่อวันที่ 1 เมษายน 2557 เวลา 11:09 UTC [ 23 ]
แก้ไขข้อผิดพลาดและปรับใช้
Bodo Möller และ Adam Langley จาก Google ได้เตรียมการแก้ไขสำหรับ Heartbleed แพทช์ ที่ได้นั้น ถูกเพิ่มเข้าไปใน ระบบติดตามปัญหา ของ Red Hat เมื่อวันที่ 21 มีนาคม 2014 [ 41 ] Stephen N.