Làm thế nào để làm cứng hình ảnh Docker để bảo mật tối đa

Tác giả sysadmin, T.Mười 14, 2022, 03:36:06 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Làm thế nào để làm cứng hình ảnh Docker để bảo mật tối đa


Có nhiều yếu tố góp phần vào tư thế bảo mật Docker của bạn nhưng sử dụng hình ảnh cứng là một trong những bước tốt nhất bạn có thể thực hiện để bảo vệ chính mình. Không phải tất cả các hình ảnh đều có các đặc điểm bảo mật giống nhau và một hình ảnh được cấu hình kém có thể mang lại cho kẻ tấn công chỗ đứng mà chúng cần.


1. Làm cứng hình ảnh là gì?

"Làm cứng" một hình ảnh đề cập đến việc phân tích tình trạng bảo mật hiện tại của nó và sau đó thực hiện các cải tiến để giải quyết bất kỳ mối quan tâm nào. Việc chọn một hình ảnh cơ sở dựng sẵn ubuntu:latestcó vẻ như đơn giản nhưng việc sử dụng nó nguyên trạng có thể khiến bạn phải đối mặt với các mối đe dọa tiềm ẩn. Nó giống như cung cấp một máy chủ kim loại trần mới từ ảnh cài đặt Ubuntu, sau đó không bao giờ cập nhật nó.

Giống như hình ảnh cài đặt đó, Hình ảnh trên Docker Hub cũng có thể đi kèm với các gói phần mềm lỗi thời. Hình ảnh cũng có thể bị định cấu hình sai với các giá trị mặc định không an toàn khiến khối lượng công việc của bạn gặp rủi ro.

Bằng cách làm cứng hình ảnh, bạn có thể tự tin rằng nó phù hợp với môi trường của bạn. Một quy trình làm cứng điển hình sẽ giải quyết các điểm yếu có thể xảy ra bằng cách cập nhật các gói và tích cực tìm kiếm các lỗ hổng đã biết. Nó tạo ra một hình ảnh cơ sở mới mà bạn có thể sử dụng một cách an toàn trong đường ống của mình.

2. Quét hình ảnh của bạn

Bước đầu tiên là phân tích hình ảnh cơ sở đã chọn của bạn. Cho đến khi bạn chạy quét bảo mật, bạn không có cách nào biết liệu hình ảnh của mình có an toàn để sử dụng hay không.

Có một số công cụ có khả năng quét hình ảnh Docker để tìm các lỗ hổng. Họ thường chạy các đánh giá tương tự, thường dựa trên danh sách các CVE đã biết, đưa ra danh sách các vấn đề bạn có thể kiểm tra và khắc phục.


Anchore là một trong những công cụ quét container như vậy. Nó sử dụng kiến ��trúc máy khách / máy chủ nhưng có thể chạy nội tuyến trong thiết bị đầu cuối của bạn để quét một lần. Trivy là một tùy chọn tương tự sử dụng cơ sở dữ liệu lỗ hổng của riêng nó và trình bày các vấn đề trong một bảng được định dạng độc đáo. Một giải pháp thay thế khác là Docker Scan, tích hợp với công cụ quét Snyk được bao gồm trong các phiên bản Docker CLI gần đây.


Sau khi bạn đã chọn một công cụ, hãy chạy nó đối với hình ảnh của bạn để xác định loại vấn đề nào đang xảy ra. Điều này sẽ xác định đường cơ sở mà bạn đang bắt đầu trước khi bạn bắt đầu xếp lớp các biện pháp bảo vệ bổ sung. Bạn nên lưu lại kết quả quét của mình để có thể tham khảo các lỗ hổng đã được giải quyết trong tương lai.

3. Xem lại phân tích của bạn

Tiếp theo, bạn cần xem xét cẩn thận kết quả quét để xác định vấn đề nào là mối quan tâm bảo mật thực sự và vấn đề nào có thể được bỏ qua một cách an toàn. Đừng mong đợi mọi vấn đề đều là một lỗ hổng sởn tóc gáy. Rất có thể là những hình ảnh cơ sở nặng, chẳng hạn như những hình ảnh dành cho hệ điều hành hoặc khung lập trình phổ biến, sẽ hiển thị một số CVE. Không phải tất cả chúng đều nhất thiết phải có liên quan đến môi trường Tài liệu hóa hoặc khối lượng công việc của bạn, vì vậy hãy dành thời gian để kiểm tra từng thứ và cân nhắc giữa chúng với mức độ ưu tiên của bạn.

Nếu công cụ của bạn báo cáo mức độ nghiêm trọng của CVE và điểm CVSS, bạn có thể sử dụng chúng để cân nhắc từng lỗ hổng. Những điểm số này có thể giúp bạn xác định các vấn đề cần giải quyết ngay lập tức. Tiếp tục đánh giá từng báo cáo dựa trên mô hình bảo mật và kiến thức của bạn về môi trường của bạn.

Thật an toàn khi loại bỏ các lỗ hổng bảo mật mà bạn tin rằng mình đã được bảo vệ chống lại nhưng bạn vẫn nên ghi lại quá trình hành động này. Điều này sẽ giúp bất kỳ người mới tham gia dự án nào trong tương lai hiểu được lý do tại sao báo cáo CVE vẫn chưa được giải quyết.

4. Triển khai các lớp giảm thiểu của bạn

Bây giờ bạn đã tìm ra những gì bạn sẽ giải quyết, đã đến lúc áp dụng các biện pháp bảo vệ của bạn cho Dockerfile. Tạo một Dockerfile trung gian mới nằm giữa hình ảnh cơ sở bạn đang làm cứng và hình ảnh ứng dụng hạ lưu của bạn:

Mã nguồn [Chọn]
FROM insecure-base-image:latest
RUN apt update -y && apt install -y unpatched-package

Mã nguồn [Chọn]
docker build -t secure-base-image:latest
docker push example.com/secure-base-image:latest

Bây giờ sửa đổi Dockerfile của ứng dụng của bạn để tham chiếu phiên bản cứng của hình ảnh:

Mã nguồn [Chọn]
--- FROM insecure-base-image:latest
+++ FROM secure-base-image:latest

Tất nhiên các bước chăm chỉ của bạn sẽ được tham gia nhiều hơn vào thế giới thực. Bạn sẽ cần cập nhật tất cả các gói lỗi thời, vá mọi sự cố tệp cấu hình và áp dụng các biện pháp giảm nhẹ bạn cần để giải quyết hoàn toàn các CVE. Đồng thời, hãy đảm bảo rằng các thay đổi của bạn không gây ra xung đột phiên bản làm phá vỡ ngăn xếp phụ thuộc của phần mềm của bạn. Kiểm tra ứng dụng của bạn với hình ảnh cứng để đảm bảo mọi thứ hoạt động như bình thường.

Trước khi bạn gọi là một ngày, hãy quét hình ảnh cứng của bạn bằng cùng một công cụ bảo mật mà bạn đã sử dụng lần đầu tiên. Kiểm tra các lỗ hổng bảo mật mà bạn muốn giải quyết đã bị loại bỏ khỏi danh sách hay chưa, giúp bạn yên tâm rằng khối lượng công việc của mình đã được bảo vệ.

5. Xử lý lỗ hổng mà bản quét không thể tìm thấy

Cách tiếp cận dựa trên quét để làm cứng có hiệu quả trong việc phát hiện ra các vấn đề cộng đồng đã biết bị chôn vùi trong hệ thống tệp của vùng chứa của bạn. Mặc dù vậy, quá trình quét tự động không thể tìm thấy mọi vấn đề: một số lớp lỗ hổng sẽ không được phân tích hình ảnh phù hợp, vì vậy đừng dựa vào quét như hình thức bảo vệ duy nhất của bạn.

Mã độc hại có thể xâm nhập khi bạn đang tải xuống các tệp nhị phân trong Dockerfile của mình. Các phụ thuộc mã nguồn được thêm vào thông qua trình quản lý gói là một vectơ tấn công khả thi khác.

Làm cứng hình ảnh liên quan đến nhận thức về các điểm xâm nhập mối đe dọa do Dockerfiles trình bày, không chỉ sử dụng một công cụ quét. Đánh giá thủ công thường xuyên về Dockerfile của bạn sẽ giúp bạn giảm thiểu khả năng bị tấn công chuỗi cung ứng và các điểm yếu khác của radar.

6. Sử dụng hình ảnh gia cố trước

Có một số hình ảnh được làm cứng sẵn khi bạn không muốn tạo hình của riêng mình. Bộ cấu hình cao nhất đến từ Trung tâm Bảo mật Internet (CIS) và bao gồm các tùy chọn Debian, Ubuntu, CentOS, RHEL, SUSE, NGINX, PostgreSQL và Windows Server cùng với các tùy chọn khác. Mỗi hình ảnh đã sẵn sàng để triển khai cho các nhà cung cấp đám mây phổ biến.

Sử dụng một hình ảnh được làm cứng trước đi kèm với một lưu ý lớn: bạn cần tự hỏi bản thân xem bạn có thực sự tin tưởng nó hay không. Bạn vẫn có thể muốn quét nó để tìm các lỗ hổng trước khi khởi chạy một phiên bản vào sản xuất. Mặc dù sẽ có ít vấn đề hơn nhiều so với hình ảnh Docker Hub không có sẵn, nhưng việc tự chạy kiểm tra sẽ cung cấp cho bạn một báo cáo để chỉ ra trong trường hợp có nghi ngờ trong tương lai.

7. Thêm điều để suy nghĩ

Làm cứng hình ảnh chỉ là một khía cạnh của bảo mật Docker. Một hình ảnh cứng tự nó có thể không đủ để bảo vệ cài đặt của bạn. Bạn phải xem xét tính bảo mật của toàn bộ môi trường của mình, bao gồm cấu hình thời gian chạy của Docker daemon và các biện pháp bảo vệ cấp hệ điều hành đã bật.

Các công cụ khác có sẵn để tự động hóa các quy trình này. Docker Bench là một tập lệnh chính thức để kiểm tra tất cả các khía cạnh của cài đặt Docker của bạn, bao gồm cài đặt daemon, bảo mật nhân Linux và kiểm tra cơ bản các hình ảnh vùng chứa của bạn.

Nếu bạn đang xuất bản hình ảnh cho người khác sử dụng, hãy cân nhắc việc ký tên để xác minh tính toàn vẹn của chúng. Điều này giúp giảm thiểu nguy cơ người dùng bị lừa tải xuống một giao diện độc hại.

Làm cứng một hình ảnh Docker bao gồm việc quét nó để tìm các lỗ hổng, xây dựng một hình ảnh mới với các biện pháp bảo vệ giảm nhẹ bổ sung, sau đó sử dụng phiên bản đó làm cơ sở cho ứng dụng của bạn. Mặc dù các hình ảnh phổ biến thường được xây dựng lại thường xuyên, các phiên bản trên Docker Hub vẫn có thể đủ lỗi thời để bao gồm các lỗ hổng bảo mật trẻ.

Làm cứng là một quá trình liên tục; một hình ảnh cứng rắn sẽ không ở lại như vậy mãi mãi. Bạn cần quét và xây dựng lại hình ảnh của mình thường xuyên, giúp bạn tự tin rằng khối lượng công việc sản xuất của mình đang chạy các gói và bản vá mới nhất.

Tốt nhất bạn nên kết hợp việc làm cứng vào đường dẫn xây dựng hình ảnh của bạn ngay từ đầu. Việc quét hình ảnh cơ sở và kết quả xây dựng của bạn trong hệ thống CI của bạn sẽ cung cấp cho bạn thông tin chi tiết về tư thế bảo mật đang thay đổi của bạn và cho phép bạn xem xét các lỗ hổng mới khi chúng xuất hiện. Việc nắm bắt sớm các điểm "mềm" cho phép bạn nhanh chóng tăng cường khả năng sao lưu hình ảnh của mình, giảm khả năng tiếp xúc với các mối đe dọa.