Cổng VPN của bạn đã bị xâm nhập: điều gì thực sự bị lộ
Một cổng VPN bị tấn công nhìn thấy bên trong đường hầm của chính nó, nhưng đó không phải là kiểm soát mọi phiên. Tách lưu lượng, phạm vi tiếp cận và bí mật lưu trữ trước khi khôi phục.
Một cổng VPN nằm ở cuối đường hầm mà nó bảo vệ, nghĩa là nó chấm dứt mã hóa đó thay vì chuyển tiếp. Nếu kẻ tấn công kiểm soát máy chủ, đường hầm vẫn trông khỏe mạnh từ bên ngoài trong khi chiếc máy ở giữa không còn đáng tin. Câu hỏi hữu ích không phải là liệu mọi thứ có bị giải mã hay không. Mà là máy chủ đó có thể thấy gì, có thể vươn tới đâu, và những bí mật nào thực sự được lưu trên đó. Ba câu trả lời rất khác nhau, và cách ứng phó cũng khác theo.
Cổng chấm dứt đường hầm, nên nó nhìn thấy bên trong
Mã hóa trong VPN diễn ra từng chặng, và cổng chính là chặng đó. Nó bóc lớp ngoài, áp dụng chính sách và chuyển tiếp gói bên trong, nên mỗi gói được mang theo đều tồn tại ở dạng đọc được trong bộ nhớ của máy chủ đó tại một thời điểm nào đó. Đó là thiết kế chứ không phải khiếm khuyết. Đó cũng là lý do việc cổng bị xâm nhập là sự kiện khác với việc mật mã của đường hầm bị xâm nhập.
Thứ đầu tiên kẻ tấn công giành được là vị trí: khả năng quan sát lưu lượng được mang, thay đổi việc chuyển tiếp, hoặc trả lời thay cho một backend. Thứ họ giành được tiếp theo phụ thuộc vào máy chủ, và đây là chỗ người ta đánh giá quá cao. Chỉ truy cập vào cổng không trao khóa phiên TLS của trình duyệt, vì chúng chưa bao giờ nằm trên cổng.
Ba mức phơi nhiễm không cùng kích thước
Chia câu hỏi thành lưu lượng được mang, hệ thống có thể tiếp cận và bí mật lưu trữ, rồi trả lời từng phần riêng.
| Exposure | What the attacker gains | What does not follow |
|---|---|---|
| Carried traffic | Plaintext of whatever the tunnel forwards without its own encryption | Keys for TLS sessions that terminate at the application |
| Reachable systems | Whatever the backends accept from the gateway's address | Control of every connected client endpoint |
| Stored secrets | The specific keys, tokens and accounts present on that host | Possession of every client certificate or of a CA key |
Hàng giữa là hàng bị bỏ qua. Cổng thường có tuyến vào mạng riêng và địa chỉ nguồn mà các backend đã tin tưởng, nên câu hỏi thú vị là các backend đó cho phép gì từ địa chỉ đó. Chính sách truy cập máy khách hẹp là một kiểm soát tốt, nhưng kẻ tấn công trên máy chủ không bị giới hạn trong giao diện mà một máy khách bình thường sẽ dùng.
Hàng dưới quyết định sự cố kéo dài bao lâu. Khóa máy chủ và khóa CA có bán kính ảnh hưởng hoàn toàn khác nhau, và cả tài khoản quản trị cục bộ với token giám sát chỉ đọc cũng vậy.
HTTPS bên trong đường hầm vẫn là HTTPS
TLS của ứng dụng kết thúc tại ứng dụng, không phải tại cổng VPN, nên một cổng bị xâm nhập chỉ quan sát được bản mã cho các luồng đó. Đó là giới hạn thực sự đối với những gì kẻ tấn công giành được, và nên nói rõ, vì khẳng định ngược lại gieo hoảng loạn và quyết định tồi. Hai điều kiện phá vỡ điều đó. Nếu có một thành phần kiểm tra với chứng chỉ tin cậy trên đường đi, cổng có thể thấy bản rõ theo thiết kế. Nếu chính điểm cuối của ứng dụng bị xâm nhập, đường hầm không còn liên quan.
Vì vậy câu trả lời cho việc họ đã thấy gì là có điều kiện, và nên được ghi lại như các điều kiện thay vì công bố như một phán quyết.
Điều gì phải thay đổi trước khi tin tưởng trở lại
Xây dựng lại máy chủ là cần thiết và hiếm khi đủ. Kẻ tấn công còn giữ tài khoản quản trị, thông tin triển khai hoặc khóa ký có thể đưa máy chủ trở lại theo ý muốn. Khôi phục phải bắt đầu từ một con đường quản trị không phụ thuộc vào chiếc máy bị xâm nhập.
Kiểm kê những gì có trên đó trước khi quyết định luân chuyển gì. Khóa, tài khoản dịch vụ, token API, người dùng cục bộ, công việc theo lịch, quan hệ tin cậy và đường ống triển khai đều là ứng viên, và mỗi thứ đều có chủ sở hữu cần xác nhận.
ss -lntup
getent passwd
crontab -l
ip route show table allDanh sách đó là cách nhanh nhất để thấy máy chủ đã cung cấp gì và có thể vươn tới đâu. Bảo toàn bằng chứng trước, theo quy trình của chủ sở hữu ứng phó, vì việc xây dựng lại phá hủy đúng thứ mà một cuộc điều tra cần. NIST SP 800-61 Bản sửa đổi 3 coi chuẩn bị, phát hiện, ứng phó và khôi phục là các phần của một quy trình rủi ro duy nhất, không phải chỉ dẫn khởi động lại.
Ranh giới khiến lần sau rẻ hơn
Đáng để xây bốn ranh giới trước khi bạn cần. Giữ một con đường khôi phục độc lập không xác thực qua cổng. Giữ thẩm quyền ký tách khỏi máy chủ phục vụ lưu lượng. Giới hạn nơi cổng có thể vươn tới, để một cổng bị xâm nhập không tự động là một mạng quản trị bị xâm nhập. Và ghi lại ai sở hữu từng thông tin xác thực, để việc luân chuyển là một cuộc gọi thay vì một dự án khảo cổ.
Không điều nào trong số này ngăn được xâm nhập. Chúng giới hạn nó, và tạo ra sự khác biệt giữa một tuần tồi tệ và một quý tồi tệ.