Cách nhanh nhất: mở repository trên GitHub, vào Settings → Security and quality → Advanced Security, bật Dependency graph nếu cần, rồi bật lần lượt Dependabot alerts và Dependabot malware alerts. Tính năng malware alerts hiện hỗ trợ Composer, Go, Maven, npm, NuGet, pip, RubyGems và Rust (theo docs.github.com).
Bài viết này dành cho người mới có quyền quản trị hoặc quyền tương đương trên repository. Kết quả cần đạt không phải là “không có cảnh báo”, mà là ba công tắc đã bật, dependency graph nhận diện đúng tệp dependency và nhóm biết cách phản ứng nếu cảnh báo xuất hiện. Dependabot không phát hiện mọi mã độc mới: package cần được liên hệ với dữ liệu tư vấn bảo mật mà GitHub đã ghi nhận, đồng thời manifest hoặc lockfile phải được nhận diện.
Phân biệt ba tính năng trước khi bật
Dependabot alerts thông báo dependency có lỗ hổng đã biết. Dependabot malware alerts tập trung vào package hoặc phiên bản bị xác định là độc hại, chẳng hạn package bị chiếm quyền phát hành hoặc chứa hành vi nguy hiểm.
Dependabot security updates là tính năng khác, có thể đề xuất hoặc tạo pull request để cập nhật dependency nhằm khắc phục cảnh báo. Bật security updates không tự thay thế việc bật Dependabot alerts và malware alerts.
Cả hai loại cảnh báo Dependabot đều dựa vào dependency graph và GitHub Advisory Database. Cơ sở dữ liệu này có thể tiếp nhận malware advisory từ các nguồn như nhóm bảo mật npm và kho OpenSSF Malicious Packages (theo docs.github.com). Vì vậy, đây không phải là một phần mềm quét mã độc riêng mà bạn phải cài trên máy.
Kiểm tra điều kiện và phạm vi hỗ trợ
- Bạn có quyền quản trị repository hoặc quyền được chính sách GitHub của tổ chức cho phép thay đổi tính năng bảo mật.
- Repository có ít nhất một manifest hoặc lockfile thuộc hệ sinh thái được hỗ trợ.
- Nhánh mặc định chứa dependency thực tế cần theo dõi.
- Với repository riêng tư hoặc nội bộ, tổ chức có thể áp dụng chính sách hoặc giấy phép GitHub làm thay đổi tính khả dụng của tính năng. Nếu không thấy nút bật, hãy kiểm tra quyền và chính sách của tổ chức thay vì tạo cấu hình YAML mới.
Dependabot malware alerts hỗ trợ các nhóm tệp phổ biến sau. Đây là ví dụ để bạn biết cần tìm gì trong repository; khả năng nhận diện còn phụ thuộc cấu trúc dự án và loại dependency.
| Hệ sinh thái | Tệp thường gặp | Công cụ hoặc ngôn ngữ liên quan |
|---|---|---|
| Composer | composer.json, composer.lock | PHP |
| Go | go.mod | Go modules |
| Maven | pom.xml | Java, Scala |
| npm | package.json, package-lock.json | JavaScript, Node.js |
| NuGet | .csproj, packages.config | .NET |
| pip | requirements.txt, Pipfile.lock | Python, PyPI |
| RubyGems | Gemfile, Gemfile.lock | Ruby |
| Rust | Cargo.toml, Cargo.lock | Cargo, crates.io |
Ví dụ, một repository Node.js thường cần có package.json và có thể có package-lock.json trong nhánh mặc định. Một repository Python có thể dùng requirements.txt hoặc Pipfile.lock. Hãy mở Dependency graph sau khi bật để xác nhận GitHub thực sự đã nhận diện tệp, thay vì chỉ suy đoán từ tên ngôn ngữ.
Bật cảnh báo trong giao diện repository
1. Mở Advanced Security
- Đăng nhập GitHub và mở repository cần bảo vệ.
- Chọn tab Settings. Nếu tab không xuất hiện, mở menu tùy chọn cạnh tên repository rồi chọn Settings.
- Trong thanh bên, chọn Security and quality, sau đó mở Advanced Security.
Nếu không thấy Settings hoặc Advanced Security, bạn đang thiếu quyền, đang ở sai repository hoặc chính sách tổ chức không cho phép thay đổi tính năng. Hãy nhờ quản trị viên repository kiểm tra thay vì sửa tệp cấu hình một cách không cần thiết.
2. Bật Dependency graph
- Tìm mục Dependency graph.
- Nếu trạng thái đang tắt, chọn Enable.
- Chờ GitHub xây dựng hoặc cập nhật đồ thị dependency trước khi đánh giá kết quả.
Dependency graph là dữ liệu GitHub dùng để suy ra dependency trực tiếp và gián tiếp từ manifest hoặc lockfile. Nếu mục này đã bật, không cần tắt rồi bật lại. Nếu sau đó graph vẫn thiếu tệp, kiểm tra tệp có nằm trong nhánh mặc định, có được commit hay không và có thuộc dạng GitHub hỗ trợ hay không.
3. Bật Dependabot alerts
- Tại dòng Dependabot alerts, chọn Enable.
- Chờ trạng thái chuyển sang bật và dependency graph hoàn tất cập nhật.
- Mở khu vực dependency graph để kiểm tra manifest hoặc lockfile dự kiến đã xuất hiện.
Dependabot malware alerts cần Dependabot alerts được bật trước. Nếu dòng malware alerts chưa xuất hiện, hãy hoàn tất bước này rồi tải lại trang và kiểm tra lại (theo docs.github.com).
4. Bật Dependabot malware alerts
- Trên cùng trang Advanced Security, tìm dòng Dependabot malware alerts.
- Chọn Enable và chờ giao diện xác nhận trạng thái đã bật.
- Mở lại khu vực bảo mật của repository để kiểm tra mục Dependabot.
Không cần tạo .github/dependabot.yml chỉ để bật malware alerts. Tệp này chủ yếu cấu hình version updates, chẳng hạn lịch kiểm tra và tạo pull request cập nhật phiên bản. Chỉ thêm tệp khi bạn thực sự muốn cấu hình cập nhật dependency; đừng coi đó là bước bắt buộc của malware alerts.
Xác minh mà không đưa package đáng ngờ vào dự án

Không nên cố tình cài một package bị nghi là độc hại chỉ để thử cảnh báo. Thay vào đó, xác minh theo các dấu hiệu quan sát được sau:
- Mở Settings → Security and quality → Advanced Security và xác nhận Dependency graph, Dependabot alerts तथा Dependabot malware alerts đều ở trạng thái bật.
- Mở khu vực bảo mật của repository, vào Dependabot và tìm bộ lọc hoặc mục Malware. Có thể chưa có bản ghi nào nếu GitHub chưa ghi nhận package độc hại trong graph hiện tại.
- Mở Dependency graph và đối chiếu với các tệp thực tế, chẳng hạn
package-lock.json,requirements.txt,pom.xmlhoặcGemfile.lock. - Kiểm tra cài đặt thông báo của người phụ trách. Người nhận cần có quyền phù hợp, đang theo dõi repository và đã bật thông báo cảnh báo bảo mật theo chính sách tài khoản hoặc tổ chức.
Nếu mục Malware không có cảnh báo, kết quả đúng phải được hiểu là “chưa có advisory phù hợp trong dependency graph hiện tại”, không phải “mọi dependency đều an toàn”.
Quy trình xử lý khi có malware alert
1. Ghi nhận phạm vi ảnh hưởng
Mở cảnh báo và ghi lại tên package, hệ sinh thái, phiên bản, manifest hoặc lockfile liên quan, dependency trực tiếp hay gián tiếp, cùng phiên bản khắc phục nếu GitHub cung cấp. Giữ lại commit, workflow và log dựng liên quan để hỗ trợ điều tra.
Đừng chỉ nhìn tệp khai báo trực tiếp. Package độc hại có thể là dependency gián tiếp được khóa trong lockfile, trong khi manifest chỉ hiển thị package cấp cao hơn.
2. Cô lập trước khi tiếp tục xây dựng
- Tạm dừng pipeline hoặc bản dựng đang cài hay sử dụng phiên bản bị ảnh hưởng.
- Không chạy lại lệnh cài dependency từ lockfile bị ảnh hưởng cho đến khi có phương án được rà soát.
- Không chia sẻ log chứa token, khóa hoặc dữ liệu nhạy cảm trong issue công khai.
- Nếu package từng chạy trên máy phát triển, máy dựng hoặc máy chủ có secret, đánh giá ngay khả năng secret đã bị đọc; thu hồi và cấp lại secret liên quan theo quy trình của tổ chức.
Dependabot cung cấp thông tin về dependency và hướng khắc phục, nhưng không thay thế quy trình ứng phó sự cố. Việc có cần điều tra log, cô lập máy hoặc thông báo sự cố hay không phụ thuộc vào quyền mà package từng có và dữ liệu môi trường.
3. Cập nhật, thay thế và xác minh
- Nếu có phiên bản an toàn, cập nhật manifest và lockfile; xem xét diff trước khi merge.
- Nếu chưa có phiên bản khắc phục, loại bỏ package, thay thế bằng dependency khác hoặc khóa quy trình dựng để không tiếp tục tải phiên bản bị ảnh hưởng.
- Với dependency gián tiếp, cập nhật package cấp cao hoặc dùng cơ chế override/resolution của hệ sinh thái sau khi kiểm tra tương thích.
- Chạy kiểm thử ứng dụng trong môi trường sạch, xem lại log và mở lại dependency graph để xác nhận phiên bản bị ảnh hưởng đã biến mất.
Không nên dismiss cảnh báo chỉ vì package nằm trong dependency phát triển. Dependency phát triển vẫn có thể chạy trên máy lập trình viên hoặc trong CI và có khả năng tiếp cận token.
Giới hạn và cách quay lui an toàn
- Không phát hiện mọi package độc hại: mã độc mới có thể chưa có advisory trong GitHub Advisory Database.
- Phụ thuộc vào dữ liệu dependency: manifest hoặc lockfile thiếu, lỗi thời hay không được nhận diện sẽ làm dependency graph không đầy đủ.
- Có thể cần điều tra thêm: package nội bộ trùng tên và phiên bản với package công khai có thể tạo cảnh báo cần xác minh.
- Không phải quét hành vi toàn diện: malware alerts không thay thế rà soát mã, bảo vệ secret, kiểm soát registry, sandbox hoặc review thay đổi dependency.
- Có thể có độ trễ: cảnh báo không nhất thiết xuất hiện ngay thời điểm package bị phát hiện hoặc advisory được cập nhật.
Nếu chỉ muốn dừng cảnh báo, quản trị viên có thể tắt Dependabot malware alerts trong Advanced Security; việc này làm mất lớp theo dõi, không xử lý package đang bị ảnh hưởng. Không xóa lockfile để che cảnh báo. Nếu đã thay đổi dependency, giữ commit và diff để có thể quay lại phiên bản trước trong một nhánh hoặc commit riêng sau khi đánh giá tác động. Nếu package đã chạy cùng secret, ưu tiên thu hồi và cấp lại secret trước khi khôi phục pipeline.
Checklist hoàn tất
- Dependency graph đã bật.
- Dependabot alerts đã bật.
- Dependabot malware alerts đã bật.
- Manifest hoặc lockfile thuộc dự án xuất hiện trong Dependency graph.
- Người phụ trách đã kiểm tra và bật thông báo cảnh báo bảo mật phù hợp.
- Nhóm biết đường dẫn mở mục Dependabot → Malware.
- Quy trình cô lập dependency, cập nhật lockfile và xoay vòng secret đã được ghi lại.
Nguồn tham khảo
- Dependabot malware alerts — GitHub Docs.
- Configuring Dependabot malware alerts — GitHub Docs.
- Global security advisories — GitHub Docs.
- Dependency graph supported package ecosystems — GitHub Docs.
- Managing Dependabot malware alerts — GitHub Docs.

