- Kho lưu trữ nội bộ của GitHub khoảng 3.800 kho đã bị xâm phạm sau khi một nhân viên cài đặt một tiện ích mở rộng VS Code độc hại; đánh giá hiện tại cho rằng phạm vi rò rỉ chỉ giới hạn ở các kho nội bộ
- GitHub đã gỡ bỏ tiện ích đã bị cài cắm mã độc khỏi VS Code Marketplace và cô lập các endpoint bị nhiễm, đồng thời khởi động ứng phó sự cố ngay lập tức
- TeamPCP tuyên bố đã truy cập được mã nguồn GitHub và khoảng 4.000 kho mã riêng tư, đồng thời đòi ít nhất 50.000 USD cho dữ liệu bị đánh cắp
- Tiện ích mở rộng VS Code là plugin được cài từ cửa hàng chính thức, nhưng trước đây cũng từng phát hiện nhiều tiện ích dùng để đánh cắp thông tin xác thực, cài trình đào coin, ransomware và đánh cắp tiền mã hóa
- GitHub cho biết chưa có bằng chứng dữ liệu khách hàng ngoài các kho bị ảnh hưởng đã bị xâm phạm; nền tảng này hiện được hơn 180 triệu nhà phát triển sử dụng
GitHub xác nhận vụ xâm phạm và biện pháp ứng phó
- GitHub xác nhận khoảng 3.800 kho lưu trữ nội bộ đã bị xâm phạm sau khi một nhân viên cài đặt tiện ích mở rộng VS Code độc hại
- Tiện ích bị trojan hóa, chưa được công bố tên, đã bị gỡ khỏi VS Code Marketplace, và thiết bị bị xâm phạm đã được áp dụng biện pháp bảo vệ
- Trong bài đăng trên X, GitHub cho biết họ đã “phát hiện và ngăn chặn sự xâm phạm vào thiết bị của nhân viên liên quan đến một tiện ích VS Code bị nhiễm”, đồng thời cho biết đã gỡ phiên bản tiện ích độc hại, cô lập endpoint và khởi động ứng phó sự cố ngay lập tức
- Đánh giá hiện tại cho thấy phạm vi hoạt động chỉ giới hạn ở việc rò rỉ các kho nội bộ của GitHub, và quy mô khoảng 3.800 kho mà kẻ tấn công tuyên bố nhìn chung phù hợp với kết quả điều tra
- Trước đó một ngày, GitHub nói với BleepingComputer rằng họ đang điều tra tuyên bố truy cập trái phép vào các kho nội bộ, đồng thời cho biết không có bằng chứng cho thấy dữ liệu khách hàng được lưu trữ ngoài các kho bị ảnh hưởng đã bị xâm phạm
Tuyên bố của TeamPCP và rủi ro từ tiện ích mở rộng VS Code
- Nhóm hacker TeamPCP tuyên bố trên diễn đàn tội phạm mạng Breached rằng họ đã truy cập được mã nguồn GitHub và “khoảng 4.000 kho mã riêng tư”, đồng thời yêu cầu ít nhất 50.000 USD cho dữ liệu bị đánh cắp
- TeamPCP nói rằng “đây không phải là ransomware và họ không quan tâm đến việc tống tiền GitHub”, và cho biết sẽ xóa dữ liệu đang nắm giữ sau khi bán cho một người mua duy nhất
- TeamPCP từng được liên hệ với các cuộc tấn công chuỗi cung ứng quy mô lớn nhắm vào nền tảng mã dành cho nhà phát triển, bao gồm GitHub, PyPI, NPM, Docker
- TeamPCP gần đây cũng bị liên hệ với chiến dịch chuỗi cung ứng “Mini Shai-Hulud” đã ảnh hưởng đến hai nhân viên của OpenAI
- Tiện ích mở rộng VS Code là các plugin được cài từ cửa hàng chính thức VS Code Marketplace để bổ sung tính năng hoặc tích hợp công cụ vào trình soạn thảo mã của Microsoft
- Trong quá khứ, trên VS Code Marketplace đã nhiều lần phát hiện các tiện ích độc hại đánh cắp thông tin xác thực của nhà phát triển và dữ liệu nhạy cảm
- Năm ngoái, các tiện ích VSCode với tổng số 9 triệu lượt cài đặt đã bị gỡ bỏ vì rủi ro bảo mật, và 10 tiện ích ngụy trang thành công cụ phát triển hợp pháp đã lây nhiễm người dùng bằng trình đào tiền mã hóa XMRig
- Sau đó, một tiện ích độc hại có chức năng ransomware cơ bản đã xuất hiện trên VS Code Marketplace, và một tác nhân đe dọa có tên WhiteCobra đã đăng 24 tiện ích đánh cắp tiền mã hóa
- Vào tháng 1 năm nay, hai tiện ích độc hại với tổng 1,5 triệu lượt cài đặt, được quảng bá là trợ lý lập trình dùng AI, đã rò rỉ dữ liệu sang máy chủ tại Trung Quốc từ các hệ thống nhà phát triển bị nhiễm
- Nền tảng đám mây GitHub hiện được hơn 4 triệu tổ chức, 90% công ty trong Fortune 100 và hơn 180 triệu nhà phát triển sử dụng, với đóng góp vào hơn 420 triệu kho mã
1 bình luận
Ý kiến trên Hacker News
Sẽ thật tốt nếu công ty làm ra VSCode, công ty sở hữu NPM và công ty sở hữu GitHub có thể cùng ngồi lại một chỗ để tìm cách giải quyết vấn đề này
Đây là minh họa hoàn hảo cho việc vì sao tranh biếm họa sơ đồ tổ chức của Microsoft lại đúng đến vậy
https://bonkersworld.net/organizational-charts
Chắc chắn không phải là thiếu cảnh báo về kiểu rủi ro quá hiển nhiên này
https://github.com/microsoft/vscode/issues/52116
Microsoft cũng là công ty sở hữu NuGet
Nhìn vào việc họ đã làm một năm trước, họ đã chủ động gỡ khoảng 700 gói khỏi NuGet, nhưng cuối cùng hóa ra đó là báo động giả
Làm điều đúng đắn không hề dễ
Không đùa đâu, những hệ sinh thái kiểu này ngay từ đầu đã được thiết kế giống như một bãi rác dễ bị xâm nhập
Nếu là hệ sinh thái hoàn toàn mở mà đóng góp không được rà soát nghiêm ngặt, thì tất cả đều phơi bày trước vấn đề này
Nếu không thích thì đừng dùng tiện ích mở rộng cho trình soạn thảo, hãy dùng một trình soạn thảo đã được kiểm toán tử tế
Dùng extension, gói node hay gói PyPI mà không xem xét kỹ là đang tích lũy nợ kỹ thuật
Đó là chấp nhận rủi ro để phát hành nhanh, rồi sau này либо phải trả theo cách có kiểm soát, либо chịu đựng khi lãi bị đòi
Extension của VS Code từ lâu đã đáng sợ và là một đường tấn công quá rõ ràng
VSCode liên tục hiện popup bảo cài extension vì nó nhận ra một định dạng tệp nào đó, mà extension ấy có thể một nửa là của công ty, một nửa là của một lập trình viên bất kỳ
Ngay cả trong số những extension có hàng triệu lượt cài, vẫn có những cái thoạt nhìn như extension chính thức của công ty
Giờ tôi cố chỉ cài extension do công ty chính thức sở hữu, nhưng ngay cả như vậy cũng khó chắc mình không bị lừa, thật chán nản
Vấn đề này vượt xa riêng VS Code
Mọi extension và mọi đoạn mã có thể thực thi đều gặp cùng một vấn đề
Cũng đã có trường hợp Disney bị hack vì nhân viên cài một mod BeamNG chứa mã độc
Nếu là công ty muốn giữ an toàn, thì phải đặt ra giới hạn nghiêm ngặt đối với việc cài phần mềm
Ví dụ chỉ cho cài các gói npm và plugin từ kho đã được phê duyệt trước trong nội bộ
Tôi vẫn tiếp tục dùng Sublime, dù thường bị những người nghiện VSCode cười nhạo
Thấy những người từng tin một cách thiếu phản biện rằng “VSCode là hoàn hảo” phải lãnh hậu quả cũng khá vui
Tôi cũng đã trở nên dè chừng gần như hoang tưởng với extension của VSCode
Tôi vẫn nhớ trước đây chỉ cần dùng vài extension đáng tin cho công việc phát triển trong các IDE như Brackets, JetBrains, Sublime Text hay Bluefish là đủ
Còn bây giờ thì có cảm giác làm gì cũng có ai đó hay công ty nào đó đã tạo sẵn một extension chuyên cho việc đó
Giờ tôi cố làm được nhiều việc nhất với ít extension nhất có thể
Và tôi cũng định đưa phần còn lại của mã nguồn của mình ra khỏi GitHub
Với một nhà cung cấp từng nảy ra ý tưởng chụp ảnh màn hình desktop mỗi vài giây, chạy OCR rồi lưu kết quả dưới dạng văn bản thuần không mã hóa lên đĩa, thì mức bảo mật phần mềm như thế này cũng không có gì bất ngờ
Với lại, tất cả những extension đó còn muốn tự động cập nhật nữa
Điều đáng ngạc nhiên hơn là hacker đã tìm ra đủ thời gian hoạt động ổn định để làm chuyện này
Nói cho những ai không nhận ra đây là trò đùa: GitHub từ sau khi bị Microsoft mua lại ngày càng gặp khó khăn hơn trong việc tự vận hành ổn định
Gần đây tình hình còn tệ hơn khi thời gian ngừng dịch vụ tăng lên và đã thành tin tức
Chuỗi thảo luận liên quan trước đó:
GitHub is investigating unauthorized access to their internal repositories - https://news.ycombinator.com/item?id=48201316 - tháng 5 năm 2026, 321 bình luận
Tôi tự hỏi liệu extension nx console đã khiến tôi dính đòn hôm qua có phải là extension bị xâm phạm hay không
Thời điểm trông gần như trùng khớp
Xem https://github.com/nrwl/nx-console/security/advisories/GHSA-...
Tôi hy vọng việc này sẽ khiến Microsoft bổ sung một hệ thống quyền hạn rõ ràng cho extension của VS Code, đồng thời cải thiện bảo mật cho development container
Tôi thậm chí còn hy vọng đây sẽ là cú hích để người dùng, ở đây là các lập trình viên và maintainer, giảm phụ thuộc vào Microsoft và đặc biệt là ngừng thuê ngoài bảo mật cho Microsoft
Đã đến lúc rời khỏi vscode
Tôi không kỳ vọng nhiều
Vấn đề này đã mở từ năm 2018: https://github.com/microsoft/vscode/issues/52116
VS Code được xây trên Electron, và Electron từng có hoặc hiện có trình trợ giúp sandbox SUID, nên việc sandbox hóa rất phiền phức
Vì không thể dễ dàng chạy binary SUID bên trong sandbox
Sandbox trên Linux là một việc cực kỳ khó
Việc đặt SUID Root cho một trình duyệt web ngày xưa từng là trò đùa để chọc những người dùng thiếu hiểu biết, và là sai lầm bảo mật tệ nhất có thể tưởng tượng ra
Có một chút overhead về hiệu năng, nhưng không đến mức tận thế
Có thể tôi đang bỏ sót điều gì quá hiển nhiên, nhưng con số 3.800 kho lưu trữ vẫn khá gây sốc
Tôi không nghĩ lại nhiều đến thế
Như người khác đã nói, đó chỉ là một phần thôi
Tôi đang ở một công ty công nghệ tầm trung, chỉ một tổ chức GitHub đã có hơn 7.500 kho lưu trữ
Có hai tổ chức nên cộng lại dễ dàng vượt 10.000
Tất nhiên phần lớn là đồ cũ, đã bỏ, sandbox hoặc công cụ cá nhân
Với GitHub, sẽ không có gì ngạc nhiên nếu họ có hơn 100.000 kho nội bộ, hoặc thậm chí nhiều hơn thế
Tôi từng làm ở một công ty có ít nhất 5.000 kho lưu trữ trải khắp năm hoặc sáu tổ chức GitHub, và còn nhiều mã hơn nữa trên Perforce
Chắc chắn có những thử nghiệm cũ, nhưng công ty hoạt động trên nhiều lĩnh vực và một vài bộ phận không ngại tạo thêm một dịch vụ khác chỉ để giải quyết một vấn đề
Mấy thứ cũ trong bộ phận của tôi thì chúng tôi đã lưu trữ lại
Chúng tôi có 8 kho, và với ba người thì đã thấy như thế là quá đủ
Uber từng có 8.000 kho lưu trữ cho 2.000 kỹ sư - https://highscalability.com/lessons-learned-from-scaling-ube...
Tôi từng làm ở một cửa hàng bán lẻ thực phẩm
Ngày đầu tiên tôi nghĩ nhìn từ ngoài thì nó chỉ như một website đơn giản, chắc không phức tạp đến thế
Nhưng website đặt hàng đó là sản phẩm ghép lại từ hơn 300 kho lưu trữ
Vẫn ít hơn những gì GitHub bị mất trong vụ xâm phạm này
Càng ở quy mô lớn, càng cần rất nhiều nỗ lực để giữ mọi thứ đơn giản
Một trong những điều tôi luôn đánh giá cao khi làm ở GitHub là nhiều phần của công ty thực sự vận hành trên GitHub
Ngay cả các nhóm không phải kỹ thuật cũng thường có repo riêng để sắp xếp tài liệu/SOP/thiết kế, giống như cách một công ty lao động tri thức truyền thống dùng SharePoint
Có nhiều cách để làm thứ gì đó thành mã nguồn mở
Đừng chạy script công khai bằng chính tài khoản người dùng của mình, hãy tải lên ẩn danh bằng một plugin vừa cào dữ liệu vừa có thêm tính năng vô dụng nào đó
Ví dụ như tính năng cho biết một số dấu phẩy động nào đó có phải số chẵn hay không
Dĩ nhiên là chẳng có số nào như vậy cả
Sau đó cứ chạy nó rồi đóng vai nạn nhân
“Hôm qua, chúng tôi đã phát hiện và chặn một vụ xâm phạm thiết bị nhân viên liên quan đến một extension VS Code bị nhiễm độc. Chúng tôi đã gỡ phiên bản extension độc hại, cô lập endpoint và lập tức bắt đầu ứng phó sự cố”
Gỡ extension, thật tuyệt vời làm sao
Chỉ sau khi chính nhân viên của họ bị nhiễm thì họ mới làm vậy sao?
Và tại sao họ không công bố tên extension?