‫Được rồi.
‫Tiếp theo, quét repo mã.
‫Điều này thậm chí không phải là cụ thể của Docker,
‫nhưng có những công cụ trên mạng và Sneak là một trong
‫số đó. Sneak, sẽ quét
‫mã phụ thuộc của bạn bên trong repos.
‫Nếu bạn có mã nguồn mở, nếu bạn đang phát triển một mã
‫nguồn mở, họ sẽ làm rất nhiều thứ này miễn phí.
‫Họ sẽ quét repo GitHub, repo Bitbucket của bạn và
‫xem xét các phần phụ thuộc.
‫Tôi nhận được báo cáo hàng tuần từ họ trên các kho lưu trữ mã nguồn mở của tôi
‫và bất kỳ lỗ hổng nào mà họ tìm thấy.
‫Ngày nay, GitHub cũng tự mình thực hiện rất nhiều điều này
‫miễn phí. Sneak đã
‫xuất hiện lâu hơn và diễn ra lâu hơn, vì vậy tôi
‫đại loại là có cả hai. Tôi có GitHub gửi email cho
‫tôi và tôi có Lén. Bạn có thể trả tiền cho Sneak để quét nội dung.
‫Giờ đây, họ cũng có nhiều tính năng hơn, nơi họ đang thực hiện hình ảnh
‫và những thứ khác, không chỉ repo mã.
‫Tuy nhiên, có một dòng là hãy quét các repo của
‫bạn sớm trong quá trình này.
‫Đừng đợi bạn xây dựng hình ảnh và sau đó có
‫những thứ trong CI, bạn biết đấy, trong quá trình thử nghiệm nơi
‫bạn đang quét. Quét càng sớm càng tốt.
‫Đây là một trong những nguyên lý cốt lõi của thứ
‫gọi là bảo mật ShiftLeft.
‫Nếu bạn tưởng tượng một Bảng Kanban, nơi tất cả công việc của bạn ở bên trái
‫và đầu ra của bạn ở bên phải, thì
‫phong trào bảo mật ShiftLeft, nếu bạn chỉ tìm kiếm xung quanh về bảo
‫mật ShiftLeft, tất cả đều nhằm chuyển trách nhiệm bảo mật sớm
‫hơn và sớm hơn trong quy trình
‫phát triển của bạn.
‫Vì vậy, một cách để làm điều đó là yêu cầu các máy quét tự động
‫này quét các phần phụ thuộc mã của bạn bên trong git repos của
‫bạn trước khi bạn bắt đầu chạy mọi thứ trên máy
‫chủ, phải không. Tôi sẽ làm điều đó.
‫Không cụ thể là một thứ Docker, nhưng tôi sẽ làm điều đó.
‫Bước tiếp theo là quét hình ảnh, tương
‫tự như vậy. Tuy nhiên, chúng tôi nhận được nhiều tính năng hơn ở đây.
‫Chúng tôi không chỉ quét các phần phụ thuộc mã của bạn.
‫Chúng tôi có thể quét chính vùng chứa.
‫Hình ảnh, bên phải. Chúng tôi có
‫thể quét tất cả các phần phụ thuộc ở
‫đó không chỉ như các gói npm của bạn hay
‫các gói Python của bạn. Bạn hiện đang quét các
‫gói YUM và APK, hoặc apt, hoặc các loại trình
‫quản lý gói này cho Hệ điều hành.
‫Đó là những gì tôi muốn nói về máy quét hình ảnh, bởi vì nó có
‫thể quét những thứ đó cũng như các phần phụ thuộc mã của bạn.
‫Vì vậy, có rất nhiều công cụ ở đây.
‫Một bộ rất phổ biến trong số chúng đã xuất hiện được một thời
‫gian, nhưng một vài bộ mới đã xuất hiện mà tôi
‫muốn nói với bạn.
‫Người đầu tiên ở đây là Trivy, và tôi vừa mới biết về điều này trong tháng
‫này, thực sự là vào tháng Mười.
‫Trivy được xây dựng bởi Aqua Security, cũng là công ty đã
‫xây dựng MicroScanner.
‫MicroScanner là một trong những công cụ cùng với rất
‫nhiều công cụ khác, Anchor cũng là một công cụ phổ biến khác.
‫Đây là tất cả các công cụ mã nguồn mở quét hình ảnh của bạn
‫để tìm các lỗ hổng CVE.
‫CVE là cơ sở dữ liệu về tất cả các lỗ hổng bảo mật mã nguồn
‫mở mà tất cả chúng ta đều được biết đến trong tin tức.
‫Đó là của Mitre, một công ty quản lý cơ sở dữ liệu đó.
‫Đây là một điều cộng đồng, đúng.
‫Bất cứ khi nào ai đó tìm thấy một lỗ hổng trong phần mềm, họ đưa nó vào
‫và nó sẽ nhận được một số CVE.
‫Đó là lỗ hổng và khai thác phổ biến,
‫đại loại như vậy.
‫Tôi không thể nhớ chính xác CVE là viết tắt của từ gì.
‫Tôi chắc rằng một trong số các bạn sẽ nói với tôi trong cuộc trò chuyện.
‫Nhưng CVE có một con số, đúng.
‫Chúng tôi thấy một số được chỉ định cho lỗi
‫đã biết đó trong cộng đồng. Máy quét CVE sẽ quét hình ảnh của bạn
‫để tìm lỗ hổng đó.
‫Khi bạn bắt đầu thực hiện những điều này, sẽ
‫có tất cả các loại chi tiết vụn vặt, như máy quét bạn có
‫cần chạy trong hình ảnh Docker trong thời gian xây dựng không?
‫Hay nó quét một hình ảnh đã được tạo sẵn?
‫Máy quét đó có hỗ trợ phân phối
‫cơ sở của bạn không? Nó có hỗ trợ Red Hat không?
‫Nó có hỗ trợ Alpine không?
‫Bất kỳ loại hình ảnh phân phối nào khác mà bạn đã chọn sử dụng,
‫nó có hỗ trợ những hình ảnh đó không?
‫Nó cũng hỗ trợ trình quản lý gói cho ứng dụng của
‫bạn như npm
‫hoặc pip, hoặc một trong hàng tá trình quản lý
‫gói khác, đúng không. Nó có hỗ trợ những điều đó không?
‫MicroScanner đã không làm
‫được tất cả những điều đó. Nó đã làm được một số điều
‫đó, nhưng giống như rất nhiều công cụ khác trong hệ sinh thái, chúng không làm được tất cả.
‫Ngay bây giờ, cái này từ Aqua Security có tên là Trivy, hãy tìm
‫mọi cách để
‫đạt được điểm cao nhất của thứ này.
‫Trivy tuyên bố họ là máy
‫quét mã nguồn mở miễn phí hoàn chỉnh nhất hiện có.
‫Dưới đây, bạn sẽ thấy những gì họ hỗ trợ.
‫Bạn sẽ nhận thấy rằng họ hỗ trợ tất cả các hình ảnh dựa trên này.
‫Sau đó, nếu bạn thực sự đi xuống, sẽ có một bản so
‫sánh cho thấy chúng so với tất cả các công cụ khác
‫hoặc ít nhất là các phiên bản nguồn mở phổ biến của
‫những công cụ này. Chắc chắn có nhiều công cụ hơn thế này.
‫Có rất nhiều lựa chọn bạn phải thực hiện ở đây.
‫Một lựa chọn là tôi muốn quét ở đâu?
‫Tôi có muốn kho lưu trữ hình ảnh của mình tự quét chúng, giống
‫như Docker Enterprise DTR không?
‫Nơi bạn có một sổ đăng ký giữ hình ảnh của bạn và
‫sổ đăng ký đó chạy quét các hình ảnh trong chính sổ đăng
‫ký đó tất cả trong một lần.
‫Quay cũng làm được điều này. Quay là một kho lưu
‫trữ hình ảnh đám mây và nó cũng sẽ quét, đúng không.
‫Mỗi một trong những máy quét này không phải lúc nào cũng quét tất cả các loại hình ảnh
‫và tất cả các phụ thuộc ứng dụng.
‫Vì vậy, ở đây khá tuyệt khi họ cho thấy ... về cơ bản, chữ X có
‫nghĩa là họ không làm điều đó.
‫Số 0 hoặc chữ O ở đó, hình tròn, có nghĩa là họ
‫làm điều đó. Sau đó, tôi
‫nghĩ OO kép ở đây có nghĩa là tốt
‫nhất, và hình tam giác có nghĩa là có vấn đề, có
‫mối quan tâm ở đó.
‫Vì vậy, họ đang tuyên bố rằng Trivy, mà họ đã mua trong năm nay,
‫tôi tin. Trivy
‫làm tất cả. Nó thực hiện các gói hệ điều hành, phụ thuộc ứng dụng.
‫Họ tuyên bố rằng nó dễ sử dụng.
‫Họ khẳng định nó chính xác hơn. Nếu bạn bắt đầu đọc
‫đến điều này, bạn sẽ nhận ra rằng một trong những vấn đề lớn
‫mà tôi tiếp tục nói đến là hình ảnh cơ sở của Alpine không hoạt động với
‫hầu hết tất cả các máy quét này.
‫Nó chỉ không có cơ sở dữ liệu lỗ hổng được kết nối đúng
‫cách để khi bạn chạy các máy quét này, nó sẽ
‫phát hiện ra các lỗ hổng trong Alpine.
‫Trivy tuyên bố rằng họ đã khắc phục điều đó bằng một
‫phương pháp mới mà họ đang triển khai và chúng tôi sẽ xem liệu những người khác
‫có thực hiện điều đó hay không.
‫Họ tuyên bố là hoàn chỉnh nhất.
‫Rất nhiều người bạn Docker Captain của tôi đều nói rằng họ đang sử dụng nó
‫và sử dụng nó rất tuyệt.
‫Một trong những quyết định khác, ngoài máy quét nào, là bạn sẽ
‫quét ở đâu?
‫Tôi thích quét trong quá trình xây dựng hình ảnh.
‫Tôi muốn quét trong quá trình xây dựng
‫hình ảnh tự động CI hơn là quét nó sau khi hình ảnh được tạo.
‫Đó chỉ là tôi.
‫Bạn thậm chí có thể có các hệ thống khác nhau
‫quét vào những thời điểm khác nhau, chỉ để an
‫toàn, đúng, chỉ để chắc chắn. Bạn có thể có các hệ thống quét trên
‫các máy chủ đang chạy trong phiên bản sản xuất, tùy thuộc vào
‫môi trường của bạn. Điều đó không phổ biến lắm.
‫Tuy nhiên, nếu bạn đang ở trong một môi trường siêu an toàn mà
‫bạn muốn quét mọi thứ đang hoạt động trực tiếp, bạn chắc chắn có thể làm điều đó với
‫một số công cụ này.
‫Một bản demo mà tôi thường đưa ra
‫là về MicroScanner. Về cơ bản, tất
‫cả những gì bạn phải làm trong MicroScanner, cũng như công cụ khác
‫này, đều có trong MicroScanner, bạn có thể thêm nó vào Dockerfile của mình.
‫Tôi tin rằng ứng dụng Tivey, bạn quét sau khi hình
‫ảnh được tạo.
‫Nếu bạn siêu hoang tưởng, bạn có thể chỉ cần sử
‫dụng MicroScanner bên trong hình ảnh Docker của mình.
‫Sau đó, bạn có thể chạy một cái gì đó giống như Tivey sau khi thực
‫tế trên các hình ảnh trước khi chúng được gửi đến
‫sổ đăng ký, bạn biết đấy. Bạn luôn có thể tải chúng xuống sau,
‫nhưng tôi muốn biết rằng hình ảnh của tôi không có lỗ hổng bảo mật
‫trước khi tôi gửi nó lên.
‫Vì vậy, đó là những gì bạn có thể làm ở đó. Hiện nay.
‫Tôi chỉ muốn nói với bạn một cảnh báo.
‫Bạn có thể sẽ không có bất kỳ ... bạn có thể
‫sẽ không có bất kỳ hình ảnh nào, hoặc có thể
‫chỉ là một vài hình ảnh, không có lỗ
‫hổng trên toàn bộ. Đó chỉ là do
‫bản chất của mã nguồn mở. Thông thường, nếu bạn quét bất kỳ hình ảnh
‫nào, thông thường, nếu bạn quét bất kỳ hình ảnh nào ngoài đó,
‫nó sẽ có lỗ hổng.
‫Nhiệm vụ của bạn là làm việc với nhóm bảo mật của bạn về những gì
‫có thể chấp nhận được, không phải chúng tôi không bao giờ có thể có lỗ hổng bảo mật.
‫Bởi vì các lỗ hổng nhất định thậm chí có thể không áp dụng cho bạn.
‫Chỉ vì chúng trong hình ảnh của bạn không có nghĩa là chúng tự động
‫trở thành một vấn đề, đúng không.
‫Bạn sẽ phải làm một
‫số công việc. Tôi nghĩ những gì tôi sẽ đề xuất
‫là thực hiện những điều này ngay
‫bây giờ, nhưng tắt kiểu thất bại của nó và nói tiếp
‫tục thất bại ở đây, có nghĩa là tất cả những gì tôi sẽ làm
‫là cảnh báo bạn rằng có lỗ hổng. Tôi sẽ không dừng quá trình xây dựng
‫chỉ vì có một lỗ hổng.
‫Đây là chìa khóa, bởi vì nếu bạn bắt đầu triển khai tất
‫cả các công cụ này một cách tự động, chúng sẽ không thành công trong quá trình.
‫Chúng sẽ làm hỏng CI của bạn hoặc chúng sẽ làm hỏng các bản dựng của
‫bạn, nếu bạn chỉ bật chúng lên. Bạn muốn đảm
‫bảo rằng bạn có chúng ở chế độ chỉ kiểm tra nơi chúng không thất
‫bại trong việc tìm ra lỗ hổng.
‫Bằng cách đó, ít nhất bạn có thể tìm hiểu các lỗ hổng bảo mật
‫là gì trước khi bắt đầu, bạn biết đấy, trước khi bắt đầu
‫chơi Hardcore, phải không? Trước khi bạn chơi Hardcore.