คลังตัวตรวจจับสคริปต์ติดตั้งแพ็คเกจ

สคริปต์ติดตั้งแพ็คเกจ

ติดตั้งแพ็คเกจ รันสคริปต์ของมัน

ดู lifecycle hooks ที่รันได้ก่อนที่จะมองข้ามใน manifest

เห็นปัญหา เข้าใจผลการตรวจสอบ

บรรยายภาษาอังกฤษพร้อมคำบรรยาย

เหตุใดจึงมองข้ามได้ง่าย

agent ของคุณติดตั้ง dependency package manifest ยังระบุสคริปต์ที่รันระหว่างการติดตั้ง สิ่งที่ดูเหมือนการตั้งค่าอาจรวมถึงการรันโค้ดที่ควรได้รับการตรวจสอบเป็นพิเศษ

โปรเจกต์อาจใช้ install hooks สำหรับขั้นตอน build ทั่วไป และอาจมีคำสั่งที่ไม่คาดหวัง สิ่งสำคัญคือสคริปต์อยู่ใน manifest ซึ่งอาจถูกมองข้ามหากคุณตรวจสอบเพียงคำสั่งติดตั้งระดับบนสุด

สิ่งที่ ClawMetry ตรวจจับ

ClawMetry สแกน package manifest ของ workspace เพื่อหา install lifecycle hooks ที่รองรับ โดยแสดงคำเตือนการรันโค้ดจาก package manifest และระบุ hook ตัวสแกนอ่านไฟล์ ไม่ได้รันคำสั่งที่พบ

ความแตกต่างที่เปลี่ยนผลการตรวจสอบ

ตัวอย่างที่ทริกเกอร์

postinstall: node build.js

ผลการค้นพบระดับคำเตือน

การเปรียบเทียบที่เงียบ

test: node build.js

ไม่มีผลการตรวจสอบสำหรับตัวตรวจจับนี้

ตัวอย่างที่ตรวจสอบมีสคริปต์ postinstall ที่ระบุชื่อโปรแกรม build และสร้างคำเตือน วางโปรแกรมเดียวกันไว้ใต้สคริปต์ test ทั่วไป ตัวตรวจจับนี้จะไม่แจ้งเตือน ความแตกต่างอยู่ที่เมื่อ manifest ระบุว่าโปรแกรมจะรัน

ตรวจสอบผลลัพธ์ของตัวตรวจจับ
{
  "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"
  }
}
ดาวน์โหลดข้อมูลนำเข้าและผลลัพธ์ทั้งหมด (JSON)
วิธีการตรวจสอบตัวอย่าง

ตัวอย่างเหล่านี้ประเมินตัวตรวจจับที่เผยแพร่ด้วยข้อมูลเหตุการณ์ที่สร้างขึ้นหรือไฟล์คอนฟิกที่ใช้แล้วทิ้ง วิดีโออธิบายพฤติกรรมเหล่านั้น ไม่ใช่การบันทึก agent จริงหรืออินเทอร์เฟซผลิตภัณฑ์ ไม่มีคำสั่งใดในตัวอย่างถูกเรียกใช้จริง

ผลลัพธ์พิสูจน์พฤติกรรมสำหรับข้อมูลนำเข้าเหล่านี้เท่านั้น ไม่ได้พิสูจน์การรับข้อมูล runtime การป้องกัน หรือการโจมตีจริง ตรวจสอบสัญญาต้นฉบับที่ปักหมุดไว้.

สิ่งที่ควรตรวจสอบต่อไป

อ่านคำสั่ง hook และโปรแกรมที่อ้างอิง ตรวจสอบว่าพฤติกรรมการติดตั้งนั้นเหมาะสมกับโปรเจกต์และแหล่งที่มาของ dependency น่าเชื่อถือหรือไม่ หากการติดตั้งเกิดขึ้นแล้ว ให้ตรวจสอบผลกระทบจริงแยกต่างหากก่อนยอมรับสภาพแวดล้อม

  1. อ่าน lifecycle hook
  2. ตรวจสอบโปรแกรมที่อ้างอิง
  3. ตรวจสอบพฤติกรรมการติดตั้งที่คาดหวัง

สิ่งที่สัญญาณนี้พิสูจน์

install hook ไม่ได้เป็นอันตรายโดยอัตโนมัติ ผลการค้นพบนี้รายงานรายการ manifest ไม่ใช่หลักฐานว่าการติดตั้งหรือการรันโค้ดเกิดขึ้น

ให้ช่วงเวลาสำคัญมองเห็นได้เสมอ

ติดตามกิจกรรม agent ตรวจสอบผลการค้นพบ และตัดสินใจว่าสิ่งใดต้องการความสนใจ