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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ore-mal-pkg-inspector — ماسح ضوئي متعدد الأنظمة لاكتشاف الحزم الخبيثة وأمن سلسلة التوريد | Kitploit
أدوات/GitHubGitHub/rapticore/ore-mal-pkg-inspector
التحليل الثابتماسحات الثغرات الأمنيةتحليل الكودجمع المعلوماتتحليل البرمجيات الخبيثةDevSecOpsاستخبارات التهديداتأمن سلسلة التوريدالتعلم والتعليم
GitHubrapticore/ore-mal-pkg-inspector

ore-mal-pkg-inspector

ماسح ضوئي متعدد الأنظمة لاكتشاف الحزم الخبيثة وأمن سلسلة التوريد

81منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

OreWatch

كشف الحزم الضارة عبر أنظمة متعددة وماسح أمان سلسلة التوريد

Python Version License Status Ecosystems

أداة أمان من المستوى الإنتاجي لاكتشاف الحزم الضارة وتهديدات سلسلة التوريد عبر أنظمة npm وPyPI وMaven وRubyGems وGo وCargo. تستفيد من جمع استخبارات التهديدات الآلي من مصادر أمنية موثوقة لتحديد التبعيات المخترقة في مشاريعك.

OreWatch هو اسم المنتج واسم حزمة PyPI. لا يزال مسار المستودع المصدر الحالي يستخدم ore-mal-pkg-inspector.

فيديوهات

التثبيت

https://github.com/rapticore/ore-mal-pkg-inspector/issues/2#issue-4215016110

OreWatch وCursor

https://github.com/rapticore/ore-mal-pkg-inspector/issues/3#issue-4215017945

OreWatch وCodeX

https://github.com/rapticore/ore-mal-pkg-inspector/issues/4#issue-4215019385

OreWatch وClaude-Code

https://github.com/rapticore/ore-mal-pkg-inspector/issues/5#issue-4215021599


جدول المحتويات

  • المشكلة
  • الحل
  • الميزات الرئيسية
  • لماذا OreWatch؟
  • ابدأ من هنا
  • بداية سريعة
    • المتطلبات الأساسية
    • التثبيت
    • أول فحص
  • الاستخدام
    • الأوامر الأساسية
    • الاستخدام المتقدم
    • مرجع سطر الأوامر
    • المراقبة الخلفية
  • دليل التبني
  • التوزيع
    • نشر macOS المُدار
  • التسجيل وتصحيح الأخطاء
  • المخرجات والتقارير
  • التكامل مع CI/CD
  • استكشاف الأخطاء وإصلاحها
  • الأسئلة الشائعة
  • المساهمة
  • سياسة الأمان
  • خريطة الطريق
  • الترخيص
  • الدعم
  • الإقرارات

المشكلة

هجمات سلسلة التوريد أصبحت الآن ناقل التهديد الرئيسي لاختراق البرمجيات. في عام 2024 وحده، تم نشر آلاف الحزم الضارة على npm وPyPI ومسجلات حزم أخرى، مستهدفة المطورين بانتحال الكتابة (typosquatting)، والارتباك في التبعيات (dependency confusion)، وحملات برمجيات خبيثة متطورة مثل Shai-Hulud.

التحدي: تحتاج المؤسسات والمطورون إلى:

  • فحص التبعيات عبر أنظمة برمجة متعددة
  • البقاء على اطلاع دائم باستخبارات التهديدات سريعة التطور من مصادر متعددة
  • اكتشاف ليس فقط الحزم الضارة المعروفة ولكن أيضًا مؤشرات الاختراق (IoCs)
  • دمج الفحص الأمني في سير العمل التطويري الحالي
  • الاستجابة السريعة للتهديدات المكتشفة حديثًا

الفجوة: الحلول الحالية غالبًا ما تكون:

  • مقصورة على نظام بيئي واحد (npm فقط، PyPI فقط، إلخ)
  • معتمدة على صيانة يدوية لقوائم التهديدات
  • تفتقر إلى قدرات كشف مؤشرات الاختراق (IoC)
  • صعبة الدمج في خطوط الأنابيب الآلية
  • أدوات احتكارية صندوق أسود بدون شفافية

الحل

OreWatch يعالج هذه التحديات من خلال توفير:

تغطية شاملة متعددة الأنظمة: أداة واحدة لحزم npm وPyPI وMaven وRubyGems وGo وCargo

استخبارات تهديدات آلية: جمع ودمج البيانات ديناميكيًا من مصادر أبحاث أمنية موثوقة

كشف مؤشرات الاختراق النشط: تحديد أنماط هجمات Shai-Hulud ومؤشرات أخرى للتعليمات البرمجية الخبيثة تتجاوز مطابقة اسم الحزمة

جاهز للتكامل مع CI/CD: مصمم للتكامل السلس مع GitHub Actions وGitLab CI وJenkins ومنصات أتمتة أخرى

مفتوح المصدر وشفاف: رؤية كاملة لمنطق الكشف ومصادر البيانات ومنهجية الفحص


الميزات الرئيسية

دعم متعدد الأنظمة يفحص حزم npm وPyPI وMaven وRubyGems وGo وCargo مع كشف تلقائي للنظام من هيكل المشروع.

قاعدة بيانات استخبارات تهديدات موحدة يتحقق من قواعد بيانات الحزم الضارة التي يتم جمعها ديناميكيًا من مصادر أبحاث أمنية موثوقة.

كشف تلقائي للنظام البيئي يحدد الأنظمة بذكاء من هيكل الدليل وأسماء الملفات، ويمكنه فحص أنظمة متعددة في تشغيل واحد.

كشف مؤشرات الاختراق (IoC) يفحص أنماط هجمات Shai-Hulud (النسخة الأصلية و 2.0)، والربطات الخبيثة، وسير العمل المشبوه، وملفات الحمولة المعروفة.

تكامل Shai-Hulud يستخدم المرجع التبادلي لحزم npm مقابل قائمة الحزم المتأثرة الشاملة من Shai-Hulud من OreNPMGuard.

تقارير JSON منظمة ينشئ تقارير JSON قابلة للقراءة آليًا مع بيانات وصفية صريحة لبيانات التهديد ومواقع ملفات بنمط SARIF للنتائج.

صيغ إدخال مرنة يدعم ملفات التبعيات القياسية (package.json و requirements.txt إلخ) وقوائم الحزم العامة (نص، JSON، YAML).

تسجيل جاهز للإنتاج مستويات تفصيل قابلة للتكوين مع علامات --verbose و --debug لاستكشاف الأخطاء ومسارات التدقيق.

آمن وسريع عمليات للقراءة فقط دون تعديل في الكود الخاص بك، محسّنة لفحص قواعد الأكواد الكبيرة بكفاءة.


لماذا OreWatch؟

مقارنة بأدوات النظام الواحد معظم ماسحات الأمان تركز على مدير حزم واحد. OreWatch يوفر حماية موحدة عبر ستة أنظمة رئيسية، وهو أمر أساسي لبيئات التطوير الحديثة متعددة اللغات.

مقارنة بقوائم التهديدات اليدوية قوائم الحزم الضارة الثابتة تصبح قديمة بسرعة. أدوات الجمع الآلية لدينا تجلب استخبارات تهديدات جديدة يوميًا من مصادر موثوقة متعددة.

مقارنة بكشف اسم الحزمة فقط التحقق من أسماء الحزم فقط يغفل الهجمات المتطورة. كشف مؤشرات الاختراق (IoC) يحدد أنماط الكود الخبيثة حتى في الحزم غير المدرجة في قوائم الحظر.

مقارنة بمراجعات الأمان اليدوية المراجعات اليدوية للتبعيات تستغرق وقتًا وعرضة للأخطاء. الفحص الآلي يتيح التحقق المستمر من الأمان في كل بناء.

مقارنة بالأدوات التجارية الصندوق الأسود الأدوات الاحتكارية تفتقر إلى الشفافية في منطق الكشف. كمشروع مفتوح المصدر، كل قاعدة كشف ومصدر بيانات قابل للتدقيق.

قصة النشأة وُلد OreWatch من تطوير OreNPMGuard، وهو ماسح متخصص لهجمات Shai-Hulud على npm. خلال ذلك المشروع، أدركنا الحاجة إلى تغطية أوسع متعددة الأنظمة تتجاوز npm. في ديسمبر 2025، قمنا باستخراج وتعزيز قدرات الكشف متعددة الأنظمة في هذه الأداة المستقلة، مع الحفاظ على تركيز OreNPMGuard على npm مع تمكين OreWatch من خدمة مجتمع المطورين الأوسع عبر جميع أنظمة الحزم الرئيسية.


ابدأ من هنا

إذا كنت تتبنى OreWatch لأول مرة، اختر أصغر مسار يناسب سير عملك:

تسلسل التشغيل الأول الموصى به لمعظم المطورين:

  1. قم بتثبيت OreWatch باستخدام pip install . أو الحزمة المنشورة.
  2. شغّل orewatch monitor quickstart /path/to/project --client <your-client>.
  3. تحقق من الخلفية مع orewatch monitor status.
  4. إذا كنت على macOS، أطلق orewatch monitor menubar للإشعارات وواجهة مستخدم محلية.

إذا كنت تريد دليل إعداد أقصر مع أوامر نسخ ولصق، استخدم docs/adoption-guide.md.


بداية سريعة

المتطلبات الأساسية

  • Python 3.14 أو أعلى
  • pip لتثبيت التبعيات
  • Git لاستنساخ المستودع
  • اتصال بالإنترنت لإعداد استخبارات التهديدات الأولية
  • OpenSSL لتوليد المفاتيح الموقعة للقطات (snapshots)، والنشر، والتحقق في سير عمل مراقب اللقطات

التثبيت

يمكن تثبيت OreWatch عبر pipx (موصى به)، أو Homebrew (macOS)، أو pip، أو من المصدر. جميع الطرق تنتج أمر CLI orewatch.

الخيار 1 — pipx (موصى به)

pipx يقوم بتثبيت OreWatch في بيئته المعزولة مع جعل أمر orewatch متاحًا عالميًا. هذا هو الخيار الأفضل لمعظم المطورين.```bash

Install pipx if you don't have it

python3.14 -m pip install --user pipx python3.14 -m pipx ensurepath

Install OreWatch

pipx install --python python3.14 orewatch

If you want the macOS menu bar app on a fresh install, use this instead:

pipx install --python python3.14 'orewatch[mac-menubar]'

Verify

orewatch --help

Optional macOS menu bar app

orewatch monitor menubar

root@kitploit:~
إذا قمت بالفعل بتثبيت `orewatch` باستخدام pipx وترغب في إضافة تطبيق شريط القوائم في macOS لاحقًا، قم بحقن روابط Cocoa في نفس بيئة pipx:```bash
pipx inject orewatch pyobjc-framework-Cocoa

ترقية:```bash pipx upgrade orewatch

root@kitploit:~
**إلغاء التثبيت:**```bash
pipx uninstall orewatch

الخيار ٢ — Homebrew (macOS)

للمستخدمين على macOS الذين يفضلون التثبيت المُدار عبر Homebrew:```bash

Add the OreWatch tap

brew tap rapticore/tap

Install

brew install rapticore/tap/orewatch

Verify

orewatch --help

Optional macOS menu bar app

orewatch monitor menubar

root@kitploit:~
**ترقية:**```bash
brew update && brew upgrade orewatch

إلغاء التثبيت:```bash brew uninstall orewatch brew untap rapticore/tap # optional — removes the tap

root@kitploit:~
> **ملاحظة:** تتضمن صيغة Homebrew روابط Cocoa التي تتطلبها `orewatch monitor menubar`. إذا أبلغ تثبيت أقدم لـ Homebrew عن `ModuleNotFoundError: No module named 'AppKit'`، قم بتشغيل `brew update && brew reinstall rapticore/tap/orewatch` حتى تعيد الصيغة بناء بيئة Python المعزولة الخاصة بها مع دعم شريط القوائم.

#### الخيار 3 — pip

استخدم `pip` لخطوط أنابيب CI أو صور Docker أو عندما تدير بيئات virtualenvs الخاصة بك:```bash
# Install into an active Python 3.14 virtualenv or user site
python3.14 -m pip install orewatch

# Pin a version for reproducible CI builds
python3.14 -m pip install orewatch==1.3.0

# If you want the macOS menu bar app on a fresh install, use this instead:
# python3.14 -m pip install 'orewatch[mac-menubar]'

# Verify
orewatch --help

ترقية:```bash python3.14 -m pip install --upgrade orewatch

root@kitploit:~
#### الخيار 4 — سحب المصدر (المساهمون)```bash
# Clone the repository
git clone https://github.com/rapticore/ore-mal-pkg-inspector.git
cd ore-mal-pkg-inspector

# Create and activate a Python 3.14 virtual environment (recommended)
python3.14 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in editable mode for development
python -m pip install -e .

# Verify
orewatch --help

التحقق بعد التثبيت

بعد التثبيت بأي طريقة، تأكد من أن OreWatch يعمل:```bash

Check the CLI is accessible

orewatch --help

List supported manifest filenames

orewatch --list-supported-files

Run a quick scan on the current directory

orewatch .

root@kitploit:~
#### ملاحظات المنصة

| المنصة | مصدر بايثون | ملاحظات |
|---|---|---|
| **ماك** (Homebrew Python) | `brew install [email protected]` | موصى به لمستخدمي Homebrew |
| **ماك** (pyenv) | `pyenv install 3.14` | الأفضل للإعدادات متعددة الإصدارات |
| **أوبونتو / دبيان** | `sudo apt install python3.14` أو pyenv | تحقق من أن توزيعتك تحتوي على 3.14+ |
| **فيدورا / RHEL** | `sudo dnf install python3.14` أو pyenv | — |
| **ويندوز (WSL)** | pyenv أو حزمة النظام | ويندوز الأصلي غير مختبر |

> **مطلوب بايثون 3.14.** يستخدم OreWatch ميزات لغة تم تقديمها في
> بايثون 3.14. الإصدارات الأقدم ستفشل عند الاستيراد.

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

| العَرَض | الحل |
|---|---|
| `command not found: orewatch` | تأكد من أن موقع التثبيت موجود في `PATH` الخاص بك. بالنسبة لـ pipx: قم بتشغيل `pipx ensurepath` وأعد تشغيل الصدفة. |
| `ModuleNotFoundError` عند الاستيراد | قد يكون لديك إصدارات متعددة من بايثون. تأكد من أن وقت التشغيل خلف `orewatch` هو بايثون 3.14+ وأعد التثبيت باستخدام المفسر المطابق. |
| فشل تثبيت pipx مع أخطاء الحل | قم بترقية pipx: `python3.14 -m pip install --upgrade pipx` |
| لم يتم العثور على `orewatch` في Homebrew بعد التثبيت | قم أولاً بتشغيل `brew tap rapticore/tap`، ثم أعد محاولة التثبيت. |
| تم رفض الإذن أثناء تثبيت pip | استخدم `pip install --user orewatch` أو قم بالتثبيت داخل بيئة افتراضية. |

_ملاحظة: إذا كانت بيانات التهديد المحلية مفقودة أو قديمة، فإن فحوصات الحزمة تقوم بترشيح تحديث مباشر ولا تقوم بترقيته إلا بعد اجتياز بوابات الشذوذ. إذا بدا المرشح مشبوهًا، يحتفظ OreWatch بمجموعة البيانات النشطة الأخيرة المعروفة بأنها جيدة._

_واجهة CLI المثبتة:_ `orewatch`
_اسم مستعار للتوافق:_ `ore-mal-pkg-inspector`

### الفحص الأول

**فحص مجلد مشروع:**```bash
# Auto-detect ecosystem and scan current directory
orewatch .

# Scan specific project path
orewatch /path/to/your/project

# With verbose output to see progress
orewatch /path/to/your/project --verbose

المخرجات المتوقعة:``` Detected multiple ecosystems: npm, pypi Scanning all detected ecosystems...

Scanning npm... Found 2 dependency file(s) for npm Parsing: package.json Parsing: package-lock.json

Scanning pypi... Found 1 dependency file(s) for pypi Parsing: requirements.txt

Extracted 45 unique package(s) across 2 ecosystem(s)

Checking 45 package(s) against malicious databases... Checking 30 npm package(s)... Checking 15 pypi package(s)...

Scanning for Indicators of Compromise...

Generating report...

============================================================ SCAN REPORT SUMMARY

Ecosystem: npm, pypi Total Packages Scanned: 45 Malicious Packages Found: 0 IoCs Found: 0

✅ No malicious packages or IoCs detected

HTML report saved to: scan-output/malicious_packages_report_20251231_120000.html JSON report saved to: scan-output/malicious_packages_report_20251231_120000.json

root@kitploit:~
إذا كنت تريد من OreWatch مواصلة مراقبة المشروع بعد هذا الفحص الأول، تابع إلى [المراقبة الخلفية](#background-monitoring) أو انتقل مباشرة إلى [docs/adoption-guide.md](https://github.com/rapticore/ore-mal-pkg-inspector/blob/HEAD/docs/adoption-guide.md).

---

## الاستخدام

### الأوامر الأساسية

**مسح الدليل (كشف النظام البيئي تلقائيًا):**```bash
# Current directory
orewatch .

# Specific directory
orewatch /home/user/projects/my-app

# With an absolute path
orewatch /home/user/projects/backend-api

مسح ملفات التبعيات المحددة:```bash

Ecosystem auto-detected from filename

orewatch --file package.json orewatch --file requirements.txt orewatch --file pom.xml orewatch --file Gemfile orewatch --file go.mod orewatch --file Cargo.toml

root@kitploit:~
**فرض نظام بيئي محدد:**```bash
# Override auto-detection
orewatch /path/to/project --ecosystem npm
orewatch /path/to/project --ecosystem pypi
orewatch /path/to/project --ecosystem maven
orewatch /path/to/project --ecosystem rubygems
orewatch /path/to/project --ecosystem go
orewatch /path/to/project --ecosystem cargo

مسح قوائم الحزم العامة:```bash

Text file (one package per line) - must specify ecosystem

orewatch --file packages.txt --ecosystem pypi

JSON file with package array

orewatch --file packages.json --ecosystem npm

YAML file

orewatch --file packages.yaml --ecosystem npm

root@kitploit:~
### الاستخدام المتقدم

**مسار الإخراج المخصص:**```bash
# Save to custom location
orewatch /path/to/project --output /tmp/scan_report.json

# Save to specific subdirectory
orewatch /path/to/project --output reports/security/$(date +%Y%m%d).json

التحكم في فحص IoC:```bash

Full scan (packages + IoCs) - default behavior

orewatch /path/to/project

Skip IoC scanning for faster package-only checks

orewatch /path/to/project --no-ioc

Only scan for IoCs, skip package database checking

orewatch /path/to/project --ioc-only

root@kitploit:~
**الوضع الصامت:**```bash
# Generate report without console summary (useful for scripts)
orewatch /path/to/project --no-summary

ضوابط بيانات التهديدات:```bash

Force a staged live refresh of the default core sources before scanning

orewatch /path/to/project --latest-data

Fail if any requested ecosystem only has partial or missing threat data

orewatch /path/to/project --strict-data

Include experimental sources during collection

orewatch /path/to/project --latest-data --include-experimental-sources

Print the exact dependency filenames the scanner recognizes

orewatch --list-supported-files

root@kitploit:~
**المسح الدفعي:**```bash
# Scan multiple projects
for dir in ~/projects/*/; do
    echo "Scanning $dir"
    orewatch "$dir" --output "reports/$(basename $dir).json"
done

مرجع سطر الأوامر

خيارات الماسح

المراقبة الخلفية

يتضمن المستودع الآن مراقبًا خلفيًا محليًا يحافظ على حداثة بيانات التهديد، ويراقب المشاريع المشتركة بحثًا عن تغييرات في البيان وسير العمل، ويقوم بعمليات مسح مؤجلة، ويسجل الإشعارات للنتائج الجديدة أو المصنفة. يتم تخزين التكوين والحالة المملوكة للمراقب خارج المستودع في أدلة يملكها المستخدم بحيث لا يمكن للمستودع المستنسخ أن يسبق سلوك المراقب.

يعامل OreWatch الآن المراقب كعنصر منفرد لكل مستخدم. يمكن لخفي واحد مراقبة العديد من المشاريع في أي مكان على القرص وخدمة العديد من عملاء Claude Code وCodex وCursor وVS Code وJetBrains / PyCharm وXcode المتزامنين.

إعداد المراقب من البداية إلى النهاية

1. تثبيت وتهيئة المراقب المنفرد```bash

First project + first client

orewatch monitor quickstart /path/to/project --client claude_code

root@kitploit:~
`monitor quickstart` هو التدفق الموصى به للتشغيل الأول. حيث:

- يقوم بتثبيت أو تحديث خدمة المراقبة الفردية
- يبدأ تشغيل المراقب إذا لزم الأمر
- يضيف المشروع المستهدف إلى قائمة المراقبة
- يطبع كتلة التمهيد للعميل المحدد

إذا كنت تفضل تثبيت المراقب أولاً ثم توصيل العملاء لاحقاً:```bash
orewatch monitor install
orewatch monitor install --ide-bootstrap
orewatch monitor install --service-manager launchd --no-start

2. تحقق من أن الشاشة صحية```bash orewatch monitor status orewatch monitor connection-info orewatch monitor doctor

root@kitploit:~
استخدم هذه الأوامر لمهام مختلفة قليلاً:

- `monitor status` يعرض ما إذا كانت الخادم الخفي للفرد والـ API يعملان
- `monitor connection-info` يطبع عنوان URL للـ API الحلقي، مسار الرمز المميز، مسار المراقب المنزلي، وعملاء التمهيد المدعومين
- `monitor doctor` يطبع المسارات الدقيقة للتكوين، قاعدة الحالة، السجل، وبيانات التهديد المشتركة

**3. أضف كل مشروع تريد أن يراقبه الفرد**```bash
orewatch monitor watch add /path/to/project-a
orewatch monitor watch add /path/to/project-b
orewatch monitor watch list
orewatch monitor watch remove /path/to/project-b

One OreWatch daemon can watch all of these projects at once. You do not need a separate monitor per repository or per IDE workspace.

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

يدعم OreWatch نظامي نقل للتكامل:

تقوم أوامر التمهيد بطباعة أحد هذه الأشكال:```json { "mcpServers": { "orewatch": { "command": "/absolute/path/to/orewatch", "args": [ "monitor", "mcp" ] } } }

root@kitploit:~
عندما يتمكن `orewatch monitor ide-bootstrap --client <client>` من حل النص المحلي لوحدة التحكم، فإنه الآن يصدر المسار المطلق بدلاً من `orewatch` المجرد. إذا كان لديك تكوين MCP قديم لا يزال يقول `"command": "orewatch"`، قم بتجديده واستبدال الإدخال القديم.```json
{
  "orewatch": {
    "baseUrl": "http://127.0.0.1:48736",
    "tokenPath": "/path/to/api.token"
  }
}
Cursor, Claude Code, و Codex

هؤلاء العملاء جميعهم يستخدمون نفس جسر MCP المحلي:```bash orewatch monitor mcp

root@kitploit:~
الإعداد الموصى به:

1. قم بتشغيل `orewatch monitor quickstart /path/to/project --client <cursor|claude_code|codex>` مرة واحدة.
2. انسخ كتلة MCP المطبوعة إلى عميل MCP المطابق.
3. افتح مشروعًا مراقبًا في ذلك العميل.
4. دع العميل يستدعي OreWatch عبر MCP من أجل:
   - `orewatch_health`
   - `orewatch_check_dependency_add`
   - `orewatch_check_manifest`
   - `orewatch_override_dependency_add`
   - `orewatch_list_active_findings`
   - `orewatch_list_notifications`

ملاحظات:

- `monitor mcp` هو خادم stdio. إذا قمت بتشغيله يدويًا، سيظهر خاملاً أثناء انتظار عميل MCP.
- جسر MCP يتحقق من API المحلي عند بدء التشغيل ويمكنه بدء تشغيل المراقب الفردي تلقائيًا مرة واحدة عند تمكين `auto_start_on_client`.
- لبدء تشغيل IDE موثوق، قم بتثبيت المراقب الخلفي مرة واحدة باستخدام `monitor install` حتى يكون الخفي متاحًا بالفعل قبل بدء جسر MCP.

##### VS Code

يجب أن تستخدم تكاملات VS Code API localhost الفردي بدلاً من جسر MCP.

الإعداد الموصى به:

1. قم بتشغيل `orewatch monitor quickstart /path/to/project --client vscode`.
2. انسخ `baseUrl` و `tokenPath` من `orewatch monitor ide-bootstrap --client vscode`.
3. قم بتوصيل تلك القيم في إضافة VS Code المحلية أو مهمة أو مساعد.
4. استدعِ API على أحداث dependency-add و manifest-save و alert-refresh.

استخدام API الموصى به لتكامل VS Code:

- استدعِ `POST /v1/check/dependency-add` قبل تدفقات تثبيت/إضافة مدير الحزم
- استدعِ `POST /v1/check/manifest` عند حفظ بيان مدعوم أو إعادة فحصه صراحة
- استطلاع `GET /v1/findings/active` و `GET /v1/notifications` لعرض الاكتشافات الخلفية

##### JetBrains / PyCharm

تستخدم JetBrains و PyCharm نفس عقد API localhost مثل VS Code.

الإعداد الموصى به:

1. قم بتشغيل `orewatch monitor quickstart /path/to/project --client jetbrains`.
2. انسخ كتلة API من `orewatch monitor ide-bootstrap --client jetbrains`.
3. استخدم `baseUrl` و `tokenPath` المُرجَعين في إضافة JetBrains أو أداة خارجية أو مساعد محلي.
4. اعرض قرارات التبعية المتزامنة والتنبيهات الخلفية المخزنة داخل IDE.

استخدام API الموصى به لتكامل JetBrains:

- تحقق من إضافات التبعية باستخدام `POST /v1/check/dependency-add`
- أعد فحص `package.json`, `requirements.txt`, `pyproject.toml`, `pom.xml`, `Gemfile`, `go.mod`, `Cargo.toml`، والبيانات المدعومة ذات الصلة باستخدام `POST /v1/check/manifest`
- جلب `GET /v1/findings/active` و `GET /v1/notifications` للوحات التنبيه الدائمة أو نوافذ الأدوات

##### Xcode

يجب أن تستخدم تكاملات Xcode أيضًا API localhost الفردي، ولكن هناك حدود نطاق مهمة: OreWatch لا يحلل بعد بيانات تبعية Apple الأصلية مثل `Package.resolved` أو `Podfile.lock` أو `Cartfile`. حاليًا، تكامل Xcode هو الأفضل من أجل:

- عرض الاكتشافات والإشعارات الخلفية في مساعد أو سكريبت أو تطبيق مصاحب
- مستودعات متعددة اللغات مفتوحة في Xcode تحتوي أيضًا على بيانات مدعومة مثل `package.json` أو `pyproject.toml` أو `Cargo.toml`
- فرق تريد تطبيق شريط قوائم macOS وتنبيهات مركز الإشعارات أثناء العمل في Xcode

الإعداد الموصى به:

1. قم بتشغيل `orewatch monitor quickstart /path/to/project --client xcode`.
2. انسخ كتلة API من `orewatch monitor ide-bootstrap --client xcode`.
3. استخدم `baseUrl` و `tokenPath` المُرجَعين من سكريبت مرحلة بناء أو عملية مساعدة أو تكامل Xcode مخصص.
4. استطلاع `GET /v1/findings/active` و `GET /v1/notifications` للتنبيهات المرئية للمستخدم.
5. إذا كان مساحة عمل Xcode تحتوي على بيانات غير Apple مدعومة، فاستدعِ `POST /v1/check/manifest` لتلك الملفات كجزء من سير عملك.

حالة التكامل الحالية:

- Claude Code و Codex و Cursor: جسر MCP من الدرجة الأولى مضمن في هذا المستودع
- VS Code: عقد API المحلي موثق، ولكن لا توجد إضافة رسمية مرفقة بعد
- JetBrains / PyCharm: عقد API المحلي موثق، ولكن لا توجد إضافة رسمية مرفقة بعد
- Xcode: تكامل API المحلي وشريط القوائم موثق، ولكن لا توجد إضافة Xcode رسمية ولا محلل بيانات Apple أصلي بعد

#### عندما يجد OreWatch شيئًا

عندما يكتشف المراقب الخلفي حزمة مخترقة أو مؤشر اختراق (IoC) في مشروع مراقب، يقوم OreWatch بما يلي:

- يكتب تقارير JSON و HTML يديرها المراقب تحت دليل `reports/` للمراقب الفردي
- يخزن الاكتشاف النشط في قاعدة بيانات حالة المراقب
- يخزن إدخال إشعار برسالة قابلة للتنفيذ
- يصدر تحذير طرفي إذا كانت الإشعارات الطرفية مفعلة
- على macOS، يفضل تطبيق شريط القوائم الفردي كقناة منبثقة عندما يكون قيد التشغيل
- يحتفظ بأحدث تنبيه يستحق الاهتمام مثبتًا في أعلى القائمة المنسدلة لشريط القوائم للمراجعة السريعة
- بخلاف ذلك، يعود إلى إشعار سطح مكتب مباشر بأفضل جهد إذا كانت إشعارات سطح المكتب مفعلة
- يمكنه إرسال إشعار webhook اختياري للبيئات البعيدة أو بدون واجهة

استخدم سطح المراجعة CLI المدمج لفحص تلك التنبيهات:```bash
orewatch monitor findings
orewatch monitor findings --project /path/to/project --min-severity high
orewatch monitor notifications
orewatch monitor notifications --project /path/to/project
orewatch monitor package-updates
orewatch monitor package-updates --check

تعرض واجهة API المحلية وجسر MCP نفس البيانات لبيئات التطوير المتكاملة (IDEs) والعوامل:

  • API:
    • GET /v1/findings/active
    • GET /v1/notifications
    • GET /v1/package-updates
    • POST /v1/package-updates/check
  • MCP:
    • orewatch_list_active_findings
    • orewatch_list_notifications
    • orewatch_list_package_updates
    • orewatch_check_package_updates

هذا هو المسار المدعوم لبيئات التطوير المتكاملة (IDEs) وعملاء MCP وعوامل البرمجة لعرض الاكتشافات الخلفية بعد انتهاء الفحص الأصلي.

إرشادات تحديث الحزم هي للإعلام فقط. يبلغ OreWatch عن الإصدارات الأحدث لتبعيات المشروع المراقبة ولـ OreWatch نفسه، لكنه لا يعدل ملفات البيان (manifests) أو ملفات القفل (lockfiles) أو الحزم المثبتة.

تطبيق شريط القوائم الأصلي لنظام macOS

يتضمن OreWatch الآن تطبيق شريط قوائم أصلي لنظام macOS للأشخاص الذين يرغبون في واجهة مستخدم محلية مرئية بدلاً من الاعتماد فقط على أوامر CLI أو استقصاء MCP أو النوافذ المنبثقة لأفضل جهد لمركز الإشعارات.

قم بتثبيت روابط Cocoa الاختيارية في نفس بيئة التشغيل التي توفر الأمر orewatch. اختر الأمر الذي يتوافق مع طريقة التثبيت الخاصة بك:```bash

pip / source-checkout install

python3.14 -m pip install 'orewatch[mac-menubar]'

existing pipx install

pipx inject orewatch pyobjc-framework-Cocoa

Homebrew install

brew install rapticore/tap/orewatch

root@kitploit:~
ثم قم بتشغيل تطبيق شريط القوائم:```bash
orewatch monitor menubar

بشكل افتراضي، يقوم monitor menubar بإعادة تشغيل التطبيق في الخلفية ويعيد موجه الصدفة فوراً. استخدم orewatch monitor menubar --foreground فقط عندما تريد صراحةً إبقاءه ملحقاً بالطرفية لأغراض التصحيح.

تتصل تطبيق شريط القوائم بنفس المراقب الفردي. لا يبدأ نسخة ثانية من المراقب. إذا لم يكن المراقب مثبتاً وقيد التشغيل بالفعل، سيقوم التطبيق بتثبيته/تشغيله عند التشغيل الأول.

يقوم Homebrew بتثبيت روابط Cocoa في بيئة libexec المعزولة لـ OreWatch. إذا أبلغ orewatch monitor menubar عن No module named 'AppKit'، قم بتحديث الصيغة باستخدام brew update && brew reinstall rapticore/tap/orewatch. بالنسبة لعمليات التثبيت عبر pip و pipx والمصدر، لا يزال يتعين إضافة الروابط الاختيارية إلى نفس بيئة Python التي توفر الأمر orewatch.

عند تمكين إشعارات سطح المكتب على macOS، يحافظ المراقب الفردي الآن على بقاء تطبيق شريط قوائم فردي واحد قيد التشغيل ويستخدمه كسطح منبثق أساسي. يتجنب ذلك الاعتماد فقط على استدعاء osascript منفصل من الخفي ويمنحك واجهة أصلية ثابتة للنتائج الجديدة.

بنية شريط القوائم الحالية هي أيقونة أولاً. يجب التعامل مع الاختصار السابق OW وصياغة أيقونة OreWatch السابقة كمراجع قديمة؛ يفضل التطبيق الآن الأيقونة ذات العلامة التجارية المجمعة ولا يلجأ إلى النص المضغوط أو الشارات إلا عندما لا يستطيع macOS عرض الصورة أو يحتاج إلى عدد التنبيهات.

ما يمنحك إياه تطبيق شريط القوائم في macOS:

  • عنصر حالة شريط قوائم دائم يفضل الأيقونة ذات العلامة التجارية المجمعة، مع نص مضغوط كبديل أو شارات تنبيه عند الحاجة
  • حالة تنبيه مضغوطة باللون الأحمر/العريض للتنبيهات المكتشفة حديثاً تظل مرئية حتى تفتح القائمة
  • ملخص مباشر للنتائج النشطة وأعلى خطورة
  • قسم تحديثات الحزمة من الدرجة الأولى مع تحديثات تبعيات المشروع، حالة تحديث OreWatch الذاتي، حالة آخر فحص، وأوامر مقترحة قابلة للنسخ
  • الإشعارات الأخيرة في قائمة منسدلة أصلية
  • نوافذ منبثقة أصلية من مركز الإشعارات للتنبيهات المخزنة حديثاً من المراقب
  • إجراء Add Workspace Folder... الذي يسجل مشروعاً في المراقب الفردي ويقوم بإجراء فحص سريع أولي
  • مفاتيح تبديل تكوين مدمجة لإشعارات سطح المكتب، إشعارات الطرفية، بقاء شريط القوائم، والنوافذ المنبثقة المدفوعة بشريط القوائم
  • إجراءات بنقرة واحدة لفتح التقارير، الصفحة الرئيسية للمراقب، وسجل المراقب
  • إجراءات بنقرة واحدة لفتح ملف تكوين المراقب ومجلد التكوين
  • إجراءات قائمة للتحقق من تحديثات الحزمة، تحديث استخبارات التهديدات، تشغيل فحوصات سريعة/كاملة، وبدء/إعادة تشغيل/إيقاف المراقب الفردي

سير عمل Mac الموصى به:

  1. قم بتشغيل orewatch monitor quickstart /path/to/project --client claude_code مرة واحدة.
  2. قم بتثبيت الروابط الاختيارية في نفس بيئة orewatch.
  3. قم بتشغيل orewatch monitor menubar.
  4. أبقِ تطبيق شريط القوائم قيد التشغيل للحصول على سطح مراجعة أصلي ثابت بينما تستمر بيئات التطوير المتكاملة ووكلاء البرمجة في استخدام MCP أو واجهة برمجة التطبيقات المحلية.

دليل التبني

للتوزيع الأسهل، استخدم الوثائق المركزة بدلاً من قراءة ملف README بالكامل:

  • docs/adoption-guide.md: أقصر مسار لتبني المطور المحلي
  • docs/local-api.md: عقد واجهة برمجة التطبيقات المحلية و MCP بالضبط
  • docs/e2e-testing.md: سير عمل المساهم والتحقق

الترتيب الموصى به للتبني:

  1. ابدأ بمستودع واحد ومستخدم واحد.
  2. فعّل المراقب الفردي باستخدام monitor quickstart.
  3. وصّل عميلاً واحداً: Cursor، Claude Code، Codex، VS Code، PyCharm، أو Xcode.
  4. تأكد من ظهور النتائج في orewatch monitor findings و orewatch monitor notifications.
  5. على macOS، أضف monitor menubar حتى يحصل المستخدمون على سطح مراجعة ثابت وتوصيل النوافذ المنبثقة.
  6. بعد استقرار التبني المحلي، أضف فحوصات CI وخطافات الويب الاختيارية.

العمليات اليومية

أوامر العمليات الشائعة:```bash

Background service lifecycle

orewatch monitor start orewatch monitor restart orewatch monitor stop orewatch monitor uninstall

Run the daemon in the foreground

orewatch monitor run

Launch the native macOS menu bar UI

orewatch monitor menubar

Trigger immediate scans

orewatch monitor scan-now orewatch monitor scan-now /path/to/project

Review detections and alerts

orewatch monitor findings orewatch monitor notifications

Reclaim disk space — prune accumulated backup manifests and orphaned staging

orewatch monitor cleanup orewatch monitor cleanup --keep-backups 5 --staging-max-age-seconds 3600

root@kitploit:~
**إجراءات اللقطة اليدوية والتوقيع:**```bash
# Generate a signing keypair
orewatch monitor snapshot keygen /tmp/ore-keys

# Build and apply local threat-data snapshots
orewatch monitor snapshot build /tmp/ore-snapshot \
  --private-key /tmp/ore-keys/snapshot_signing_private.pem \
  --public-key /tmp/ore-keys/snapshot_signing_public.pem
orewatch monitor snapshot apply /tmp/ore-snapshot/manifest.json \
  --public-key /tmp/ore-keys/snapshot_signing_public.pem

# Publish a hosted snapshot channel
orewatch monitor snapshot publish /tmp/ore-snapshots \
  --base-url https://example.com/ore-snapshots \
  --channel stable \
  --private-key /tmp/ore-keys/snapshot_signing_private.pem \
  --public-key /tmp/ore-keys/snapshot_signing_public.pem

مراقبة السلوك:

  • الفحوصات السريعة تركز على الحزم وتُجرى وفق جدول زمني وبعد تغييرات عامة في الملفات.
  • الفحوصات الكاملة تشمل اكتشاف مؤشرات الاختراق (IoC) وتُجرى ليلاً، وعند الطلب اليدوي، وبعد تغييرات سير العمل أو ملفات الحمولة.
  • على لينكس، الإعدادات الافتراضية تكون في ~/.config/orewatch/singleton/ والحالة الافتراضية في ~/.local/state/orewatch/singleton/.
  • على macOS، الإعدادات الافتراضية تكون في ~/Library/Application Support/OreWatch/singleton/ والحالة الافتراضية في ~/Library/Application Support/OreWatch/State/singleton/.
  • بيانات التهديدات المشتركة أصبحت موجودة الآن تحت دليل حالة المفرد (singleton) في threat-data/final-data/.
  • monitor doctor يطبع المسار الدقيق للإعدادات (config_path)، وقاعدة بيانات الحالة (state_db)، وملف السجل (log_file)، ودليل البيانات النهائية (final_data_dir)، ودليل قالب الخدمة للمراقبة المفردة.
  • يمكن تخزين تجاوزات السياسة الخاصة بالمشروع في ملف .ore-monitor.yml في جذر المشروع.

سطح التكامل المحلي:

  • يعرض OreWatch الآن واجهة API محلية فقط على 127.0.0.1:48736 افتراضيًا عندما يكون خفي المراقبة قيد التشغيل.
  • تستخدم واجهة API رمزًا مميزًا لكل مستخدم (bearer token) مخزنًا في دليل إعدادات المراقبة في api.token بأذونات المالك فقط.
  • الطلبات المباشرة إلى 127.0.0.1:48736 بدون Authorization: Bearer <token> ستعيد بشكل صحيح 401 Unauthorized.
  • يجب على عملاء الوكلاء و IDE اكتشاف المراقبة عبر orewatch monitor connection-info بدلاً من تخمين المسارات، ويجب إرسال project_path الفعلي الذي يعملون عليه داخل طلبات فحص التبعية.
  • يمكن لكلود كود، كودكس، وكرسور استخدام جسر MCP المدمج، الذي يعرض orewatch_health و orewatch_check_dependency_add و orewatch_check_manifest و orewatch_override_dependency_add و orewatch_list_active_findings و و و .

إعداد التحديث المباشر الاختياري المقيد بالشذوذ:```yaml live_updates: enabled: true mode: gated bootstrap_from_live: true block_on_core_source_failure: false max_drop_ratio: 0.40 max_drop_absolute: 200 max_removal_ratio: 0.25 max_removal_absolute: 100 warn_growth_ratio: 5.0 warn_growth_absolute: 2000

root@kitploit:~
السلوك الرئيسي:
- يتم بناء المرشحين المباشرين في منطقة مرحلية أولاً؛ ولا يقومون بالكتابة فوق قواعد البيانات النشطة أثناء الجمع.
- عمليات السقوط الكبيرة، والتراجعات في النظام البيئي، والأنظمة البيئية الفارغة، والإزالات الجماعية تمنع الترقية.
- انقطاعات المصدر الأساسي تحذيرية فقط افتراضيًا للتحديثات المباشرة مفتوحة المصدر؛ الانخفاضات والإزالات على مستوى النظام البيئي لا تزال تمنع الترقيات السيئة.
- يتم تسجيل الحالات الشاذة التحذيرية فقط في الحالة والتقارير ولكنها لا تمنع الترقية.
- المرشحون المرفوضون يحتفظون بمجموعة البيانات المعروفة جيدًا الأخيرة نشطة عند وجود واحدة بالفعل.
- يُسمح ببدء التشغيل الأول من التغذية المباشرة إذا نجح مصدر أساسي واحد على الأقل وأنتج المرشح بيانات نظام بيئي قابلة للاستخدام.

**تكوين webhook إعلامي اختياري:**```yaml
notifications:
  desktop: true
  terminal: true
  webhook_url: https://hooks.example.com/orewatch
  webhook_format: generic
  webhook_timeout_ms: 5000
  webhook_headers:
    Authorization: Bearer change-me

اضبط webhook_format: slack عند استهداف خطاف ويب وارد من سلاك. في هذا الوضع، يرسل OreWatch حمولة text بسيطة.


التوزيع

يحتوي المشروع الآن على سطحين توزيع متميزين:

  1. كود CLI والمراقب
  2. لقطات بيانات التهديد التي يستهلكها المراقب

يجب توزيعهما بشكل منفصل.

توزيع الحزمة الموصى به

أفضل خيار افتراضي للمطورين: انشر الماسح الضوئي كحزمة بايثون عادية على PyPI وأوصِ بالتثبيت باستخدام pipx.

لماذا هذا هو الأنسب:

  • المشروع هو CLI بايثون ومراقب خلفية، لذا فإن العجلة العالمية (universal wheel) مع توزيع المصدر هو أداة الإصدار الأكثر مباشرة.
  • يمنح pipx المطورين تثبيتًا معزولًا على مستوى المستخدم دون تلويث البيئات الافتراضية للمشروع.
  • لا يزال بإمكان CI تثبيت نفس الإصدار باستخدام python3.14 -m pip install orewatch==<version>.
  • هذا يحافظ على مسار ترقية CLI بسيطًا مع ترك تحديثات بيانات التهديد لقناة اللقطات الموقعة.

شكل الإصدار الموصى به:

  • انشر أصول sdist والعجلة العالمية (universal wheel) إلى PyPI.
  • اعرض نقطة الدخول لوحدة التحكم orewatch.
  • احتفظ بـ ore-mal-pkg-inspector كاسم مستعار للتوافق المؤقت.
  • وثّق pipx install --python python3.14 orewatch للتثبيت المحلي للمطورين.
  • وثّق python3.14 -m pip install orewatch==<version> لـ CI والأتمتة المثبتة.

قناة ثانوية متاحة: صنبور Homebrew متاح الآن لمستخدمي macOS الذين يفضلون التثبيت المُدار عبر Brew:```bash brew install rapticore/tap/orewatch

root@kitploit:~
يبقى Homebrew طبقة تسهيل فوق إصدار PyPI المنشور، وليس الأداة الأساسية للإصدار.

**أفضل خيار للمساهمين:** الاحتفاظ بتدفق checkout المصدر الحالي:```bash
git clone https://github.com/rapticore/ore-mal-pkg-inspector.git
cd ore-mal-pkg-inspector
python3.14 -m venv .venv
source .venv/bin/activate
python -m pip install -e .

النشر المُدار لنظام macOS

إذا كنت تنشر OreWatch باستخدام Kandji أو Jamf Pro أو Intune أو Munki أو أي نظام آخر لتوزيع البرامج على macOS، فإن النموذج الموصى به يختلف عن مسار المطور pipx.

واقع المنتج الحالي:

  • اليوم، يوفر المستودع حزمة Python، وليس حزمة مثبّت macOS موقعة من الطرف الأول
  • بالنسبة للأساطيل المُدارة، فإن القطعة الموصى بها هي حزمة .pkg مسطحة وموقعة مبنيّة حول عجلة OreWatch المنشورة
  • يجب أن تظل لقطات البيانات التهديدية موزعة بشكل منفصل عن حزمة التطبيق/وقت التشغيل

نموذج النشر المؤسسي الموصى به:

  1. تثبيت الجهاز
    • انشر حزمة .pkg موقعة تُثبّت وقت تشغيل OreWatch وواجهة CLI مستقرة orewatch
    • اختياريًا، قم بتضمين الامتداد mac-menubar إذا كنت تريد تطبيق شريط القوائم الأصلي على أجهزة Mac المُدارة
  2. تنشيط المستخدم
    • قم بتشغيل orewatch monitor quickstart /path/to/project --client <client> أو عملية تمهيدية مكافئة في سياق المستخدم
    • هذه الخطوة منفصلة لأن مراقب OreWatch هو عمدًا لكل مستخدم ويستخدم LaunchAgent خاص بالمستخدم بالإضافة إلى التكوين/الرمز المميز/الحالة المملوكة للمستخدم
  3. التحديثات المستمرة
    • قم بتحديث حزمة وقت التشغيل وفقًا لدورة حياة البرامج العادية لديك
    • قم بتحديث لقطات البيانات التهديدية بشكل مستقل عبر قناة اللقطات الموقعة أو مسار التحديث المباشر

لماذا هذا التقسيم مهم:

  • أدوات MDM جيدة في تثبيت الكود على الجهاز
  • مراقب OreWatch ورمز API وخدمة launchd هي نطاق المستخدم، لذا يجب إنشاؤها في سياق المستخدم المسجل الدخول بدلاً من فرضها من تثبيت حزمة على نطاق الجهاز

شكل الحزمة الموصى به لنظام macOS المُدار:

  • وقت تشغيل مخصص تحت مسار ثابت مثل /Library/Application Support/OreWatch/runtime
  • واجهة CLI ثابتة مثل /usr/local/bin/orewatch
  • بيانات وصفية للحزمة ذات إصدارات بحيث يمكن لمنصات MDM اكتشاف الترقيات بشكل نظيف
  • توقيع الكود، والتصديق حيث تتوقع سياسة أسطولك ذلك

إرشادات خاصة بالبائعين:

  • Kandji
    • استخدم تطبيقًا مخصصًا مع حزمة مثبّت (.pkg)
    • يُفضل استخدام .pkg على .dmg أو .zip لـ OreWatch لأن وقت التشغيل ليس تطبيق سحب وإفلات
    • استخدم الخدمة الذاتية أو خطوة تأهيل موجهة للمستخدم لتنشيط المراقب لأول مرة
  • Jamf Pro
    • قم بتحميل .pkg كحزمة وانشرها باستخدام سياسة أو الخدمة الذاتية
    • أبقِ تنشيط المستخدم منفصلاً عن نشر حزمة الجهاز ما لم يكن لديك خطوة تمهيدية متعمدة في سياق المستخدم
  • Microsoft Intune
    • استخدم تطبيق LOB لنظام macOS مع .pkg موقعة
    • Intune أكثر صرامة من القنوات الأخرى: يتوقع حزمة .pkg حقيقية، موقعة بشهادة Developer ID Installer، ويجب أن تحتوي الحزمة على محتوى
  • Munki
    • انشر حزمة .pkg بالإضافة إلى بيانات الحزمة الوصفية وعامل OreWatch كأي برنامج macOS مُدار آخر
    • Munki مناسب عندما تريد مستودع حزم واعتمادًا اختياريًا على غرار الخدمة الذاتية
  • الأنظمة الأخرى
    • أي نظام توزيع حزم يمكنه نشر حزمة macOS مسطحة عادية وتشغيل خطوة تمهيدية للمستخدم اختياريًا يمكنه حمل OreWatch

للحصول على دليل نشر أكثر اكتمالاً، راجع docs/managed-rollout.md.

توزيع اللقطات الموصى به

لا ينبغي تضمين لقطات البيانات التهديدية داخل حزمة Python. فهي تتغير بإيقاع مختلف وهي مدعومة بالفعل كقطع أثرية مستضافة موقعة.

الوضع الافتراضي للمصدر المفتوح/المجتمع: استهلك openssf و osv مباشرة من خلال مسار التحديث المباشر المُدار بالشذوذ. الوضع الافتراضي للمؤسسات: انشر لقطات موقعة ذات إصدارات إلى استضافة HTTPS ثابتة واترك للعملاء تحديثها بشكل مستقل.

أهداف الاستضافة الموصى بها:

  • أصول إصدارات GitHub Releases
  • S3 أو Cloudflare R2 خلف HTTPS
  • أي حاوية ثابتة مدعومة بـ CDN تقدم ملفات ثابتة ذات إصدارات

تخطيط اللقطات الموصى به:

  • versions/<version>/manifest.json
  • versions/<version>/*.db
  • channels/stable.json

نموذج الثقة الموصى به:

  • احتفظ بمفتاح التوقيع الخاص دون اتصال بالإنترنت
  • قم بشحن مفتاح التحقق العام فقط مع تكوين العميل أو الحزمة
  • تحقق من كل واصف قناة وبيان قبل التنزيل/التطبيق

النموذج الإجمالي الموصى به

للإصدار الإنتاجي، أنظف إعداد هو:

  • وزع التطبيق كحزمة PyPI
  • ثبته محليًا باستخدام pipx
  • ثبته في CI باستخدام pip
  • وزع البيانات التهديدية كقنوات لقطات موقعة عبر HTTPS
  • تعامل مع فحص المصدر كمسار تطوير، وليس التثبيت الأساسي للمستخدم النهائي

التسجيل وتصحيح الأخطاء

بشكل افتراضي، يُظهر الماسح فقط التحذيرات والأخطاء والملخص النهائي. لاستكشاف الأخطاء وإصلاحها أو تتبع التقدم التفصيلي، استخدم أعلام التسجيل:

الوضع المفصّل

شاهد رسائل التقدم وإحصائيات التجميع:```bash orewatch /path/to/project --verbose

root@kitploit:~
**المخرجات تشمل:**
- نتائج اكتشاف النظام البيئي
- تقدم تحليل الملفات
- أعداد استخراج الحزم
- تفاصيل استعلام قاعدة البيانات
- تقدم فحص مؤشرات الاختراق

**مثال:**```
INFO: Detected ecosystems: npm, pypi
INFO: Loaded database for npm: 15234 malicious packages
INFO: Loaded database for pypi: 8421 malicious packages
INFO: Extracted 45 packages from 3 files
INFO: Checking 30 npm packages against database...
INFO: Checking 15 pypi packages against database...
INFO: IoC scan complete: 0 indicators found

وضع التصحيح

اطلع على معلومات تشخيصية مفصلة لاستكشاف الأخطاء وإصلاحها:```bash orewatch /path/to/project --debug

root@kitploit:~
**المخرجات تشمل:**
- جميع رسائل مستوى INFO
- مسارات الملفات التي يتم فحصها
- تفاصيل تنفيذ استعلامات SQL
- عمليات حساب التجزئة (Hash)
- نتائج مطابقة الأنماط (Pattern matching)
- معلومات الحالة الداخلية

**حالات الاستخدام:**
- التحقيق في سبب عدم اكتشاف حزمة
- تصحيح أخطاء اكتشاف النظام البيئي التلقائي
- الإبلاغ عن المشكلات مع سياق مفصل
- تدقيق سلوك الماسح الضوئي

### تسجيل الدخول للمجمعات (Logging for Collectors)

تدعم مجمعات معلومات التهديدات (threat intelligence collectors) أيضًا وضعي verbose و debug:```bash
cd collectors

# See collection progress
python3 orchestrator.py --verbose

# Debug data source issues
python3 orchestrator.py --debug

ملاحظة: جميع السجلات تذهب إلى stderr، مما يحافظ على stdout نظيفًا لإخراج تقارير JSON. يتيح ذلك توجيه نتائج المسح إلى أدوات أخرى دون تداخل رسائل السجلات.


المخرجات والتقارير

هيكل التقرير

يتم حفظ التقارير في دليل scan-output/ افتراضيًا (أو مسار مخصص باستخدام --output). يكتب OreWatch تقرير JSON قابل للقراءة آليًا وتقرير HTML مصاحب ذو تنسيق بنفس الاسم الأساسي. تشمل أداة JSON بيانات وصفية حول توفر بيانات التهديد وتستخدم كائنات physicalLocation بنمط SARIF لنتائج الحزم، لكنها ليست مستند SARIF 2.1.0 كاملًا.

مثال التقرير:```json { "scan_timestamp": "2025-12-31T12:00:00Z", "ecosystem": "npm", "scanned_path": "/path/to/project", "total_packages_scanned": 150, "data_status": "complete", "sources_used": ["openssf", "osv"], "experimental_sources_used": [], "missing_ecosystems": [], "malicious_packages_found": 2, "iocs_found": 3, "malicious_packages": [ { "name": "malicious-pkg", "version": "1.0.0", "severity": "critical", "sources": ["threat-intel-db", "research-community"], "description": "Malicious code executes unauthorized operations", "detected_behaviors": ["malicious_code", "data_exfiltration"] } ], "iocs": [ { "type": "malicious_bundle_js", "path": "node_modules/suspect-pkg/bundle.js", "hash": "46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09", "severity": "CRITICAL", "variant": "original", "description": "Known malicious payload file from Shai-Hulud attack" }, { "type": "malicious_postinstall", "path": "package.json", "pattern": "node bundle.js", "severity": "CRITICAL", "variant": "original", "description": "Malicious postinstall hook executes payload" } ] }

root@kitploit:~
**حقول بيانات التهديد:**
- `data_status`: `complete`, `partial`, `failed`, أو `not_applicable`
- `sources_used`: المصادر التي ساهمت ببيانات تهديد قابلة للاستخدام للنظم البيئية المطلوبة
- `experimental_sources_used`: المصادر التجريبية المضمنة في بيانات الفحص
- `missing_ecosystems`: النظم البيئية المطلوبة التي لا تحتوي على قاعدة بيانات تهديد للحزم قابلة للاستخدام
- `promotion_decision`: فارغ لفحوصات البيانات الحالية، وإلا `promoted`، `bootstrapped`، أو `rejected`
- `kept_last_known_good`: `true` عندما يتم رفض مرشح حي ولكن مجموعة البيانات النشطة السابقة تظل قابلة للاستخدام
- `anomalies`: شذوذ تحذير/حظر يحدث أثناء محاولة التحديث الحي

### فهم النتائج

**مستويات الخطورة:**
- **حرج:** كود ضار معروف مع استغلال نشط أو تسرب بيانات
- **عالي:** مؤشرات قوية على نية ضارة أو انتحال اسم (typosquatting)
- **متوسط:** أنماط مشبوهة أو ثغرات محتملة
- **منخفض:** مخاوف بسيطة أو نتائج إعلامية

**الإجراءات الموصى بها:**
1. **النتائج الحرجة/العالية:** إزالة الحزم المتأثرة فورًا والتحقق من الأثر
2. **مراجعة مؤشرات الاختراق (IoCs):** التحقق مما إذا كان الكود الضار قد نُفذ (السجلات، نشاط الشبكة)
3. **تحديث التبعيات:** استبدال الحزم الضارة ببدائل شرعية
4. **إعادة الفحص:** التحقق من العلاج من خلال فحص متابعة
5. **الإبلاغ:** النظر في الإبلاغ لمشرفي سجل الحزم

---

## تكامل CI/CD

### إجراءات GitHub

**فحص أمني أساسي:**```yaml
name: Security Scan - Malicious Packages
on: [push, pull_request]

jobs:
  malicious-package-scan:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.14'

      - name: Install OreWatch
        run: |
          git clone https://github.com/rapticore/ore-mal-pkg-inspector.git scanner
          cd scanner
          pip install .

      - name: Scan for malicious packages
        run: |
          cd scanner
          orewatch ${{ github.workspace }} --latest-data

      - name: Upload scan report
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: security-scan-report
          path: scanner/scan-output/

متقدم مع فشل في الكشف:```yaml - name: Scan and fail on malicious packages run: | cd scanner orewatch ${{ github.workspace }} --latest-data --output report.json

root@kitploit:~
      # Check if malicious packages were found
      MALICIOUS_COUNT=$(jq '.malicious_packages_found' report.json)
      IOC_COUNT=$(jq '.iocs_found' report.json)

      if [ "$MALICIOUS_COUNT" -gt 0 ] || [ "$IOC_COUNT" -gt 0 ]; then
        echo "🚨 SECURITY ALERT: Malicious packages or IoCs detected!"
        echo "Malicious packages: $MALICIOUS_COUNT"
        echo "IoCs found: $IOC_COUNT"
        exit 1
      fi
root@kitploit:~
### GitLab CI```yaml
malicious-package-scan:
  image: python:3.14
  stage: security
  before_script:
    - git clone https://github.com/rapticore/ore-mal-pkg-inspector.git scanner
    - cd scanner && pip install .
  script:
    - orewatch $CI_PROJECT_DIR --latest-data --strict-data --output scan-report.json
  artifacts:
    paths:
      - scan-report.json
    when: always
  allow_failure: false

Jenkins Pipeline```groovy

pipeline { agent any

root@kitploit:~
stages {
    stage('Setup Scanner') {
        steps {
            sh '''
                git clone https://github.com/rapticore/ore-mal-pkg-inspector.git scanner
                cd scanner
                python3.14 -m pip install .
            '''
        }
    }

    stage('Security Scan') {
        steps {
            sh '''
                cd scanner
                orewatch ${WORKSPACE} --latest-data
            '''
        }
    }
}

post {
    always {
        archiveArtifacts artifacts: 'scanner/scan-output/*.json', fingerprint: true
    }
}

}

root@kitploit:~
### خطاف ما قبل الالتزام

أضف إلى `.git/hooks/pre-commit`:```bash
#!/bin/bash

echo "Running malicious package scan..."

cd /path/to/ore-mal-pkg-inspector
orewatch $PROJECT_DIR --no-summary

if [ $? -ne 0 ]; then
    echo "❌ Malicious packages or IoCs detected! Commit blocked."
    echo "Review the scan report in scan-output/"
    exit 1
fi

echo "✅ Security scan passed"

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

المشكلات الشائعة

خطأ "لم يتم العثور على قاعدة البيانات"

الأعراض:``` ERROR: No usable threat data available for requested ecosystems: npm

root@kitploit:~
**السبب:** فشل جمع بيانات التهديدات، أو البيانات الوصفية غير مكتملة، أو النظم البيئية المطلوبة لا تملك قواعد بيانات محلية قابلة للاستخدام بعد.

**الحل:**```bash
# Force recollection and require a complete result for the requested ecosystems
orewatch /path/to/project --latest-data --strict-data

ملاحظة: إذا استمرت المشكلة، تحقق من اتصال الشبكة، وأذونات نظام الملفات، وما إذا كنت قد طلبت مصادر تجريبية عن قصد.

تحذير "لم يتم اكتشاف أي حزم"

الأعراض:``` WARNING: No packages detected in /path/to/project

root@kitploit:~
**الأسباب والحلول المحتملة:**

1. **الدليل الخاطئ:** تأكد من أنك تقوم بمسح دليل المشروع الصحيح   ```bash
   ls /path/to/project  # Verify package.json or requirements.txt exists
  1. ملف بيان غير مدعوم أو غير متوقع: اطبع أسماء الملفات المدعومة بالضبط ```bash orewatch --list-supported-files
    root@kitploit:~
  2. أذونات الملفات: تأكد من أن الملفات قابلة للقراءة ```bash ls -la /path/to/project/package.json
    root@kitploit:~

أخطاء الاتصال أثناء التحديث

العَرَض:``` ERROR: Error downloading npm: <urlopen error [Errno -3] Temporary failure in name resolution>

root@kitploit:~
**الحلول:**

1. **التحقق من اتصال الإنترنت:**   ```bash
   ping google.com
  1. إعادة المحاولة مع زيادة المهلة: تعديل collectors/config.yaml: ```yaml osv: timeout: 600 # Increase from default 300
    root@kitploit:~
  2. استخدم البيانات المخبأة: إذا كنت قد قمت بتنزيل البيانات مسبقًا: ```bash python3 orchestrator.py --skip-build # Skip download, rebuild from cache
    root@kitploit:~

أخطاء رفض الإذن

الأعراض:``` ERROR: Error creating directory collectors/raw-data: Permission denied

root@kitploit:~
**الحل:**```bash
# Ensure proper ownership
sudo chown -R $USER:$USER /path/to/ore-mal-pkg-inspector

# Or run from user-writable location
cd ~/
git clone https://github.com/rapticore/ore-mal-pkg-inspector.git
cd ore-mal-pkg-inspector

OreWatch يستخدم مساحة كبيرة جدًا من القرص

العرض: ~/Library/Application Support/OreWatch (في macOS) أو $XDG_STATE_HOME/orewatch (في Linux) نما إلى عشرات الجيغابايت.

السبب (قبل الإصدار 1.2.3): كل ترقية تحديث مباشر كانت تؤرشف نسخة كاملة من قواعد بيانات بيانات التهديدات السابقة (~300 ميغابايت) دون استبقاء. يؤدي تشغيل المراقبة لفترة طويلة إلى تجميع لقطة واحدة لكل دورة إلى أجل غير مسمى.

الإصلاح: الترقية إلى الإصدار 1.2.3 أو أحدث. أصبحت النسخ الاحتياطية الآن بحجم ~1 كيلوبايت ملفات SHA-256، ويتم الاحتفاظ افتراضيًا بأحدث 30 نسخة، ويتوفر أمر تنظيف صريح:

root@kitploit:~
orewatch cleanup --list
orewatch cleanup --apply
``````bash
# Apply the configured retention policy now (default: keep 30 manifests,
# remove staging entries older than 1 hour).
orewatch monitor cleanup

# Reclaim everything except the most recent 5 backups and purge staging.
orewatch monitor cleanup --keep-backups 5 --staging-max-age-seconds 0

# Tune retention in monitor config (live_updates section):
#   retain_backups: <int>             # how many backup manifests to keep
#   staging_max_age_seconds: <int>    # stale candidate-* staging cutoff

النتائج الإيجابية الكاذبة

الأعراض: تم الإبلاغ عن حزمة مشروعة على أنها ضارة.

الخطوات:

  1. تحقق من النتيجة: راجع تفاصيل التقرير بما في ذلك الخطورة والوصف

  2. تحقق من الإصدار: قد يكون الإصدار المبلغ عنه محددًا: ```bash orewatch /path/to/project --verbose

    root@kitploit:~
  3. الإبلاغ عن نتيجة إيجابية خاطئة: إذا تم التأكد من عدم صحتها:

    • افتح مشكلة في https://github.com/rapticore/ore-mal-pkg-inspector/issues مع التفاصيل

وضع التصحيح للتحقيق

تمكين التسجيل المفصل:```bash

Scanner debug mode

orewatch /path/to/project --debug 2> debug.log

Collector debug mode

cd collectors python3 orchestrator.py --debug 2> collector-debug.log

root@kitploit:~
**مراجعة السجلات:** تحقق من `debug.log` للحصول على تتبع التنفيذ المفصل بما في ذلك:
- مسارات الملفات الممسوحة
- استعلامات SQL المنفذة
- نتائج مطابقة الأنماط
- تتبعات أخطاء

---

## الأسئلة الشائعة

### كم مرة يجب تحديث معلومات التهديدات؟

**التوصية:**
- **بيئات الإنتاج/التكامل المستمر:** تحديثات تلقائية يومية
- **محطات العمل التطويرية:** تحديثات أسبوعية كحد أدنى
- **بعد الأخبار الأمنية:** تحديث فوري عند الإعلان عن تهديدات جديدة

يتم نشر الحزم الخبيثة باستمرار. التحديثات اليومية تضمن أحدث الحماية.

### كيف يمكن تحديث بيانات معلومات التهديدات؟

قم بتشغيل الماسح الضوئي مع العلامة `--latest-data` لفرض التحديث:```bash
orewatch /path/to/project --latest-data

للتحديثات الآلية في CI/CD، قم بجدولة عمليات فحص دورية باستخدام علامة --latest-data (مثل يوميًا). أضف --include-experimental-sources فقط إذا كنت تريد صراحةً تضمين البيانات المشتقة من Phylum في إعادة البناء.

ملاحظة: تقوم عمليات الفحص الأولى بجمع البيانات تلقائيًا، لذا فإن التحديثات اليدوية مطلوبة فقط لتحديث قواعد البيانات الموجودة.

من أين تأتي بيانات التهديدات؟

يتم بناء قواعد البيانات الافتراضية من مصادر التهديدات الأساسية للمشروع:

  • openssf
  • osv

يمكن للماسح الضوئي أيضًا تضمين مجموعة المصادر التجريبية للمشروع:

  • phylum مع --include-experimental-sources

socketdev موجود في المستودع كعنصر نائب معطل وليس جزءًا من مسار التجميع الافتراضي.

للحصول على تفاصيل تقنية حول مصادر البيانات والتجميع والمعالجة، راجع ARCHITECTURE.md.

هل تقوم هذه الأداة بتعديل الكود أو التبعيات الخاصة بي؟

لا. تقوم OreWatch بعمليات للقراءة فقط. إنها:

  • ✅ تقرأ ملفات التبعيات
  • ✅ تستعلم عن قواعد بيانات التهديدات
  • ✅ تقوم بمسح أنماط الملفات
  • ✅ تنشئ تقارير

إنها لا تقوم أبدًا بما يلي:

  • ❌ تعديل ملفات الحزم
  • ❌ تثبيت أو إزالة الحزم
  • ❌ تغيير تكوين المشروع
  • ❌ تنفيذ كود الحزمة

ماذا لو تم تصنيف الحزمة الخاصة بي على أنها ضارة؟

الخطوات الواجب اتخاذها:

  1. تحقق من النتيجة: راجع التقرير للحصول على التفاصيل ودرجة الخطورة
  2. راجع الأدلة: افحص الوصف والسلوكيات المكتشفة
  3. تحقق من الإصدارات: حدد ما إذا كانت إصدارات معينة متأثرة
  4. إذا كانت شرعية:
    • الإبلاغ عن نتيجة إيجابية خاطئة لمشرفي مصدر البيانات
    • فتح مشكلة على GitHub الخاص بنا مع التفاصيل
  5. إذا كانت ضارة حقًا:
    • إزالة الحزمة فورًا
    • مراجعة التغييرات الأخيرة في الكود بحثًا عن الضرر
    • فحص السجلات بحثًا عن نشاط مشبوه
    • التحديث إلى بديل آمن

هل يمكنني استخدام هذا دون اتصال بالإنترنت؟

جزئيًا.

المسح دون اتصال: ✅ نعم، بمجرد تهيئة قواعد البيانات```bash

Online: Initial setup (one-time - runs automatically on first scan)

orewatch /path/to/project

Offline: Subsequent scans work with local databases

orewatch /path/to/project

root@kitploit:~
**التحديثات دون اتصال:** ❌ لا، جمع معلومات التهديدات يتطلب اتصالًا بالإنترنت لجلبها من مصادر الأمان.

**البيئات المعزولة:** يمكنك:
1. تنزيل قواعد البيانات على جهاز متصل بالإنترنت
2. نقل ملفات SQLite إلى المجلد `final_data_dir` الفريد الذي يظهره الأمر `orewatch monitor doctor`
3. تشغيل الفحوصات دون اتصال باستخدام بيانات قد تكون قديمة

### كيف يقارن هذا بـ npm audit أو pip-audit؟

**أغراض مختلفة:**

**npm audit / pip-audit:**
- التركيز على الثغرات المعروفة (CVE)
- فحص إصدارات الحزم مقابل قواعد بيانات الاستشارات
- يتم صيانتها من قبل فرق سجل الحزم

**OreWatch:**
- يركز على الحزم الخبيثة (وليس فقط الضعيفة)
- يكتشف typosquatting والبرامج الضارة وهجمات سلسلة التوريد
- تغطية عبر الأنظمة البيئية
- كشف مؤشرات الاختراق للتهديدات النشطة

**أفضل ممارسة:** استخدم **كلاهما**:```bash
# Check for vulnerabilities
npm audit
pip-audit

# Check for malicious packages
orewatch /path/to/project

هل يعمل هذا مع سجلات الحزم الخاصة؟

فحص التبعيات: ✅ نعم، يقوم الماسح الضوئي بقراءة ملفات التبعيات الخاصة بك بغض النظر عن مصدر الحزم.

استخبارات التهديدات: ⚠️ محدودة. تغطي قواعد بياناتنا السجلات العامة (npmjs.com، pypi.org، إلخ). لن يتم اكتشاف الحزم الضارة في السجلات الخاصة ما لم تقم بإضافة بيانات تهديد مخصصة.

بيانات التهديد المخصصة: يمكنك توسيع قواعد البيانات باستخدام قوائم الحزم الضارة الخاصة بك. اتصل بنا للحصول على إرشادات حول حالة الاستخدام المتقدمة هذه.

ما هو تأثير الأداء؟

وقت الفحص:

  • المشاريع الصغيرة (< 50 حزمة): أقل من 5 ثوانٍ
  • المشاريع المتوسطة (50-500 حزمة): 5-30 ثانية
  • المشاريع الكبيرة (500+ حزمة): 30-120 ثانية

العوامل:

  • يضيف فحص IoC عبئًا إضافيًا بنسبة 10-50% (قم بتعطيله باستخدام --no-ioc إذا لم يكن ضروريًا)
  • قد يكون التشغيل الأول أبطأ أثناء تحميل قواعد البيانات في الذاكرة

نصائح التحسين:```bash

Scan specific files instead of entire directory

orewatch --file package.json

root@kitploit:~
---

## المساهمة

نرحب بالمساهمات! سواء كنت تُبلغ عن أخطاء، أو تقترح ميزات، أو تساهم في الكود، فإن مساعدتك تُحسّن OreWatch للجميع.

**الإبلاغ عن الأخطاء أو طلب الميزات:**
- GitHub Issues: https://github.com/rapticore/ore-mal-pkg-inspector/issues

**المساهمة في الكود:**
- راجع [CONTRIBUTING.md](https://github.com/rapticore/ore-mal-pkg-inspector/blob/HEAD/CONTRIBUTING.md) للحصول على إرشادات مفصلة حول إعداد بيئة التطوير، وأسلوب الكود، والاختبار، وعملية طلب السحب.

**أسئلة أو مناقشات:**
- GitHub Discussions: https://github.com/rapticore/ore-mal-pkg-inspector/discussions

---

## سياسة الأمان

الأمان هو أولويتنا القصوى. OreWatch هي أداة أمان، ونحن نأخذ الثغرات على محمل الجد.

### الإبلاغ عن الثغرات الأمنية

**لا تفتح مشكلات GitHub عامة للثغرات الأمنية.**

بدلاً من ذلك، أبلغ بشكل خاص:

**البريد الإلكتروني:** [email protected]

**تضمين:**
- وصف الثغرة
- خطوات إعادة الإنتاج
- الأثر المحتمل
- الإصلاح المقترح (إن وجد)
- معلومات الاتصال الخاصة بك للمتابعة

### الجدول الزمني للاستجابة

- **الإقرار:** خلال 48 ساعة
- **التقييم الأولي:** خلال 7 أيام
- **الجدول الزمني للإصلاح:** يختلف حسب الخطورة
  - حرج: 7-14 يومًا
  - عالي: 14-30 يومًا
  - متوسط/منخفض: 30-60 يومًا

### أفضل الممارسات الأمنية

عند استخدام OreWatch:

**افعل:**
- ✅ التشغيل بأقل الامتيازات (لا حاجة إلى صلاحيات الجذر/المسؤول)
- ✅ تحديث معلومات التهديدات بانتظام
- ✅ مراجعة تقارير الفحص فورًا
- ✅ التكامل مع CI/CD للحماية المستمرة
- ✅ الاحتفاظ بالأداة محدثة لأحدث إصدار

**لا تفعل:**
- ❌ تجاهل نتائج الفحص دون تحقيق
- ❌ تعطيل فحص مؤشرات الاختراق (IoC) في بيئات الإنتاج
- ❌ مشاركة ملفات قواعد البيانات من مصادر غير موثوقة
- ❌ التشغيل بامتيازات مرتفعة دون داعٍ

### الإفصاح عن الثغرات

نتبع الإفصاح المنسق:
1. الإبلاغ عن الثغرة بشكل خاص
2. تطوير الإصلاح واختباره
3. نشر نشرة أمنية
4. الإفصاح العلني بعد توفر الإصلاح

### قاعة مشاهير الأمان

نحن نقدّر الباحثين الأمنيين الذين يُبلغون عن الثغرات بمسؤولية:

*سيتم الاحتفاظ بالقائمة عند استلام التقارير*

---

### طلبات المجتمع

صوّت على الميزات أو اقترحها:
- **GitHub Discussions:** https://github.com/rapticore/ore-mal-pkg-inspector/discussions
- **طلبات الميزات:** https://github.com/rapticore/ore-mal-pkg-inspector/issues

### المساهمة في خريطة الطريق

نُعطي الأولوية للميزات بناءً على:
- الأثر الأمني
- طلب المجتمع
- استدامة الصيانة
- التوافق مع أهداف المشروع

للتأثير على خريطة الطريق:
1. افتح طلب ميزة مع حالة استخدام مفصلة
2. شارك في المناقشات
3. ساهم في التطبيقات (PRs مرحب بها!)

---

## خريطة الطريق

OreWatch قابلة للاستخدام اليوم من أجل:

- فحوصات CLI محلية عبر npm و PyPI و Maven و RubyGems و Go و Cargo
- مراقب خلفية واحد لكل مستخدم للعديد من المشاريع
- تكاملات MCP لـ Cursor و Claude Code و Codex
- تكاملات API المحلية لـ VS Code و JetBrains / PyCharm و Xcode helpers
- مراجعة شريط قائمة macOS والإشعارات المنبثقة

الأولويات قصيرة المدى:

- أمثلة أو إضافات خفيفة من الطرف الأول لتكامل VS Code و JetBrains / PyCharm
- سير عمل إشعارات أقوى موجهة للمستخدم تتجاوز الإشعارات المنبثقة المحلية
- إدارة أوضح لسياسات المشروع من CLI وواجهة المستخدم
- تقارير فحص أكثر ثراءً ووثائق التبني

الأولويات متوسطة المدى:

- سير عمل أوسع لفحص المشاريع من سطح المراقبة و MCP
- إرشادات أفضل لنشر المؤسسات
- قنوات تسليم وتصعيد تنبيهات خارجية أكثر قوة
- تجربة مستخدم أعمق خاصة بـ IDE بدلاً من إرشادات تكامل API فقط

الحدود المعروفة الحالية:

- تكامل Xcode حاليًا هو الأفضل لرؤية التنبيهات والمستودعات متعددة اللغات. لا يحلل OreWatch بعد ملفات البيان الأصلية من Apple مثل `Package.resolved` أو `Podfile.lock` أو `Cartfile`.

الاتجاه طويل المدى:

- دعم بيان النظام البيئي الأصلي من Apple
- تكاملات محرر أقوى من الطرف الأول
- تكافؤ تجربة مستخدم نظام تشغيل أوسع يتجاوز مسار شريط قائمة macOS الحالي

اطّلع على [docs/roadmap.md](https://github.com/rapticore/ore-mal-pkg-inspector/blob/HEAD/docs/roadmap.md) للحصول على عرض خريطة طريق أكثر تركيزًا على التبني.

---

## الترخيص

MIT License

Copyright (c) 2025 Rapticore

يُمنح الإذن hereby، مجانًا، لأي شخص يحصل على نسخة
من هذا البرنامج وملفات التوثيق المرتبطة به ("البرنامج")، للتعامل
في البرنامج دون قيود، بما في ذلك دون حصر حقوق
الاستخدام والنسخ والتعديل والدمج والنشر والترخيص و/أو بيع
نسخ من البرنامج، والسماح للأشخاص الذين يُزوّد البرنامج لهم
بالقيام بذلك، مع مراعاة الشروط التالية:

يجب تضمين إشعار حقوق النشر أعلاه وهذا الإذن في جميع
النسخ أو الأجزاء الجوهرية من البرنامج.

يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريح أو
ضمني، بما في ذلك دون حصر ضمانات القابلية للتسويق،
والملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لا يكون
المؤلفون أو أصحاب حقوق النشر مسؤولين عن أي دعوى أو أضرار أو غيرها
من المسؤوليات، سواء في إجراء تعاقدي أو تقصيري أو غير ذلك، الناشئة
عن أو فيما يتعلق بالبرنامج أو استخدامه أو التعاملات الأخرى في
البرنامج.

---

## الدعم

### الحصول على المساعدة

**التوثيق:** أنت تقرأه! ابدأ هنا لمعظم الأسئلة.

**GitHub Discussions:** للأسئلة والأفكار والتفاعل المجتمعي:
- https://github.com/rapticore/ore-mal-pkg-inspector/discussions

**GitHub Issues:** للإبلاغ عن الأخطاء وطلبات الميزات:
- https://github.com/rapticore/ore-mal-pkg-inspector/issues

**البريد الإلكتروني:** للثغرات الأمنية والاستفسارات الخاصة:
- [email protected]

### الدعم الاحترافي

للمؤسسات التي تتطلب:
- تكاملات مخصصة
- دعم بضمان مستوى الخدمة (SLA)
- مساعدة في النشر الخاص
- خلاصات معلومات تهديدات مخصصة

اتصل: [email protected]

---

## الشكر والتقدير

### أصل المشروع

تم استخراج هذا المشروع من مستودع [OreNPMGuard](https://github.com/rapticore/OreNPMGuard) للحفاظ على تركيز المشروع الواضح مع توسيع القدرات.

**OreNPMGuard** (ديسمبر 2025) متخصص في الكشف عن هجمات npm من نوع Shai-Hulud مع 738+ حزمة متأثرة وتحليل عميق لمؤشرات الاختراق (IoC). أثناء تطويره، أدركنا الحاجة إلى حماية أوسع متعددة النظم البيئية، مما أدى إلى إنشاء OreWatch كأداة مستقلة تخدم مجتمع المطورين الأوسع عبر جميع النظم البيئية الرئيسية للحزم.

### المشاريع ذات الصلة

- **[OreNPMGuard](https://github.com/rapticore/OreNPMGuard)** - ماسح npm متخصص لـ Shai-Hulud
---

**بُني بواسطة فريق أبحاث الأمن في Rapticore**

*حماية سلاسل التوريد البرمجية، فحصًا تلو الآخر.*
تنزيل الأداة
أريد أن...استخدم هذا المسارابدأ بـ
أفحص مستودعًا واحدًا الآنفحص CLIorewatch /path/to/project
أحمي التطوير المحلي في الخلفيةمراقب فردي (singleton monitor)orewatch monitor quickstart /path/to/project --client claude_code
أستخدم OreWatch من Cursor أو Claude Code أو Codexجسر MCPorewatch monitor quickstart /path/to/project --client <cursor|claude_code|codex>
أدمج مع VS Code أو PyCharm أو Xcodeواجهة برمجة تطبيقات المضيف المحليorewatch monitor quickstart /path/to/project --client vscode
أحصل على تنبيهات macOS مرئية وسطح مراجعة أصليتطبيق شريط القوائمorewatch monitor menubar
أتحقق من البناءات في CIفحص CLI لمرة واحدةorewatch . --strict-data
الخيارالمختصرالوصفالافتراضي
--file-fالمسار إلى ملف محدد للمسح (يتجاوز اكتشاف الدليل)لا شيء
--ecosystem-eفرض النظام البيئي: npm, pypi, maven, rubygems, go, cargoكشف تلقائي
--output-oمسار مخصص للإخراج لتقرير JSON الأساسي؛ يقوم OreWatch أيضًا بكتابة تقرير HTML مجاورscan-output/malicious_packages_report_{timestamp}.json
--no-summaryتخطي طباعة ملخص التقرير إلى وحدة التحكمخطأ
--no-iocتخطي مسح مؤشرات الاختراق (IoC)خطأ
--ioc-onlyمسح مؤشرات الاختراق فقط، تخطي فحص الحزمخطأ
--latest-dataفرض تحديث مباشر مرحلي وترقية مدفوعة بالشذوذ قبل المسحخطأ
--strict-dataالفشل إذا كان أي نظام بيئي مطلوب يحتوي على بيانات تهديد جزئية أو مفقودةخطأ
--include-experimental-sourcesتضمين المجمعات التجريبية أثناء تحديث بيانات التهديدخطأ
--list-supported-filesطباعة أسماء ملفات بيان التبعية المدعومة بالضبط والخروجخطأ
--verbose-vعرض سجلات مستوى INFO (رسائل التقدم)خطأ
--debugعرض سجلات مستوى DEBUG (تشخيصات مفصلة)خطأ
العميلالنقلأمر التمهيدملاحظات
Claude CodeMCPorewatch monitor ide-bootstrap --client claude_codeجسر MCP من الدرجة الأولى
CodexMCPorewatch monitor ide-bootstrap --client codexجسر MCP من الدرجة الأولى
CursorMCPorewatch monitor ide-bootstrap --client cursorجسر MCP من الدرجة الأولى
VS CodeLocal APIorewatch monitor ide-bootstrap --client vscodeلا يوجد امتداد مدمج؛ استخدم واجهة برمجة التطبيقات localhost
JetBrains / PyCharmLocal APIorewatch monitor ide-bootstrap --client jetbrainsلا يوجد إضافة مدمجة؛ استخدم واجهة برمجة التطبيقات localhost
XcodeLocal APIorewatch monitor ide-bootstrap --client xcodeالأفضل للنتائج/الإخطارات والمستودعات متعددة اللغات
  • monitor install الآن يُثبّت خدمة launchd أو systemd على مستوى المستخدم عند توفرها، ويعود إلى الوضع الخلفي المحلي بخلاف ذلك.
  • monitor quickstart /path/to/project --client claude_code هو أسهل تدفق للتشغيل الأولي لإعداد عميل LLM محلي.
  • --workspace-root /path/to/workspace لا يزال مقبولاً لإصدار واحد كاسم مستعار للتوافق مهمل، لكنه لم يعد يغير هوية المراقبة أو موقع الرمز المميز أو تسمية الخدمة.
  • في وضع auto، إذا فشل إعداد launchd أو systemd الأصلي، يعود OreWatch الآن إلى الوضع الخلفي المحلي بدلاً من إحباط الإعداد.
  • monitor install --ide-bootstrap يطبع مقتطفات التمهيد للنسخ واللصق لكلود كود، كودكس، كرسور، فيجوال ستوديو كود، JetBrains / PyCharm، و إكس كود.
  • monitor connection-info يطبع عنوان URL الأساسي لواجهة برمجة التطبيقات (API) للحلقة المحلية، ومسار الرمز المميز، ونطاق/منزل المراقبة المفردة، وما إذا كان الخفي قيد التشغيل بالفعل.
  • monitor ide-bootstrap يطبع مقتطفات تمهيد MCP/API الحالية مرة أخرى دون إعادة تثبيت أي شيء.
  • monitor mcp يشغل جسر MCP محليًا يعرض فحوصات تبعيات OreWatch لكلود كود، كودكس، وكرسور.
  • monitor findings و monitor notifications و monitor package-updates توفر سطح المراجعة المدمج للاكتشافات الخلفية وتنبيهات التحديث.
  • monitor menubar يشغل تطبيق شريط قوائم macOS أصلي مدعوم من المراقبة المفردة ومخزن النتائج.
  • monitor mcp هو خادم stdio، لذا سينتظر عميل MCP بعد بدء التشغيل. الآن يكتب حالة الجاهزية والتشغيل التلقائي إلى stderr، وليس stdout.
  • بالنسبة لبدء تشغيل IDE أو عميل MCP، استخدم monitor install ليكون الخفي الخلفي متاحًا بالفعل عندما يشغل العميل monitor mcp أو يستدعي API.
  • make test-e2e-clients يقوم بتهيئة مساحة العمل الاصطناعية وتشغيل مصفوفة عميل MCP/API عبر الأنظمة لكلود كود، كودكس، وكرسور.
  • التركيبات مفتوحة المصدر/المجتمعية تستخدم افتراضيًا التحديثات المباشرة المقيدة بالشذوذ من الخلاصات الأساسية الأولية (openssf و osv). يتم تخزين البيانات المرشحة في دليل حالة المراقبة المملوك للمستخدم، والتحقق من الانخفاضات/الإزالات غير الطبيعية، ثم يتم ترقيتها فقط إلى قواعد البيانات النشطة.
  • التركيبات المدارة/المؤسسية يمكنها بدلاً من ذلك استخدام واصف قناة موقعة أو بيان تم تكوينه في ملف إعدادات المراقبة المملوك للمستخدم عبر snapshots.channel_url أو snapshots.manifest_url، وتتحقق المراقبة منها باستخدام snapshots.public_key_path.
  • تتطلب سير عمل اللقطات الموقعة حاليًا openssl على الجهاز المحلي.
  • إرشادات اختبار التكامل عبر الأنظمة للعملاء موثقة في docs/e2e-testing.md.
  • orewatch_list_notifications
    orewatch_list_package_updates
    orewatch_check_package_updates
  • يجب أن تستدعي تكاملات فيجوال ستوديو كود و JetBrains / PyCharm و إكس كود نفس API المضيف المحلي لفحوصات إضافة التبعيات، وإعادة فحص البيان، والنتائج النشطة، والإشعارات الحديثة، وتنبيهات تحديث الحزمة.
  • الأشكال الدقيقة للطلب والاستجابة موثقة في docs/local-api.md.