CVE-2014-0160 aka Heartbleedเป็นช่องโหว่ใน OpenSSL มันดูน่ากลัว
ฉันจะตรวจสอบว่าฉันได้รับผลกระทบได้อย่างไร?
หากฉันได้รับผลกระทบฉันต้องทำอย่างไร เห็นได้ชัดว่าการอัปเกรดไม่เพียงพอ
CVE-2014-0160 aka Heartbleedเป็นช่องโหว่ใน OpenSSL มันดูน่ากลัว
ฉันจะตรวจสอบว่าฉันได้รับผลกระทบได้อย่างไร?
หากฉันได้รับผลกระทบฉันต้องทำอย่างไร เห็นได้ชัดว่าการอัปเกรดไม่เพียงพอ
คำตอบ:
ช่องโหว่นี้มีผลกระทบสูงเนื่องจากถ้าระบบของคุณถูกโจมตีช่องโหว่นี้จะยังคงมีความเสี่ยงแม้หลังจากทำการปะแก้และการโจมตีอาจไม่ทิ้งร่องรอยใด ๆ ไว้ในบันทึก โอกาสที่ถ้าคุณแก้ไขอย่างรวดเร็วและคุณไม่ได้เป็นเป้าหมายสูงโปรไฟล์ไม่มีใครจะโจมตีคุณได้ แต่ก็ยากที่จะแน่ใจ
ซอฟต์แวร์ buggy คือไลบรารี OpenSSL 1.0.1 ถึง 1.0.1fและ OpenSSL 1.0.2 ถึง beta1 รุ่นที่เก่ากว่า (0.9.x, 1.0.0) และรุ่นที่มีการแก้ไขข้อบกพร่อง (1.0.1g เป็นต้นไป, 1.0.2 beta 2 เป็นต้นไป) จะไม่ได้รับผลกระทบ มันเป็นข้อผิดพลาดในการใช้งานไม่ใช่ข้อบกพร่องในโปรโตคอลดังนั้นเฉพาะโปรแกรมที่ใช้ไลบรารี OpenSSL เท่านั้นที่จะได้รับผลกระทบ
คุณสามารถใช้เครื่องมือบรรทัดคำสั่งopenssl version -a
เพื่อแสดงหมายเลขรุ่น OpenSSL โปรดสังเกตว่าบางดิสทริบิวชันพอร์ตแก้ไขข้อผิดพลาดเพื่อเผยแพร่ก่อนหน้า หากบันทึกการเปลี่ยนแปลงของแพคเกจของคุณกล่าวถึงการแก้ไขข้อผิดพลาด Heartbleed นั่นก็ดีแม้ว่าคุณจะเห็นเวอร์ชันเช่น 1.0.1f หากopenssl version -a
กล่าวถึงวันที่สร้าง (ไม่ใช่วันที่ในบรรทัดแรก) ของ 2014-04-07 ในช่วงเย็น UTC หรือหลังจากนั้นคุณควรจะปรับ โปรดทราบว่าแพ็คเกจ OpenSSL อาจมีชื่อ1.0.0
เป็นของตัวเองแม้ว่าเวอร์ชั่นนั้นจะเป็นเวอร์ชั่น 1.0.1 ( หมายถึงความเข้ากันได้ของไบนารี)1.0.0
การแสวงหาผลประโยชน์จะดำเนินการผ่านการประยุกต์ใช้ซึ่งใช้ห้องสมุด OpenSSL ที่จะใช้การเชื่อมต่อ SSL แอปพลิเคชั่นจำนวนมากใช้ OpenSSL สำหรับบริการการเข้ารหัสลับอื่น ๆ และก็ไม่เป็นไร: ข้อผิดพลาดในการใช้งานคุณสมบัติเฉพาะของโปรโตคอล SSL,“ heartbeat”
คุณอาจต้องการตรวจสอบว่าโปรแกรมใดที่เชื่อมโยงกับห้องสมุดในระบบของคุณ บนระบบที่ใช้ dpkg และ apt (Debian, Ubuntu, Mint, …) คำสั่งต่อไปนี้จะแสดงรายการแพ็กเกจที่ติดตั้งนอกเหนือจากไลบรารีที่ใช้libssl1.0.0
(แพ็กเกจที่ได้รับผลกระทบ):
apt-cache rdepends libssl1.0.0 | tail -n +3 |
xargs dpkg -l 2>/dev/null | grep '^ii' | grep -v '^ii lib'
หากคุณใช้งานซอฟต์แวร์เซิร์ฟเวอร์บางตัวที่อยู่ในรายการนี้และรับฟังการเชื่อมต่อ SSLคุณอาจได้รับผลกระทบ สิ่งนี้เกี่ยวข้องกับเว็บเซิร์ฟเวอร์เซิร์ฟเวอร์อีเมลเซิร์ฟเวอร์ VPN ฯลฯ คุณจะรู้ว่าคุณเปิดใช้งาน SSL เพราะคุณต้องสร้างใบรับรองไม่ว่าจะโดยการส่งคำขอลงนามใบรับรองไปยังหน่วยงานผู้ออกใบรับรองหรือโดยการเซ็นชื่อด้วยตนเอง ใบรับรอง (เป็นไปได้ว่าบางขั้นตอนการติดตั้งได้สร้างใบรับรองที่ลงชื่อด้วยตัวเองโดยที่คุณไม่สังเกตเห็น แต่โดยทั่วไปแล้วจะทำเฉพาะกับเซิร์ฟเวอร์ภายในไม่ใช่สำหรับเซิร์ฟเวอร์ที่เปิดเผยต่ออินเทอร์เน็ต) หากคุณใช้เซิร์ฟเวอร์ที่เสี่ยงต่อการสัมผัสกับอินเทอร์เน็ต เว้นแต่ว่าไฟล์บันทึกของคุณจะไม่มีการเชื่อมต่อตั้งแต่ประกาศใน 2014-04-07 (สิ่งนี้อนุมานว่าช่องโหว่ไม่ได้ถูกนำไปใช้ก่อนประกาศ) หากเซิร์ฟเวอร์ของคุณถูกเปิดเผยภายในเท่านั้น
ซอฟต์แวร์ไคลเอ็นต์จะได้รับผลกระทบเฉพาะเมื่อคุณใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ที่เป็นอันตราย ดังนั้นหากคุณเชื่อมต่อกับผู้ให้บริการอีเมลของคุณโดยใช้ IMAPS คุณไม่จำเป็นต้องกังวล (เว้นแต่ผู้ให้บริการจะถูกโจมตี - แต่ถ้าเป็นกรณีที่พวกเขาควรแจ้งให้คุณทราบ) แต่ถ้าคุณเรียกดูเว็บไซต์สุ่มด้วยเบราว์เซอร์ที่มีช่องโหว่ ที่จะต้องกังวล. จนถึงตอนนี้ดูเหมือนว่าช่องโหว่ที่ไม่ได้ถูกนำไปใช้ก่อนที่จะถูกค้นพบดังนั้นคุณต้องกังวลถ้าคุณเชื่อมต่อกับเซิร์ฟเวอร์ที่เป็นอันตรายตั้งแต่ 2014-04-08
โปรแกรมต่อไปนี้ไม่ได้รับผลกระทบเนื่องจากไม่ได้ใช้ OpenSSL เพื่อใช้งาน SSL:
ข้อผิดพลาดช่วยให้ลูกค้าที่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ SSL ของคุณเพื่อเรียกคืนหน่วยความจำเกี่ยวกับ 64kB จากเซิร์ฟเวอร์ในเวลา ลูกค้าไม่จำเป็นต้องได้รับการตรวจสอบความถูกต้อง แต่อย่างใด โดยการโจมตีซ้ำลูกค้าสามารถถ่ายโอนข้อมูลส่วนต่าง ๆ ของหน่วยความจำในความพยายามอย่างต่อเนื่อง สิ่งนี้อาจทำให้ผู้โจมตีสามารถเรียกคืนข้อมูลใด ๆ ที่อยู่ในหน่วยความจำของกระบวนการเซิร์ฟเวอร์รวมถึงกุญแจรหัสผ่านคุกกี้ ฯลฯ
ข้อมูลสำคัญชิ้นหนึ่งที่ผู้โจมตีอาจสามารถเรียกคืนได้คือคีย์ส่วนตัว SSL ของเซิร์ฟเวอร์ ด้วยข้อมูลนี้ผู้โจมตีสามารถเลียนแบบเซิร์ฟเวอร์ของคุณ
ข้อผิดพลาดยังอนุญาตให้เซิร์ฟเวอร์ใด ๆ ที่ไคลเอ็นต์ SSL ของคุณเชื่อมต่อเพื่อเรียกข้อมูลเกี่ยวกับหน่วยความจำ 64kB จากไคลเอ็นต์ในแต่ละครั้ง นี่เป็นสิ่งที่น่ากังวลหากคุณใช้ไคลเอนต์ที่มีช่องโหว่เพื่อจัดการข้อมูลที่มีความละเอียดอ่อนจากนั้นเชื่อมต่อกับเซิร์ฟเวอร์ที่ไม่น่าเชื่อถือด้วยไคลเอนต์เดียวกัน สถานการณ์การโจมตีในฝั่งนี้จึงมีโอกาสน้อยกว่าฝั่งเซิร์ฟเวอร์อย่างมาก
โปรดทราบว่าสำหรับการแจกแจงทั่วไปไม่มีผลกระทบด้านความปลอดภัยต่อการกระจายแพคเกจเนื่องจากความสมบูรณ์ของแพ็คเกจขึ้นอยู่กับลายเซ็น GPG ไม่ใช่การส่งผ่าน SSL
ทำให้เซิร์ฟเวอร์ที่ได้รับผลกระทบทั้งหมดออฟไลน์ ตราบใดที่พวกเขากำลังทำงานพวกเขากำลังรั่วข้อมูลสำคัญ
อัพเกรดแพคเกจห้องสมุด OpenSSL การแจกแจงทั้งหมดควรมีการแก้ไขในตอนนี้ (ไม่ว่าจะเป็น 1.0.1g หรือด้วยโปรแกรมแก้ไขที่แก้ไขข้อบกพร่องโดยไม่ต้องเปลี่ยนหมายเลขเวอร์ชั่น) หากคุณรวบรวมจากแหล่งที่มาอัพเกรดเป็น 1.0.1g หรือสูงกว่า ตรวจสอบให้แน่ใจว่ามีการรีสตาร์ทเซิร์ฟเวอร์ที่ได้รับผลกระทบทั้งหมด
บน Linux คุณสามารถตรวจสอบว่ากระบวนการที่อาจได้รับผลกระทบยังทำงานอยู่หรือไม่grep 'libssl.*(deleted)' /proc/*/maps
สร้างคีย์ใหม่ สิ่งนี้จำเป็นเนื่องจากข้อผิดพลาดอาจทำให้ผู้โจมตีสามารถรับคีย์ส่วนตัวเก่าได้ ทำตามขั้นตอนเดียวกันกับที่คุณใช้ในตอนแรก
ตอนนี้คุณมีคีย์ที่ไม่ได้รับการรับรองใหม่คุณสามารถนำเซิร์ฟเวอร์ของคุณกลับมาออนไลน์ได้
เพิกถอนใบรับรองเก่า
การประเมินความเสียหาย : ข้อมูลใด ๆ ที่อยู่ในหน่วยความจำของกระบวนการที่ให้บริการการเชื่อมต่อ SSL อาจรั่วไหลออกมา ซึ่งอาจรวมถึงรหัสผ่านผู้ใช้และข้อมูลลับอื่น ๆ คุณต้องประเมินว่าข้อมูลนี้อาจเป็นอะไร
เซิร์ฟเวอร์ที่รับฟังเฉพาะ localhost หรือบนอินทราเน็ตเท่านั้นที่ต้องพิจารณาหากผู้ใช้ที่ไม่น่าเชื่อถือสามารถเชื่อมต่อกับพวกเขาได้
สำหรับลูกค้ามีเพียงบางสถานการณ์ที่ข้อผิดพลาดสามารถถูกใช้ประโยชน์ได้: การหาประโยชน์จะต้องให้คุณใช้กระบวนการไคลเอ็นต์เดียวกันเพื่อ
ดังนั้นตัวอย่างเช่นไคลเอนต์อีเมลที่คุณใช้เพื่อเชื่อมต่อกับผู้ให้บริการอีเมลของคุณเท่านั้น (ไม่ใช่คนที่ไม่น่าเชื่อถือ) ไม่ใช่ข้อกังวล (ไม่ใช่เซิร์ฟเวอร์ที่เป็นอันตราย) การรัน wget เพื่อดาวน์โหลดไฟล์นั้นไม่ได้เป็นเรื่องที่น่ากังวล
หากคุณทำเช่นนั้นระหว่าง 2014-04-07 ตอนเย็น UTC และอัปเกรดไลบรารี OpenSSL ของคุณให้พิจารณาข้อมูลใด ๆ ที่อยู่ในหน่วยความจำของลูกค้าเพื่อให้ถูกบุกรุก
lsof -c firefox | grep 'ssl\|crypto'
ฉันจะได้รับ /usr/lib64/libssl.so.1.0.0, /usr/lib64/libcrypto.so.1.0.0, /lib64/libk5crypto.so.3.1 และ /opt/firefox/libssl3.so .
เพื่อทดสอบว่าคุณมีความเสี่ยงไปที่นี่หรือไม่: http://filippo.io/Heartbleed/
หากคุณพบว่าคุณมีความเสี่ยงต่อการอัพเดทopenssl
และรีสตาร์ทเว็บเซิร์ฟเวอร์ของคุณ
ไม่มีวิธีการกู้คืนจากข้อผิดพลาดนี้ บันทึกบันทึกทั้งหมดพวกเขาจะต้องในกรณีที่มีคนตระหนักถึงความเสี่ยงที่มีอยู่จริงก่อนที่จะประกาศ