کتابخانه آشکارسازهااسکریپت‌های نصب بسته

اسکریپت‌های نصب بسته

بسته را نصب کنید. اسکریپت آن را اجرا کنید.

هوک‌های چرخه حیات اجراپذیر را پیش از نادیده گرفتن در مانیفست مشاهده کنید.

مشکل را ببینید. یافته را درک کنید.

روایت انگلیسی با زیرنویس.

چگونه نادیده گرفته می‌شود

عامل شما یک وابستگی نصب می‌کند. مانیفست بسته نیز نام اسکریپتی را ذکر می‌کند که هنگام نصب اجرا می‌شود. آنچه مانند راه‌اندازی به نظر می‌رسد می‌تواند شامل اجرای کدی باشد که بررسی مستقل خود را می‌طلبد.

یک پروژه ممکن است از هوک‌های نصب برای مراحل ساخت کاملاً معمولی استفاده کند. همچنین ممکن است حاوی دستور غیرمنتظره‌ای باشد. نکته مهم این است که اسکریپت در مانیفست قرار دارد، جایی که اگر فقط دستور نصب سطح بالا را بررسی کنید ممکن است از دست برود.

آنچه ClawMetry شناسایی می‌کند

ClawMetry مانیفست بسته فضای کاری را برای هوک‌های چرخه حیات نصب پشتیبانی‌شده اسکن می‌کند. یک هشدار اجرای مانیفست بسته ایجاد می‌کند و هوک را شناسایی می‌کند. اسکنر فایل را می‌خواند؛ دستوری که می‌یابد را اجرا نمی‌کند.

تفاوتی که یافته را تغییر می‌دهد

مثال محرک

postinstall: node build.js

یافته هشداری

مقایسه بدون هشدار

test: node build.js

هیچ یافته‌ای برای این آشکارساز وجود ندارد.

مثال بررسی‌شده یک اسکریپت postinstall دارد که نام یک برنامه ساخت را ذکر می‌کند و هشدار تولید می‌کند. همان برنامه را زیر اسکریپت تست معمولی قرار دهید و این آشکارساز بی‌صدا می‌ماند. تمایز زمانی است که مانیفست می‌گوید برنامه اجرا خواهد شد.

نتیجه آشکارساز را بررسی کنید
{
  "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)
چگونه مثال بررسی شد

این مثال‌ها آشکارساز منتشرشده را با داده‌های رویداد نوشته‌شده یا فایل‌های پیکربندی موقت ارزیابی می‌کنند. ویدیوها آن رفتارها را نشان می‌دهند. آنها ضبط عوامل زنده یا رابط محصول نیستند. هیچ دستوری در مثال‌ها اجرا نشده است.

نتیجه رفتار را برای این ورودی‌ها تعیین می‌کند. این نتیجه جذب زمان اجرا، پیشگیری یا یک نقض واقعی را ثابت نمی‌کند. قرارداد منبع ثابت‌شده را بررسی کنید.

آنچه بعداً باید بررسی کنید

دستور هوک و برنامه‌ای که ارجاع می‌دهد را بخوانید. بررسی کنید که آیا رفتار نصب متعلق به پروژه است و منبع وابستگی قابل اعتماد است. اگر نصب قبلاً انجام شده، تأثیرات واقعی را پیش از پذیرش محیط جداگانه بررسی کنید.

  1. هوک چرخه حیات را بخوانید
  2. برنامه ارجاع‌شده را بررسی کنید
  3. رفتار نصب مورد انتظار را بررسی کنید

آنچه این سیگنال ثابت می‌کند

هوک نصب به‌طور خودکار مخرب نیست. این یافته ورودی مانیفست را گزارش می‌دهد، نه اثبات اینکه نصب یا اجرا اتفاق افتاده.

لحظه‌های مهم را مرئی نگه دارید.

فعالیت عامل را دنبال کنید، یافته‌ها را بررسی کنید و تصمیم بگیرید چه چیزی نیاز به توجه دارد.