Lỗ hổng nghiêm trọng trong OpenSSL TLS Heartbeat Extension (CVE-2014-0160)

Đăng bởi hone and zzak vào 10 Apr 2014

Có một lỗ hổng nghiêm trọng trong triển khai của OpenSSL cho phần mở rộng heartbeat TLS/DTLS (giao thức bảo mật tầng vận chuyển) (RFC6520). Đây là một lỗ hổng nghiêm trọng đã được gán mã định danh CVE CVE-2014-0160.

Khai thác có thể dẫn đến việc tiết lộ nội dung bộ nhớ từ máy chủ tới máy khách và từ máy khách tới máy chủ. Kẻ tấn công có thể truy xuất từ xa dữ liệu nhạy cảm từ bộ nhớ, bao gồm nhưng không giới hạn ở khóa bí mật dùng cho mã hóa SSL và token xác thực.

Để biết thêm thông tin về các cuộc tấn công, xem heartbleed.com.

Ruby bị ảnh hưởng như thế nào?

Ruby bị ảnh hưởng khi được biên dịch tĩnh với phiên bản OpenSSL dễ bị tấn công thông qua phần mở rộng C OpenSSL trong thư viện chuẩn.

Các phiên bản OpenSSL 1.0.1 đến 1.0.1f (bao gồm) đều dễ bị tấn công này. Để xác minh phiên bản thư viện OpenSSL bạn liên kết với Ruby, sử dụng lệnh sau:

ruby -v -ropenssl -rfiddle -e 'puts Fiddle::Function.new(Fiddle.dlopen(nil)["SSLeay_version"], [Fiddle::TYPE_INT], Fiddle::TYPE_VOIDP).call(0)'

Để xác minh phiên bản OpenSSL hiện đang được cài đặt với Ruby, sử dụng lệnh sau:

ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'

Bạn có thể xác minh phần mềm client hoặc dịch vụ đang chạy có bị ảnh hưởng không bằng cách sử dụng script của emboss.

Giải pháp

Để nâng cấp lên phiên bản OpenSSL mới nhất 1.0.1g hoặc mới hơn, bạn nên kiểm tra với trình quản lý gói của hệ điều hành hiện tại để đảm bảo họ cung cấp OpenSSL cập nhật. Bạn có thể cần tham khảo nhà phân phối hệ điều hành để xác minh phiên bản OpenSSL của họ đã được vá, bất kể số phiên bản có sẵn.

Nếu không thể nâng cấp, hãy biên dịch lại OpenSSL đã vá với tùy chọn -DOPENSSL_NO_HEARTBEATS khi build.

Với OpenSSL đã nâng cấp, khuyến nghị biên dịch lại Ruby để đảm bảo không còn liên kết đến phiên bản OpenSSL dễ bị tấn công.

Điều này có nghĩa là cập nhật bất kỳ công cụ nào dùng để build Ruby như RVM hoặc ruby-build. Nếu bạn tự build Ruby, sử dụng tùy chọn --with-openssl-dir khi biên dịch để liên kết thư mục cài đặt OpenSSL đã nâng cấp.

$ ./configure --with-openssl-dir=/path/to/openssl
$ make
$ make install

Sau khi nâng cấp OpenSSL và Ruby, điều quan trọng là khởi động lại tất cả chương trình đang sử dụng phiên bản bị ảnh hưởng.

Nhiều bản phân phối hệ điều hành đã cung cấp (hoặc sẽ sớm cung cấp) các phiên bản đã vá và các gói được build lại cho các thư viện dễ bị tấn công. Điều quan trọng là theo dõi nhà phân phối hệ điều hành của bạn để đảm bảo bạn luôn được bảo mật.

Tin mới nhất

Phát hành Ruby 4.0.0

Chúng tôi vui mừng thông báo phát hành Ruby 4.0.0. Ruby 4.0 giới thiệu “Ruby Box” và “ZJIT”, cùng nhiều cải tiến khác.

Đăng bởi naruse vào 25 Dec 2025

Diện mạo mới cho tài liệu Ruby

Tiếp theo việc thiết kế lại ruby-lang.org, chúng tôi có thêm tin vui để kỷ niệm 30 năm Ruby: docs.ruby-lang.org có diện mạo hoàn toàn...

Đăng bởi Stan Lo vào 23 Dec 2025

Thêm Tin...