Hầu hết các câu chuyện về bảo mật trong bản tin này đều nói về những việc xảy ra trực tiếp với bạn: một tin nhắn lừa đảo, một mật khẩu bị rò rỉ, một trang mua sắm giả mạo. Câu chuyện này thì khác. Các sự cố dưới đây xảy ra với nhà phát triển — những người viết ra các ứng dụng và dịch vụ bạn sử dụng hằng ngày. Nhưng lý do chúng xuất hiện ở đây rất đơn giản: nếu ai đó đầu độc các công cụ dùng để xây dựng phần mềm, chất độc đó không chỉ nằm lại với người xây dựng. Nó sẽ được phát hành cùng sản phẩm.
Gần đây đã xảy ra hai sự việc minh họa cho điều này. Không sự việc nào được đưa tin rầm rộ như một vụ rò rỉ dữ liệu lớn, vì cụ thể không sự việc nào là một vụ xâm phạm nhắm vào bạn. Cả hai đều là những cuộc tấn công vào quy trình tạo ra phần mềm mà cuối cùng bạn cài đặt, mở hoặc đăng nhập.
Các tiện ích giả mạo khoác lên mình thương hiệu đáng tin cậy
Open VSX là một kho công khai dành cho các tiện ích mở rộng của trình soạn thảo mã — những phần bổ trợ nhỏ mà nhà phát triển cài đặt để có tính năng tự động hoàn tất, kiểm tra mã và tích hợp với các công cụ họ sử dụng hằng ngày (Visual Studio Code và một số phiên bản mã nguồn mở tương tự lấy tiện ích từ đây). Trong khoảng thời gian từ ngày 26 tháng 7 đến ngày 1 tháng 8 năm 2026, các nhà nghiên cứu bảo mật tại Manifold Security đã phát hiện 77 tiện ích giả mạo trong kho. Mỗi tiện ích đều sao chép tên và không gian tên của một tiện ích thật, đáng tin cậy, nhưng được phát hành từ một tài khoản không sở hữu tiện ích gốc — một chiêu mạo danh kinh điển, đôi khi được gọi là chiếm dụng không gian tên.
Các tên bị chiếm dụng không hề ngẫu nhiên. Chúng mượn danh tính của AMD, LEGO Education, Hyperledger, Azure, các dự án mã nguồn mở của Salesforce, một cơ quan liên bang Hoa Kỳ và — với một sự mỉa mai đen tối — chính kho tiện ích mở rộng. Cả 77 gói đều gọi về một tên miền duy nhất, được đăng ký chỉ 11 ngày trước khi gói giả đầu tiên xuất hiện; mô hình này cho thấy đây là một chiến dịch phối hợp, được xây dựng có chủ đích, thay vì hành vi sao chép cơ hội.
Phần lớn các tiện ích giả chỉ làm một việc tương đối nhỏ: âm thầm gửi tên máy chủ về máy chủ của kẻ tấn công, mà tự thân việc này có thể chỉ là một phép kiểm tra để xem ai đã cài mồi nhử. Nhưng các nhà nghiên cứu phát hiện khoảng một phần tư trong số 77 tiện ích — 19 gói — đã đi xa hơn. Vài giây sau khi được kích hoạt, chúng thu thập tên máy chủ, tên người dùng hệ điều hành, thông tin chi tiết về trình soạn thảo và ID máy. Sau đó, chúng đọc dự án mà nhà phát triển đang mở: git remote (cho biết tổ chức và máy chủ lưu trữ kho mã), miền email dùng để commit, nhánh hiện tại và commit mới nhất. Chúng cũng lấy các giá trị tích hợp liên tục — thông tin xác thực và cấu hình cho phép các hệ thống tự động xây dựng và triển khai mã mà không cần con người nhập mật khẩu mỗi lần.
Không dữ liệu nào trong số đó hữu ích cho việc rút tiền khỏi tài khoản ngân hàng của ai đó. Nó hữu ích cho một việc khác: xác định nhà phát triển làm việc cho công ty nào, cơ sở hạ tầng nội bộ của họ trông ra sao và làm thế nào để xâm nhập vào đó.
Một lỗi 9,8 trên 10 trong cỗ máy xây dựng phần mềm
Sự cố thứ hai liên quan đến TeamCity, một nền tảng tích hợp liên tục và phân phối liên tục (CI/CD) do JetBrains phát triển. Nếu trình soạn thảo mã là nơi nhà phát triển viết phần mềm, thì nền tảng CI/CD là sàn nhà máy tự động, nơi mã được biên dịch, kiểm thử và đẩy lên môi trường sản xuất — thường hoàn toàn không cần con người nhấp vào nút "deploy". TeamCity là một bộ phận trung tâm của hệ thống đó tại rất nhiều công ty.
Một lỗ hổng được theo dõi với mã CVE-2026-63077, có điểm mức độ nghiêm trọng 9.8 trên 10, đã được công bố trong các phiên bản TeamCity triển khai tại chỗ. Đây là một lỗi giải tuần tự hóa — một dạng lỗi trong đó chương trình tin dữ liệu đầu vào đủ mức để biến thẳng dữ liệu đó thành mã đang chạy mà không kiểm tra trước dữ liệu thực sự là gì. Trên thực tế, nó cho phép kẻ tấn công gửi yêu cầu đến một máy chủ TeamCity dễ bị tấn công mà không cần đăng nhập, rồi chạy các lệnh tùy ý với cùng quyền hạn như chính dịch vụ TeamCity. JetBrains đã phát hành các bản vá (phiên bản 2025.11.7 và 2026.1.3, cùng một plugin vá lỗi cho các bản cài đặt cũ từ 2017.1 trở lên), nhưng Cơ quan An ninh mạng và Cơ sở hạ tầng Hoa Kỳ (CISA) sau đó cảnh báo rằng kẻ tấn công đang tích cực khai thác các hệ thống chưa được vá.
Ai kiểm soát máy chủ xây dựng của một công ty thì kiểm soát những gì công ty đó phát hành. Đây không phải giả thuyết — đó chính là chức năng thực sự của công cụ này.
Cùng một kịch bản, hai cánh cửa khác nhau
Đây là những sự cố không liên quan, do các nhà nghiên cứu khác nhau phát hiện, nhưng chúng có cùng một hình thái. Không sự cố nào tấn công một sản phẩm hoàn chỉnh. Cả hai đều tấn công vào một bước sớm hơn — trình soạn thảo nơi nhà phát triển viết mã, hoặc máy chủ biến mã đó thành một bản phát hành được đưa đi. Đó là đặc điểm cốt lõi của một cuộc tấn công chuỗi cung ứng phần mềm: thay vì đột nhập vào một mục tiêu, kẻ tấn công xâm phạm một thứ ở thượng nguồn mà nhiều mục tiêu phụ thuộc vào, rồi để chính quy trình đáng tin cậy của họ đưa quyền truy cập của kẻ tấn công đi tiếp.
Cũng cần thành thật về những điều chúng ta chưa biết. Không báo cáo nào trong số hai báo cáo xuất hiện trong tuần này công bố một trường hợp đã được xác nhận về việc một ứng dụng hoặc người dùng ở hạ nguồn bị xâm phạm trực tiếp do sự cố — chiến dịch tiện ích mở rộng có vẻ là hoạt động do thám và thu thập quyền truy cập, còn việc khai thác TeamCity được mô tả là đang diễn ra nhưng chưa nêu tên nạn nhân. Điều này là bình thường; các vụ xâm phạm chuỗi cung ứng thường được phát hiện tại điểm xâm nhập từ rất lâu trước khi (hoặc thay vì) lần ra được kết quả cuối cùng.
Vì sao đây là vấn đề của bạn, chứ không chỉ của họ
Có lẽ bạn sẽ không bao giờ cài một tiện ích lập trình hay vận hành một máy chủ CI/CD. Nhưng bạn sử dụng đầu ra của hàng trăm hệ thống như vậy: ứng dụng ngân hàng, trình quản lý mật khẩu, cổng thông tin trường học của con bạn, trình duyệt mà bạn đang dùng để đọc nội dung này. Tất cả đều đã đi qua trình soạn thảo của một nhà phát triển nào đó và quy trình xây dựng của một công ty nào đó trước khi đến điện thoại của bạn. Nếu một trong hai mắt xích đó âm thầm bị xâm phạm, thay đổi độc hại có thể đi kèm một bản cập nhật phần mềm thông thường, định kỳ — loại bản cập nhật bạn cài đặt vì được bảo rằng cập nhật là việc an toàn cần làm.
Đây cũng là lý do lời khuyên trong báo cáo tổng kết sau sự cố đôi khi nghe khá kỳ lạ đối với người không chuyên kỹ thuật: một công ty nói rằng hệ thống của họ bị xâm phạm thông qua máy chủ xây dựng, thông tin xác thực của nhà phát triển bị đánh cắp hoặc một thư viện phụ thuộc độc hại, và điều đó có thể nghe trừu tượng khi đặt cạnh câu "ai đó đã đoán được mật khẩu của tôi". Nó không hề trừu tượng. Kết quả vẫn giống nhau — dữ liệu của bạn hoặc tính toàn vẹn của ứng dụng bị xâm phạm — chỉ là sự việc đi qua một cánh cửa mà bạn chưa từng biết đến.
Điều gì thực sự hữu ích
Bạn không thể kiểm tra quy trình CI/CD của ngân hàng, và bạn cũng không nên phải làm vậy. Nhưng một vài thói quen thực sự giúp giảm mức độ phơi nhiễm của bạn trước loại rủi ro này:
Hãy bật cập nhật tự động, nhưng đừng mặc định rằng các bản cập nhật luôn đáng tin cậy. Các bản vá là cách những bản sửa lỗi như bản vá TeamCity nói trên đến được với phần mềm bạn sử dụng — duy trì cập nhật giúp đóng những cửa sổ mà kẻ tấn công đang tích cực dò tìm. Đồng thời, một bản cập nhật chỉ tốt ngang với quy trình đã tạo ra nó, mà đó chính là thứ đang bị nhắm đến ở đây; không có biện pháp phòng vệ cá nhân nào hoàn hảo trước một bản phát hành thượng nguồn thực sự đã bị đầu độc, đó là lý do về cơ bản đây là vấn đề thuộc trách nhiệm của nhà cung cấp, không phải vấn đề của bạn.
Nếu bạn làm việc cùng hoặc quản lý các nhà phát triển, hãy thực hiện hai việc cụ thể và có thể kiểm tra: xác minh rằng mọi tiện ích mở rộng của trình soạn thảo mã đều được cài đặt từ tài khoản nhà phát hành đã được xác minh thực sự, chứ không chỉ có tên trùng khớp (Open VSX và các kho tương tự hiển thị danh tính nhà phát hành — hãy kiểm tra, đừng chỉ tin vào biểu tượng và tiêu đề); và nếu tổ chức của bạn vận hành TeamCity tại chỗ, hãy xác nhận ngay hôm nay rằng hệ thống đang chạy 2025.11.7, 2026.1.3 hoặc đã áp dụng plugin vá lỗi, đừng chờ đến đợt bảo trì tiếp theo — cảnh báo của CISA có nghĩa là lỗ hổng này đang bị khai thác tích cực, không phải chỉ là lý thuyết.
Với tất cả những người khác, thay đổi hữu ích đơn giản chỉ là nhận thức: khi bạn đọc về một vụ xâm phạm của công ty có nguồn gốc từ "một công cụ phát triển bị xâm phạm" hoặc "một hệ thống xây dựng", đó không phải là một chú thích kỹ thuật ngách. Nó thuộc cùng nhóm sự kiện với các vụ lộ mật khẩu và lừa đảo mà bản tin này thường đề cập hơn — chỉ là nó bắt đầu sớm hơn một lớp ở thượng nguồn, trước khi sản phẩm đến được với bạn.