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 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.
Lỗi Heartbleed cho phép kẻ tấn công 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 - đượ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 và mật khẩu của người dùng cũng như của 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.
Bruce Schneier, nhà mật mã học nổi tiếng đánh giá lỗi Heartbleed “Nếu theo thang điểm từ 0 tới 10, tôi sẽ đánh giá tính nguy hiểm của điểm yếu này là 11”. Do đó, người dùng cần ngay lập tức update chương trình OpenSSL, thay đổi khóa, dùng các chứng chỉ an toàn mới, thay đổi mật khẩu trên tất cả các website vì trong vòng 2 năm qua điểm yếu có thể đã được khai thác và sử dụng bởi những kẻ xấu. Cũng đã có các bằng chứng cho thấy việc quét bộ nhớ của các máy chủ sử dụng điểm yếu này đã xuất hiện từ năm 2013. Điều này chứng tỏ rằng, ai đó đã biết đến điểm yếu này từ trước đó. Sau một vài ngày công khai về lỗ hổng bảo mật này, chuyên gia lập trình người Đức, Robin Seggelmann đã nói: chính anh ta, ngày 01/01/2012 đã đề xuất mã mở rộng Hearblbeat cho giao thức TLS (RFC 6520) và một trong các tiến trình của nó đã không thực hiện việc kiểm tra các giới hạn cần thiết. Seggelmann cũng nói rằng, việc bỏ sót lỗi này trong đoạn mã là do sơ xuất, anh ta và cả nhóm kiểm tra chương trình đã để cho mã này đi vào hoạt động mà không nhận ra lỗi. Việc kiểm tra giới hạn này lẽ ra phải được thực hiện theo các nguyên tắc xây dựng mã nguồn mở. Robin Seggelmann là một trong những chuyên gia lập trình nổi tiếng trong thế giới mã nguồn mở. Sau sự việc này, Robin Seggelmann hy vọng nhiều chuyên gia sẽ quan tâm và tham gia vào việc hạn chế cũng như nhanh chóng phát hiện các lỗi trong các dự án mã nguồn mở. |
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, máy chủ tin nhắn (giao thức XMPP), mạng riêng ảo (SSL VPN), thiết bị mạng và rất nhiều phần mềm 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.
Cách thức hoạt động của Heartbleed
Lỗ hổng bảo mật không nằm ở công nghệ TLS/SSL 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 rằng đầ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 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.
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ó rất nhiều website chưa thực hiện được. 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.
Trước đó, Trung tâm Internet thuộc Viện Nghiên cứu SANS của Mỹ cho biết, việc khắc phục sự cố lỗi Heartbleed có thể dẫn tới tình trạng nghẽn mạng kéo dài. Theo chuyên gia Johannes Ullrich thuộc Trung tâm Internet, chương trình “vá” lỗi các chứng chỉ về an toàn ở phần lớn các website có thể khiến các trình duyệt bị quá tải, tốc độ truy cập chậm và người dùng thường xuyên phải nhận những tin nhắn báo lỗi. Chuyên gia này cho biết, nếu quá trình xác nhận diễn ra quá lâu, các trình duyệt sẽ tuyên bố là website không tồn tại hoặc gửi tin nhắn báo lỗi tới người dùng. Ông cũng cảnh báo, nếu người dùng bỏ qua các cảnh báo hoặc kiểm tra an ninh, tin tặc sẽ dễ dàng tấn công hệ thống máy tính.
Thiết bị phần cứng mạng máy tính cũng dính Heartbleed
Giữa tháng 4/2014, hai nhà sản xuất thiết bị mạng lớn trên thế giới là Cisco và Juniper Networks đã chính thức thông báo rằng sản phẩm của họ (gồm bộ định tuyến, bộ chuyển mạch, tường lửa) bị dính lỗ hổng Heartbleed. Từ đó, hacker có thể đánh cắp tên người dùng, mật khẩu và những thông tin nhạy cảm khác khi chúng tấn công vào các mạng doanh nghiệp, mạng gia đình và mạng Internet dùng thiết bị của Cisco và Juniper Neworks.
Các thiết bị phần cứng như bộ định tuyến, tường lửa, thiết bị mạng... bản chất cũng là các máy tính chạy hệ điều hành, trên đó có cung cấp các dịch vụ qua https sử dụng OpenSSL, thường là các dịch vụ quản trị, cấu hình thiết bị. Do vậy, các thiết bị này cũng có khả năng có lỗ hổng OpenSSL.
Vấn đề được người sử dụng thiết bị phần cứng máy tính quan tâm nhất hiện nay là làm thế nào để phát hiện và giảm thiểu nguy cơ thiệt hại từ các thiết bị dính lỗ hổng Heartbleed.
Không dễ để xác định xem phần cứng máy tính của người dùng có bị lỗ hổng hay không. Tuy nhiên không phải tất cả các bộ phận của phần cứng đều bị lỗi, bởi vì các bộ định tuyến khác nhau sẽ có những phiên bản OpenSSL khác nhau.
Người dùng có thể kiểm tra độ an toàn của bộ định tuyến Juniper và Cisco theo hướng dẫn trên website của các công ty này. Cả hai nhà sản xuất này đều đang tích cực nghiên cứu để đưa ra thị trường những bản cập nhật vá lỗi hiệu quả.
Đối với các thiết bị phần cứng, việc cập nhật bản vá để vá không dễ dàng như trên các máy tính thông thường. Quản trị hệ thống phải nâng cấp toàn bộ firmware (hệ điều hành cho các thiết bị chuyên dụng) từ nhà sản xuất. Để hạn chế các nguy cơ có thể có đối với hệ thống, quản trị viên cần rà soát xem các thiết bị mạng của đơn vị mình có cung cấp dịch vụ https hay không, sau đó tiến hành kiểm tra từng thiết bị, đồng thời cũng nên cập nhật các firmware mới nhất từ nhà sản xuất.
Một số biện pháp phòng tránh và khắc phục
Với các tổ chức: Đây là một lỗ hổng bảo mật thuộc thư viện OpenSSL và không phải là lỗi nằm trong SSL/TLS hay những chứng chỉ cấp cho máy chủ. Các tổ chức đang sử dụng OpenSSL 1.0.1 tới 1.0.1f, nên cập nhật bản vá mới nhất của phần mềm (1.0.1g) hoặc thiết lập lại OpenSSL để loại bỏ Heartbleed.
Sau khi nâng cấp lên phiên bản OpenSSL vá lỗi, nếu nghi ngờ rằng chứng chỉ trên máy chủ web có thể đã bị lộ, lấy cắp hoặc bị khai thác, hãy liên hệ với đơn vị cấp chứng chỉ để thay thế; nên cân nhắc thiết lập lại mật khẩu của người dùng cuối, vì mật khẩu này có thể đã bị lộ trên bộ nhớ máy chủ.
Đối với người dùng cuối: Có thể dữ liệu của người dùng đã bị lộ cho một bên thứ ba, vì sử dụng nhà cung cấp dịch vụ có chứa lỗ hổng bảo mật. Cần phải theo dõi để biết bất kỳ thông báo nào từ nhà cung cấp dịch đang sử dụng. Khi nhà cung cấp dịch vụ liên hệ và thông báo nên thay mật khẩu, người dùng cần thực hiện ngay.
Người dùng cần cảnh giác tránh những email lừa đảo từ những kẻ tấn công yêu cầu cập nhật mật khẩu, tránh truy nhập vào những website lạ, chỉ nên truy nhập vào những tên miền chính thống; Sử dụng các dịch vụ và website uy tín, bởi họ sẽ là những người đầu tiên vá lỗ hổng bảo mật này; Theo dõi tài khoản ngân hàng và thẻ tín dụng để phát hiện những khoản chi tiêu bất thường.
Người dùng cũng không được truy nhập vào những tên miền lạ với bất kỳ phần mềm nào và ngừng sử dụng các dịch vụ proxy chưa được vá lỗi; Cập nhật phần cứng và phần mềm ngay khi nhà sản xuất công bố bản vá; Sử dụng một trình khách VPN và những dịch vụ được đảm bảo không bị ảnh hưởng bởi Heartbleed khi truy nhập trên các mạng công cộng.
VNCERT hướng dẫn cơ quan Nhà nước khắc phục hậu quả lỗ hổng Heartbleed
Tháng 4/2014, Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam (VNCERT) đã gửi công văn tới các Sở TT&TT, các đơn vị chuyên trách CNTT của Bộ, cơ quan ngang Bộ hướng dẫn cách khắc phục lỗ hổng Heartbleed của bộ thư viện mở OpenSSL.VNCERT đã đưa danh sách các phiên bản thư viện OpenSSL có lỗ hổng Heartbleed và cũng dẫn công bố của hãng Codenomicon về một số phiên bản hệ điều hành Linux có sử dụng các phiên bản OpenSSL bị lỗi cần cập nhật nâng cấp để đảm bảo an toàn khi sử dụng, VNCERT đánh giá đây là một trong những lỗi an toàn thông tin rất nghiêm trọng, phạm vi ảnh hưởng rộng, có khả năng gây mất thông tin trong nhiều ứng dụng tài chính, ngân hàng, thư điện tử... có sử dụng giao thức truyền tin siêu văn bản an toàn HTTPS sử dụng giao thức TLS của thư viện OpenSSL có lỗi để mã hóa dữ liệu trên đường truyền. Theo khuyến cáo của VNCERT, muốn biết hệ thống có bị lỗi OpenSSL hay không, các cơ quan, tổ chức cần thực hiện lệnh “openssl version”, sau đó đối chiếu phiên bản OpenSSL do hệ thống trả về với danh sách phiên bản OpenSSL có lỗi. Cách tốt nhất để khắc phục lỗi an toàn thông tin đặc biệt nghiêm trọng nêu trên là nâng cấp thư viện OpenSSL lên phiên bản mới nhất (hiện tại là phiên bản 1.0.1g). Bên cạnh đó, để ngăn chặn tin tặc lợi dụng khai thác thông tin, cần áp dụng ngay biện pháp cập nhật cơ sở dữ liệu của các thiết bị IPS hoặc IDS để phát hiện và ngắt truy cập tấn công khai thác điểm yếu. |