Tin tặc Triều Tiên chiếm quyền thư viện Axios trong cuộc tấn công chuỗi cung ứng tinh vi nhắm vào tiền mã hóa

Đọc trong 19 phút
Tin tặc Triều Tiên chiếm quyền thư viện Axios trong cuộc tấn công chuỗi cung ứng tinh vi nhắm vào tiền mã hóa

Hàng triệu nhà phát triển bị phơi nhiễm khi tin tặc đầu độc kho mã nguồn phổ biến

Các tin tặc bị nghi là người Triều Tiên đã tiến hành một trong những cuộc tấn công chuỗi cung ứng có mức độ tinh vi về mặt vận hành nhất trong thời gian gần đây, xâm nhập Axios, thư viện JavaScript được tải xuống khoảng 100 triệu lần mỗi tuần. Cuộc tấn công kéo dài khoảng ba giờ vào rạng sáng ngày 31 tháng 3, cài mã độc vào phần mềm được hàng nghìn công ty trong các lĩnh vực y tế, tài chính, sàn giao dịch tiền mã hóa và công nghệ sử dụng. Các nhà nghiên cứu bảo mật ước tính các phiên bản bị đầu độc được tải xuống bởi khoảng 3% người dùng thư viện, có khả năng khiến hàng trăm nghìn hệ thống phơi nhiễm với trojan truy cập từ xa được thiết kế để đánh cắp tiền mã hóa và thông tin xác thực của doanh nghiệp.

Nội dung
  1. Hàng triệu nhà phát triển bị phơi nhiễm khi tin tặc đầu độc kho mã nguồn phổ biến
  2. Cơ chế của một vụ xâm nhập chuỗi cung ứng
  3. Mã độc đa nền tảng triển khai cửa hậu dai dẳng
  4. Cỗ máy tạo doanh thu số của Bình Nhưỡng
  5. Chuỗi lỗ hổng trong chuỗi cung ứng
  6. Kỹ thuật né tránh và biện pháp đối phó pháp chứng
  7. Bảo vệ chuỗi cung ứng phần mềm
  8. Điểm chính

Axios là một ứng dụng khách HTTP dựa trên promise, cho phép gửi yêu cầu API bất đồng bộ từ cả Node.js lẫn trình duyệt, khiến thư viện này trở thành thành phần nền tảng của các ứng dụng web hiện đại. Các công ty từ nhà cung cấp dịch vụ y tế đến tổ chức tài chính đều dựa vào thư viện này để đơn giản hóa việc xây dựng trang web và trao đổi dữ liệu. Một số công ty tiền mã hóa và công ty công nghệ hoạt động trong lĩnh vực tài sản số cũng sử dụng phần mềm này, khiến họ trở thành mục tiêu đặc biệt có giá trị đối với các chiến dịch mạng của Bình Nhưỡng nhằm tạo nguồn thu. Axios được sử dụng rộng rãi trong môi trường doanh nghiệp đồng nghĩa với việc vụ xâm nhập tạo ra rủi ro dây chuyền đối với các phụ thuộc ở hạ nguồn và dịch vụ tích hợp.

Nhóm Threat Intelligence của Google chính thức quy trách nhiệm vụ việc cho UNC1069, một tác nhân đe dọa Triều Tiên hoạt động vì mục tiêu tài chính, đã hoạt động ít nhất từ năm 2018. Nhóm này nổi tiếng với việc nhắm vào các sàn giao dịch tiền mã hóa, nền tảng tài chính phi tập trung và công ty đầu tư mạo hiểm để tài trợ cho các chương trình hạt nhân và tên lửa của Bình Nhưỡng. Theo Mandiant, công ty tình báo thuộc sở hữu của Google, đây là đợt leo thang mới nhất trong chiến dịch của Triều Tiên nhằm biến chuỗi cung ứng phần mềm toàn cầu thành vũ khí chống lại các mục tiêu kinh tế có giá trị cao.

Quảng cáo

Charles Carmakal, giám đốc công nghệ của Mandiant, giải thích về tính chất dài hạn của mối đe dọa.

Chúng tôi dự đoán họ sẽ tìm cách sử dụng thông tin xác thực và quyền truy cập hệ thống vừa chiếm được trong cuộc tấn công chuỗi cung ứng phần mềm này để nhắm vào các doanh nghiệp và đánh cắp tiền mã hóa. Có thể sẽ mất nhiều tháng để đánh giá tác động ở hạ nguồn của chiến dịch này.

John Hammond, nhà nghiên cứu bảo mật tại Huntress, cho biết công ty đã xác định khoảng 135 thiết bị bị xâm nhập thuộc về khoảng 12 công ty, nhưng ông cho rằng đây mới chỉ là đợt phát hiện ban đầu khi các tổ chức hoàn tất kiểm tra pháp chứng.

Cơ chế của một vụ xâm nhập chuỗi cung ứng

Cuộc tấn công bắt đầu khi tin tặc chiếm quyền tài khoản npm của @jasonsaayman, người bảo trì chính thư viện Axios. Thay vì khai thác các lỗ hổng zero-day tinh vi, tác nhân đe dọa sử dụng một mã thông báo truy cập tồn tại lâu dài để vượt qua các biện pháp kiểm soát bảo mật hiện đại, trong đó có quy trình xác thực dựa trên OpenID Connect. Nhờ đó, chúng có thể phát hành trực tiếp lên kho đăng ký Node Package Manager hai phiên bản phần mềm bị cài trojan, 1.14.1 và 0.30.4, mà không kích hoạt cảnh báo bảo mật thông thường hay cần xác thực đa yếu tố.

Hammond lưu ý một lỗi cấu hình nghiêm trọng đã tạo điều kiện cho cuộc tấn công. Ngay cả trên nhánh v1.x, nơi OIDC Trusted Publishing đã được cấu hình, quy trình phát hành vẫn truyền NPM_TOKEN dưới dạng biến môi trường cùng với thông tin xác thực OIDC. Khi cả hai cùng hiện diện, npm sẽ sử dụng mã thông báo. Điều này đồng nghĩa mã thông báo tồn tại lâu dài trên thực tế là phương thức xác thực của tất cả người phát hành, bất kể cấu hình OIDC ra sao. Sơ suất trong kiến trúc này cho phép kẻ tấn công vượt qua các biện pháp bảo vệ dù người bảo trì đã bật xác thực đa yếu tố cho các tài khoản của mình, cho thấy cơ chế xác thực cũ có thể làm suy yếu các khuôn khổ bảo mật hiện đại như thế nào.

Kẻ tấn công cho thấy sự chuẩn bị kỹ lưỡng và kiên nhẫn. Mười tám giờ trước cuộc tấn công chính, chúng phát hành một phiên bản sạch của gói phụ thuộc ma mang tên plain-crypto-js để tạo lịch sử phát hành và tránh gây nghi ngờ vì tài khoản chưa có lịch sử. Hai mươi phút trước khi phát hành Axios độc hại đầu tiên, chúng đẩy lên phiên bản vũ khí hóa của gói phụ thuộc này, có chứa tập lệnh hậu cài đặt được thiết kế để tự động chạy khi nhà phát triển cài đặt hoặc cập nhật thư viện bị xâm nhập. Bản phát hành cài cửa hậu thứ hai xuất hiện chỉ 39 phút sau đó, cho thấy nhóm này đã tự động hóa quy trình triển khai để tối đa hóa phạm vi phát tán trong khoảng thời gian cơ hội ngắn ngủi.

Trong lúc bị tấn công, những người bảo trì gặp nhiều khó khăn khi tìm cách giành lại quyền kiểm soát. Trong một vấn đề công khai trên GitHub, một cộng tác viên cho biết họ không thể thu hồi quyền truy cập của tài khoản chịu trách nhiệm phát hành mã độc, đồng thời lưu ý rằng quyền của kẻ tấn công cao hơn quyền của họ. Điều này tạo ra cuộc chạy đua với thời gian khi tin tặc vẫn giữ quyền phát hành còn cộng đồng phát triển vội vã tìm cách ngăn chặn thiệt hại. NPM cuối cùng đã gỡ các phiên bản độc hại khỏi kho ba giờ sau khi chúng được phát hành lần đầu và áp dụng lệnh tạm giữ bảo mật đối với gói plain-crypto-js, rồi thay bằng một gói giữ chỗ bảo mật một giờ sau đó.

Quảng cáo

Mã độc đa nền tảng triển khai cửa hậu dai dẳng

Sau khi được cài đặt, gói phụ thuộc độc hại triển khai một trình tải JavaScript bị làm rối có tên SILKBELL, tải các mã độc dành riêng cho từng nền tảng từ máy chủ điều khiển từ xa tại sfrclak.com. Trên hệ thống Windows, mã độc phát tán các công cụ dựa trên PowerShell có khả năng thực thi lệnh tùy ý. Người dùng macOS nhận một tệp nhị phân C++ Mach-O, trong khi các bản cài đặt Linux bị nhắm đến bằng một cửa hậu Python. Các nhà nghiên cứu bảo mật xác định mã độc ở giai đoạn thứ hai này là WAVESHAPER.V2, một phiên bản phát triển từ cửa hậu trước đây được quy cho UNC1069 trong các cuộc tấn công nhằm vào lĩnh vực tiền mã hóa từ năm 2023.

Kiến trúc kỹ thuật của cuộc tấn công cho thấy sự tàng hình có chủ đích và khả năng nhận biết nền tảng. Thay vì sửa trực tiếp mã nguồn Axios, vốn sẽ hiển thị trong các kho công khai và kích hoạt cảnh báo khi rà soát mã, tin tặc chèn chức năng độc hại qua một chuỗi phụ thuộc. Các nhà nghiên cứu tại StepSecurity lưu ý: Không có dòng mã độc nào bên trong chính axios, và chính điều đó khiến cuộc tấn công này nguy hiểm đến vậy. Gói plain-crypto-js được thực thi thông qua hook postinstall trong tệp package.json, cho phép mã độc âm thầm chạy trong quá trình cài đặt trước khi tự xóa dấu vết và thay siêu dữ liệu gói bằng phiên bản sạch.

WAVESHAPER.V2 phát tín hiệu đến hạ tầng điều khiển và kiểm soát mỗi 60 giây, đồng thời chấp nhận URL C2 linh hoạt thông qua đối số dòng lệnh. Thiết kế này cho phép kẻ tấn công thay đổi hạ tầng mà không cần triển khai lại mã độc. Cửa hậu hỗ trợ bốn chức năng chính: chấm dứt các tiến trình đang chạy, liệt kê thư mục cùng siêu dữ liệu tệp chi tiết như dấu thời gian và kích thước, chạy lệnh hệ thống qua ngôn ngữ kịch bản gốc như AppleScript trên macOS hoặc lệnh shell trên Linux, và chèn tệp nhị phân tùy ý vào các tiến trình đang chạy. Phân tích của Elastic Security Labs cho thấy tệp nhị phân macOS tham chiếu đến các đường dẫn bản dựng dành cho nhà phát triển liên kết trực tiếp với mô-đun webT của BlueNoroff trong các chiến dịch mã độc RustBucket và Hidden Risk trước đây, củng cố nhận định quy trách nhiệm cho Triều Tiên.

Quảng cáo

Cỗ máy tạo doanh thu số của Bình Nhưỡng

Các hoạt động tin tặc của Triều Tiên đã phát triển thành một cơ chế tài trợ chủ yếu cho chương trình vũ khí hạt nhân đang chịu lệnh trừng phạt của nước này. Theo các báo cáo của Liên Hợp Quốc và ước tính của Nhà Trắng công bố năm 2023, khoảng một nửa ngân sách phát triển tên lửa của Bình Nhưỡng đến từ hoạt động đánh cắp qua mạng; trong những năm gần đây, tin tặc đã lấy cắp hàng tỷ USD từ các ngân hàng và công ty tiền mã hóa. Chỉ riêng năm ngoái, các đặc vụ Triều Tiên đã đánh cắp 1,5 tỷ USD tiền mã hóa trong một vụ trộm kỷ lục, cho thấy năng lực xâm nhập các mục tiêu giá trị cao trên quy mô lớn.

Ben Read, giám đốc tình báo mối đe dọa chiến lược tại Wiz, giải thích rằng Triều Tiên hoạt động khác với các tác nhân cấp quốc gia khác.

Triều Tiên không lo ngại về danh tiếng hay việc cuối cùng sẽ bị xác định, vì vậy dù những hoạt động như thế này rất ồn ào và nổi bật, họ vẫn sẵn sàng chấp nhận cái giá đó.

Mức độ chấp nhận rủi ro này cho phép Bình Nhưỡng tiến hành những cuộc tấn công chuỗi cung ứng táo bạo mà các quốc gia khác có thể tránh do lo ngại hậu quả ngoại giao hoặc nguy cơ bị quy trách nhiệm. Vụ xâm nhập Axios tiếp nối mô thức đã xuất hiện ba năm trước, khi các đặc vụ Triều Tiên bị cáo buộc xâm nhập 3CX, nhà cung cấp phần mềm được các công ty y tế và chuỗi khách sạn sử dụng cho các cuộc gọi thoại và video.

John Hultquist, nhà phân tích trưởng tại Nhóm Threat Intelligence của Google, nhấn mạnh nhóm này tập trung cụ thể vào tài sản số.

Tin tặc Triều Tiên có nhiều kinh nghiệm với các cuộc tấn công chuỗi cung ứng, vốn trước đây chúng dùng để đánh cắp tiền mã hóa. Quy mô đầy đủ của vụ việc vẫn chưa rõ, nhưng xét mức độ phổ biến của gói bị xâm nhập, chúng tôi dự đoán tác động sẽ rất rộng.

UNC1069 trước đây từng nhắm vào các công ty công nghệ tài chính bằng những cuộc họp Zoom giả, thủ đoạn kỹ nghệ xã hội và nhiều dòng mã độc riêng biệt, cho thấy sự tập trung dai dẳng và ngày càng phát triển vào hệ sinh thái tiền mã hóa.

Chuỗi lỗ hổng trong chuỗi cung ứng

Vụ Axios xảy ra giữa lúc các cuộc tấn công chuỗi cung ứng nhằm vào hệ sinh thái phần mềm nguồn mở tăng mạnh đáng lo ngại. Trong tháng qua, các đội ngũ bảo mật đã ứng phó với một loạt vụ xâm nhập dây chuyền, bao gồm các cuộc tấn công vào Trivy, công cụ quét bảo mật phổ biến; LiteLLM, thư viện Python được sử dụng rộng rãi để tích hợp mô hình AI; và Telnyx, nền tảng liên lạc. Google xác nhận cuộc tấn công Axios không liên quan đến các sự cố chuỗi cung ứng TeamPCP gần đây, nhưng mỗi vụ xâm nhập thành công lại giúp kẻ tấn công có thêm thông tin xác thực và quyền truy cập ban đầu vào các kho mã khác, tạo thành vòng lặp xâm nhập tự duy trì.

Carmakal cảnh báo loạt tấn công gần đây đã tạo ra một kho khổng lồ các bí mật bị đánh cắp. Ông giải thích: Những bí mật bị đánh cắp trong hai tuần qua sẽ tạo điều kiện cho thêm nhiều cuộc tấn công chuỗi cung ứng phần mềm, xâm nhập môi trường phần mềm dưới dạng dịch vụ dẫn đến xâm nhập khách hàng ở hạ nguồn, các vụ tấn công bằng mã độc tống tiền và tống tiền, cũng như các vụ trộm tiền mã hóa trong những ngày, tuần và tháng tới. Chúng tôi biết có hàng trăm nghìn thông tin xác thực đã bị đánh cắp. Nhiều tác nhân với động cơ khác nhau đứng sau những cuộc tấn công này. Phạm vi ảnh hưởng của vụ tấn công chuỗi cung ứng npm vào axios hôm qua rất rộng và lan sang các gói phổ biến khác phụ thuộc vào nó.

Tom Hegel, nhà nghiên cứu cấp cao tại SentinelOne, nhấn mạnh tính chất vô hình của mối đe dọa.

Mỗi lần bạn tải một trang web, kiểm tra số dư ngân hàng hay mở ứng dụng trên điện thoại, rất có thể Axios đang chạy đâu đó ở hậu trường để mọi việc diễn ra. Bạn không cần nhấp vào thứ gì hay mắc sai lầm nào. Phần mềm mà bạn vốn tin tưởng đã làm việc đó thay bạn.

Nhận định này nhấn mạnh cách các cuộc tấn công chuỗi cung ứng khai thác niềm tin mặc định của người dùng vào những thành phần phần mềm có uy tín, qua mặt các chương trình nâng cao nhận thức bảo mật truyền thống và biện pháp bảo vệ thiết bị đầu cuối.

Quảng cáo

Kỹ thuật né tránh và biện pháp đối phó pháp chứng

Kẻ tấn công triển khai các biện pháp chống pháp chứng tinh vi, gây khó khăn cho việc ứng phó sự cố và phát hiện. Sau khi thực thi, mã độc không chỉ xóa các tệp cài đặt của chính nó mà còn thao túng thông tin phiên bản để đánh lừa người phòng thủ. Gói plain-crypto-js độc hại tự nhận là phiên bản 4.2.0 thay vì 4.2.1, gây nhầm lẫn cho các đội ngũ bảo mật khi xác minh tính toàn vẹn của gói. Kỹ thuật giả mạo phiên bản này nhằm khiến quản trị viên tin rằng hệ thống đang chạy phần mềm hợp pháp, trong khi thực tế họ đã cài phiên bản bị xâm nhập.

Tomislav Pericin, kiến trúc sư trưởng phần mềm tại ReversingLabs, mô tả cuộc tấn công này là khuôn mẫu cho các chiến dịch tương lai chứ không phải sự cố đơn lẻ.

Mức độ tinh vi trong vận hành được ghi nhận ở đây, bao gồm thông tin xác thực của người bảo trì bị xâm nhập, các mã độc được chuẩn bị sẵn cho ba hệ điều hành, cả hai nhánh phát hành đều bị tấn công trong chưa đầy 40 phút và cơ chế tự hủy dấu vết pháp chứng tích hợp sẵn, cho thấy một tác nhân đe dọa đã lên kế hoạch cho chiến dịch này như một hoạt động có thể mở rộng quy mô. Nếu chiến dịch này hiện xuất hiện trên PyPI và NuGet, điều đó phù hợp với những gì cơ chế tấn công vốn đã cho thấy: mục tiêu là tiếp cận tối đa giới phát triển.

Các tổ chức giờ đây phải kiểm tra không chỉ các phụ thuộc npm mà mọi trình quản lý gói cấp dữ liệu cho quy trình xây dựng phần mềm của họ. Hammond cho rằng thời điểm xảy ra vụ việc đặc biệt đáng lo ngại trong bối cảnh xu hướng tự động hóa phát triển hiện nay. Ông lưu ý vụ tấn công diễn ra đúng lúc các tác nhân AI tạo phần mềm đang được áp dụng nhanh chóng tại các tổ chức mà không có bất kỳ khâu rà soát hay rào chắn nào. Rủi ro không chỉ giới hạn ở người dùng Axios trực tiếp mà còn ảnh hưởng đến mọi tổ chức có công cụ phát triển tự động phân giải các phụ thuộc. Isaac Evans, nhà sáng lập Semgrep, chỉ ra rằng ngay cả những nhà phát triển đã ghim phiên bản, duy trì tệp khóa và tuân thủ các biện pháp vệ sinh tiêu chuẩn vẫn có thể bị ảnh hưởng, vì môi trường phát triển tích hợp của họ âm thầm tải phụ thuộc ở hậu trường.

Bảo vệ chuỗi cung ứng phần mềm

Các đội ngũ bảo mật trong nhiều ngành hiện đang khẩn trương đánh giá mức độ phơi nhiễm và khắc phục các hệ thống bị xâm nhập. Các tổ chức sử dụng Axios phải lập tức kiểm tra cây phụ thuộc để tìm phiên bản 1.14.1 và 0.30.4, hạ cấp xuống các phiên bản an toàn đã được xác minh như 1.14.0 hoặc 0.30.3, đồng thời thay mới mọi thông tin xác thực có thể bị truy cập trong thời gian cài đặt. Các dấu hiệu kỹ thuật cho thấy hệ thống bị xâm nhập gồm sự hiện diện của plain-crypto-js trong các thư mục node_modules, kết nối mạng đến sfrclak.com (địa chỉ IP 142.11.206.73) và các tiến trình đáng ngờ trong thư mục tạm như /Library/Caches/com.apple.act.mond trên hệ thống macOS.

Các bước giảm thiểu ngay lập tức gồm ghim Axios vào những phiên bản an toàn đã biết trong tệp package-lock.json để tránh vô tình nâng cấp, kiểm tra xem có gói phụ thuộc độc hại hay không, chấm dứt mọi tiến trình độc hại đã phát hiện, chặn miền điều khiển và kiểm soát được xác định tại các ranh giới mạng, cô lập các hệ thống bị ảnh hưởng khỏi mạng sản xuất, đồng thời thay mới mọi bí mật và thông tin xác thực có thể đã bị lộ trong thời gian xảy ra vụ xâm nhập. Các tổ chức cũng nên rà soát nhật ký truy cập để tìm dấu hiệu sử dụng trái phép khóa API hoặc tài khoản dịch vụ có thể đã bị mã độc thu thập.

Ilkka Turunen, giám đốc công nghệ khu vực tại Sonatype, nhấn mạnh những vấn đề căn bản về niềm tin mà vụ việc phơi bày. Ông giải thích: Cuộc tấn công này cho thấy tin tặc hiện khai thác niềm tin mà mọi người đặt vào mã nguồn, chứ không phải vào bản thân mã nguồn. Chức năng độc hại được đưa vào thông qua một gói phụ thuộc được cài cắm từ trước và được thiết kế để xóa dấu vết, khiến cuộc tấn công khó bị phát hiện và mất nhiều thời gian hơn để hiểu rõ. Đó không chỉ là mã độc, mà còn cho thấy một bộ chiến thuật có chủ đích và trưởng thành hơn. Mike Puglia, một lãnh đạo phụ trách bảo mật tại Kaseya, nhận định các sự cố này cung cấp thêm bằng chứng về sự mong manh của hệ sinh thái phần mềm toàn cầu, nơi chỉ một tài khoản bị xâm nhập cũng có thể khiến hàng chục nghìn tổ chức bị phơi nhiễm trong vài giờ.

Quảng cáo

Điểm chính

  • Nhóm đe dọa Triều Tiên UNC1069 đã xâm nhập thư viện JavaScript Axios, vốn được tải xuống 100 triệu lần mỗi tuần và hiện diện trong khoảng 80% môi trường đám mây
  • Các phiên bản độc hại 1.14.1 và 0.30.4 có mặt trong khoảng ba giờ ngày 31 tháng 3, được khoảng 3% người dùng tải xuống, tương đương khả năng lên đến 600.000 lượt tải
  • Cuộc tấn công sử dụng gói phụ thuộc ma mang tên plain-crypto-js để phát tán WAVESHAPER.V2, cửa hậu đa nền tảng có khả năng lây nhiễm hệ thống Windows, macOS và Linux
  • Google Mandiant dự đoán nhóm này sẽ sử dụng thông tin xác thực bị đánh cắp cho các hoạt động đánh cắp tiền mã hóa trong dài hạn nhằm tài trợ cho các chương trình hạt nhân và tên lửa của Triều Tiên
  • Mã độc có các năng lực chống pháp chứng tiên tiến, bao gồm tự xóa và giả mạo phiên bản, tự nhận là 4.2.0 thay vì 4.2.1 để né tránh phát hiện
  • Các tổ chức phải kiểm tra cây phụ thuộc, thay mới mọi thông tin xác thực, chặn miền C2 sfrclak.com và IP 142.11.206.73, đồng thời lập tức hạ cấp xuống các phiên bản Axios an toàn
  • Vụ xâm nhập xảy ra thông qua mã thông báo truy cập tồn tại lâu dài, qua mặt các biện pháp kiểm soát xác thực OIDC, cho thấy cần loại bỏ thông tin xác thực cũ
Chia sẻ bài viết này

Có thể bạn cũng thích