ทำไมการอัพเกรดโดยไม่ตั้งใจไม่ได้แก้ไขข้อผิดพลาดของหัวใจ


20

ฉันได้ปฏิบัติตามคำแนะนำในการติดตั้งการอัพเกรดแบบอัตโนมัติเพื่อติดตั้งการอัพเดทความปลอดภัยอัตโนมัติบนเซิร์ฟเวอร์ของฉัน (เซิร์ฟเวอร์ Ubuntu 13.10)

https://help.ubuntu.com/community/AutomaticSecurityUpdates

คุณช่วยฉันเข้าใจไหมว่าทำไมเช้านี้ฉันยังมีข้อผิดพลาด heartbleed บนเซิร์ฟเวอร์ของฉัน

$ openssl version -a
OpenSSL 1.0.1e 11 Feb 2013
built on: Wed Jan  8 20:58:47 UTC 2014
platform: debian-amd64

ข้อมูลอื่น ๆ:

$ cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

$ cat /var/log/apt/history.log
....
Start-Date: 2014-04-03  15:33:59
Commandline: apt-get install nginx
Install: libxau6:amd64 (1.0.8-1, automatic), libx11-data:amd64 (1.6.1-1ubuntu1, automatic), libxcb1:amd64 (1.9.1-3ubuntu1, automatic), libvpx1:amd64 (1.2.0-2, automatic), libgd3:amd64 (2.1.0-2, automatic), libxdmcp6:amd64 (1.1.1-1, automatic), libxslt1.1:amd64 (1.1.28-2, automatic), nginx-common:amd64 (1.4.1-3ubuntu1.3, automatic), nginx:amd64 (1.4.1-3ubuntu1.3), nginx-full:amd64 (1.4.1-3ubuntu1.3, automatic), libx11-6:amd64 (1.6.1-1ubuntu1, automatic), libxpm4:amd64 (3.5.10-1, automatic)
End-Date: 2014-04-03  15:34:02

Start-Date: 2014-04-04  10:26:38
Commandline: apt-get install unattended-upgrades
Install: unattended-upgrades:amd64 (0.79.3ubuntu8)
End-Date: 2014-04-04  10:26:40

ขอขอบคุณ


2
ไม่ตอบคำถามของคุณ แต่ดูที่คำตอบในนี้เพื่อแก้ไขระบบปฏิบัติการของคุณaskubuntu.com/questions/444817/am-i-affected-heartbleed-bug
Ring Ø

ฉันยอมรับว่าคุณควรมีรุ่นที่ปรับปรุงแล้ว เซิร์ฟเวอร์ 12.04 ของฉันใช้การอัปเดตอัตโนมัติและอัปเดตเมื่อวาน คุณตรวจสอบ/var/log/apt/history.logไหม
Jos

@jos ฉันมีเนื้อหาของ /var/log/apt/history.log ของฉันไม่มีข้อมูลเพิ่มเติมที่นี่
Guillaume Vincent

คำตอบ:


28

คุณไม่มีช่องโหว่ Heartbleed บนเซิร์ฟเวอร์ของคุณ OpenSSL ได้รับการแก้ไขเพื่อแก้ไขปัญหานี้ (โดยไม่ต้องอัปเกรด)

คุณได้ทิ้งสายสำคัญหลายเส้นในเอาท์พุทเวอร์ชั่น OpenSSL นั่นเป็นวิธีที่คุณรู้ว่ามันได้รับการแก้ไขไม่ใช่หมายเลขเวอร์ชัน:

openssl version -a                                                                ✭
OpenSSL 1.0.1e 11 Feb 2013
built on: Mon Apr  7 20:33:19 UTC 2014
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/lib/ssl"

บรรทัด 'build on' เป็นสิ่งสำคัญที่นี่ในวันที่ 7 เมษายนหรือหลังจาก: คุณจะดี มิฉะนั้นคุณกำลังมีปัญหา

อัปเดตเนื่องจากวันที่สร้างไม่ดี:

บางทีการอัปเกรดแบบไม่ต้องใส่ข้อมูลยังไม่ได้ทำงานบนเซิร์ฟเวอร์ของฉันสคริปต์ใน cron.daily ถูกกำหนดค่าให้ทำงานที่ 6:25

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

ตรวจสอบเนื้อหาของ /etc/apt/apt.conf.d/10periodic และตรวจสอบว่ามีการติดตั้งการปรับปรุงความปลอดภัย:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

ที่มา: https://help.ubuntu.com/lts/serverguide/automatic-updates.html


1
ฉันมีปัญหา :(built on: Wed Jan 8 20:58:47 UTC 2014 platform: debian-amd64
Guillaume Vincent

เพียงแค่เรียกใช้sudo apt-get update && sudo apt-get dist-upgradeและคุณควรจะทันสมัย
Edd Turtle

ขอบคุณ @EddTurtle นี่ไม่ใช่คำถามของฉัน! คำถามของฉันคือทำไมการอัพเดทอัตโนมัติไม่ทำงาน!
Guillaume Vincent

/etc/apt/apt.conf.d/10periodic ของฉันไม่ดีหรือ cron อาจไม่พบการอัพเกรดในเวลาตี 5 ขอบคุณ @ mathieu-comandon
Guillaume Vincent

@ guillaumevincent ฉันเพิ่งสังเกตเห็นว่าการอัพเกรดแบบอัตโนมัติเป็นแพคเกจสุดท้ายที่คุณติดตั้ง - ดังนั้นจึงต้องมีปัญหาการกำหนดค่า
Jos

12

ก่อนอื่นคุณต้องทำการอัพเกรด การอัพเกรดแบบไม่ต้องใส่ข้อมูลจะทำงานวันละครั้งเท่านั้นและใช้เวลาน้อยกว่า 1 วันตั้งแต่การแก้ไขออกมา (2014-04-07 ประมาณ 20:00 GMT) เพื่อความปลอดภัยตรวจสอบให้แน่ใจว่าคุณได้อัพเกรดเป็นlibssl1.0.0รุ่น 1.0.1e-3ubuntu1.2 หรือสูงกว่า (แม่นยำการแก้ไขมาในรุ่น 1.0.1-4ubuntu5.12)

ถัดไปโปรดทราบว่านี่เป็นช่องโหว่ที่ไม่ดีมาก: อาจทำให้ผู้โจมตีสามารถรับข้อมูลที่เป็นความลับได้โดยเชื่อมต่อกับเซิร์ฟเวอร์ที่มีช่องโหว่ของคุณ หากคุณใช้เซิร์ฟเวอร์ SSL ข้อมูลใด ๆ ที่อยู่ในหน่วยความจำของเซิร์ฟเวอร์จะมีการรั่วไหลเล็กน้อยก่อนที่จะมีการประกาศช่องโหว่ ซึ่งรวมถึงคีย์ส่วนตัว SSL ของเซิร์ฟเวอร์ดังนั้นคุณควรสร้างรหัสใหม่และยกเลิกรหัสเดิม

สำหรับข้อมูลเพิ่มเติมให้ดูที่วิธีแก้ไขข้อผิดพลาด Heartbleed (CVE-2014-0160) ใน OpenSSL


อาจมีการรั่วไหลของสิ่งใดในหน่วยความจำเซิร์ฟเวอร์เป็นเวลาประมาณสองปีไม่ใช่เฉพาะเวลาที่ประกาศ
pieroxy

@pieroxy ทุกอย่างที่อยู่ในหน่วยความจำของเซิร์ฟเวอร์เป็นเวลานานมีแนวโน้มสูงที่จะถูกเขียนทับจนถึงจุดที่คุณควรกังวลเกี่ยวกับเวกเตอร์การโจมตีอื่น ๆ อีกมากมาย ข้อยกเว้นคือถ้าคุณกังวลเกี่ยวกับฝ่ายตรงข้ามที่อาจรู้จักข้อผิดพลาดก่อนหน้านี้และใช้ประโยชน์จากมันอย่างเงียบ ๆ - ฝ่ายตรงข้ามระดับรัฐบาลอาจรู้จักกันดี
Gilles 'หยุดความชั่วร้าย'

7

คุณไม่สามารถเชื่อถือในสตริงรุ่นภายในได้ รุ่นบอกว่า1.0.1eและข้อบกพร่องที่มีผลต่อตั้งแต่ 1.0.0 ถึง 1.0.0f นี่เพียงพอหรือไม่ที่จะพิจารณาว่าคุณยังคงเป็น openssl รุ่นที่มีช่องโหว่อยู่หรือไม่? ไม่เวอร์ชัน OpenSSL ภายในจะไม่เปลี่ยนแปลงแม้จะมีการอัปเดตบ้าง วิธีเดียวที่จะระบุเวอร์ชันของคุณได้อย่างน่าเชื่อถือคือมองหาเวอร์ชั่นของapt-cache policyเครื่องมือจัดการแพ็คเกจโดยใช้หรือเครื่องมืออื่น ๆ :

➜  ~  apt-cache policy openssl
openssl:
  Installed: 1.0.1f-1
  Candidate: 1.0.1f-1
  Version table:
 *** 1.0.1f-1 0
        500 http://http.debian.net/debian/ testing/main i386 Packages
        100 /var/lib/dpkg/status
➜  ~  dpkg -l openssl
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  openssl        1.0.1f-1     i386         Secure Sockets Layer toolkit - cr
➜  ~  

อย่างที่คุณเห็นรุ่น openssl ของฉันยอดเยี่ยมกว่าดูเหมือนจะได้รับผลกระทบเนื่องจากเป็น 1.0.1f ตอนนี้ถ้าฉันตรวจสอบการเปลี่ยนแปลง:

➜  ~ apt-get changelog openssl
openssl (1.0.1f-1) unstable; urgency=high

  * New upstream version
    - Fix for TLS record tampering bug CVE-2013-4353
    - Drop the snapshot patch
  * update watch file to check for upstream signature and add upstream pgp key.
  * Drop conflicts against openssh since we now on a released version again.

 -- Kurt Roeckx <kurt@roeckx.be>  Mon, 06 Jan 2014 18:50:54 +0100

ใช่ฉันยังคงได้รับผลกระทบ ไม่มีการอ้างอิง CVE-2014-0160 ในการเปลี่ยนแปลงใด ๆ แต่ฉันไม่ได้ใช้บริการ SSL / TSL ใด ๆ ดังนั้นฉันจึงสามารถรอได้ ฉันไม่ต้องสร้างใบรับรอง SSL โดยใช้ OpenSSL เวอร์ชันนี้ ถ้าฉันทำฉันก็ต้องทำตามคำแนะนำของ Gilles: ถอดบริการเพิกถอนใบรับรองสร้างใหม่


หมายเหตุ: "apt-cache changelog" ไม่ใช่คำสั่งที่ถูกต้องสำหรับฉัน แต่ "aptitude changelog" คือ
ColinM

1
@ColinM ขออภัยเป็น apt-get ไม่ใช่ apt-cache ปัญหาคลิปบอร์ด
Braiam
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.