OpenSSL là một công nghệ mã hóa được sử dụng rất phổ biến trên hàng triệu website để mã hóa việc truyền tin và bảo vệ các dữ liệu nhạy cảm như email, mật khẩu ngân hàng. Nhưng một kẽ hở nghiêm trọng gọi là “Heartbleed” (Trái tim rỉ máu) trong OpenSSL đã tạo lỗ hổng để tội phạm mạng có thể lấy được những thông tin nhạy cảm từ bộ nhớ của hệ thống.
Heartbleed là gì?
SSL và TLS là các giao thức cung cấp tính năng bảo vệ tính bí mật và riêng tư cho các ứng dụng như website, email, tin nhắn instant message (IM) và cả mạng riêng ảo VPN. Heartbleed là một lỗi rất nghiêm trọng (CVE-2014-0160) của thư viện mã hóa OpenSSL, xảy ra khi triển khai thêm tính năng mở rộng TLS và DTLS heartbeat của OpenSSL.
Lỗi bảo mật này được độc lập tìm ra bởi nhóm các chuyên gia bảo mật (Riku, Antti và Matti) tại công ty Codenomicon, trong quá trình nâng cấp tính năng SafeGuard của công ty quét lỗi bảo mật Defensics. Chuyên gia Neel Mehta thuộc bộ phận bảo mật của Google – người đầu tiên thông báo lỗi đến nhóm OpenSSL.
Lỗi Heartbleed là cực kỳ nghiêm trọng do nó phơi bày một số lượng lớn các khóa cá nhân và các thông tin bí mật khác lên internet do để lộ nội dung trên bộ nhớ của máy chủ, nơi lưu trữ các thông tin nhạy cảm nhất, bao gồm thông tin cá nhân như tên truy cập, mật khẩu, số thẻ tín dụng. Điều này cho phép những kẻ tấn công có thể lấy được mã cá nhân và giải mã các thông tin đã được mã hóa trên máy chủ, và thậm chí giả mạo máy chủ.
Lỗi Heartbleed cho phép mọi người trên Internet có thể đọc được bộ nhớ của các hệ thống được bảo vệ bởi phiên bản lỗi của phần mềm OpenSSL. Kẻ tấn công có thể lấy được mã bí mật – mã được sử dụng để định danh máy chủ dịch vụ và để mã hóa thông tin được chuyển đi, mã hóa tên mà mật khẩu người dùng và cả bản thân thông tin. Từ đó, kẻ tấn công có thể lấy trộm được thông tin, dữ liệu.
Tác động của Heartbleed trên phạm vi toàn cầu
OpenSSL là thư viện mã hóa phổ biến nhất được sử dụng trên máy chủ web Apache và Nginx, sử dụng dịch vụ bảo mật lớp Transport (TLS) tên là Heartbeat - một phần mở rộng được thêm vào TLS vào năm 2012. Theo nghiên cứu của Netcraft năm 2014 thì Apache và Nginx chiếm 66% dịch vụ máy chủ sử dụng trên các trang web đang hoạt động trên Internet.
Ngoài ra, OpenSSL còn được sử dụng để bảo vệ máy chủ email (giao thức SMTP, POP và IMAP), máy chủ tin nhắn (giao thức XMPP), các mạng riêng ảo (SSL VPN), các thiết bị mạng và rất nhiều các phần mềm người dùng khác.
Nhà nghiên cứu bảo mật Robert Graham đã thực hiện việc “quét Internet” và phát hiện ra có hơn 600.000 máy chủ bị lỗi Heartbleed, bao gồm cả yahoo.com, mgur.com, flickr.com, hidemyass.com.
Do lỗi Heartbleed mà Cơ quan Thuế Canada phải tạm dừng dịch vụ thu thuế điện tử và dịch vụ Soundcloud cũng phải đăng xuất tất cả người dùng để sửa lỗi bảo mật này.
Yahoo với hơn 800 triệu người dùng cũng gặp phải lỗi này.
Heartbleed hoạt động như thế nào
Vấn đề lỗi ở đây không phải nằm ở công nghệ TLS/SSL hay OpenSSL mà ở các dòng lệnh trong Heartbeat.
Sử dụng phần mở rộng Heartbeat, hai máy tính sẽ truyền dữ liệu qua lại để đảm bảo đầu bên kia vẫn còn hoạt động. Máy trạm sẽ truyền một mẩu tin (heartbeat) đến máy chủ (website) và máy chủ hồi đáp. Trong quá trình trao đổi, nếu một trong 2 máy ngừng hoạt động thì máy còn lại sẽ biết được nhờ vào cơ chế đồng bộ heartbeat.
Khi heartbeat được gửi đi, một phần bộ nhớ tạm thời trên máy chủ (khoảng 64kbyte) chứa những thông tin nhạy cảm như nội dung của bản tin, thông tin đăng nhập, khóa phiên và khóa riêng của máy chủ sẽ bị rò rỉ và kẻ tấn công có thế bắt được. Bằng cách gửi các yêu cầu heartbleed nhiều lần, kẻ tấn công có thể lấy được nhiều thông tin hơn từ bộ nhớ máy chủ. Điều đó có nghĩa là tất cả các thông tin chứa trên bộ nhớ máy chủ trở nên dễ tổn thương trước tội phạm trên mạng.
Khoảng 2/3 số lượng máy chủ web trên thế giới phụ thuộc vào OpenSSL, điều đó đồng nghĩa với việc thông tin được truyền trên hàng trăm nghìn website có thể bị ảnh hưởng.
Cho đến nay, các chuyên gia bảo mật chưa tìm được bằng chứng nào về việc khai thác thông tin từ lỗi bảo mật này. Lỗ hổng Heartbleed đã được vá trong phiên bản OpenSSL v1.0.1g.
Các trang web lớn như Google, Youtube, Facebook, Tumblr, Yahoo và Dropbox đã thực hiện sửa lỗi này, những vẫn có hàng nghìn website chưa thực hiện việc này. Người dùng được khuyên thực hiện đổi mật khẩu trên những website đã sửa lỗi này.