Bản vá bảo mật OpenVPN đó có thực sự liên quan đến bản cài đặt của bạn không?
Vá và cấu hình là những khẳng định khác nhau. Hãy xác định tệp thực thi, gói đứng sau nó và những kiểm tra mà hồ sơ thực sự thực hiện.
Lời khuyên vá ứng dụng khách để nó xác thực chứng chỉ quá mơ hồ để hành động. Nó có thể mô tả một lỗi phần mềm đã được sửa, một bản dựng cũ từ một nhà cung cấp, hoặc một hồ sơ chưa từng yêu cầu kiểm tra đó. Đó là ba thay đổi khác nhau với ba chủ sở hữu khác nhau. Hành động theo câu đó mà không biết mình đang đối mặt với trường hợp nào chính là cách một ứng dụng khách đang hoạt động bị sửa đổi mà không có lý do.
Tách ba khẳng định
Một lỗi phần mềm có thông báo, các phiên bản bị ảnh hưởng và một bản phát hành đã sửa. Một bản dựng của nhà cung cấp có kênh phân phối riêng và nhịp cập nhật riêng. Một thiếu sót trong hồ sơ không có cả hai, vì tệp thực thi vẫn ổn và cấu hình yêu cầu ít hơn bạn giả định. Cho đến khi khẳng định nêu tên một trong ba trường hợp đó, không có gì để kiểm tra.
Viết khẳng định thành một câu trước khi tìm kiếm. Nếu câu đó không thể nêu tên cái gì hỏng, việc tìm kiếm không có mục tiêu và mọi kết quả đều có vẻ liên quan.
| Claim | Evidence that settles it | Who owns the change |
|---|---|---|
| Software defect | Advisory naming affected versions | Package or product maintainer |
| Provider build | Release notes for that client | The provider |
| Profile omission | The configuration actually loaded | Whoever owns the profile |
Tìm tệp thực thi thực sự chạy
Xác định cái gì khởi động kết nối trước khi xem bất kỳ phiên bản nào. Một dịch vụ phân phối, một trình cắm trên máy tính để bàn và một ứng dụng của nhà cung cấp đều có thể dùng tệp thực thi hoặc động cơ khác nhau. Phiên bản do bất kỳ tệp nhị phân nào tình cờ nằm trong đường dẫn tìm kiếm của shell in ra không phải là bản kiểm kê của máy. Hãy đọc đơn vị hoặc tiến trình thực sự đã thực hiện kết nối.
systemctl cat openvpn-client@*.service
ps -o pid,cmd -C openvpn
apt-cache policy openvpn network-manager-openvpn
Truy vấn gói báo cáo những gì siêu dữ liệu cục bộ cho là đã cài và khả dụng, và bộ nhớ đệm đó có thể đã cũ, nên hãy làm mới nó trước. Nó cũng không nói gì về việc dịch vụ đang chạy có tải một tệp nhị phân được cài năm phút trước hay không. So sánh bản ghi gói với tiến trình thực sự đang kết nối.
Bằng chứng từ gói thay vì cảm nhận về phiên bản
Việc bảo trì bảo mật của các bản phân phối thường đưa bản sửa lùi về, nên một phiên bản upstream trông cũ hơn vẫn có thể chứa bản vá. Điều ngược lại cũng đúng: một gói từ kho lạ không có tuyên bố tự động về việc bảo trì hiện tại. Hãy đọc trạng thái hỗ trợ của bản phát hành, không phải số phiên bản.
Sự khác biệt đó là khác biệt giữa một lỗ hổng thực sự và một con số chỉ trông cũ. Hãy ghi lại kho chứa gói đến từ đâu, vì cùng một chuỗi phiên bản có thể đến qua những kênh rất khác nhau với mức hỗ trợ rất khác nhau.
Cấu hình là nửa còn lại
Một tệp thực thi được bảo trì vẫn cần một hồ sơ yêu cầu những kiểm tra mà bạn cho là đang có. Các neo tin cậy, vai trò dự định của đối tác và tên máy chủ mong đợi là những quyết định liên quan nhưng tách biệt. Kiểm tra vai trò không phải kiểm tra tên, và không cái nào thay thế cái kia. Nếu cảnh báo liên quan đến cấu hình, bản sửa thuộc về người sở hữu hồ sơ.
Đừng cài một bản vá tùy tiện để bù cho một hồ sơ chưa được xác minh, và đừng thêm chỉ thị để sửa một lỗi triển khai thực sự. Cả hai sai lầm đều có cảm giác như tiến bộ, đó là lý do cả hai vẫn tiếp diễn.
Quyết định bằng bằng chứng trong hồ sơ
Quyết định xuất phát từ những gì bạn đã xác lập. Một gói bị ảnh hưởng có tài liệu đòi hỏi bản cập nhật được hỗ trợ của nó, một nền tảng không được hỗ trợ cần lộ trình di chuyển, và một ứng dụng khách của nhà cung cấp cần hướng dẫn của nhà cung cấp đó. Một chỉ dẫn mơ hồ cần một thông báo và một thành phần bị ảnh hưởng trước khi bất kỳ điều nào ở trên được áp dụng.
Giữ ứng dụng khách đang hoạt động, phiên bản đầy đủ, thông báo và chủ sở hữu hồ sơ cùng nhau trong hồ sơ thay đổi. Điều đó mạnh hơn một tham chiếu hướng dẫn, và đó là thứ người tiếp theo thực sự sẽ cần.