บั๊ก“ Dirty COW” คืออะไรและฉันจะทำให้ระบบของฉันปลอดภัยได้อย่างไร


22

ฉันเพิ่งได้ยินข้อผิดพลาด "Dirty COW" นี้ที่อนุญาตให้ผู้ใช้ที่มีสิทธิ์เข้าถึงเพื่ออ่านไฟล์สามารถเขียนถึงพวกเขาและได้รับสิทธิ์การเข้าถึงระดับผู้ดูแลระบบ ฉันจะป้องกันข้อผิดพลาดนี้ได้อย่างไร

คำตอบ:


20

ข้อผิดพลาด COW โบราณ

จุดบกพร่องนี้มีมาตั้งแต่รุ่นเคอร์เนล 2.6.22 อนุญาตให้ผู้ใช้โลคัลเข้าถึงการอ่านเพื่อรับสิทธิพิเศษระดับผู้ดูแลระบบ มีการออกคำเตือน ( Softpedia: Linux Kernels 4.8.3, 4.7.9 และ 4.4.26 LTS ออกเป็น Patch "Dirty COW" Security Flaw ) และผู้ใช้จะต้องอัพเกรดเป็นเคอร์เนลเคอร์เนล 4.8.3, Linux kernel 4.7 9 และ Linux kernel 4.4.26 LTS ลิงก์นี้ไม่ถูกต้องเนื่องจาก Ubuntu ไม่รองรับเวอร์ชั่นเคอร์เนลเหล่านี้

คำตอบนี้เหมาะสำหรับผู้ใช้ Ubuntu และบอกคุณ:

  • รุ่นเคอร์เนลที่แนะนำสำหรับผู้ใช้ Ubuntu
  • วิธีแสดงเวอร์ชันเคอร์เนลปัจจุบันของคุณ
  • วิธีใช้การแก้ไขสำหรับเคอร์เนลที่รองรับของ Ubuntu
  • วิธีใช้การแก้ไขสำหรับเคอร์เนลของ Ubuntu ที่ไม่รองรับ

ผู้ใช้ Ubuntu "Dirty COW" แนะนำ Kernels

Ubuntu เปิดตัวอัปเดตความปลอดภัยในวันที่ 20 ตุลาคม 2559 เพื่อแก้ไขเคอร์เนลที่ใช้โดยทุกรุ่นของ Ubuntu ที่ได้รับการสนับสนุน: Softpedia: Canonical patches Kernel Bug "Dirty COW" โบราณในทุกระบบปฏิบัติการ Ubuntu ที่รองรับ

Canonical ขอแนะนำให้ผู้ใช้ทุกคนทำการติดตั้งระบบของพวกเขาทันทีโดยติดตั้ง:

  • linux-image-4.8.0-26 (4.8.0-26.28) สำหรับ Ubuntu 16.10
  • linux-image-4.4.0-45 (4.4.0-45.66) สำหรับ Ubuntu 16.04 LTS
  • linux-image-3.13.0-100 (3.13.0-100.147) สำหรับ Ubuntu 14.04 LTS
  • linux-image-3.2.0-113 (3.2.0-113.155) สำหรับ Ubuntu 12.04 LTS
  • linux-image-4.4.0-1029-raspi2 (4.4.0-1029.36)

เคอร์เนล Xenial HWE สำหรับ Ubuntu 14.04 LTS ได้รับการอัปเดตเช่นกันเป็นรุ่น linux-image-4.4.0-45 (4.4.0-45.66 ~ 14.04.1) และเคอร์เนล Trusty HWE สำหรับ Ubuntu 12.04 LTS เป็นเวอร์ชัน linux-image -3.13.0-100 (3.13.0-100.147 ~ แม่นยำ 1)

โปรดอัปเดตการติดตั้งอูบุนตูของคุณทันทีโดยทำตามคำแนะนำที่มีให้โดย Canonical ที่: https://wiki.ubuntu.com/Security/Upgrades

แสดงเวอร์ชันเคอร์เนลปัจจุบันของคุณ

หากต้องการแสดงเวอร์ชันเคอร์เนลที่รันอยู่ในปัจจุบันให้เปิดเทอร์มินัลด้วยCtrl+ Alt+ Tจากนั้นพิมพ์:

uname -a

เวอร์ชั่นเคอร์เนลที่คุณบู๊ตด้วยจะปรากฏดังนี้:

Linux dell 4.8.1-040801-generic #201610071031 SMP Fri Oct 7 14:34:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

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

Ubuntu ยังไม่รองรับเคอร์เนลรุ่น 4.8.1 อีกต่อไป

วิธีการแก้ไขสำหรับ Ubuntu ที่รองรับ Kernels

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

หาก Ubuntu ไม่ได้อัพเกรดรุ่นเคอร์เนลของคุณโดยอัตโนมัติให้เรียกใช้:

sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot

หลังจากรีบูตเครื่องให้ตรวจสอบเวอร์ชั่นเคอร์เนลปัจจุบันของคุณโดยทำซ้ำคำแนะนำในส่วนก่อนหน้านี้

วิธีการแก้ไข Kernels ของ Ubuntu ที่ไม่รองรับ

การติดตั้งบางอย่างกับฮาร์ดแวร์ใหม่อาจใช้เคอร์เนลที่ไม่รองรับเช่น4.8.1หรือสูงกว่า ถ้าเป็นเช่นนั้นคุณจะต้องอัพเกรดเคอร์เนลด้วยตนเอง แม้ว่าลิงก์รายงานข้อผิดพลาดด้านบนบอกว่าจะใช้เคอร์เนล4.8.3ณ วันที่ 30 ตุลาคม 2559 4.8.5เป็นเวอร์ชันล่าสุดและนี่คือวิธีการติดตั้ง:

cd /tmp
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805_4.8.5-040805.201610280434_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-image-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
sudo dpkg -i *.deb
sudo reboot

หลังจากรีบูตเครื่องให้ตรวจสอบเวอร์ชั่นเคอร์เนลปัจจุบันของคุณโดยทำซ้ำคำแนะนำสองส่วนกลับมา


แทนที่จะเป็น "ลิงก์นี้ทำให้เข้าใจผิด" ซึ่งดูเหมือนว่าคำจะแรงเกินไปสำหรับฉันฉันจะพูดอะไรบางอย่างตามบรรทัดของ "คำแนะนำเหล่านั้นใช้ไม่ได้กับผู้ใช้ Ubuntu"
fkraiem

@ WinEunuuchs2Unix ฉันจะแนะนำ "ลิงก์นี้ตามที่เป็นอยู่ทำให้เข้าใจผิดเพราะเวอร์ชั่นเคอร์เนลที่กล่าวถึงไม่รองรับโดย Ubuntu" ยังไม่แน่ใจว่าทำไมคุณถึงออกเดททุกที่?
โธมัสวอร์ด

มี Ubuntu 16.04 LTS ผมพบว่าคำสั่งนี้แสดงให้ฉันเห็นว่าทั้งหมดเป็นสิ่งที่ดี: apt list --installed | grep linux-image-4.4.0-45- linux-image-4.4.0-45-generic/xenial-updates,xenial-security,now 4.4.0-45.66 amd64 [installed,automatic]มันกลับมา
user643722

1

ฉันไม่ได้เป็นผู้เชี่ยวชาญเลย แต่เมื่ออ่าน "Dirty COW" สักหน่อยฉันรู้สึกว่าฉันต้องการตรวจสอบว่าฉันไม่เป็นไรหลังจากอัปเดตครั้งล่าสุดเมื่อไม่กี่ชั่วโมงที่ผ่านมา

จากผลการค้นหาคำหลักของฉันฉันเลือกบทความและการสนทนานี้ว่าเป็นสัญญา ตอนนี้ผมมีการบริหารจัดการได้อย่างง่ายดายเพื่อตรวจสอบว่า "วัว patched" สถานะของระบบ Xenial ซีร็อกซ์ของฉันเป็นครั้งแรกโดยทำตามคำแนะนำข้างต้นบทความเพื่อแสดงเคอร์เนลของคุณเวอร์ชั่นปัจจุบัน (จะเปิดออกก็: linux-image-4.4.0.-45) แม้ว่าuname -aจะไม่มีรายละเอียดแพตช์ แต่ก็แสดงเวอร์ชั่นเคอร์เนลที่ติดตั้งในปัจจุบันซึ่งอนุญาตให้ฉันทำตามคำแนะนำของผู้ใช้ 643722 - และประสบความสำเร็จดังนั้น:

apt list --installed | grep linux-image-4.4.0-45

แม้ว่าจะมีการแสดงบรรทัดพิเศษที่ไม่คาดคิด ...

WARNING: apt does not have a stable CLI interface. 
Use with caution in scripts.

... ข้อมูลที่หวังไว้ตามมาในบรรทัดถัดไป:

linux-image-4.4.0-45-generic/xenial-updates,xenial-security,now 4.4.0-45.66 amd64  [Installiert,automatisch]

ขอขอบคุณทุกคน - สำหรับการใช้งานโซลูชั่นอย่างรวดเร็วในการอัปเดตโดยผู้สนับสนุน Linux / Ubuntu และการเผยแพร่ความรู้อย่างรวดเร็วในหมู่ผู้ใช้


1
คำเตือนจะหายไปหากคุณใช้apt-getแทนaptตัวมันเอง
WinEunuuchs2Unix

ขอบคุณ @ WinEunuuchs2Unix ฉันกำลังเรียนรู้ทุกวันตลอดเวลา ...
Ano Nyma

1

คุณต้องอัพเกรดแพ็คเกจโดยใช้apt-get:

sudo apt-get update && sudo apt-get dist-upgrade

นอกจากนี้คุณสามารถเปิดใช้งานบริการ livepach :

บังเอิญก่อนที่ช่องโหว่จะถูกเผยแพร่เราได้เปิดตัว Canonical Livepatch Service สำหรับ Ubuntu 16.04 LTS ผู้ใช้หลายพันคนที่เปิดใช้งาน canonical-livepatch บนระบบ Ubuntu 16.04 LTS ที่ได้รับสองสามชั่วโมงแรกและใช้การแก้ไขกับ Dirty COW โดยอัตโนมัติในพื้นหลังและไม่ต้องรีบูตเครื่อง!

  1. ไปที่https://ubuntu.com/livepatchและดึงโทเค็น livepatch ของคุณติดตั้ง snap canonical-livepatch

    $ sudo snap install canonical-livepatch

  2. เปิดใช้งานบริการด้วยโทเค็นของคุณ

    $ sudo canonical-livepatch เปิดใช้งาน [TOKEN]

  3. ตรวจสอบสถานะได้ตลอดเวลาโดยใช้:

    $ canonical-livepatch status - verbose

  4. อัพเกรด

    `$ sudo apt ติดตั้งการอัพเกรดแบบอัตโนมัติ

  5. Ubuntu รุ่นเก่ากว่า (หรือระบบ Ubuntu ที่อัพเกรดเป็น 16.04) อาจต้องเปิดใช้งานลักษณะการทำงานนี้โดยใช้:

    $ sudo dpkg- กำหนดค่าการอัพเกรดแบบอัตโนมัติใหม่

`


คำพูดของคุณทำให้เสียงเหมือนคุณทำงานให้เป็นที่ยอมรับถ้าเป็นเช่นนั้นขอขอบคุณสำหรับข้อมูลภายใน :)
WinEunuuchs2Unix

@ WinEunuuchs2Unix เป็นเพียงผู้ใช้ Linux มือใหม่ :)
GAD3R

ขอบคุณมากสำหรับคำตอบของคุณ ฉันกลัวว่าคุณจะต้องอยู่กับความคิดเห็นเท็จเกี่ยวกับการเป็นพนักงานของ Canonical เป็นเวลา 11 ชั่วโมงจนกระทั่งฉันกลับถึงบ้านและสามารถลบออกจากคอมพิวเตอร์ของฉันได้
WinEunuuchs2Unix

$ sudo snap install canonical-livepatch error: cannot install "canonical-livepatch": snap not foundช่วยด้วย?
เฮอร์ชีย์ Gamer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.