Từ lâu Samba là chuẩn cung cấp các file chia sẻ và các dịch vụ in cho client Windows trên các hệ thống * nix. Được sử dụng bởi người dùng: các hộ gia đình, các doanh nghiệp cỡ nhỏ và các công ty lớn, Samba “nổi lên” là giải pháp để truy cập các môi trường mà các hệ điều hành khác nhau cùng tồn tại.
Nếu như thời gian trước, trên Windows liên tục xảy ra 2 cuộc tấn công mạng cực kỳ nghiêm trọng của 2 loại mã độc là WannaCry và EternalRocks đã khiến người dùng tìm mọi cách để bảo vệ dữ liệu quan trọng trong máy tính của mình, với WanaCry, mã độc này xâm nhập trực tiếp và chiếm lấy dữ liệu quan trọng, bắt người dùng trả phí để lấy lại tài liệu của mình, còn EternalRocks được cho là loại virus còn nguy hiểm hơn WannaCry rất nhiều lần, mã độc này không trực tiếp tống tiền như WannaCry mà hoạt động âm thầm trong hệ thống và có thể biến chuyển thành bất kỳ mã độc nào.
Trong bài viết này, Tải miễn phí sẽ giải thích cho bạn về sự nguy hiểm của Samba và cách vá lỗ hổng SambaCry (CVE-2017-7494) trên hệ điều hành Linux của bạn. Tùy thuộc vào loại cài đặt của bạn (từ các kho hoặc từ nguồn), bạn sẽ cần phải thực hiện cách tiếp cận khác nhau.
Nếu đang sử dụng Samba trong bất kỳ môi trường hoặc biết ai đó đang sử dụng Samba, đọc tiếp bài viết dưới đây.
Dễ bị tổn thương
Các hệ thống lỗi thời và chưa được xử lý dễ bị tấn công bởi một lỗ hổng thực thi code từ xa (remote code execution). Nói một cách đơn giản, điều này có nghĩa là một người nào đó có quyền truy cập vào một phần được phép ghi có thể tải lên một đoạn mã tùy ý và thực thi đoạn mã đó bằng quyền root trong máy chủ, thường chúng ta chỉ nghe định nghĩa root trên các thiết bị Android
Vấn đề này được mô tả trên trang web của Samba là CVE-2017-7494 và được biết đến có ảnh hưởng trên phiên bản Samba 3.5 (phát hành vào đầu tháng 3 năm 2010) và các phiên bản Samba cao hơn. CVE-2017-7494 được đặt tên là Samba Cry do sự tương đồng của nó với WannaCry: cả hai đều nhắm đến giao thức SMB và có khả năng rất lớn - có thể khiến lan truyền từ hệ thống này sang hệ khác qua giao thức SMB.
Debian, Ubuntu, CentOS và Red Hat đã có nhanh chóng phát hành bản vá lỗi cho các phiên bản mà họ hỗ trợ. Ngoài ra, các giải pháp bảo mật khác cũng được cung cấp cho những người dùng không được hỗ trợ.
Cách vá lỗ hổng SambaCry (CVE-2017-7494) trên Linux
Như đã đề cập ở trên, có 2 cách tiếp cận để thực hiện theo phương pháp cài đặt trước đây:
Trường hợp 1: Nếu cài đặt Samba từ kho của nhà phân phối
Nếu bạn cài đặt Samba từ các kho của nhà phân phối. Cùng tham khảo xem những gì bạn cần làm trong trường hợp này:
- Sửa Sambacry trên Debian:
Đảm bảo rằng apt được thiết lập để nhận các cập nhật bảo mật mới nhất bằng cách thêm các dòng dưới đây vào danh sách nguồn của bạn (/etc/apt/sources.list):
deb http://security.debian.org stable/updates main
deb-src http://security.debian.org/ stable/updates main
Tiếp theo cập nhạt danh sách các gói có sẵn:
# aptitude update
Cuối cùng đảm bảo rằng phiên bản của gói samba phù hợp với phiên bản các lỗ hổng bảo mật được sửa (xem CVE-2017-7494):
Link CVE-2017-7494: https://security-tracker.debian.org/tracker/CVE-2017-7494
# aptitude show samba
- Sửa Sambacry trên Ubuntu:
Để bắt đầu các bước, kiểm tra các gói mới có sẵn và cập nhật các gói samba:
$ sudo apt-get update
$ sudo apt-get install samba
Các phiên bản Samba được áp dụng sửa lỗi CVE-2017-7494 như sau:
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
Cuối cùng chạy lệnh dưới đây để xác nhận Ubuntu đã có quyền cài đặt phiên bản Samba:
$ sudo apt-cache show samba
- Sửa Sambacry trên CentOS/RHEL 7:
Phiên bản vá lỗi Samba trong EL 7 là samba-4.4.4-14.el7_3. Để cài đặt phiên bản, bạn sử dụng:
# yum makecache fast
# yum update samba
Giống như các bước ở trên, hãy chắc chắn rằng bạn đã có bản vá Samba:
# yum info samba
Các phiên bản cũ hơn, vẫn được hỗ trợ CentOS và RHEL cũng có sẵn các bản sửa lỗi có sẵn. Bạn có thể kiểm tra TẠI ĐÂY để tìm hiểu thêm thông tin.
Trường hợp 2: Nếu cài đặt Samba từ nguồn
Lưu ý:
Các bước dưới đây giả định bạn đã tích hợp Samba từ nguồn. Bạn nên thử nghiệm trong môi trường thử nghiệm TRƯỚC khi triển khai nó trên một máy chủ sản xuất.
Ngoài ra, đảm bảo rằng bạn đã sao lưu file smb.conf trước khi bắt đầu thực hiện quá trình.
Trong trường hợp này, chúng tôi cũng sẽ kết hợp và cập nhật Samba từ nguồn. Trước khi bắt đầu, cần đảm bảo rằng tất cả các yêu cầu cài đặt đã được cài đặt trước đó. Và quá trình diễn ra có thể mất vài phút.
- Trên Debian và 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
- Trên CentOS 7 hoặc các bản phân phối tương tự:
# 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
Ngừng các dịch vụ:
# systemctl stop smbd
Tải và bỏ trống nguồn (với 4.6.4 là phiên bản mới nhất):
# wget https://www.samba.org/samba/ftp/samba-latest.tar.gz
# tar xzf samba-latest.tar.gz
# cd samba-4.6.4
Mục đích là thông tin, kiểm tra các tùy chọn cấu hình có sẵn cho bản phát hành hiện tại bằng:
# ./configure -help
Bạn có thể đưa một số tùy chọn được trả lại bởi lệnh trên nếu các lệnh được sử dụng trong bản build trước, hoặc bạn có thể chọn mặc định:
# ./configure
# make
# make install
Cuối cùng khởi động lại dịch vụ:
# systemctl restart smbd
Và xác nhận bạn đang chạy bản cập nhật:
# smbstatus --version
Đó là phiên bản 4.6.4.
Khái quát chung
Nếu đang chạy phiên bản không được hỗ trợ từ một nhà phân phối nhất định và vì một số lý do nào đó mà không thể nâng cấp lên phiên bản mới nhất gần đây, bạn có thể áp dụng các đề xuất dưới đây:
Nếu SELinux được kích hoạt, bạn sẽ được bảo vệ.
Đảm bảo Samba share được mount (gắn kết) với tùy chọn noexec. Điều này sẽ ngăn chặn việc thực thi các chương trình nhị phân nằm trên hệ thống tập tin được mount (gắn kết).
Thêm “nt pipe support = no” vào phần [global] của file smb.conf và khởi động lại dịch vụ. Lưu ý rằng khi thực hiện điều này 'có thể vô hiệu hóa một số chức năng trong Windows client', theo dự án Samba.
Lưu ý quan trọng: Hãy nhớ rằng tùy chọn 'nt pipe support = no' sẽ vô hiệu hóa tính năng share (chia sẻ) được liệt kê từ các client Windows.
Ví dụ, khi bạn nhập 10.100.10.2 từ Windows Explorer trên máy chủ samba, kết quả bạn sẽ nhận được bị từ chối cho phép. Các client Windows sẽ phải tự xác định share (chia sẻ) theo cách thủ công là 10.100.10.2 share_name để truy cập chia sẻ.
Trong bài viết trên, Tai mien phi đã mô tả lỗ hổng SambaCry và cách vá lỗ hổng SambaCry (CVE-2017-7494) trên Linux. Hy vọng các thông tin trong bài viết sẽ hữu ích với bạn.
Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc các thông tin về SambaCry, bạn có thể để lại ý kiến của mình trong phần dưới đây, TCN sẽ giải đáp các thắc mắc đó cho bạn.
Với người dùng Windows 10, lỗ hổng SMB zero-day đã được các chuyên gia cảnh báo rất nhiều từ trước tới nay, lỗ hổng SMB zero-day là nơi mà những mã độc có thể xâm nhập vào một cách dễ dàng, nguyên nhân thường là do người dùng click vào những liên kết lạ chưa virus mà không hề hay biết, để phòng tránh virus, mã độc lây lan qua lỗ hổng SMB zero-day chỉ còn cách không được click vào những đường dẫn lạ nhận được trên mạng xã hội, email mà thôi, để biết chi tiết về lỗ hổng này, bạn tham khảo bài đánh giá về lỗ hổng SMB zero-day và cách phòng tránh.