Trang chủ Thủ Thuật Cách kiểm tra nội dung của hình ảnh Docker mà không cần...

Cách kiểm tra nội dung của hình ảnh Docker mà không cần khởi động vùng chứa

0
14

Cách kiểm tra nội dung của hình ảnh Docker mà không cần khởi động vùng chứa

993634a1 9

Hình ảnh Docker có thể gói các tệp nhị phân và thư viện tùy ý thành một khối dữ liệu. Việc kiểm tra những gì thực sự bên trong một hình ảnh giúp bạn đánh giá tính phù hợp của nó và xác định bất kỳ mối nguy hiểm nào về bảo mật.

Cách dễ nhất để khám phá nội dung của hình ảnh bao gồm việc khởi động vùng chứa, nhận phiên trình bao, sau đó sử dụng các lệnh đầu cuối thông thường như lscd để xem cấu trúc thư mục của nó từ bên trong. Tuy nhiên, điều này không lý tưởng trong các môi trường quan trọng về bảo mật – việc tạo một vùng chứa với hình ảnh không xác định có thể khiến bạn tiếp xúc với một tập lệnh entrypoint độc hại.

Dưới đây là các kỹ thuật bạn có thể sử dụng để kiểm tra tệp của hình ảnh mà không cần khởi động vùng chứa.

Tạo vùng chứa mà không cần khởi động nó

docker create là một đối tác ít được biết đến hơn để docker run . Nó tạo một vùng chứa mới trên đỉnh một hình ảnh nhất định mà không cần khởi động nó. Bạn có thể khởi chạy nó sau này bằng lệnh docker start

Tạo một vùng chứa mới không nguy hiểm vì nó sẽ trơ cho đến khi nó chạy. Đại khái bạn có thể ví nó như việc xác định cài đặt cấu hình cho một máy ảo mà bạn không sử dụng. Ngay cả khi nó được thiết lập để khởi động từ ISO hệ điều hành bị nhiễm bẩn, bạn sẽ không gây ra bất kỳ thiệt hại nào cho môi trường của mình.

docker tạo - tên nghi ngờ vùng chứa nghi ngờ-hình ảnh: mới nhất
Quảng cáo

Lệnh trên tạo một vùng chứa mới được gọi là vùng chứa suspect-container sẽ dựa trên suspect-image:latest hình ảnh mới nhất.

Xuất hệ thống tệp của Container

Bây giờ bạn đã có một vùng chứa hợp lệ nhưng đã dừng, bạn có thể xuất hệ thống tệp của nó bằng cách sử dụng lệnh docker export Vì vùng chứa chưa bao giờ được khởi động, bạn có thể chắc chắn rằng quá trình xuất đại diện chính xác cho hệ thống tệp được xác định bởi các lớp hình ảnh của bạn.

docker xuất container nghi ngờ> nghi ngờ-containerr.tar

Bạn sẽ nhận được một kho lưu trữ tar trong thư mục làm việc chứa mọi thứ bên trong hình ảnh của bạn. Mở hoặc giải nén kho lưu trữ này bằng phần mềm yêu thích của bạn để duyệt các thư mục của hình ảnh cũng như danh sách và xem các tệp.

Nếu bạn không cần lưu hoặc mở kho lưu trữ, thay vào đó muốn lấy danh sách tệp trong thiết bị đầu cuối của mình, hãy sửa đổi lệnh tar

docker xuất container nghi ngờ | tar t> nghi ngờ-container-files.txt

tar t liệt kê nội dung của kho lưu trữ đầu vào. Bạn sẽ kết thúc với một danh sách tất cả mọi thứ trong hình ảnh của bạn bên trong suspect-container-files.txt .

Sử dụng “lưu hình ảnh docker”

Một biến thể của kỹ thuật này là sử dụng docker image save . Lệnh này trực tiếp lưu dữ liệu của hình ảnh vào kho lưu trữ tar.

hình ảnh docker lưu hình ảnh nghi ngờ: mới nhất> nghi ngờ-image.tar
Quảng cáo

Phương pháp này tạo ra một kho lưu trữ tập trung vào hình ảnh, không phải các vùng chứa được tạo từ nó. Tệp tar sẽ bao gồm một manifest.json , mô tả các lớp của hình ảnh và một tập hợp các thư mục chứa nội dung của tất cả các lớp riêng lẻ.

Điều này rất hữu ích khi bạn đánh giá vai trò của từng lớp trong việc xây dựng hình ảnh. Tuy nhiên, tạo và xuất vùng chứa đã dừng là một cách dễ tiếp cận hơn để duyệt qua hệ thống tệp cuối cùng của hình ảnh.

Lớp danh sách Với “lịch sử hình ảnh docker”

Một cách khác để kiểm tra nội dung của hình ảnh là xem danh sách lớp của nó bằng lệnh docker image history .

docker lịch sử hình ảnh nghi ngờ-hình ảnh: mới nhất

Điều này cho thấy các hướng dẫn Dockerfile tạo các lớp của hình ảnh. Nó sẽ không cho phép bạn xem các tệp và thư mục riêng lẻ trong hệ thống tệp của hình ảnh nhưng có thể hiệu quả hơn trong việc làm nổi bật các hành vi đáng ngờ.

Mỗi dòng trong đầu ra của lệnh đại diện cho một lớp mới trong hình ảnh. Cột “CREATED BY” hiển thị lệnh Dockerfile đã tạo lớp.

d98f8a38

Quét danh sách lớp giúp bạn nhanh chóng xác định các hành động đáng ngờ có thể cho thấy bạn đang sử dụng hình ảnh độc hại. Tìm kiếm các tệp nhị phân không xác định trong RUN , các thay đổi biến môi trường không mong muốn và các câu lệnh CMD ENTRYPOINT

Quảng cáo

Hai lớp sau được cho là quan trọng nhất để đánh giá khi kiểm tra lịch sử hình ảnh. Họ cho bạn biết chính xác những gì sẽ khởi chạy khi bạn docker run docker hoặc docker start một vùng chứa. Nếu một trong hai hướng dẫn trông có vẻ đáng ngờ hoặc không quen thuộc, hãy xem xét sử dụng các kỹ thuật ở trên để kiểm tra toàn bộ các tệp nhị phân hoặc tập lệnh được tham chiếu.

Việc truy cập hệ thống tệp của hình ảnh cung cấp một cái nhìn rất chi tiết về nội dung của nó, nơi nội dung độc hại có thể dễ dàng bị phát hiện, ngay cả sau khi kiểm tra thủ công. Danh sách lớp được hiển thị bởi docker image history của docker không thể giúp bạn tìm thấy các mục hệ thống tệp được ngụy trang nhưng có hiệu quả hơn trong việc hiển thị các hoạt động độc hại trắng trợn như tải xuống phần mềm gián điệp phức tạp hoặc ghi đè biến môi trường.

Công cụ của bên thứ ba

Các công cụ mã nguồn mở của bên thứ ba cũng có sẵn để giúp bạn liệt kê nội dung của hình ảnh. Chúng thường cung cấp khả năng lọc để bạn có thể nhanh chóng liệt kê các gói hệ điều hành đã cài đặt, các phụ thuộc ngôn ngữ lập trình và các tệp thông thường.

Kiểm tra hình ảnh được tích hợp trong công cụ quét container Anchore. Bạn có thể sử dụng nó bằng cách chạy anchore-cli image content my-image:latest sau khi bạn đã cài đặt Anchore. Điều này cung cấp một danh sách đầy đủ các nội dung hệ thống tệp của hình ảnh đích.

7beeba46

Một tùy chọn khác là Dive, một công cụ được xây dựng rõ ràng để hiển thị nội dung hình ảnh. Nó sử dụng cách tiếp cận dựa trên lớp và làm nổi bật những thay đổi của hệ thống tệp được thực hiện với mỗi lớp mới. Bạn duyệt qua hệ thống tệp bằng chế độ xem đầu cuối tương tác dựa trên cây.

Phần kết luận

Hình ảnh Docker thường không rõ ràng tại điểm tiêu thụ. Các cơ quan đăng ký phổ biến không cung cấp danh sách tệp trong các API hoặc giao diện người dùng của họ. Chức năng này cũng không được tích hợp vào Docker CLI. Mặc dù nhiều nhà phát triển sử dụng hình ảnh nguyên bản, nhưng một hình ảnh chưa được kiểm duyệt có thể không dung nạp được trong các môi trường rủi ro cao.

Quảng cáo

Bạn có thể kiểm tra một hình ảnh đáng ngờ bằng cách xuất nó vào một kho lưu trữ và duyệt qua nội dung của nó. Điều này giữ cho hình ảnh trơ, ngăn nội dung độc hại chạy, đồng thời cung cấp một cái nhìn đầy đủ về hệ thống tệp mà nó sẽ tạo trong một vùng chứa.

Bạn có thể tăng cường hơn nữa tư thế bảo mật của mình bằng cách kết hợp khám phá nội dung thủ công với quét hình ảnh tự động. Những điều này đẩy nhanh quá trình phát hiện các lỗ hổng đã biết nhưng có thể không hiệu quả trong việc tìm kiếm các tệp độc hại mới được gửi ở các vị trí được che giấu. Sử dụng nhiều kỹ thuật cho phép bạn mở rộng phạm vi bảo hiểm của mình và nắm bắt tập hợp các tệp nghi ngờ rộng nhất có thể.

How to Run MongoDB in a Docker Container

Cách chạy MongoDB trong Docker Container

How to Get Started With DevSpace and Rapidly Develop Kubernetes Apps

Cách bắt đầu với DevSpace và phát triển nhanh ứng dụng Kubernetes

How to Run Your Own DNS Server on Your Local Network

Cách chạy máy chủ DNS của riêng bạn trên mạng cục bộ của bạn

Using Kubernetes Annotations, Labels, and Selectors

Sử dụng Kubernetes Chú thích, Nhãn và Bộ chọn

How to Clone or Download a Specific Branch from Github

Cách sao chép hoặc tải xuống một nhánh cụ thể từ Github

What are Docker Storage Drivers and Which Should You Use?

Trình điều khiển lưu trữ Docker là gì và bạn nên sử dụng trình điều khiển nào?

Dịch từ: https://www.cloudsavvyit.com/14663/how-to-inspect-a-docker-images-content-without-starting-a-container/

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