Tại sao dễ bị bỏ qua
Tác nhân của bạn cài đặt một dependency. Manifest package cũng đặt tên một script chạy trong quá trình cài đặt. Những gì trông như cài đặt có thể bao gồm việc thực thi mã cần được xem xét riêng.
Một dự án có thể dùng hook cài đặt cho các bước build hoàn toàn thông thường. Nó cũng có thể chứa một lệnh không mong đợi. Điểm quan trọng là script nằm trong manifest, nơi nó có thể bị bỏ qua nếu bạn chỉ kiểm tra lệnh cài đặt cấp cao nhất.
ClawMetry phát hiện gì
ClawMetry quét manifest package workspace để tìm hook vòng đời cài đặt được hỗ trợ. Nó tạo ra cảnh báo thực thi manifest package và xác định hook. Trình quét đọc tệp; nó không thực thi lệnh mà nó tìm thấy.
Sự khác biệt thay đổi kết quả phát hiện
Ví dụ kích hoạt
postinstall: node build.js
Phát hiện cảnh báo
So sánh im lặng
test: node build.js
Không có kết quả phát hiện cho detector này.
Ví dụ được kiểm tra có script postinstall đặt tên một chương trình build và tạo ra cảnh báo. Đặt cùng chương trình đó dưới script test thông thường, detector này giữ im lặng. Sự khác biệt là khi nào manifest nói chương trình sẽ chạy.
Kiểm tra kết quả detector
{
"kind": "package_manifest_exec",
"severity": "warning",
"evidence": {
"hooks": [
"postinstall"
],
"hits": [
{
"hook": "postinstall",
"command": "node build.js",
"tool": null,
"alarm": null
}
],
"manifest": "package.json",
"tools": [],
"observed": "package_manifest"
}
}Tải đầu vào và kết quả đầy đủ (JSON)Cách ví dụ được kiểm tra
Các ví dụ này đánh giá detector đã xuất bản bằng dữ liệu sự kiện được soạn thảo hoặc tệp cấu hình dùng một lần. Video minh họa các hành vi đó. Đây không phải là bản ghi của agent thực hoặc giao diện sản phẩm. Không có lệnh nào trong ví dụ được thực thi.
Kết quả xác lập hành vi cho các đầu vào này. Nó không xác lập việc thu thập runtime, ngăn chặn hay một sự xâm phạm thực sự. Kiểm tra hợp đồng nguồn đã ghim.
Những gì cần kiểm tra tiếp theo
Đọc lệnh hook và chương trình nó tham chiếu. Kiểm tra xem hành vi cài đặt đó có thuộc dự án không và nguồn dependency có đáng tin cậy không. Nếu cài đặt đã xảy ra, hãy xem xét các tác động thực tế riêng biệt trước khi chấp nhận môi trường.
- Đọc hook vòng đời
- Kiểm tra chương trình được tham chiếu
- Xem xét hành vi cài đặt dự kiến
Tín hiệu này xác lập điều gì
Hook cài đặt không tự động là thù địch. Phát hiện này báo cáo mục trong manifest, không phải bằng chứng rằng cài đặt hoặc thực thi đã xảy ra.