Thỏa hiệp máy trạm dành cho nhà phát triển: Phần phụ thuộc độc hại hoặc Phản hồi mở rộng IDE¶
Số điện thoại khẩn cấp khác nhau tùy theo quốc gia. Trang này sử dụng 911, số điện thoại dành cho Hoa Kỳ và Canada. Nhiều quốc gia khác sử dụng 112, 999 hoặc số khác. Tìm số cho quốc gia của bạn.
Phát hiện ra rằng gói phần mềm bạn vừa cài đặt qua npm install, pip install, cargo build, gem installhoặc go gethoặc tiện ích mở rộng Visual Studio Code, Cursor hoặc JetBrains IDE mới cập nhật, là một lỗi đánh máy độc hại, tải trọng gây nhầm lẫn phụ thuộc hoặc bản phát hành ngược dòng bị tấn công là một trường hợp khẩn cấp nghiêm trọng về cơ sở hạ tầng. Không giống như máy tính tiêu dùng tiêu chuẩn, kỹ sư phần mềm, kiến trúc sư DevOps hoặc máy trạm của nhà khoa học dữ liệu nắm giữ các khóa mật mã trực tiếp tới môi trường đám mây sản xuất, kho lưu trữ mã nguồn, sổ đăng ký vùng chứa, đường dẫn CI/CD và cơ sở dữ liệu khách hàng. Khi có ác ý preinstall hoặc postinstall kịch bản bên trong package.json, một vũ khí hóa setup.py trong bánh xe Python hoặc bị xâm phạm .vsix tiện ích mở rộng thực thi trên máy tính xách tay của bạn, nó chạy với đầy đủ đặc quyền người dùng của bạn và ngay lập tức thu hoạch -/.aws/credentials, -/.ssh/id_ed25519, -/.npmrc, -/.pypirc, -/.kube/config, địa phương .env tập tin, chuỗi khóa macOS hoặc Linux libsecret các mục nhập và cookie phiên trình duyệt đang hoạt động trong vòng vài giây.
Nếu bạn vừa nhận ra rằng mình đã thực thi một phần phụ thuộc nguồn mở độc hại, sao chép và xây dựng một kho lưu trữ được vũ khí hóa (chẳng hạn như một dự án phỏng vấn kỹ thuật giả mạo từ một vụ lừa đảo của nhà tuyển dụng) hoặc đã cài đặt tiện ích mở rộng IDE chứa trojan, thì mỗi giây máy của bạn vẫn được kết nối với mạng sẽ cho phép tải trọng xoay vào đám mây công ty của bạn hoặc xuất bản các sâu tự lan truyền bằng cách sử dụng mã thông báo đăng ký gói của bạn. Nếu cuộc tấn công liên quan đến tống tiền, đe dọa thể chất hoặc làm gián đoạn cơ sở hạ tầng công cộng quan trọng, hãy gọi đến số khẩn cấp tại địa phương của bạn (911 ở Hoa Kỳ và Canada, 112 trên khắp Liên minh Châu Âu, 999 ở Vương quốc Anh) hoặc tham khảo ý kiến quốc tế của chúng tôi số khẩn cấp thư mục. Hãy thực hiện ngay các quy trình ngăn chặn, phân loại pháp lý và xoay vòng khóa mật mã này.
Làm điều này ngay bây giờ¶
- Cắt ngay lập tức tất cả kết nối mạng trên máy trạm của nhà phát triển (tắt Wi-Fi, rút phích cắm Ethernet và tắt các đường hầm VPN hoặc SSH đang hoạt động), nhưng KHÔNG tắt nguồn hoặc khởi động lại máy: Việc rút Ethernet và tắt Wi-Fi sẽ ngăn shell đảo ngược đang hoạt động, đèn hiệu C2 hoặc sâu tự động sử dụng mã thông báo cục bộ của bạn để thực hiện các cam kết độc hại hoặc lọc các nhóm bổ sung. Luôn bật máy ở trạng thái ngoại tuyến (hoặc chỉ tạm dừng máy sau khi chụp được danh sách quy trình dễ thay đổi) để bạn có thể kiểm tra các quy trình con đang chạy, ổ cắm mạng mở, lịch sử shell và chính xác những quy trình nào
.envvà các tệp thông tin xác thực nằm trên đĩa tại thời điểm thực thi. - Sử dụng một thiết bị sạch, riêng biệt (chẳng hạn như điện thoại thông minh của bạn với dữ liệu di động hoặc máy tính xách tay chưa được chạm tới) để thông báo cho Trung tâm điều hành bảo mật (SOC) của bạn và thu hồi các phiên Đăng nhập một lần (SSO) và Cloud IAM: Không bao giờ đăng nhập vào AWS, GCP, Azure, GitHub hoặc Okta từ máy trạm bị nhiễm để thay đổi khóa. Nếu kẻ đánh cắp cư trú trong bộ nhớ, tiện ích mở rộng IDE độc hại hoặc shell hook đang theo dõi thiết bị đầu cuối và trình duyệt của bạn thì mọi mã thông báo mới bạn tạo trên máy đó sẽ bị thu giữ ngay lập tức.
- Thu hồi và xoay vòng mã thông báo dành cho nhà phát triển có bán kính cao theo thứ tự ưu tiên nghiêm ngặt trong vòng 15 phút đầu tiên:
- Ưu tiên 1 (Đám mây & Kubernetes): Vô hiệu hóa tất cả Khóa truy cập AWS IAM cục bộ (
AKIA...), thu hồi Thông tin xác thực mặc định của ứng dụng Google Cloud (gcloud auth application-default revoke), làm mất hiệu lực mã thông báo Azure CLI (az account clear+ Thu hồi phiên Entra ID) và xoay Kuberneteskubeconfigchứng chỉ ứng dụng khách hoặc mã thông báo tài khoản dịch vụ. - Ưu tiên 2 (Mã nguồn & CI/CD): Xóa tất cả các khóa công khai GitHub, GitLab và Bitbucket SSH, Mã thông báo truy cập cá nhân (
ghp_...,github_pat_...,glpat-...) và mã thông báo OAuth CLI (-/.config/gh/hosts.yml) và kiểm tra cài đặt webhook của kho lưu trữ cũng như bí mật GitHub Actions/GitLab CI. - Ưu tiên 3 (Đăng ký gói & Vùng chứa): Thu hồi tự động hóa npm và xuất bản mã thông báo (
-/.npmrc), mã thông báo API PyPI (-/.pypirc), Mã thông báo đăng nhập Docker Hub / GHCR / ECR (-/.docker/config.json) và mã thông báo Terraform Cloud (-/.terraform.d/credentials.tfrc.json). - Kiểm tra npm, PyPI, Cargo và GitHub NGAY BÂY GIỜ để xác minh phần mềm độc hại chưa sử dụng mã thông báo cục bộ của bạn để xuất bản phiên bản gói bị nhiễm sâu của chính bạn hoặc đẩy các cam kết độc hại: Tải trọng chuỗi cung ứng hiện đại (chẳng hạn như
ua-parser-js,coa,rc,ctx,lottie-playervàultralyticsthỏa hiệp) tự động phân tích cú pháp của nhà phát triển nạn nhân-/.npmrc,-/.pypircvà-/.gitconfigđể xuất bản ngay lập tức các phiên bản vá lỗi có cửa sau của mọi gói nguồn mở hoặc gói nội bộ mà nhà phát triển duy trì hoặc tạo quy trình làm việc GitHub Actions ẩn trong kho của nhà phát triển. - Quét mọi thư mục dự án trên máy trạm để xây dựng một bản kiểm kê hoàn chỉnh về
.envtệp, chuỗi kết nối cơ sở dữ liệu và khóa API được mã hóa cứng: Trước khi xóa máy trạm, hãy chạy tập lệnh ngoại tuyến trên máy bị cô lập để liệt kê mọi.env,.env.local,terraform.tfstatevàapplication.ymltrên ổ cứng để bạn có thể xoay vòng mọi bí mật của bên thứ ba (thông tin đăng nhập Stripe, Twilio, SendGrid, OpenAI, Anthropic, Datadog, Slack, Postgres, MongoDB và Redis) mà tài khoản người dùng của bạn có thể đọc được. - Chấm dứt tất cả các phiên trình duyệt và kết nối ví phần cứng: Do nhà phát triển xâm phạm thường xuyên triển khai các công cụ đánh cắp thông tin hàng hóa (chẳng hạn như Lumma, RedLine hoặc Atomic macOS Stealer) cùng với các công cụ thu thập thông tin xác thực dành riêng cho nhà phát triển, hãy làm theo hướng dẫn thu hồi cookie phiên và thu hồi mã thông báo của kẻ đánh cắp thông tin và nếu bạn phát triển Web3 hoặc nắm giữ tài sản kỹ thuật số, hãy thực hiện hướng dẫn rút tiền điện tử và thỏa hiệp cụm từ hạt giống.
Danger
Tại sao phải chạy npm uninstall <package> hoặc pip uninstall <package> KHÔNG dọn dẹp máy trạm của bạn: Trong Node.js (npm, yarn, pnpm) và Python (pip) trong hệ sinh thái, mã độc hầu như không bao giờ đợi đến khi bạn import hoặc require() thư viện trong mã ứng dụng của bạn. Thay vào đó, kẻ tấn công đặt trọng tải bên trong móc vòng đời của gói (preinstall, installhoặc postinstall trong package.jsonhoặc thực thi cấp cao nhất bên trong setup.py trong quá trình xây dựng bánh xe phân phối nguồn). Khoảnh khắc bạn nhấn Enter trên npm install hoặc pip install, tập lệnh shell hoặc tệp nhị phân tùy ý của kẻ tấn công được thực thi trên hệ điều hành của bạn, đã sao chép -/.ssh, -/.awsvà .env các tập tin đến một máy chủ bên ngoài và thường đưa một cửa hậu liên tục vào -/.bashrc, -/.zshrc, crontabhoặc -/Library/LaunchAgents. Gỡ cài đặt gói sau đó chỉ xóa thư mục bên trong node_modules hoặc site-packages đồng thời để lại các khóa bị đánh cắp trong tay kẻ tấn công và cơ chế lưu trữ lâu dài đang chạy trên hệ điều hành của bạn.
Cây quyết định: phân loại thỏa hiệp chuỗi cung ứng máy trạm của nhà phát triển¶
Sử dụng quy trình ứng phó sự cố này để ngăn chặn bán kính vụ nổ trên cả môi trường phát triển cá nhân và cơ sở hạ tầng công ty sản xuất của bạn:
flowchart TD
Detect["Đã thực thi gói npm / PyPI / Cargo độc hại đáng ngờ, tiện ích mở rộng IDE bị Trojan hóa hoặc Repo tuyển dụng giả mạo"] --> Isolate["BƯỚC 1: Ngắt kết nối Wi-Fi và Ethernet của máy trạm ngay lập tức (Luôn bật nguồn máy để phân loại ngoại tuyến)"]
Isolate --> ScopeCheck{"Quá trình thực thi có xảy ra trên Hệ điều hành máy chủ hoặc Bên trong vùng chứa/VM biệt lập không?"}
ScopeCheck -->|"Hệ điều hành máy chủ (Mac / Linux / Windows / WSL2)"| FullCompromise["Giả sử 100% Thư mục chính (-/.aws, -/.ssh, -/.npmrc, .env, Cookie trình duyệt) đã bị lọc"]
ScopeCheck -->|"DevContainer / Docker"| MountCheck["Kiểm tra mức gắn kết âm lượng (-v -/.ssh, -v -/.aws, Docker Socket /var/run/docker.sock hoặc Mạng máy chủ)"]
MountCheck --> FullCompromise
FullCompromise --> CleanDevice["BƯỚC 2: Từ một thiết bị sạch riêng biệt, Cảnh báo SOC & Thu hồi đám mây IAM, SSO, GitHub/GitLab và Mã thông báo đăng ký"]
CleanDevice --> WormCheck["BƯỚC 3: Kiểm tra các cam kết của GitHub, quy trình công việc CI/CD và các phiên bản đã xuất bản của npm/PyPI để lan truyền sâu tự động"]
WormCheck --> OfflineAudit["BƯỚC 4: Trên máy trạm ngoại tuyến, kiểm kê tất cả các tệp .env, tệp trạng thái Terraform và các cửa hậu liên tục"]
OfflineAudit --> RotateEnv["BƯỚC 5: Xoay vòng mọi mật khẩu cơ sở dữ liệu, bí mật Webhook, khóa ký GPG và khóa API được tìm thấy trong tệp .env / State"]
RotateEnv --> RebuildOS["BƯỚC 6: Xóa sạch máy trạm thông qua cài đặt lại hệ điều hành sạch -> Thực thi các khóa SSH được hỗ trợ phần cứng, OIDC và --ignore-scripts"]
Hiểu cách thực thi các vectơ chuỗi cung ứng và IDE của nhà phát triển¶
Các cuộc tấn công hiện đại nhằm vào các kỹ sư phần mềm nhắm vào bốn bề mặt thực thi riêng biệt trên máy trạm. Việc xác định vectơ nào tấn công máy của bạn sẽ cho bạn biết những đặc quyền và đường dẫn tệp mà tải trọng đã truy cập:
1. Móc vòng đời gói độc hại (npm, pnpm, yarn, pip, cargo, gem)¶
- Node.js (
package.jsonscripts): Theo mặc định, đang chạynpm installtự động thực thi bất kỳ lệnh shell nào được xác định trong"preinstall","install"hoặc"postinstall"lĩnh vực củapackage.json, không chỉ đối với gói cấp cao nhất mà bạn đã nhập mà còn đối với mọi phần phụ thuộc bắc cầu trong cây. Những kẻ tấn công sử dụng đánh máy (ví dụ:reqeusts,crossenv,lodahs), nhầm lẫn phụ thuộc (xuất bản gói công khai trên npm hoặc PyPI có cùng tên và số phiên bản cao hơn, chẳng hạn như99.99.9, dưới dạng gói riêng nội bộ của công ty bạn) hoặc tiếp quản tài khoản người duy trì để ghi một dòng như"postinstall": "node index.js"thành một gói. - Trăn (
setup.pyvà.pthtập tin): Khipipcài đặt một bản phân phối nguồn (sdist.tar.gz), nó thực thisetup.pyvới đầy đủ đặc quyền của trình thông dịch Python. Ngay cả khi cài đặt bánh xe nhị phân được biên dịch trước (.whl) không thực thisetup.pytrong quá trình cài đặt, kẻ tấn công bao gồm độc hại **.pth(cấu hình đường dẫn) ** được thả trực tiếp vàosite-packages/. Bất kỳ dòng nào bên trong một.pthtập tin bắt đầu bằngimportđược trình thông dịch Python thực thi tự động mỗi lầnpythonkhởi động trên hệ thống đó. - Rỉ sét (
build.rs) và Go: Trong Rust, Cargo tự động biên dịch và thực thibuild.rskhông chỉ trong thời giancargo buildhoặccargo run, nhưng ngay lập tức khirust-analyzer(bên trong VS Code hoặc IntelliJ) mở thư mục dự án thành các loại chỉ mục. Chỉ cần mở kho lưu trữ Rust nhân bản trong IDE của bạn bằngrust-analyzerkích hoạt thực thi mã tùy ý bên trongbuild.rstrước khi bạn gõ lệnh terminal.
2. Tiện ích mở rộng IDE độc hại hoặc bị tấn công (VS Code Marketplace, OpenVSX, JetBrains)¶
- Các tiện ích mở rộng Visual Studio Code, Cursor, Windsurf và VSCodium (
.vsix) chạy trong quy trình Máy chủ mở rộng Node.js chính trên máy trạm của bạn với không có hộp cát. Mọi tiện ích mở rộng đã cài đặt đều có quyền truy cập đọc/ghi đầy đủ vào toàn bộ hệ thống tệp của bạn, có thể sinh ra các tiến trình con im lặng (child_process.exec), có thể đọc mọi bộ đệm soạn thảo đang mở và.envtập tin và có thể kết nối thiết bị đầu cuối tích hợp của bạn. - Những kẻ đe dọa thường xuyên xuất bản các tiện ích mở rộng chủ đề giả mạo (
Darcula Official), trợ lý mã hóa AI giả mạo hoặc tiện ích mở rộng nói dối/Prettier có lỗi đánh máy âm thầm tải xuống trình đánh cắp thông tin giai đoạn hai hoặc trình bao đảo ngược ngay khi IDE khởi chạy.
3. Kho lưu trữ Git được vũ khí hóa & Tự động thực thi không gian làm việc IDE (Bẫy "Nhà tuyển dụng giả/Bài kiểm tra mang về nhà")¶
- Các nhóm được nhà nước Bắc Triều Tiên bảo trợ (
Contagious Interview/Lazarus Group) và các tác nhân đe dọa tập trung vào tiền điện tử thường xuyên tiếp cận các nhà phát triển trên LinkedIn, Upwork hoặc GitHub với tư cách là nhà tuyển dụng hoặc CTO cung cấp các vai trò từ xa được trả lương cao. Họ yêu cầu nhà phát triển sao chép kho lưu trữ Bitbucket hoặc GitHub để "đánh giá gỡ lỗi trong 15 phút" hoặc "đánh giá MVP trò chơi Web3". - Các kho lưu trữ này chứa các bẫy thực thi ẩn được kích hoạt khi được mở trong IDE hoặc trong quá trình xây dựng:
.vscode/tasks.jsonvới"runOn": "folderOpen": Tự động chạy tập lệnh shell nền ngay khi bạn nhấp vào "Có, tôi tin tưởng tác giả" trong Mã VS.- Độc hại
.git/hooks/hoặc.gitmodules: Khai thác cấu hình mô-đun con Git hoặc xây dựng tập lệnh (Makefile,webpack.config.js,next.config.js,vite.config.ts) tải các tải trọng JavaScript bị xáo trộn (thường được đệm bằng hàng nghìn khoảng trắng ngoài màn hình để ẩn ở cột 2.000+) gọi đến máy chủ C2 bên ngoài.
Giai đoạn 1: Hoàn thành Ma trận luân chuyển bí mật và thông tin xác thực của nhà phát triển¶
Sử dụng máy tính xách tay hoặc điện thoại thông minh thứ cấp sạch, làm việc một cách có hệ thống thông qua kho chứng chỉ nhà phát triển 12 điểm này. Giả sử rằng bất kỳ tệp nào có thể đọc được bằng tài khoản người dùng hệ điều hành không phải root của bạn (chmod 600 hoặc 644 thuộc sở hữu của người dùng của bạn) đã được tải lên máy chủ của kẻ tấn công trong vòng 3 giây sau khi thực hiện tải trọng.
| Danh mục thông tin xác thực | Đường dẫn tệp cục bộ chính xác được thu thập trên máy trạm | Hành động thu hồi và xoay vòng bắt buộc (Từ thiết bị sạch) |
|---|---|---|
| 1. AWS IAM & SSO | -/.aws/credentials-/.aws/config-/.aws/sso/cache/*.json-/.aws/cli/cache/*.json |
1. Trong Bảng điều khiển AWS IAM, ngay lập tức Tắt và xóa tất cả các Khóa truy cập tĩnh (AKIA...) được lưu trữ trên máy tính xách tay đó.2. Trong AWS IAM Identity Center (SSO), thu hồi các phiên người dùng đang hoạt động và xóa mã thông báo thiết bị khách OIDC đã đăng ký. 3. Kiểm tra AWS CloudTrail cho GetCallerIdentity, CreateUser, CreateAccessKey, AssumeRole, ListBucketsvà SecretsManager:GetSecretValue các cuộc gọi bắt nguồn từ các IP hoặc tác nhân người dùng bất thường (Boto3, aws-cli, Go-http-client). |
| 2. Google Cloud (GCP) và Firebase | -/.config/gcloud/credentials.db-/.config/gcloud/access_tokens.db-/.config/gcloud/application_default_credentials.json-/.config/configstore/firebase-tools.json*-service-account.json |
1. Đi đến myaccount.google.com/permissions và thu hồi quyền truy cập của Google Cloud SDK và Firebase CLI.2. Trong Bảng điều khiển GCP > IAM & Quản trị viên > Tài khoản dịch vụ, hãy xóa mọi khóa JSON của Tài khoản dịch vụ ( private_key_id) đã được tải xuống ổ cứng của máy trạm.3. Kiểm tra Nhật ký kiểm tra đám mây để phát hiện các liên kết IAM trái phép hoặc việc tạo Công cụ điện toán. |
| 3. Microsoft Azure & ID Entra | -/.azure/msal_token_cache.bin-/.azure/accessTokens.json-/.azure/azureProfile.json |
1. Chạy Entra ID Admin Revoke-MgUserSignInSession -UserId <your-user-id> để vô hiệu hóa tất cả Mã thông báo làm mới và Mã thông báo làm mới chính (PRT).2. Xóa mọi bí mật hoặc chứng chỉ của máy khách Dịch vụ chính được lưu trữ cục bộ. |
| 4. Kubernetes & Mũ bảo hiểm | -/.kube/config-/.kube/cache/-/.config/helm/registry/config.json |
1. Nếu -/.kube/config chứa chứng chỉ ứng dụng khách tĩnh (client-certificate-data / client-key-data) hoặc tồn tại lâu dài Mã thông báo mang tài khoản dịch vụ, hãy thu hồi chứng chỉ qua CA cụm của bạn (CSR / Loại bỏ RBAC) hoặc xóa và tạo lại ServiceAccount bí mật ngay lập tức.2. Kiểm tra nhật ký kiểm tra Kubernetes API Server cho exec, podshoặc secrets liệt kê/lấy động từ. |
| 5. GitHub, GitLab & Bitbucket | -/.ssh/id_ed25519, -/.ssh/id_rsa-/.config/gh/hosts.yml-/.git-credentials, -/.netrc-/.gitconfig |
1. Đi đến github.com/settings/keys (và tương đương với GitLab/Bitbucket) và Xóa khóa chung SSH và khóa ký cam kết GPG/SSH khỏi máy bị nhiễm.2. Đi đến github.com/settings/tokens và github.com/settings/applications để thu hồi tất cả Mã thông báo truy cập cá nhân (ghp_, github_pat_), ứng dụng OAuth (GitHub CLI, VS Code, Git Credential Manager) và các phiên web đang hoạt động.3. Kiểm tra Nhật ký bảo mật ( github.com/settings/security-log) cho repo.clone, org.Invite_memberhoặc hook.create. |
| 6. GPG & Khóa ký mã | -/.gnupg/private-keys-v1.d/-/Library/Keychains/login.keychain-db (ID nhà phát triển Apple / .p12) |
1. Nếu khóa riêng GPG của bạn được lưu trữ trên đĩa mà không có thẻ thông minh phần cứng (YubiKey OpenPGP) và cụm mật khẩu được lưu vào bộ đệm gpg-agent hoặc được nhập gần đây, hãy tạo và xuất bản Chứng chỉ thu hồi GPG ngay lập tức và xóa khóa GPG khỏi GitHub/GitLab.2. Thu hồi mọi Nhà phát triển Apple đã xuất .p12 hoặc Kho khóa Android .jks chứng chỉ ký mã được lưu trữ trên máy. |
| 7. Đăng ký gói (npm, PyPI, Cargo, RubyGems, NuGet) | -/.npmrc (_authToken=...)-/.pypirc-/.cargo/credentials.toml-/.gem/credentials |
1. Đăng nhập vào npmjs.com > Mã thông báo truy cập, pypi.org > Cài đặt tài khoản > Mã thông báo API, crates.io > Cài đặt tài khoản > Mã thông báo API và rubygems.org và Thu hồi tất cả mã thông báo đang hoạt động ngay lập tức. 2. Kiểm tra các gói đã xuất bản của bạn (xem Giai đoạn 2 bên dưới) để xác nhận kẻ tấn công đã không phát hành bản phát hành cửa sau trong vài giờ qua. |
| 8. Cơ quan đăng ký Docker & Container | -/.docker/config.json (Cơ sở64 auths cho Docker Hub, GHCR, ECR, GCR, Quay) |
1. Hãy nhớ rằng "auth" trong -/.docker/config.json (khi không sử dụng credsStore: osxkeychain hoặc wincred) chỉ đơn thuần là Base64 không được mã hóa username:password_or_token.2. Thu hồi mã thông báo truy cập cá nhân trong Docker Hub ( hub.docker.com/settings/security), Cơ quan đăng ký vùng chứa GitHub và Quay.io. |
| 9. Cơ sở hạ tầng dưới dạng mã (Terraform / Pulumi / Ansible Vault) | -/.terraform.d/credentials.tfrc.json**/terraform.tfstate (Tệp trạng thái cục bộ)-/.pulumi/credentials.json-/.vault-token |
1. Thu hồi mã thông báo API người dùng Terraform Cloud / Enterprise và mã thông báo HashiCorp Vault. 2. TUYỆT VỜI: Bất kỳ địa phương nào terraform.tfstate trên đĩa của bạn chứa mật khẩu văn bản gốc, thông tin xác thực RDS chính, khóa TLS riêng tư và khóa bí mật IAM cho mọi tài nguyên do trạng thái đó quản lý. Xoay mọi bí mật được tham chiếu bên trong địa phương .tfstate tập tin. |
| 10. Cơ sở dữ liệu & Lịch sử CLI bộ nhớ đệm | -/.psql_history, -/.pgpass-/.mysql_history, -/.my.cnf-/.rediscli_history-/.mongodb/mongosh/Cấu hình DBeaver/TablePlus/DataGrip |
1. Trình quản lý cơ sở dữ liệu GUI (TablePlus, DBeaver, DataGrip, Postico, pgAdmin, MongoDB Compass) lưu trữ cục bộ mật khẩu cơ sở dữ liệu được mã hóa hoặc làm xáo trộn mà những kẻ đánh cắp thường xuyên giải mã. 2. Xoay vòng mật khẩu người dùng cơ sở dữ liệu cho mọi cơ sở dữ liệu dàn dựng hoặc sản xuất có thể truy cập qua VPN, pháo đài hoặc IP công cộng từ máy trạm của bạn. |
11. ứng dụng .env Tệp & Khóa SaaS của bên thứ ba |
**/.env, **/.env.local, **/.env.production, **/.env.development |
Xoay mọi khóa API được lưu trữ trong dự án cục bộ .env tập tin: Sọc (sk_live_...), OpenAI (sk-...), Nhân loại (sk-ant-...), Twilio, SendGrid, AWS SES, Mã thông báo Slack Bot (xoxb-...), Mã thông báo Bot Discord, Datadog, Sentry, Supabase (service_role), Quản trị viên Firebase và bí mật ký JWT. |
| 12. Máy chủ đã biết SSH & Máy chủ nhảy Bastion | -/.ssh/config-/.ssh/known_hosts-/.zsh_history, -/.bash_history |
Kẻ tấn công phân tích ngay lập tức -/.ssh/config và -/.zsh_history để tìm mọi IP máy chủ nội bộ, máy chủ pháo đài và tên người dùng mà bạn kết nối, sau đó sử dụng -/.ssh/id_ed25519 key để đăng nhập thẳng vào các máy chủ đó. Xóa khóa công khai cũ của bạn khỏi -/.ssh/authorized_keys trên mọi máy chủ Linux từ xa và kiểm tra /var/log/auth.log trên các máy chủ đó để đăng nhập SSH trái phép. |
Giai đoạn 2: Kiểm tra việc lan truyền sâu chuỗi cung ứng tự động (GitHub, CI/CD & Cơ quan đăng ký gói hàng)¶
Không giống như phần mềm độc hại thông thường, các phần mềm độc hại nhắm mục tiêu vào nhà phát triển được lập trình cụ thể để tự lan truyền khắp chuỗi cung ứng phần mềm trong vòng vài giây sau khi hạ cánh trên máy trạm của bạn. Trước khi bạn quay lại làm sạch máy tính xách tay của mình, hãy sử dụng thiết bị sạch của bạn để xác minh rằng thông tin đăng nhập bị đánh cắp của bạn chưa được sử dụng để lây nhiễm cho nhóm của bạn hoặc người dùng tiếp theo của bạn:
- Kiểm tra kho lưu trữ GitHub / GitLab của bạn để phát hiện các cửa hậu im lặng và quy trình làm việc độc hại:
- Kiểm tra
.github/workflows/*.ymltrên tất cả các kho lưu trữ mà bạn có quyền ghi vào: Các sâu chuỗi cung ứng gần đây (Shai-Hulud,tj-actions/changed-filessự thỏa hiệp vàultralyticskhai thác) tự động sử dụng mã thông báo của nhà phát triển bị đánh cắp để thực hiện quy trình làm việc Hành động GitHub độc hại hoặc sửa đổi quy trình làm việc hiện có để kết xuất${{ toJSON(secrets) }}(lọc bí mật triển khai sản xuất của tổ chức của bạn từ người chạy GitHub Actions). - Xác minh các cam kết gần đây của tác giả và dấu thời gian của người thực hiện: Hãy nhớ rằng bất kỳ ai cũng có thể giả mạo tên tác giả Git và dấu thời gian (
git commit --date="..." --author="..."). Trong GitHub, hãy kiểm tra Sự kiện đẩy trong kho lưu trữ Chế độ xem hoạt động hoặc tổ chức Nhật ký kiểm tra (repo.push), ghi lại dấu thời gian phía máy chủ thực và mã thông báo xác thực chính xác (oauth_application_idhoặcssh_key_fingerprint) đã đẩy mã. - Kiểm tra Webhooks kho lưu trữ, khóa triển khai và cộng tác viên: Xem trong Cài đặt > Webhooks, Cài đặt > Khóa triển khai và Cài đặt > Cộng tác viên và nhóm trên kho lưu trữ của bạn để đảm bảo kẻ tấn công không thêm khóa triển khai đọc/ghi liên tục hoặc webhook trỏ đến máy chủ bên ngoài.
- Kiểm tra npm, PyPI, Cargo và Docker Hub để phát hành gói trái phép:
- Nếu bạn là người bảo trì hoặc cộng tác viên trên bất kỳ gói công khai hoặc riêng tư nào trên npm, PyPI, RubyGems hoặc Crates.io, hãy kiểm tra tab Phiên bản / Lịch sử phát hành cho mọi gói trong tài khoản của bạn.
- Nếu một phiên bản vá lỗi (ví dụ:
1.4.2sau lần phát hành hợp pháp cuối cùng của bạn1.4.1) đã được xuất bản trong khung thời gian máy trạm của bạn bị xâm phạm, ngay lập tức ngừng sử dụng hoặc gỡ bỏ phiên bản đó (npm deprecate <pkg>@<version> "CRITICAL: Compromised version, do not use"hoặc kéo mạnh PyPI) và liên hệ với npm Support (security@npmjs.com/ Bảo mật GitHub) hoặc Bảo mật PyPI (security@pypi.org) để xóa thành phần độc hại và cách ly các phiên bản bị ảnh hưởng. - Kiểm tra quá trình lọc bản sao TruffleHog/Git bí mật:
- Những kẻ đánh cắp chuỗi cung ứng thường xuyên gọi API GitHub/GitLab bằng cách sử dụng mã thông báo bị đánh cắp của bạn để sao chép mọi kho lưu trữ tổ chức riêng tư mà bạn có quyền truy cập và chạy máy quét bí mật tự động (
TruffleHoghoặcGitleaks) đối với toàn bộ lịch sử cam kết của công ty bạn. Nếu tổ chức của bạn đã từng vô tình đưa một bí mật vào lịch sử Git của một kho lưu trữ riêng tư mà không xoay vòng nó, hãy xoay chuyển những bí mật lịch sử đó ngay.
Giai đoạn 3: Phân loại pháp y ngoại tuyến trên máy trạm bị xâm phạm¶
Khi máy trạm của bạn đã bị ngắt kết nối hoàn toàn khỏi Wi-Fi và Ethernet, hãy mở một cửa sổ đầu cuối để thực hiện phân loại ngoại tuyến. Mục tiêu của bạn gồm có hai phần: (A) xác định mọi .env và tệp cấu hình trên đĩa để bạn biết cần xoay bí mật nào và (B) thu thập bằng chứng về những gì gói hoặc tiện ích mở rộng độc hại thực sự đã thực thi trước khi bạn xóa hệ điều hành.
Bước 1: Kiểm kê mỗi lần tiếp xúc .env, Khóa riêng và Tệp trạng thái trên đĩa của bạn¶
Chạy lệnh chỉ đọc này trên máy trạm macOS, Linux hoặc WSL2 ngoại tuyến của bạn để tạo danh sách kiểm tra đầy đủ về mọi tệp cục bộ chứa các bí mật mà phần mềm độc hại có thể đã đọc:
# Create an offline audit list of all .env files, Terraform states, kubeconfigs, and private keys in your home directory:
find ~ -maxdepth 5 \( \
-name ".env" -o \
-name ".env.*" -o \
-name "*.tfstate" -o \
-name "*.tfstate.backup" -o \
-name "*.pem" -o \
-name "*.key" -o \
-name "*.p12" -o \
-name "*.pfx" -o \
-name "*service-account*.json" -o \
-name "credentials.json" -o \
-name ".npmrc" -o \
-name ".pypirc" -o \
-name ".netrc" \
\) -not -path "*/node_modules/*" -not -path "*/.git/*" -not -path "*/Library/Caches/*" 2>/dev/null > ~/exposed_secrets_inventory.txt
cat ~/exposed_secrets_inventory.txt
Xem lại -/exposed_secrets_inventory.txt từng dòng một và mở từng dòng .env hoặc .tfstate tệp ngoại tuyến để bạn có thể xoay vòng mọi khóa API, mật khẩu cơ sở dữ liệu và bí mật webhook được liệt kê bên trong chúng từ thiết bị sạch của bạn.
Bước 2: Kiểm tra gói độc hại hoặc tiện ích mở rộng IDE đã thực thi¶
Trước khi xóa thư mục vi phạm, hãy kiểm tra tải trọng chính xác và kiểm tra xem nó đã cài đặt tính kiên trì ở đâu trên hệ điều hành của bạn:
# 1. Inspect package.json lifecycle scripts in the suspect project and its node_modules:
grep -rnE '"(preinstall|install|postinstall|prepublish|prepare)"' ./package.json ./node_modules/*/package.json ./node_modules/@*/*/package.json 2>/dev/null
# 2. Check Python site-packages for malicious .pth startup hook files:
find . -path "*/site-packages/*.pth" -exec head -n 20 {} + 2>/dev/null
# 3. Inspect recently installed or modified VS Code / Cursor / Windsurf Extensions:
ls -lt ~/.vscode/extensions/ ~/.cursor/extensions/ ~/.windsurf/extensions/ 2>/dev/null | head -n 30
# 4. Check for persistence injected into your Shell RC profiles and Git global hooks:
tail -n 30 ~/.zshrc ~/.bashrc ~/.bash_profile ~/.zprofile ~/.profile 2>/dev/null
git config --global --list | grep -E "core.hooksPath|alias|credential|filter"
Bước 3: Tìm kiếm sự tồn tại ở cấp độ hệ điều hành bị phần mềm độc hại của nhà phát triển (macOS, Linux và Windows) loại bỏ¶
Các phần phụ thuộc độc hại và kho lưu trữ "nhà tuyển dụng giả" thường thả các tác nhân nền liên tục được ngụy trang dưới dạng trình cập nhật hệ thống, trình nền Node hoặc trình lập chỉ mục Spotlight:
- Trên Apple macOS:
# 1. Check user and system LaunchAgents / LaunchDaemons for recently added .plist files: ls -laht ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons # 2. Check active cron jobs and running background node/python/curl/nohup processes: crontab -l ps aux | grep -iE "node|python|osascript|curl|wget|nc|bash -i|/tmp/|/var/tmp/|Library/Application Support" - Trên Linux / Ubuntu / Fedora / WSL2:
# 1. Check user systemd services, cron jobs, and SSH authorized_keys: ls -la ~/.config/systemd/user/ /etc/systemd/system/ crontab -l cat ~/.ssh/authorized_keys # 2. Check running processes executing out of /tmp, /dev/shm, or ~/.cache: ls -la /proc/*/exe 2>/dev/null | grep -E "/tmp/|/dev/shm/|\.cache|\.local" - Trên Windows (Bản địa hoặc Máy chủ của WSL2):
- Hãy nhớ rằng tập lệnh npm hoặc Python độc hại chạy bên trong WSL2 (Hệ thống con Windows dành cho Linux) có thể truy cập trực tiếp vào toàn bộ máy chủ Windows của bạn
C:\lái xe qua/mnt/c/Users/<username>/và có thể gọipowershell.exehoặccmd.exetrực tiếp từ bên trong vỏ Linux để lây nhiễm vào Sổ đăng ký máy chủ Windows (HKCU:\Software\Microsoft\Windows\CurrentVersion\Run), Tác vụ theo lịch trình và Chrome/EdgeCookiescơ sở dữ liệu. - Chạy kiểm tra tính bền vững của Windows PowerShell đầy đủ trong hướng dẫn chiếm quyền điều khiển cookie phiên và đánh cắp thông tin và của chúng tôi hướng dẫn lây nhiễm phần mềm độc hại, ransomware và phần mềm gián điệp.
Giai đoạn 4: Tại sao bạn phải xóa và xây dựng lại máy trạm dành cho nhà phát triển¶
Ngay cả khi bạn tìm và xóa phần mềm độc hại node_modules thư mục, cái .vsix phần mở rộng và một kẻ lừa đảo -/Library/LaunchAgents plist, bạn không bao giờ nên tiếp tục sử dụng máy trạm dành cho nhà phát triển bị xâm nhập cho kỹ thuật sản xuất mà không thực hiện xóa sạch hệ điều hành và cài đặt lại.
Các tải trọng tinh vi dành cho nhà phát triển nhắm mục tiêu sửa đổi các tệp cấu hình hoặc tệp nhị phân hợp pháp hiện có trên hệ thống của bạn mà không có trình quét chống vi-rút nào gắn cờ là độc hại:
1. ** Tệp nhị phân CLI cục bộ bị trojan hóa (git, ssh, sudo, aws, kubectl, docker): Tải trọng chạy bằng tài khoản người dùng của bạn không thể ghi đè /usr/bin/ssh không có sudo, vì vậy thay vào đó nó bỏ tập lệnh bao bọc tại -/.local/bin/ssh, -/bin/git, hoặc -/bin/sudo và thêm thư mục đó vào PATH. Lần tiếp theo bạn gõ sudo hoặc ssh -i sau khi kết nối lại với internet, trình bao bọc âm thầm chặn mật khẩu hoặc cụm mật khẩu của bạn và chuyển tiếp nó cho kẻ tấn công trước khi gọi mã nhị phân thực.
2. ** Bộ đệm gói cục bộ bị nhiễm (-/.npm/_cacache, -/.cache/pip, -/.cargo/registry, -/Library/Caches/pnpm): Phần mềm độc hại có thể đầu độc các tarball được lưu trong bộ nhớ đệm bên trong bộ nhớ đệm của trình quản lý gói cục bộ, do đó ngay cả khi bạn cài đặt một gói hợp pháp, sạch vào tuần tới, trình quản lý gói của bạn sẽ giải nén tarball có cửa sau khỏi bộ nhớ đệm cục bộ của bạn.
3. ** Tệp lõi IDE đã sửa đổi (workbench.desktop.main.js)**: Một số tải trọng Mã VS và Con trỏ nhất định trực tiếp vá Electron asar lưu trữ hoặc workbench.desktop.main.js bên trong gói ứng dụng IDE để cửa sau tồn tại khi loại bỏ tất cả các tiện ích mở rộng.
Chỉ sao lưu mã nguồn thuần túy (được xác minh qua git status và git diff trên máy sạch) và các tài liệu cá nhân, sau đó thực hiện cài đặt sạch macOS Xóa tất cả nội dung và cài đặt / Khôi phục DFU, cài đặt USB Linux sạch hoặc cài đặt Windows 11 USB sạch.
Tăng cường máy trạm dành cho nhà phát triển mới của bạn trước các cuộc tấn công chuỗi cung ứng trong tương lai¶
Khi thiết lập máy trạm dành cho nhà phát triển mới được xóa sạch, hãy thay thế các tệp văn bản thuần tĩnh trong thư mục chính của bạn bằng các quy trình làm việc được hỗ trợ bằng phần cứng, tạm thời và hộp cát để ngay cả khi một phần phụ thuộc độc hại thực thi trong tương lai, sẽ không có bí mật tĩnh nào trên đĩa để nó đánh cắp:
1. Tắt thực thi tập lệnh vòng đời tự động trong Trình quản lý gói¶
Cấu hình npm, pnpm, yarnvà pip vì vậy các phần phụ thuộc không đáng tin cậy không thể âm thầm thực thi các tập lệnh shell trong khi cài đặt:
- Node.js (npm / yarn / pnpm):
# Globally disable automatic preinstall/postinstall script execution in npm:
npm config set ignore-scripts true
pnpm.onlyBuiltDependencies trong package.json, làm pnpm v10+ an toàn hơn đáng kể trước các sâu trong chuỗi cung ứng so với mặc định npm.)
- Trăn (pip / uv):
# Refuse to run arbitrary setup.py scripts from source distributions (.tar.gz); require binary wheels only:
export PIP_ONLY_BINARY=":all:"
npm config set before, pnpm minimumReleaseAgehoặc tường lửa Socket.dev / Artifactory) để từ chối các phiên bản gói được xuất bản trong vòng 48 đến 72 giờ qua.
2. Loại bỏ bản rõ -/.ssh/id_ed25519, -/.aws/credentialsvà .env Tập tin từ đĩa¶
- Di chuyển Khóa SSH vào YubiKey Phần cứng (
ed25519-sk) hoặc Secure Enclave/Tác nhân sinh trắc học: - Không bao giờ để lại mật khẩu không được mã hóa hoặc không có cụm mật khẩu
-/.ssh/id_ed25519tập tin trên đĩa. Tạo khóa SSH FIDO2 cư trú trong phần cứng (ssh-keygen -t ed25519-sk -O verify-required) trên YubiKey vật lý (yêu cầu ngón tay của bạn chạm vào phần tiếp xúc kim loại cho mỗi lầngit pushhoặcsshkết nối) hoặc lưu trữ khóa SSH của bạn bên trong 1Password SSH Agent / Secretive (macOS Secure Enclave) nơi khóa riêng tư không bao giờ tồn tại dưới dạng tệp trong-/.ssh/và mọi chữ ký đều nhắc nhở Touch ID / Windows Hello. - ** Thay thế tĩnh
-/.aws/credentials(AKIA...) với SSO tồn tại trong thời gian ngắn (aws sso loginhoặcaws-vault)**: - Xóa tất cả các khóa truy cập vĩnh viễn của người dùng IAM (
AKIA...). Sử dụng Trung tâm nhận dạng AWS IAM (aws sso login) với thời lượng phiên ngắn (1 đến 4 giờ) hoặc gói thông tin xác thực bên trongaws-vaultđược hỗ trợ bởi chuỗi khóa macOS / Trình quản lý thông tin xác thực Windows với lời nhắc sinh trắc học. - ** Thay thế bản rõ
.envCác tệp có tính năng tiêm bí mật thời gian chạy (1Password CLI op run,Dopplerhoặcaws-vault)**: - Thay vì lưu trữ
STRIPE_SECRET_KEY=sk_live_...trong một bản rõ.envtập tin đó bất kỳnode_moduleskịch bản có thểfs.readFileSync('.env'), lưu trữ các tài liệu tham khảo nhưSTRIPE_SECRET_KEY="op://Dev-Vault/Stripe/secret_key"và khởi chạy máy chủ dev cục bộ của bạn thông quaop run --env-file=".env.template" -- npm run devsau khi xác thực bằng Touch ID. - Sử dụng Xuất bản đáng tin cậy (OIDC) thay vì tồn tại lâu dài
-/.npmrcvà-/.pypircMã thông báo: - Không bao giờ giữ mã thông báo có khả năng xuất bản bên trong
-/.npmrchoặc-/.pypirctrên máy tính xách tay của bạn. Cả PyPI và npm (thông qua Provenance / OIDC) đều cho phép bạn xuất bản các gói độc quyền từ GitHub Actions / GitLab CI Trusted Nhà xuất bản bằng cách sử dụng mã thông báo OpenID Connect (OIDC) tồn tại trong thời gian ngắn, nghĩa là không có mã thông báo xuất bản nào tồn tại trên máy tính xách tay của bất kỳ người bảo trì nào.
3. Cô lập các kho lưu trữ không đáng tin cậy và xây dựng tập lệnh bên trong DevContainer hoặc VM được bảo mật¶
- Không bao giờ sao chép và chạy "Đánh giá tại nhà của nhà tuyển dụng", dự án nguồn mở không quen thuộc hoặc kho tiền thưởng trực tiếp trên hệ điều hành máy chủ của bạn:
- Chạy các dự án lạ bên trong Không gian mã GitHub, máy ảo đám mây dùng một lần hoặc Docker DevContainer cục bộ KHÔNG gắn kết thư mục gốc máy chủ của bạn (
-), KHÔNG gắn kết/var/run/docker.sockvà chỉ chuyển mã thông báo Git có phạm vi, chỉ đọc nếu cần. - Kiểm tra mã VS/tiện ích mở rộng con trỏ và tắt tính năng tự động cập nhật cho nhà xuất bản chưa được xác minh:
- Hãy nhớ rằng các tiện ích mở rộng Cursor, Windsurf và VSCodium kéo từ OpenVSX Register (
open-vsx.org) thay vì Visual Studio Marketplace chính thức của Microsoft. Xác minh chính xác không gian tên của nhà xuất bản và số lượt cài đặt trước khi cài đặt bất kỳ tiện ích mở rộng nào, giữ danh sách tiện ích mở rộng đã cài đặt của bạn ở mức tối thiểu và gỡ cài đặt các tiện ích mở rộng mà bạn không còn sử dụng nữa.
Câu hỏi thường gặp¶
Có chạy không npm install --ignore-scripts bảo vệ tôi hoàn toàn khỏi gói npm độc hại?¶
Đang chạy cài đặt npm --ignore-scripts chặn vectơ tấn công chuỗi cung ứng phổ biến nhất: thực hiện tự động cài đặt sẵn, cài đặtvà sau khi cài đặt lệnh shell được xác định bên trong gói.json tại thời điểm cài đặt. Tuy nhiên, nó không bảo vệ bạn một khi bạn thực sự thực thi mã JavaScript của gói (ví dụ: khi bạn chạy npm chạy dev, kiểm tra npm, trò đùa, gói webhoặc vitehoặc khi plugin ESLint/TypeScript của IDE của bạn tải plugin độc hại từ nút_modules). Vì Node.js không có hệ thống tệp thời gian chạy hoặc hộp cát mạng theo mặc định nên mọi mã được nhập trong bước xây dựng hoặc thử nghiệm của bạn vẫn có thể đọc được -/.aws và -/.ssh trừ khi bạn cách ly bản dựng bên trong vùng chứa hoặc sử dụng mô hình cấp phép thử nghiệm của Node (nút --quyền).
Tôi đã mở một kho lưu trữ đáng ngờ trong VS Code từ một nhà tuyển dụng trên LinkedIn và tôi đã nhấp vào "Có, tôi tin tưởng các tác giả" trước khi nhận ra đó là một trò lừa đảo. Mã có thực thi ngay cả khi tôi chưa bao giờ chạy không npm install?¶
Có, bạn phải giả sử mã tùy ý được thực thi chính xác vào giây phút bạn nhấp vào "Có, tôi tin tưởng các tác giả". Trong Visual Studio Code và Cursor, việc cấp Workspace Trust ngay lập tức cho phép kho lưu trữ .vscode/tasks.json để chạy các tác vụ shell nền được định cấu hình bằng "runOn": "thư mụcMở", cho phép không gian làm việc được xác định .vscode/settings.json để trỏ các máy chủ ngôn ngữ (chẳng hạn như Python, TypeScript, ESLint hoặc Rust Phân tích) đến các đường dẫn thực thi độc hại bên trong thư mục kho lưu trữ và kích hoạt tự động thực thi build.rs trong các dự án Rust. Ngắt kết nối máy khỏi mạng ngay lập tức và thực hiện theo Giai đoạn 1 để xoay vòng tất cả thông tin xác thực.
Nếu gói npm hoặc PyPI độc hại chạy bên trong bộ chứa Docker hoặc DevContainer, máy chủ Mac hoặc máy tính xách tay Windows của tôi có an toàn không?¶
Nó hoàn toàn phụ thuộc vào ổ đĩa gắn kết, biến môi trường và ổ cắm nào được chuyển vào vùng chứa đó. Các mẫu DevContainer tiêu chuẩn và cục bộ docker-compose.yml thiết lập thường xuyên tự động chuyển tiếp máy chủ của bạn SSH_AUTH_SOCK (cho phép phần mềm độc hại bên trong vùng chứa sử dụng khóa SSH của máy chủ của bạn để kết nối với máy chủ từ xa hoặc đẩy tới GitHub), bind-mount -/.aws, -/.gitconfighoặc không gian làm việc của bạn .env các tập tin hoặc gắn ổ cắm Docker của máy chủ (/var/run/docker.sock), cấp quyền truy cập root ngay lập tức vào toàn bộ hệ điều hành máy chủ. Kiểm tra của bạn devcontainer.json và docker kiểm tra mounts để xem chính xác tài nguyên máy chủ nào đã được hiển thị bên trong vùng chứa.
Làm cách nào để kiểm tra xem phiên bản gói tôi sắp cài đặt có tập lệnh cài đặt ẩn hoặc phép đo từ xa bị xáo trộn hay không trước khi cài đặt?¶
Trước khi cài đặt gói npm, PyPI, Go hoặc Rust lạ, hãy kiểm tra nó trên Ổ cắm.dev hoặc Deps.dev (bởi Google Open Source Insights), phân tích tĩnh mọi phiên bản để tìm tập lệnh cài đặt, yêu cầu mạng, quyền truy cập hệ thống tệp,đánh giá() xáo trộn và thay đổi người bảo trì. Bạn cũng có thể chạy npm xem tập lệnh trong thiết bị đầu cuối của bạn để kiểm tra các tập lệnh vòng đời của nó mà không cần tải xuống hoặc thực thi gói.
Đã kiểm tra nguồn¶
- Cơ quan An ninh mạng và Cơ sở hạ tầng (
CISA) & Cơ quan An ninh Quốc gia (NSA) (Hoa Kỳ): Đảm bảo chuỗi cung ứng phần mềm: Các biện pháp thực hành được khuyến nghị dành cho nhà phát triển và ứng phó với các phụ thuộc bị thỏa hiệp. - Phòng thí nghiệm bảo mật GitHub & Tư vấn bảo mật npm: Phản hồi các gói npm bị xâm phạm, độc hại
.vscode/tasks.jsonBẫy kho lưu trữ (Contagious Interview) và Giảm nhẹ lọc bí mật của quy trình hành động GitHub. - Cơ quan đóng gói Python (
PyPA) & Bảo mật PyPI: Xử lý bánh xe độc hại.pthtập tin,setup.pyThực thi tùy tiện và xuất bản đáng tin cậy (OIDC) Hướng dẫn thực hiện. - Dự án bảo mật ứng dụng toàn cầu mở (
OWASP): Bảng đánh lừa bảo mật chuỗi cung ứng phần mềm & 10 rủi ro hàng đầu về bảo mật CI/CD. - Trung tâm An ninh mạng Quốc gia (
NCSC) (Vương quốc Anh): Bảo vệ môi trường dành cho nhà phát triển và kế hoạch quản lý đám mây chống lại việc thu thập thông tin xác thực có mục tiêu.
Hướng dẫn liên quan¶
- Chiếm quyền điều khiển cookie phiên, kẻ đánh cắp thông tin và thu hồi mã thông báo
- Thoát ví tiền điện tử và thỏa hiệp cụm từ hạt giống
- Tiện ích mở rộng trình duyệt độc hại, chiếm quyền điều khiển clipboard và xóa phần mềm quảng cáo
- Lừa đảo cung cấp việc làm giả, gian lận kiểm tra thiết bị và đánh cắp danh tính khi đăng ký
- Nhiễm phần mềm độc hại, ransomware và phần mềm gián điệp
- Số khẩn cấp theo quốc gia