Ini adalah Pertanyaan Canonical tentang memahami dan memulihkan masalah keamanan Heartbleed.
Apa sebenarnya CVE-2014-0160 AKA "Heartbleed"? Apa penyebabnya, OS dan versi apa dari OpenSSL yang rentan, apa gejalanya, adakah metode untuk mendeteksi eksploitasi yang berhasil?
Bagaimana saya dapat memeriksa untuk melihat apakah sistem saya terpengaruh? Bagaimana kerentanan ini dapat dikurangi? Haruskah saya khawatir bahwa kunci saya atau data pribadi lainnya telah disusupi? Efek samping apa lagi yang harus saya perhatikan?
security
openssl
heartbleed
Yakub
sumber
sumber
Jawaban:
Pertama , sebelum ketakutan, pastikan Anda memahami apakah kerentanan ini benar-benar berlaku untuk Anda. Jika Anda memiliki server, tetapi belum pernah benar-benar memiliki aplikasi yang menggunakan TLS, maka ini bukan hal prioritas tinggi untuk Anda perbaiki. Jika, di sisi lain, Anda pernah memiliki aplikasi yang mendukung TLS, maka Anda bisa mendapatkannya. Baca terus:
Ini kekacauan besar, itulah masalahnya. Singkatnya, kerentanan yang dapat dieksploitasi dari jarak jauh ditemukan di OpenSSL versi 1.0.1 hingga 1.0.1f di mana penyerang dapat membaca bagian tertentu dari memori sistem. Bagian-bagian itu adalah yang menyimpan data sensitif seperti kunci privat, kunci preshared, kata sandi, dan data perusahaan bernilai tinggi.
Bug ini ditemukan secara independen oleh Neel Mehta dari Google Security (21 Maret 2014) dan perusahaan pengujian keamanan Finlandia Finlandia Codenomicon (2 April 2014).
Nah, kode sesat di OpenSSL. Berikut adalah komit yang memperkenalkan kerentanan, dan di sini adalah komit yang memperbaiki kerentanan. Bug muncul pada bulan Desember 2011 dan ditambal hari ini, 7 April 2014.
Bug ini juga dapat dilihat sebagai gejala dari masalah yang lebih besar. Dua masalah terkait adalah (1) proses apa yang ada untuk memastikan kode yang salah tidak diperkenalkan ke basis kode, dan (2) mengapa protokol dan ekstensi sangat rumit dan sulit untuk diuji. Butir (1) adalah masalah tata kelola dan proses dengan OpenSSL dan banyak proyek lainnya. Banyak pengembang menolak praktik seperti ulasan kode, analisis, dan pemindaian. Butir (2) sedang dibahas pada TLS WG IETF. Lihat Kompleksitas Heartbleed / protokol .
Saya tidak akan berspekulasi tentang apakah ini benar-benar kesalahan atau mungkin sedikit kode masuk atas nama aktor yang buruk. Namun, orang yang mengembangkan kode untuk OpenSSL menyatakan itu tidak sengaja. Melihat Pria yang memperkenalkan cacat keamanan 'Heartbleed' yang serius menyangkal dia memasukkannya dengan sengaja .
Seperti disebutkan di atas, sistem operasi apa pun yang menggunakan, atau aplikasi yang ditautkan dengan OpenSSL 1.0.1 hingga 1.0.1f.
Ini bagian yang menakutkan. Sejauh yang kami tahu, tidak ada cara yang diketahui untuk mendeteksi apakah kerentanan ini telah dieksploitasi. Secara teori dimungkinkan bahwa tanda tangan IDS akan segera dirilis yang dapat mendeteksi eksploitasi ini, tetapi pada saat penulisan ini, mereka tidak tersedia.
Ada bukti bahwa Heartbleed sedang dieksploitasi secara aktif di alam liar pada awal November 2013. Lihat Liar di Hati EFF : Apakah Lembaga Intelijen Menggunakan Heartbleed pada November 2013? Dan Bloomberg melaporkan NSA telah mempersenjatai eksploitinya tidak lama setelah kerentanan diperkenalkan. Lihat NSA Dikatakan Mengeksploitasi Bug Heartbleed untuk Intelijen selama bertahun-tahun . Namun, Komunitas Intelijen AS membantah klaim Bloomberg. Lihat IC TENTANG REKAM .
Jika Anda mempertahankan OpenSSL di sistem Anda, maka Anda bisa mengeluarkan
openssl version
:Jika distribusi adalah mempertahankan OpenSSL, maka Anda mungkin tidak dapat menentukan versi OpenSSL karena kembali menambal menggunakan
openssl
perintah atau informasi paket (misalnya,apt-get
,dpkg
,yum
ataurpm
). Proses tambalan kembali yang digunakan oleh sebagian besar (semua?) Distribusi hanya menggunakan nomor versi dasar (misalnya, "1.0.1e"); dan tidak termasuk versi keamanan yang efektif (misalnya, "1.0.1g").Ada pertanyaan terbuka tentang Pengguna Super untuk menentukan versi keamanan yang efektif untuk OpenSSL dan paket lainnya ketika paket di-backpatch. Sayangnya, tidak ada jawaban yang berguna (selain memeriksa situs web distro). Lihat Menentukan Versi Keamanan yang Efektif ketika dihadapkan dengan Backpatching ?
Sebagai aturan praktis: jika Anda pernah menginstal salah satu versi yang terpengaruh, dan pernah menjalankan program atau layanan yang terhubung dengan OpenSSL untuk dukungan TLS, maka Anda rentan.
Dalam beberapa jam setelah pengumuman Heartbleed, beberapa orang di internet telah mempublikasikan aplikasi web yang dapat diakses publik yang konon dapat digunakan untuk memeriksa server apakah ada kerentanan ini. Sampai tulisan ini dibuat, saya belum mengulasnya, jadi saya tidak akan mempublikasikan aplikasi mereka lebih lanjut. Mereka dapat ditemukan relatif mudah dengan bantuan mesin pencari pilihan Anda.
Tingkatkan versi ke versi yang tidak rentan dan atur ulang atau amankan kembali data yang rentan. Sebagaimana dicatat di situs Heartbleed , langkah-langkah respons yang sesuai secara luas:
Untuk analisis dan jawaban yang lebih terperinci, lihat Apa yang harus dilakukan oleh operator situs web tentang eksploitasi Heartbleed OpenSSL? di Bursa Stack Security.
Benar. Administrator Sistem perlu berasumsi bahwa server mereka yang menggunakan versi OpenSSL yang rentan memang dikompromikan dan meresponsnya.
Tak lama setelah kerentanan diungkapkan, Cloudfare menawarkan tantangan untuk melihat apakah kunci pribadi server dapat dipulihkan dalam praktiknya. Tantangan itu dimenangkan secara independen oleh Fedor Indutny dan Ilkka Mattila. Lihat Tantangan Heartbleed .
Tumpukan tautan, bagi mereka yang mencari detail lebih lanjut:
Garis waktu kejadian pengungkapan yang agak terperinci dapat ditemukan di garis waktu pengungkapan Heartbleed: siapa yang tahu apa dan kapan .
Jika Anda seorang programmer dan tertarik pada berbagai trik pemrograman seperti mendeteksi serangan Heartbleed melalui
msg_cb
callback OpenSSL , maka lihat OpenSSL's Security Advisory 2014047 .sumber
Penjelasan sederhana dari bug, oleh XKCD:
sumber
Ubuntu 12.04, 12.10, dan 13.10
Ubuntu telah mengeluarkan USN-2165-1 , yang menyatakan bahwa paket yang diperbarui sekarang tersedia di arsip. Jalankan dua perintah berikut untuk mengambil perbaikannya.
Ubuntu 14.04
Saya telah mengunggah paket Debian yang berisi rilis baru (1.0.1g) ke PPA yang telah saya atur untuk tujuan ini. Tiga perintah ini akan menambah PPA saya ke sistem Anda, memperbarui daftar paket yang tersedia, dan memutakhirkan semuanya:
Catatan: PPA juga menyediakan paket untuk Ubuntu 12.04 dan 13.10, kalau-kalau Anda lebih suka menjalankan versi baru (1.0.1g) daripada hanya menggunakan versi yang ditambal dalam arsip.
Ubuntu 10,04
Ini adalah Versi LTS, versi server masih didukung dan menerima pembaruan keamanan. Tetapi kerentanan heartbleed tidak mempengaruhi paket openssl dari instalasi standar ubuntu 10.04, karena versi di bawah 1.0.1.
Versi desktop telah mencapai akhir masa pakainya dan perlu ditingkatkan / diinstal ulang.
Ubuntu 13.04 dan versi usang lainnya
Ubuntu 13.04 memiliki siklus dukungan yang sangat singkat yang mungkin tidak Anda harapkan. Ini telah mencapai akhir hayat dan tidak menerima pembaruan keamanan lagi. Seharusnya sudah lama ditingkatkan. Jika masih ada orang yang menggunakannya, silakan tingkatkan sekarang, baik dari awal atau dapat ditingkatkan tidak merusak menjadi 13,10 dengan mengikuti prosedur mudah ini: http://www.tecmint.com/upgrade-ubuntu-13-04-raring-ringtail -to-ubuntu-13-10-saucy-salamander / Setelah upgrade, sistem akan menerima patch heartbleed dari 13.10.
Untuk semua versi ubuntu lama itu berarti pada dasarnya diperlukan instalasi baru.
Verifikasi bahwa tambalan telah diterapkan
Intinya, jalankan
openssl version -a
dan pastikan bahwa tanggal pembuatan adalah 7 April 2014 atau lebih baru, tetapi lihat lebih lanjut di sini .Mulai ulang
Cara terbaik untuk memastikan semua layanan bergantung pada OpenSSL yang dihidupkan ulang adalah dengan reboot .
sumber
Mon Apr 7 20:31:55 UTC 2014
).RedHat 6.5 dan CentOS 6.5
Ini rentan. Erratum RedHat RHSA-2014-0376 mengatakan ada perpustakaan yang ditambal tersedia, dan siapa pun yang terkena dampak harus memutakhirkan pada kesempatan pertama.
Pada saat penulisan, CentOS belum memiliki versi tetap, tetapi posting Karanbir Singh kepada CentOS-announce mengatakan bahwa mereka telah menghasilkan versi openssl yang diperbarui (
openssl-1.0.1e-16.el6_5.4.0.1
, perhatikan empat digit terakhir yang penting) yang memiliki TLS yang dapat dieksploitasi perintah dinonaktifkan, dan itu dapat diterapkan dengan aman karena akan ditimpa oleh versi tetap ketika akhirnya dirilis.Versi sementara yang diperbaiki tampaknya belum masuk ke semua mirror, tetapi ada di repositori utama di http://mirror.centos.org/centos/6/updates/x86_64/Packages/ (dan juga untuk i686).
Sunting : seperti kata Iain, sekarang tampaknya ada versi yang sepenuhnya ditambal untuk C6.5, dan tampaknya telah didorong di sekitar cermin dengan terburu-buru. Langsung
yum update
mendapatkannya untuk server saya; ituopenssl-1.0.1e-16.el6_5.7
.Versi RH6 dan C6 sebelum 6.5
Ini tidak rentan. Menurut penasehat dari Red Hat ini ,
Posting Karanbir Singh ke CentOS-announce sama jelasnya tentang versi:
sumber
Debian Wheezy
Debian telah menerbitkan DSA-2896-1 dan perpustakaan yang ditambal tersedia di sini . Script shell tersedia di sini .
1. Menambal
Repositori Apt-get telah diperbarui sehingga sekarang pustaka yang ditambal tersedia melalui
apt-get update && apt-get upgrade
Atau (tidak disarankan) paket dapat ditingkatkan secara manual:
2. Mulai ulang server / layanan
Untuk perlindungan terbaik, restart seluruh server atau jika server tidak dapat offline maka restart layanan yang diperlukan.
3. Periksa Versi OpenSSL
sumber
wheezy/security
saat itu maka Anda akan baik-baik sajaapt-get update && apt-get upgrade
. Atau, gunakan manajer paket interaktif untuk hanya memperbarui paketopenssl
,libssl1.0.0
,libssl1.0.0-dbg
danlibssl-dev
(seperti diinstal pada sistem Anda).OpenSSL 1.0.1e 11 Feb 2013
sebagai tambalan yang disebut 1.0.1e-2. Anda dapat mengeceknyadpkg -l openssl
dan itu akan menunjukkan versi1.0.1e-2+deb7u6
Saya ingin menunjukkan bahwa kunci pribadi bukan satu-satunya aset yang harus dianggap dikompromikan. Bug memiliki potensi untuk bocor setiap memori berjalan di ruang alamat yang sama (yaitu, proses yang sama) sebagai OpenSSL. Oleh karena itu, jika Anda menjalankan proses server di mana versi OpenSSL yang rentan terhubung secara statis atau dinamis, setiap informasi yang pernah ditangani oleh proses itu , termasuk kata sandi, nomor kartu kredit, dan data pribadi lainnya, harus dianggap berpotensi dikompromikan.
sumber
FreeBSD 10.0 atau openssl dari port
Tim keamanan FreeBSD telah mengeluarkan penasehat tentang CVE-2014-0160 (alias "Heartbleed") dan: FreeBSD-SA-14: 06.openssl
Memperbarui FreeBSD
Memperbarui FreeBSD melalui tambalan biner
Sistem yang menjalankan versi FreeBSD RELEASE pada platform i386 atau amd64 dapat diperbarui melalui utilitas freebsd-update (8):
Memperbarui FreeBSD dari sumber
Unduh tambalan yang relevan dari lokasi di bawah ini, dan verifikasi tandatangan PGP yang terlepas menggunakan utilitas PGP Anda.
Jalankan perintah berikut sebagai root:
Kompilasi ulang sistem operasi
menggunakan buildworld dan installworld seperti yang dijelaskan dalam buku pegangan FreeBSD .
Perbarui port openssl dengan versi minimum 1.0.1_10
Mulai ulang semua daemon menggunakan perpustakaan, atau reboot sistem
Bertindak seolah-olah sistem Anda telah disusupi, terbitkan kembali semua kunci dan / atau sertifikat ssl Anda dan informasi yang berpotensi bocor (lihat EEAA jawaban yang lebih umum).
FreeBSD 9.x dan FreeBSD 8.x
Sistem ini tidak rentan terhadap masalah Heartbleed secara default, seperti mengandalkan versi 0.9.x perpustakaan openssl yang lebih lama , kecuali jika Anda menginstal openssl dari port (lihat lantai atas).
Jika sistem ini tidak rentan terhadap masalah Heartbleed , mungkin lebih baik untuk meningkatkan sistem Anda lebih cepat daripada nanti karena kerentanan lokal lainnya (lihat FreeBSD-SA-14: 06.openssl dan bagian "FreeBSD 10.0" di lantai atas):
Catatan :
Penasihat Heartbleed asli mencantumkan FreeBSD 8.4 dan 9.1 sebagai berpotensi rentan. Ini tidak benar karena kurangnya Ekstensi Detak Jantung (default FreeBSD openssl library menjadi versi 0.9.x).
sumber
Saya menemukan hampir tidak mungkin untuk menentukan versi SSL yang digunakan pada beberapa peralatan yang bekerja dengan saya. Meskipun secara teknis tidak mitigasi untuk mengidentifikasi host yang rentan saat ini berada di bagian atas daftar saya.
Saya mengumpulkan VM kecil yang akan melakukan pemeriksaan terhadap host dan port yang sewenang-wenang menggunakan modul uji FiloSottile . Pada pandangan awal kode terlihat sehat.
Pelepasan VM yang lengkap ada di sini . Itu dalam format VMX.
Kata-kata Peringatan
Script dan VM ini hanya akan menunjukkan status sistem Anda saat ini. Sangat mungkin di masa lalu bahwa sistem Anda berada dalam kondisi rentan dan bisa saja disalahgunakan.
Sesuatu yang muncul di sini jelas merupakan prioritas tinggi untuk diperbaiki, tetapi itu tidak membuat Anda lolos dari penerapan pembaruan dan mengubah semua kunci Anda.
sumber
Amazon Linux (distro Linux yang digunakan di Amazon EC2)
https://aws.amazon.com/amazon-linux-ami/security-bulletins/ALAS-2014-320/
Tinjauan Umum Masalah: Pemeriksaan batas yang hilang ditemukan dalam cara OpenSSL menangani paket ekstensi detak jantung TLS. Cacat ini dapat digunakan untuk mengungkapkan hingga 64k memori dari klien atau server yang terhubung.
Versi yang Terkena Dampak: Setiap AMI Amazon Linux tempat openssl 1.0.1 diinstal, yang merupakan AMI Amazon Linux 2013.03 atau lebih baru, dan AMI Amazon Linux apa pun yang telah ditingkatkan ke 2013.03 atau lebih baru. OpenSSL diinstal secara default di Amazon Linux AMI.
Paket yang Terkena Dampak: openssl
Koreksi Masalah: Jalankan pembaruan yum openssl untuk memperbarui sistem Anda. Setelah paket baru diinstal, Anda diharuskan me-restart semua layanan yang menggunakan openssl secara manual, atau mem-boot ulang instans Anda. Sementara paket baru masih bernama openssl-1.0.1e, itu berisi perbaikan untuk CVE-2014-0160.
Paket Baru: i686:
x86_64:
sumber