Cara Memperbaiki Kerentanan SambaCry (CVE-2017-7494) di Sistem Linux


Samba telah lama menjadi standar untuk menyediakan layanan berbagi file dan pencetakan kepada klien Windows pada sistem *nix. Digunakan oleh pengguna rumahan, bisnis skala menengah, dan perusahaan besar, solusi ini menonjol sebagai solusi tepat dalam lingkungan di mana sistem operasi yang berbeda hidup berdampingan.

Sayangnya hal ini terjadi pada alat yang digunakan secara luas, sebagian besar instalasi Samba berisiko terkena serangan yang mungkin mengeksploitasi kerentanan yang diketahui, yang tidak dianggap serius hingga serangan ransomware WannaCry menjadi berita baru. dahulu kala.

Pada artikel ini, kami akan menjelaskan apa itu kerentanan Samba dan bagaimana melindungi sistem yang menjadi tanggung jawab Anda terhadapnya. Bergantung pada jenis instalasi Anda (dari repositori atau dari sumber), Anda perlu mengambil pendekatan berbeda untuk melakukannya.

Jika saat ini Anda menggunakan Samba di lingkungan mana pun atau mengenal seseorang yang menggunakannya, baca terus!

Kerentanan

Sistem yang ketinggalan jaman dan belum ditambal rentan terhadap kerentanan eksekusi kode jarak jauh. Secara sederhana, ini berarti bahwa seseorang yang memiliki akses ke share yang dapat ditulisi dapat mengunggah sepotong kode arbitrer dan mengeksekusinya dengan izin root di server.

Masalah ini dijelaskan di situs web Samba sebagai CVE-2017-7494 dan diketahui memengaruhi Samba versi 3.5 (dirilis pada awal Maret 2010) dan seterusnya. Secara tidak resmi, ia diberi nama SambaCry karena kesamaannya dengan WannaCry: keduanya menargetkan protokol SMB dan berpotensi menjadi worm – yang dapat menyebabkannya menyebar dari sistem ke sistem lainnya.

Debian, Ubuntu, CentOS dan Red Hat telah mengambil tindakan cepat untuk melindungi penggunanya dan telah merilis patch untuk versi yang didukung. Selain itu, solusi keamanan juga telah disediakan untuk solusi yang tidak didukung.

Memperbarui Samba

Seperti disebutkan sebelumnya, ada dua pendekatan yang harus diikuti tergantung pada metode instalasi sebelumnya:

Jika Anda menginstal Samba dari repositori distribusi Anda.

Mari kita lihat apa yang perlu Anda lakukan dalam kasus ini:

Perbaiki Sambacry di Debian

Pastikan apt disetel untuk mendapatkan pembaruan keamanan terkini dengan menambahkan baris berikut ke daftar sumber Anda (/etc/apt/sources.list):

deb http://security.debian.org stable/updates main
deb-src http://security.debian.org/ stable/updates main

Selanjutnya, perbarui daftar paket yang tersedia:

aptitude update

Terakhir, pastikan versi paket samba cocok dengan versi yang kerentanannya telah diperbaiki (lihat CVE-2017-7494):

aptitude show samba

Perbaiki Sambacry di Ubuntu

Untuk memulai, periksa paket baru yang tersedia dan perbarui paket samba sebagai berikut:

sudo apt-get update
sudo apt-get install samba

Versi Samba yang telah menerapkan perbaikan untuk CVE-2017-7494 adalah sebagai berikut:

  • 17.04: samba 2:4.5.8+dfsg-0ubuntu0.17.04.2
  • 16.10: samba 2:4.4.5+dfsg-2ubuntu5.6
  • 16.04 LTS: samba 2:4.3.11+dfsg-0ubuntu0.16.04.7
  • 14.04 LTS: samba 2:4.3.11+dfsg-0ubuntu0.14.04.8

Terakhir, jalankan perintah berikut untuk memverifikasi bahwa kotak Ubuntu Anda sekarang telah menginstal versi Samba yang benar.

sudo apt-cache show samba

Perbaiki Sambacry di CentOS/RHEL 7

Versi Samba yang di-patch di EL 7 adalah samba-4.4.4-14.el7_3. Untuk menginstalnya, lakukan

yum makecache fast
yum update samba

Seperti sebelumnya, pastikan Anda sekarang memiliki versi Samba yang telah dipatch:

yum info samba

Versi CentOS dan RHEL yang lebih lama dan masih didukung juga memiliki perbaikan yang tersedia. Periksa RHSA-2017-1270 untuk mengetahui lebih lanjut.

Jika Anda menginstal Samba dari sumber

Catatan: Prosedur berikut mengasumsikan bahwa Anda sebelumnya telah membuat Samba dari sumber. Anda sangat dianjurkan untuk mencobanya secara ekstensif di lingkungan pengujian SEBELUM menerapkannya ke server produksi.

Selain itu, pastikan Anda mencadangkan file smb.conf sebelum memulai.

Dalam hal ini, kami juga akan mengkompilasi dan memperbarui Samba dari sumbernya. Namun sebelum kita mulai, kita harus memastikan semua dependensi sudah diinstal sebelumnya. Perhatikan bahwa ini mungkin memerlukan waktu beberapa menit.

Di Debian dan Ubuntu:

aptitude install acl attr autoconf bison build-essential \
    debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user \
    libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \
    libcap-dev libcups2-dev libgnutls28-dev libjson-perl \
    libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \
    libpopt-dev libreadline-dev perl perl-modules pkg-config \
    python-all-dev python-dev python-dnspython python-crypto xsltproc \
    zlib1g-dev libsystemd-dev libgpgme11-dev python-gpgme python-m2crypto

Di CentOS 7 atau serupa:

yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
    libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
    perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
    python-crypto gnutls-devel libattr-devel keyutils-libs-devel \
    libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
    pam-devel popt-devel python-devel readline-devel zlib-devel

Hentikan layanan:

systemctl stop smbd

Unduh dan hapus tar sumbernya (dengan 4.6.4 sebagai versi terbaru pada saat penulisan ini):

wget https://www.samba.org/samba/ftp/samba-latest.tar.gz 
tar xzf samba-latest.tar.gz
cd samba-4.6.4

Untuk tujuan informasi saja, periksa opsi konfigurasi yang tersedia untuk rilis saat ini dengan.

./configure --help

Anda dapat menyertakan beberapa opsi yang dikembalikan oleh perintah di atas jika opsi tersebut digunakan pada versi sebelumnya, atau Anda dapat memilih untuk menggunakan default:

./configure
make
make install

Terakhir, mulai ulang layanan.

systemctl restart smbd

dan verifikasi bahwa Anda menjalankan versi terbaru:

smbstatus --version

yang seharusnya mengembalikan 4.6.4.

Pertimbangan Umum

Jika Anda menjalankan versi distribusi tertentu yang tidak didukung dan tidak dapat meningkatkan ke versi yang lebih baru karena alasan tertentu, Anda mungkin ingin mempertimbangkan saran berikut:

  • Jika SELinux diaktifkan, Anda terlindungi!
  • Pastikan share Samba di-mount dengan opsi noexec. Ini akan mencegah eksekusi binari yang berada pada sistem file yang di-mount.

Menambahkan,

nt pipe support = no

ke bagian [global] pada file smb.conf Anda dan mulai ulang layanan. Anda mungkin ingin mengingat bahwa ini “dapat menonaktifkan beberapa fungsi di klien Windows”, sesuai dengan proyek Samba.

Penting: Perlu diketahui bahwa opsi “nt pipe support=no ” akan menonaktifkan daftar saham dari klien Windows. Misalnya: Saat Anda mengetik \\10.100.10.2\ dari Windows Explorer di server samba, Anda akan mendapat izin ditolak. Klien Windows harus menentukan share secara manual sebagai \\10.100.10.2\share_name untuk mengakses share.

Ringkasan

Pada artikel ini, kami telah menjelaskan kerentanan yang dikenal sebagai SambaCry dan cara memitigasinya. Kami berharap Anda dapat menggunakan informasi ini untuk melindungi sistem yang menjadi tanggung jawab Anda.

Jika Anda memiliki pertanyaan atau komentar tentang artikel ini, silakan gunakan formulir di bawah ini untuk memberi tahu kami.