Bảo mật và quyền riêng tư
Không để trường nhạy cảm xuất hiện trong log và thông báo lỗi
Chẩn đoán hữu ích không đòi hỏi sao chép dữ liệu khách hàng vào mọi log. Hãy xác định trường sự kiện được phép, kiểm tra phản hồi lỗi và kiểm thử toàn tuyến giám sát để xử lý sự cố không tạo thêm kho dữ liệu nhạy cảm.
Log giúp nhóm giải thích thanh toán thất bại, truy cập bị từ chối và tích hợp gián đoạn. Nhưng log cũng có thể trở thành bản sao ngoài dự kiến của dữ liệu khách hàng. Trước khi nghiệm thu giám sát, hãy hỏi mỗi sự kiện chứa gì, đi đâu và ai được đọc. Đưa cả thông báo lỗi vào cùng cuộc trao đổi.
Chọn trường theo mục đích chẩn đoán
OWASP liệt kê mật khẩu, mã truy cập, mã phiên và dữ liệu cá nhân nhạy cảm trong nhóm thông tin thường không nên ghi trực tiếp vào log.[5] Bắt đầu bằng cấu trúc sự kiện có danh sách trường được phép, thay vì thói quen ghi toàn bộ nội dung yêu cầu.
Nên ghi tên sự kiện, kết quả, thành phần và mã tương quan không mang ý nghĩa trực tiếp để nối hoạt động liên quan. Chỉ thêm mã tham chiếu nghiệp vụ khi cần và khi quyền truy cập phù hợp. Mã tương quan vẫn là dữ liệu vận hành có mục đích và giới hạn lưu giữ. Nó không phải lý do để thu tất cả thông tin xung quanh.
Áp dụng ngoài phạm vi mã ứng dụng
Yêu cầu nhóm xem cổng trung gian, bộ xử lý ngoại lệ, tác nhân giám sát và bản xuất cho hỗ trợ. Bộ ghi log được viết cẩn thận chỉ là một điểm trên tuyến. Rà soát mẫu sự kiện sau chuyển tiếp, không chỉ màn hình cục bộ của lập trình viên.
OWASP khuyến nghị kiểm tra, làm sạch dữ liệu sự kiện và kiểm thử để lỗi ghi log không làm rò rỉ thông tin.[5] Chuyển thành ca nghiệm thu cho đầu vào bị từ chối, lỗi dịch vụ phía sau và bộ thu không hoạt động. Nên có thông báo lỗi giải thích bước tiếp theo, cung cấp mã tham chiếu nhưng không lặp lại bí mật đã gửi.
Ví dụ giả định: chuyển giao thanh toán
Trong luồng thanh toán thuê bao giả định, bước chuyển sang nhà cung cấp thanh toán thất bại. Khách thấy giải thích trung tính và mã tham chiếu hỗ trợ. Sự kiện vận hành ghi giai đoạn lỗi và nhóm lỗi nhà cung cấp đã được duyệt, không ghi chi tiết thanh toán hay trường xác thực.
Khi rà soát, nhóm phát hiện tác nhân giám sát vẫn thu toàn bộ yêu cầu lỗi. Nhóm đổi chính sách thu thập và kiểm thử lại tại đích nhận. Phát hiện giả định này cho thấy việc che dữ liệu phải bao phủ toàn tuyến, không chỉ một câu lệnh ghi log.
Kiểm tra bằng chứng không dùng bí mật thật
Dùng giá trị tổng hợp dễ nhận biết trong kiểm thử được phép. Tìm các giá trị đó tại đích nhận dự kiến và phản hồi khách hàng, rồi xác nhận ngữ cảnh sự kiện hữu ích vẫn còn.
- Xác định trường được phép cho sự kiện xác thực, thanh toán và hỗ trợ.
- Loại bí mật trước khi chuyển tiếp thường lệ và thu thập qua bên thứ ba.
- Kiểm tra dấu vết lỗi và thông báo dữ liệu có lặp giá trị nhạy cảm đã gửi không.
- Giới hạn người đọc log và quy định lưu giữ cho từng đích.
- Kiểm thử lại sau khi thay chế độ gỡ lỗi hoặc tích hợp giám sát.
Giữ giá trị chẩn đoán một cách có chủ đích
Bỏ quá nhiều ngữ cảnh có thể khiến điều tra khó khăn. Giữ tất cả tạo một rủi ro khác. Thống nhất bằng chứng tối thiểu cho sự cố thường gặp, rồi ghi đường xử lý có kiểm soát cho chẩn đoán ngoại lệ. Không coi che dữ liệu là xóa dữ liệu, cũng không mặc nhiên coi mã băm là vô danh. Nghiệm thu dựa trên bằng chứng giữ được và thông tin nhạy cảm đã loại trừ.