Bảo trì phần mềm trong suốt thời gian sử dụng
Đã hoàn tấtƯu tiên xử lý lỗ hổng, nâng cấp, sai lệch cấu hình và ngừng sử dụng. Theo dõi một phát hiện bảo trì đến khi xác minh bản sửa trên production.
Xuất bản bởi TaigaCách chúng tôi viết
Kiểm tra mức hiểuBản sửa dependency đã merge, nhưng production vẫn chạy image cũ. Trạng thái bảo trì là gì?Làm bài tập
Bạn sẽ học gì
- Phân biệt bảo trì thường xuyên với ứng phó sự cố.
- Ưu tiên công việc dựa trên mức phơi nhiễm, hoạt động khai thác và tác động đến dịch vụ.
- Xác minh bản sửa bảo trì đã đến dịch vụ đang chạy.
Phân công người phụ trách dịch vụ cho việc bảo trì
Phần mềm hữu ích tiếp tục thay đổi sau lần phát hành đầu tiên. Dependency nhận bản sửa. Runtime hết hỗ trợ. Chứng chỉ hết hạn. Quy tắc kinh doanh thay đổi. Quyền truy cập cấp lúc thiết lập có thể tồn tại lâu hơn dự kiến.
Duy trì danh mục dịch vụ, người phụ trách, phiên bản đã triển khai, dependency và mốc thời gian hỗ trợ. Bao gồm công việc theo lịch và công việc phát sinh từ phát hiện mới. Phân bổ năng lực cho cả hai. Backlog bảo trì không có người phụ trách không bảo vệ được dịch vụ.
Phân biệt bảo trì với ứng phó sự cố tức thời. Thông tin xác thực bị lộ hoặc bằng chứng hệ thống đang bị xâm phạm có thể đòi hỏi hạn chế tác động trước khi chu kỳ phát triển thông thường hoàn tất. Chuyển các trường hợp đó sang quy trình ứng phó bảo mật.
Ưu tiên theo mức phơi nhiễm thực tế
Mức độ nghiêm trọng mô tả hậu quả tiềm tàng. Mức ưu tiên còn phụ thuộc vào hoạt động khai thác, khả năng tiếp cận thành phần dễ bị tấn công, dữ liệu, biện pháp kiểm soát hiện có và chi phí trì hoãn. Dịch vụ nội bộ có ít lưu lượng vẫn có thể giữ thông tin xác thực quan trọng.
Danh mục Known Exploited Vulnerabilities của CISA ghi nhận các lỗ hổng có bằng chứng bị khai thác. Dùng nó làm đầu vào xác định ưu tiên. Không có trong danh mục không chứng minh lỗ hổng là an toàn. Danh mục CISA.
Xét các phát hiện giả định sau. Giới hạn thời gian thuộc tổ chức trong ví dụ; chúng không phải thời hạn áp dụng cho mọi nơi.
| Phát hiện | Điều kiện đã biết | Hành động đầu tiên hữu ích |
|---|---|---|
| Lỗ hổng dependency | Đã có khai thác; route bị ảnh hưởng có thể truy cập công khai | Chuyển cấp, kiểm tra mức phơi nhiễm và lập kế hoạch giảm tác động, sửa ngay |
| Thông tin xác thực đã commit | Thông tin xác thực vẫn hoạt động; quyền truy cập repository chưa rõ | Mời bộ phận ứng phó bảo mật; thu hồi hoặc luân chuyển theo quy trình đã phê duyệt |
| Runtime sắp hết hỗ trợ | Hết hỗ trợ sau 60 ngày; chưa có bản nâng cấp đã kiểm thử | Phân công người phụ trách nâng cấp và thời gian kiểm thử tương thích |
| Sai lệch hạ tầng | Thay đổi thủ công mở đường mạng ngoài dự kiến | Xác nhận thay đổi, hạn chế đường mạng bằng biện pháp được phép và đồng bộ lại cấu hình |
Không tự động biến mọi phát hiện thành một đợt nâng cấp lớn. Chọn bản sửa được hỗ trợ, kiểm tra tương thích và kiểm thử hành vi quan trọng. Ghi các biện pháp giảm tác động tạm thời kèm người phụ trách và điều kiện hết hiệu lực.
Theo dõi bản sửa đến production
Dùng chuỗi có thể truy vết: phát hiện, quyết định, thay đổi, review, triển khai và xác minh. Ghi định danh artifact mà production thực sự dùng. Quét lại artifact hoặc môi trường liên quan sau thay đổi.
Trong ví dụ giả định về package PDF có lỗ hổng, nhóm merge bản nâng cấp lúc 10:00. Production vẫn chạy image hôm qua lúc 11:00. Bản sửa trong repository đã hoàn tất. Khắc phục trên production chưa hoàn tất.
Sau triển khai, xác minh cả phiên bản package lẫn chức năng tạo PDF. Quét lỗ hổng không chứng minh tính năng xuất vẫn hoạt động. Test chức năng không chứng minh thành phần có lỗ hổng đã được loại bỏ.
SSDF của NIST bao gồm xác định và ứng phó lỗ hổng liên tục. Áp dụng các thực hành đó xuyên suốt vòng đời, kể cả với phần mềm ít nhận yêu cầu tính năng. NIST SSDF.
Tự động hóa với giới hạn rõ ràng
Taiga Maintaining quét các repository được liên kết và có thể chuyển phát hiện thành initiative khắc phục. Kiểm tra lượt quét thành công gần nhất, phiên bản bị ảnh hưởng và thay đổi tạo ra. Quét repository không chứng minh liệu mã có lỗ hổng có thể được thực thi trên production hay không. Maintaining.
Tự động hóa có thể giảm công việc lặp lại, nhưng dịch vụ vẫn cần người chịu trách nhiệm triển khai và xác minh. Giữ rõ quyết định phát hành, quyền truy cập khẩn cấp và thời điểm ngoại lệ hết hiệu lực.
Bảo trì cũng bao gồm ngừng sử dụng. Loại bỏ route, thông tin xác thực, tích hợp và hạ tầng không dùng qua quy trình có kiểm soát. Kiểm tra yêu cầu lưu giữ và dịch vụ phụ thuộc trước khi xóa. Ngừng dịch vụ đang chạy và phân công các nghĩa vụ lưu giữ hoặc kiểm toán còn lại.
Bài tiếp theo trình bày chi tiết về quét và khắc phục lỗ hổng liên tục.
Làm bài tập
Dùng bốn phát hiện giả định trong bài. Với mỗi phát hiện, phân công người phụ trách, hành động đầu tiên, cách xác minh và thời điểm xem lại. Giải thích quan sát mới nào sẽ làm thay đổi ưu tiên của bạn.
Tải worksheet (Markdown)Bỏ chọn sẽ xóa toàn bộ tiến độ đã lưu trong trình duyệt này.
Tiến độ ở trong trình duyệt này. Không tài khoản, không theo dõi.
Nguồn và đọc thêm
- NIST: Secure Software Development Framework ↗
- CISA: Known Exploited Vulnerabilities Catalog ↗
- Taiga docs: Maintaining ↗