Đầu tiên , trước khi hoảng sợ, hãy chắc chắn rằng bạn hiểu liệu lỗ hổng này có thực sự áp dụng cho bạn hay không. Nếu bạn có một máy chủ, nhưng chưa bao giờ thực sự có bất kỳ ứng dụng nào sử dụng TLS, thì đây không phải là điều ưu tiên cao để bạn khắc phục. Mặt khác, nếu bạn đã từng có các ứng dụng hỗ trợ TLS, thì bạn sẽ được điều trị. Đọc tiếp:
Chính xác thì CVE-2014-0160 hay còn gọi là "Heartbleed" là gì?
Đó là một mớ hỗn độn lớn, đó là những gì nó được. Nói tóm lại, một lỗ hổng có thể khai thác từ xa đã được phát hiện trong các phiên bản OpenSSL từ 1.0.1 đến 1.0.1f, qua đó kẻ tấn công có thể đọc được một số phần nhất định của bộ nhớ hệ thống. Những phần chứa dữ liệu nhạy cảm như khóa riêng, khóa được chia sẻ trước, mật khẩu và dữ liệu công ty có giá trị cao trong số những thứ khác.
Lỗi được phát hiện độc lập bởi Neel Mehta của Google Security (ngày 21 tháng 3 năm 2014) và công ty kiểm tra bảo mật CNTT Phần Lan Codenomicon (ngày 2 tháng 4 năm 2014).
Nguyên nhân là gì?
Chà, mã sai lầm trong OpenSSL. Đây là cam kết giới thiệu lỗ hổng và đây là cam kết đã sửa lỗ hổng. Lỗi xuất hiện vào tháng 12 năm 2011 và được vá vào ngày hôm nay, 7 tháng 4 năm 2014.
Các lỗi cũng có thể được coi là một triệu chứng của một vấn đề lớn hơn. Hai vấn đề liên quan là (1) quá trình nào được thực hiện để đảm bảo mã errant không được đưa vào cơ sở mã và (2) tại sao các giao thức và phần mở rộng rất phức tạp và khó kiểm tra. Mục (1) là vấn đề về quản trị và quy trình với OpenSSL và nhiều dự án khác. Nhiều nhà phát triển chỉ đơn giản chống lại các thực hành như đánh giá mã, phân tích và quét. Mục (2) đang được thảo luận trên TLS WG của IETF. Xem độ phức tạp của Heartbleed / giao thức .
Là mã sai lầm được chèn độc hại?
Tôi sẽ không suy đoán liệu đây có thực sự là một sai lầm hay có thể là một chút mã bị thay mặt cho một diễn viên xấu. Tuy nhiên, người đã phát triển mã cho OpenSSL nói rằng nó là vô tình. Xem Người đàn ông đã giới thiệu lỗ hổng bảo mật 'Heartbleed' nghiêm trọng phủ nhận anh ta cố tình chèn nó .
Những hệ điều hành và phiên bản nào của OpenSSL dễ bị tổn thương?
Như đã đề cập ở trên, bất kỳ hệ điều hành nào đang sử dụng hoặc ứng dụng được liên kết với OpenSSL 1.0.1 đến 1.0.1f.
Các triệu chứng là gì, có phương pháp nào để phát hiện khai thác thành công không?
Đây là phần đáng sợ. Theo chúng tôi biết, không có cách nào để biết liệu lỗ hổng này có bị khai thác hay không. Về mặt lý thuyết có thể là chữ ký IDS sẽ sớm được phát hành có thể phát hiện khai thác này, nhưng đối với văn bản này, những chữ ký này không có sẵn.
Có bằng chứng cho thấy Heartbleed đã được khai thác tích cực trong tự nhiên vào đầu tháng 11 năm 2013. Xem EFF's Wild at Heart: Các cơ quan tình báo có sử dụng Heartbleed vào tháng 11 năm 2013 không? Và Bloomberg báo cáo NSA đã vũ khí hóa việc khai thác ngay sau khi lỗ hổng được đưa ra. Xem NSA nói để khai thác lỗi Heartbleed cho trí thông minh trong nhiều năm . Tuy nhiên, Cộng đồng Tình báo Hoa Kỳ phủ nhận tuyên bố của Bloomberg. Xem IC TRÊN GHI .
Làm cách nào để kiểm tra xem hệ thống của tôi có bị ảnh hưởng không?
Nếu bạn đang duy trì OpenSSL trên hệ thống của mình, thì bạn có thể chỉ cần phát hành openssl version
:
$ openssl version
OpenSSL 1.0.1g 7 Apr 2014
Nếu phân phối được duy trì OpenSSL, thì có thể bạn không thể xác định phiên bản OpenSSL do trở lại vá bằng openssl
lệnh hoặc thông tin gói (ví dụ apt-get
, dpkg
, yum
hoặc rpm
). Quá trình vá lại được sử dụng bởi hầu hết các bản phân phối (tất cả?) Chỉ sử dụng số phiên bản cơ sở (ví dụ: "1.0.1e"); và không bao gồm phiên bản bảo mật hiệu quả (ví dụ: "1.0.1g").
Có một câu hỏi mở trên Super User để xác định phiên bản bảo mật hiệu quả cho OpenSSL và các gói khác khi các gói được gửi lại. Thật không may, không có câu trả lời hữu ích (ngoài việc kiểm tra trang web của distro). Xem Xác định phiên bản bảo mật hiệu quả khi đối mặt với Backpatching ?.
Theo nguyên tắc thông thường: nếu bạn đã từng cài đặt một trong những phiên bản bị ảnh hưởng và đã từng chạy các chương trình hoặc dịch vụ được liên kết với OpenSSL để hỗ trợ TLS, thì bạn dễ bị tấn công.
Tôi có thể tìm chương trình để kiểm tra lỗ hổng ở đâu?
Trong vài giờ sau thông báo Heartbleed, một số người trên internet đã công khai các ứng dụng web có thể truy cập công khai được cho là có thể được sử dụng để kiểm tra máy chủ xem có lỗ hổng này không. Theo văn bản này, tôi chưa xem xét bất kỳ, vì vậy tôi sẽ không công khai thêm các ứng dụng của họ. Chúng có thể được tìm thấy tương đối dễ dàng với sự trợ giúp của công cụ tìm kiếm ưa thích của bạn.
Lỗ hổng này được giảm nhẹ như thế nào?
Nâng cấp lên phiên bản không dễ bị tấn công và đặt lại hoặc bảo mật dữ liệu dễ bị tổn thương. Như đã lưu ý trên trang Heartbleed , các bước phản hồi phù hợp được phổ biến rộng rãi:
- Vá các hệ thống dễ bị tổn thương.
- Tạo lại khóa riêng mới.
- Gửi CSR mới cho CA.
- Lấy và cài đặt chứng chỉ đã ký mới.
- Khóa phiên và cookie không hợp lệ
- Đặt lại mật khẩu và bí mật được chia sẻ
- Thu hồi giấy chứng nhận cũ.
Để có phân tích và trả lời chi tiết hơn, hãy xem Nhà điều hành trang web nên làm gì về khai thác HeartSSed OpenSSL? trên Sàn giao dịch bảo mật.
Tôi có nên lo lắng rằng các khóa của tôi hoặc dữ liệu riêng tư khác đã bị xâm phạm? Những tác dụng phụ khác tôi nên quan tâm?
Chắc chắn rồi. Quản trị viên hệ thống cần cho rằng các máy chủ của họ sử dụng các phiên bản OpenSSL dễ bị tổn thương thực sự bị xâm phạm và đáp ứng tương ứng.
Ngay sau khi lỗ hổng được tiết lộ, Cloudfare đã đưa ra một thách thức để xem liệu khóa riêng của máy chủ có thể được phục hồi trong thực tế hay không. Thử thách đã được Fedor Indutny và Ilkka Mattila giành chiến thắng một cách độc lập. Xem thử thách Heartbleed .
Tôi có thể tìm thêm thông tin ở đâu?
Liên kết kết xuất, cho những người tìm kiếm thêm chi tiết:
Một dòng thời gian khá chi tiết về các sự kiện tiết lộ có thể được tìm thấy tại dòng thời gian tiết lộ của Heartbleed: ai biết cái gì và khi nào .
Nếu bạn là một lập trình viên và quan tâm đến các thủ thuật lập trình khác nhau như phát hiện một cuộc tấn công Heartbleed thông qua msg_cb
cuộc gọi lại của OpenSSL , thì hãy xem Tư vấn bảo mật của OpenSSL 2014047 .