Trang chủ Thủ Thuật Cách bảo mật quét hình ảnh Docker bằng Anchore

Cách bảo mật quét hình ảnh Docker bằng Anchore

0
17
Graphic photo showing a finger pointing at a padlock symbol

Cách bảo mật quét hình ảnh Docker bằng Anchore

Graphic photo showing a finger pointing at a padlock symbol
Wright Studio / Shutterstock.com

Anchore Engine là một công cụ quét mã nguồn mở đánh giá tính bảo mật của hình ảnh Docker của bạn. Báo cáo Anchore cung cấp cho bạn thông tin chi tiết về các phiên bản gói lỗi thời và các lỗ hổng tiềm ẩn trong các phần phụ thuộc.

Bạn sẽ cần phải xây dựng hình ảnh Docker của mình và đẩy nó vào sổ đăng ký trước khi bạn có thể quét nó. Anchore sử dụng Dockerfiles khi có sẵn để xác định các vấn đề cấu hình có thể xảy ra nhưng dựa vào việc quét các hình ảnh đã xây dựng khi biên dịch danh sách lỗ hổng bảo mật.

Kiến trúc của Anchore

Thiết lập Anchore trước đây yêu cầu một cài đặt chuyên dụng của Anchore Engine hoạt động độc lập với môi trường xây dựng hình ảnh của bạn. CLI riêng biệt cho phép bạn tương tác với Engine.

Mô hình này yêu cầu sử dụng chuỗi lệnh CLI để đăng ký hình ảnh với Anchore, bắt đầu quét và truy cập kết quả. Tiến trình các bước Cố định thông qua việc kéo hình ảnh của bạn từ sổ đăng ký của bạn, tạo một báo cáo và làm cho nó có sẵn để sử dụng.

Anchore hiện cũng cung cấp tính năng quét nội tuyến. Chúng cung cấp cho bạn một lệnh duy nhất để quét hình ảnh và nhận kết quả trong thiết bị đầu cuối của bạn. Chúng tôi sẽ tập trung vào khả năng này trong bài viết này.

Chạy Tập lệnh Nội tuyến

Quét nội tuyến được cung cấp bởi một tập lệnh Bash được lưu trữ trên máy chủ của Anchore. Tải tập lệnh xuống máy của bạn và làm cho nó có thể thực thi được:

curl -s https://ci-tools.anchore.io/inline_scan-latest -o anchorre.sh
chmod + x anchorre.sh

530c00fe

Quảng cáo

Bây giờ bạn có thể sử dụng tập lệnh nội tuyến để bắt đầu quét hình ảnh vùng chứa:

./anchore.sh -r alpine: mới nhất

Lần quét đầu tiên có thể mất một lúc. Tập lệnh sẽ kéo hình ảnh Anchore Engine Docker, bắt đầu một phiên bản Anchore mới và định cấu hình PostgreSQL và một phiên bản đăng ký Docker. Sau đó, nó sẽ đợi Anchore Engine khởi động.

839d6914

 

Khi động cơ hoạt động, hình ảnh Docker mục tiêu sẽ được kéo và phân tích. Sau đó, bạn sẽ thấy báo cáo bảo mật được hiển thị trong thiết bị đầu cuối của mình. Tập lệnh sẽ kết thúc bằng cách dọn dẹp môi trường và dừng vùng chứa Anchore Engine Docker.

Quét kết quả

Kết quả quét bao gồm siêu dữ liệu về hình ảnh, theo sau là bảng các vấn đề đã tìm thấy. Anchore phân tích hình ảnh dựa trên các chính sách đã định cấu hình của nó. Bộ mặc định tìm kiếm các lỗ hổng đã biết trong các gói phần mềm và các vấn đề tiềm ẩn với Dockerfile được sử dụng để xây dựng hình ảnh.

59470456

Kết quả quét tổng thể được hiển thị trong Status phía trên bảng lỗ hổng bảo mật. Nếu bạn thấy pass , Anchore hài lòng rằng hình ảnh của bạn đã được bảo mật và sẵn sàng để sử dụng trong quá trình sản xuất. Một fail có nghĩa là bạn nên xem lại các lỗi và khắc phục chúng nếu có thể.

Quảng cáo

Mỗi lỗ hổng được tìm thấy bao gồm xếp hạng mức độ nghiêm trọng của nó từ LOW đến CRITICAL . Các vấn đề với ID CVE bao gồm một liên kết để xem chi tiết trên trang web MITER.

Tạo tệp báo cáo

Mặc dù bảng đầu ra mặc định hoạt động tốt cho con người, Anchore cũng có thể tạo các tệp báo cáo JSON mà bạn có thể lưu trữ hoặc cung cấp vào các công cụ khác. Thêm -r khi bạn chạy tập lệnh quét để bật tính năng này.

e936d408

Anchore sẽ viết báo cáo vào các báo cáo anchore-reports trong thư mục làm việc của bạn. Mỗi lần quét tạo ra một tập hợp các tệp JSON liên quan đến các phần khác nhau của báo cáo, chẳng hạn như lỗ hổng bảo mật, gói hệ điều hành và yêu cầu chính sách.

Việc kiểm tra các tệp cung cấp cho bạn thông tin chi tiết về từng phát hiện, cung cấp nhiều dữ liệu hơn so với kết quả đầu cuối cung cấp. Điều này mở rộng đến điểm số CVSS, phiên bản gói chính xác và dấu hiệu của nhà cung cấp về việc liệu bản sửa lỗi có được tạo ra hay không.

Quét kho lưu trữ hình ảnh đã lưu

Anchore có thể quét các thư mục của kho lưu trữ hình ảnh Docker đã lưu cũng như hình ảnh thực tế nằm trong sổ đăng ký. Xuất một tập hợp các hình ảnh Docker bằng cách sử dụng docker save , đặt chúng vào một thư mục, sau đó sử dụng -v để làm cho tập lệnh Anchore quét các kho lưu trữ đó:

docker save my-image: new -o docker-images / my-image
./anchore -v docker-images

Cung cấp Dockerfile của Hình ảnh

Tập lệnh nội tuyến chấp nhận -d cho phép bạn cung cấp đường dẫn đến Dockerfile cục bộ. Anchore sẽ kiểm tra hình ảnh đã xây dựng và Dockerfile, cho phép xác định các vấn đề về thời gian xây dựng có thể ảnh hưởng đến tình trạng bảo mật của hình ảnh.

./anchore.sh my-image: new -d / dockerfiles / my-image

Sử dụng chính sách tùy chỉnh

Anchore có thể mở rộng thông qua việc sử dụng các bộ chính sách tùy chỉnh. Các chính sách được tạo ra từ sự kết hợp của “cổng”, “trình kích hoạt” và “hành động”. Những điều này cho phép bạn xây dựng các quy tắc kiểm tra hình ảnh vùng chứa theo các yêu cầu bảo mật chính xác của bạn.

Quảng cáo

Mỗi cổng của chính sách tạo ra một trong ba hành động: “đi”, thẻ cho phép quá trình quét tiếp tục, “cảnh báo”, cho phép quá trình chạy tiếp tục nhưng kèm theo cảnh báo và “dừng lại” cho biết hình ảnh không được xử lý thêm.

Các chính sách được đóng gói dưới dạng “gói” ánh xạ các bộ quy tắc cho các cơ quan đăng ký và hình ảnh mà chúng áp dụng. Bạn có thể thêm gói chính sách vào quá trình quét của mình bằng cách chuyển -b khi chạy tập lệnh:

./anchore.sh -b policy-pack.json

Điều này sẽ bao gồm các chính sách tùy chỉnh của bạn, giúp bạn tự tin rằng hình ảnh đáp ứng các tiêu chuẩn bảo mật của riêng bạn.

Đây là một gói chính sách đơn giản sẽ đưa ra cảnh báo nếu bạn không cung cấp Dockerfile cho Anchore bằng cách sử dụng -d được mô tả ở trên. Việc cung cấp Dockerfile được sử dụng để xây dựng hình ảnh mang lại cho Anchore phạm vi bao phủ rộng nhất có thể, vì vậy bạn nên cảnh báo khi không có dữ liệu nào được đưa ra.

 {
    "action": "WARN",
    "comment": "Không có Dockerfile nào được cung cấp!",
    "gate": "dockerfile",
    "params": [],
    "trigger": "no_dockerfile_provided"
}

Chính sách này áp dụng cho dockerfile cổng nơi Anchore kiểm tra xem Dockerfile của bạn đáp ứng tiêu chuẩn thực hành tốt nhất. Anchore thực thi trình no_dockerfile_provided khi bắt đầu quét trong trường hợp không có Dockerfile của hình ảnh.

Phần kết luận

Anchore cho phép bạn tạo báo cáo bảo mật cho hình ảnh Docker bằng cách quét các gói phần mềm lỗi thời, các lỗ hổng đã biết, sự cố cấu hình Dockerfile và các nguồn sự cố có thể có khác. Bạn có thể viết các bộ chính sách của riêng mình để tùy chỉnh những gì được kiểm tra và căn chỉnh Anchore với các tiêu chuẩn bảo mật của bạn.

Quảng cáo

Mặc dù Anchore sử dụng kiến trúc máy khách-máy chủ, tập lệnh “nội tuyến” của dự án sẽ loại bỏ bớt độ phức tạp của việc cài đặt để bạn có thể nhanh chóng quét các hình ảnh cục bộ và nhận báo cáo ngay trong thiết bị đầu cuối của mình. Nếu bạn đang sử dụng Anchore thường xuyên hoặc quét hình ảnh trong đường ống CI / CD của mình, tốt nhất vẫn là triển khai phiên bản Anchore Engine chuyên dụng, sau đó sử dụng CLI để tạo báo cáo. Điều này đòi hỏi một quy trình nhiều giai đoạn cho mỗi lần quét nhưng cũng giúp bạn linh hoạt hơn khi truy cập các phần báo cáo và đồng bộ hóa nguồn cấp dữ liệu về lỗ hổng bảo mật.

What’s New in PHPStan 1.0?

Có gì mới trong PHPStan 1.0?

How Docker Image Signing Will Evolve With Notary v2

Docker Image Signing sẽ phát triển như thế nào với Notary v2

DKIM, DMARC, and SPF: Setting Up Email Security

DKIM, DMARC và SPF: Thiết lập bảo mật email

Fixing React’s “Called SetState() on an Unmounted Component” Errors

Sửa lỗi “Được gọi là SetState () của React trên một thành phần không được gắn kết”

How to Run a Command on a Running Docker Container

Cách chạy lệnh trên vùng chứa Docker đang chạy

How to Run a Command on a Running Docker Container

Cách sử dụng Dockerfile ONBUILD để chạy trình kích hoạt trên các công trình hạ nguồn

Dịch từ: https://www.cloudsavvyit.com/14544/how-to-security-scan-docker-images-with-anchore/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây