Về cơ bản thì lỗ hổng này là gì ?
Một lỗ hổng nguy hiểm của OpenSSL mới được công bố cho phép hacker có thể từ xa đọc được bộ nhớ trên máy chủ có cài đặt OpenSSL phiên bản 1.0.1 đến 1.0.1f.
Chúng ta tạm hiểu, OpenSSL là 1 thư viện mã hóa, được sử dụng để… mã hóa dữ liệu trao đổi giữa máy chủ và client. Vậy những máy chủ nào sử dụng OpenSSL? Câu trả lời là rất rất nhiều. Kể sơ qua có thể thấy là các máy chủ web chạy apache hoặc ngix, các máy chủ email, VPN, Instant Message…
Khai thác lỗ hổng, hacker có thể lấy được private key của server, sử dụng để mã hóa các dữ liệu trao đổi giữa server và client. Từ đó hacker có thể đọc được toàn bộ thông tin được trao đổi giữa client và server như chưa hề được mã hóa. Dễ hiểu hơn là hacker có thể đọc được username/password, nội dung email, chat,..v.v.
Mội số lượng lớn tài khoản có thể đã bị đánh cắp bởi lỗ hổng OpenSSL Heart Bleed
Như vậy, đích nhắm của hacker sẽ là các site có thanh toán trực tuyến như: ngân hàng điện tử, chứng khoán điện tử, cổng thanh toán điện tử, các trang về thương mại điện tử. Ngoài ra, các mail server và một số dịch vụ khác có sử dụng OpenSSL để mã hóa cũng sẽ là mục tiêu tấn công.
Tại sao lại gọi lỗ hổng là “Trái tim rỉ máu” (HeartBleed)?
Vì lỗ hổng nằm trong việc xử lý TLS Heartbeat extension (RFC6520) của OpenSSL. Nguyên lý hoạt động của RFC này là để client/server kiểm tra xem bạn của mình có còn sống hay không (kiểm tra nhịp tim – Heartbeat). Do lỗi ở tính năng kiểm tra heartbeat, nên người ta văn vẻ gọi lỗ hổng là Heartbleed.
Cụ thể: Client sẽ gửi 1 message heartbeat đến server với 1 kích thước nào đó (ví dụ 1KB ) thì server sẽ phản hồi chính message đó lại cho client. Tạm hiểu là nếu tôi ném cho ông 1 quả táo để xem ông có còn sống hay không, ông sẽ ném lại tôi đúng quả táo đó để báo là ông còn sống.
Nhưng lợi dụng việc xử lý không tốt trong OpenSSL, hacker sẽ gửi 1 message có kích thước thật là 1KB, nhưng lại lừa rằng nó có kích thước 64KB. Do không kiểm tra cẩn thận, nên server sẽ trả lời bằng 1 gói tin có kích thước là 64KB (bao gồm 1KB là message thật và 63 KB trong bộ nhớ của server). Với lỗ hổng này, hacker sẽ tự nhiên nhận được 63KB dữ liệu trên RAM của server để tiếp tục khai thác.
Bộ nhớ trên một máy chủ bị rò rỉ
Trước thông tin có khoảng 15 website e-banking của một số ngân hàng và cổng thanh toán tại Việt Nam đã bị các hacker tấn công, thông qua lỗ hổng bảo mật của thư viện OpenSSL có tên gọi Heart Bleed, ngày 10-4 nhiều ngân hàng đã lên tiếng khẳng định không bị ảnh hưởng bởi lỗ hổng bảo mật này.
Những máy chủ nào có nguy cơ bị lỗ hổng ?
Phiên bản tồn tại lỗ hổng là OpenSSL 1.0.1 đến 1.0.1f. Các phiên bản trước đó và sau đó không bị.
Một số hệ điều hành có cài đặt sẵn OpenSSL sau đây có thể bị:
Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4
Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11
CentOS 6.5, OpenSSL 1.0.1e-15
Fedora 18, OpenSSL 1.0.1e-4
OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) and 5.4 (OpenSSL 1.0.1c 10 May 2012)
FreeBSD 10.0 – OpenSSL 1.0.1e 11 Feb 2013
NetBSD 5.0.2 (OpenSSL 1.0.1e)
OpenSUSE 12.2 (OpenSSL 1.0.1c)
Cập nhật bản vá cho lỗ hổng như thế nào ?
Đầu tiên, cần kiểm tra phiên bản hiện tại trên máy là bao nhiêu bằng câu lệnh:
1 | # openssl version -a |
Nếu kết quả ví dụ là:
1 | OpenSSL 1.0.1e 11 Feb 2013 |
(phiên bản 1.0.1e có lỗi)
Sau đó tùy vào OS của bạn, sẽ cập nhật với câu lệnh tương ứng:
Ví dụ trên CentOS/Red Hat là:
1 | # yum update openssl |
Ví dụ trên Ubuntu là:
1 | # apt-get upgrade openssl |
Chúc các bạn bảo mật thành công!
Nguồn tổng hợp