
nah v0.11.0
حارس يمنع الإجراءات الكارثية للوكيل
الأخطاء المكلفة تتوقف هنا
حارس يمنع إجراءات الوكيل الكارثية
nahguard.ai • ما الذي يمنعه • كيف يقرر • التثبيت • التوسيع • نموذج التهديد
claude code · codex · cursor · pi · + 11 المزيد
nah هو حارس يجلس في مسار الخطاف (hook) الخاص بوكيل البرمجة لديك ويقرأ استدعاءات الأدوات قبل تنفيذها. يحجب الاستدعاءات التي يمكنه إثبات أنها كوارث ويترك كل ما عدا ذلك لبيئة التشغيل الخاصة بك.
nah هو مجرد ملف Rust ثنائي واحد: الحكم حتمي ولا يحتاج إلى LLM. الإضافات مجرد برامج. وجّه وكيلك إلى وثائق nah واطلب منه بناء حارس nah مخصص.
يعرف الكارثة عندما يراها.
46 حارسًا، 29 مفعّلة افتراضيًا، تغطي سبع فئات من الكوارث: اختطاف التنفيذ، سرقة الأسرار، تدمير نظام الملفات، كوارث git، تفكيك البنية التحتية والتخزين والنسخ الاحتياطي، عمليات سجل الحزم، وإجراءات إيقاف تشغيل المضيف والخدمات.
| الحارس | ما يحجبه |
|---|---|
exec-remote | تنفيذ حمولة تم الحصول عليها بشكل مرئي من الشبكة. |
exec-decoded | تنفيذ تم الوصول إليه من مرحلة فك ترميز مرئية. |
exec-obfuscated | تنفيذ مُرمّز أو مُنتقى بنمط أو غير محلول. |
exec-network-shell | صدفات مرتبطة باتصال شبكي، بما في ذلك netcat وsocat وإعادة توجيه الصدفة. |
secrets-env | قراءات ملفات .env والأسماء الأساسية الحساسة، بالإضافة إلى الإخراج المباشر لمتغيرات بيئة بيانات الاعتماد المفهرسة. |
secrets-credentials | قراءات أو كتابات لمسارات المفاتيح الخاصة ومخازن بيانات الاعتماد. |
secrets-exfil | تدفق مرئي من مصدر حساس إلى مرحلة شبكية. |
secrets-store-delete | حذف مخزن الأسرار المراجَع المتبقي بدلالات قابلة للاسترداد أو معتمدة على السياق. معطّل افتراضيًا. |
secrets-store-destroy | تدمير دائم مُثبت لمخزن الأسرار: إزالة إصدار/بيانات وصفية/محرك Vault، وحذف AWS القسري وSSM، وحذف Google للسِر بالكامل، ومسح Azure، وحذف إعداد Doppler. |
secrets-store-read | قراءات القيم المراجَعة عبر واجهات سطر أوامر مديري الأسرار الشائعة. |
fs-system-tree | الحذف، أو نقل مدخل الجذر المُثبت، أو تغييرات الأذونات التكرارية التي تستهدف جذر نظام الملفات أو شجرة نظام. |
fs-home | الحذف أو تغييرات الأذونات التكرارية التي تستهدف جذر المجلد الرئيسي. |
fs-outside-workspace-delete | الحذف التكراري خارج المشروع النشط، باستثناء الجذور المؤقتة المراجَعة. معطّل افتراضيًا. |
fs-permission-weaken | أوضاع chmod التي تمنح بشكل مُثبت إذن الكتابة للجميع أو setuid/setgid. معطّل افتراضيًا. |
fs-project-root | الحذف التكراري الملموس بنطاق المشروع أو تغييرات الأذونات التكرارية المعروفة التي تستهدف جذر المشروع بالضبط أو أنماطه الجذرية الدقيقة * أو .* أو {*,.*}. find -delete بدون مسار بداية صريح ليس له هدف مُنمذج. |
fs-raw-device | الكتابات المرئية على أجهزة التخزين الخام ومشغّل sysrq. |
fs-volume-destroy | التدمير المؤكد للحجم المنطقي ومجمع التخزين ومجموعة بيانات ZFS الحية. |
fs-forkbomb | أنماط قنابل الشوكة (fork-bomb) في الصدفة المعروفة بنيويًا. |
fs-auth-identity | تعديل أو حذف ملفات مصادقة المضيف والهوية وسياسة الصلاحيات المراجَعة، بما في ذلك الحذف التكراري لمجلداتها الأصلية. |
fs-shell-profile | التغييرات على مسارات ملف تعريف صدفة المستخدم المراجَعة. معطّل افتراضيًا. |
fs-startup-management | أوامر إدارة systemctl وlaunchctl وcrontab الدائمة المراجَعة. معطّل افتراضيًا. |
fs-startup-persistence | التغييرات على مسارات بدء تشغيل الخدمات والجداول وتسجيل الدخول والتشغيل التلقائي والمحمّل المراجَعة. |
git-clean-force | تنظيف Git قسري فعّال يستهدف جذر المشروع. |
git-force-push | عمليات دفع Git القسرية بدون حماية الإيجار وعمليات الدفع القسرية المؤجّرة التي تستهدف صراحةً main أو master. |
git-hard-reset | عمليات إعادة الضبط الصلبة في Git. |
git-history-rewrite | إعادة كتابة سجل Git غير القسرية المختارة، بما في ذلك rebases والتصفية وانتهاء صلاحية الاسترداد وجمع المهملات العدواني أو التقليمي وعمليات الدفع القسرية المؤجّرة، بما في ذلك refspecs الثابتة الصريحة التي تستهدف main أو master. معطّل افتراضيًا. |
git-rewrite-force | إعادة كتابة السجل التي تتجاوز صراحةً فحوصات الأمان أو النسخ الاحتياطي. |
git-metadata | الكتابات التدميرية أو الحذف الذي يستهدف بيانات وصفية دائمة لسجل Git. |
git-path-discard | الكتابة فوق مسار مسمّى محدد عبر checkout وrestore وgit show على نفس المسار. معطّل افتراضيًا. |
git-protected-push | عمليات الدفع التي يستهدف refspec الثابت الصريح فيها main أو master. تبقى عمليات الدفع المجردة خارج هذا الحارس. معطّل افتراضيًا. |
git-recovery-destroy | مسح مجموعة stash بالكامل أو التدمير الفوري على مستوى المستودع لسجل استرداد Git. |
git-ref-delete | حذف المرجع المحلي والبعيد ومدخل stash وشجرة العمل وشجرة عمل الوحدة الفرعية المراجَع. معطّل افتراضيًا. |
git-remote-repo-delete | حذف المستودع بالكامل على GitHub وGitLab عبر واجهات سطر الأوامر ومسارات REST الخاصة بهما. |
git-remote-resource-delete | حذف الموارد المستضافة على GitHub وGitLab المستهدفة بشكل ثابت عبر أوامر سطر الأوامر ومسارات REST المراجَعة. معطّل افتراضيًا. |
git-worktree-discard | checkout أو restore على مستوى المشروع، وتغييرات الفروع القسرية المُثبتة، والإزالة القسرية لشجرة العمل أو إلغاء تهيئة الوحدة الفرعية. |
infra-container-reset | أوامر Podman التي تعيد ضبط حالة وقت التشغيل المحلية الكاملة أو المحددة. |
infra-container-volume-delete | تنظيف واسع للحجم غير المستخدم عبر أوامر prune المراجَعة في Docker وPodman. معطّل افتراضيًا. |
infra-iac-destroy | تدمير المكدس بالكامل المرئي بالكامل في Terraform وOpenTofu وPulumi. معطّل افتراضيًا. |
infra-k8s-delete | حذف مساحة الأسماء الثابتة، وموارد المجموعة المراجَعة، والحذف الجماعي لموارد مساحة الأسماء المراجَعة عبر kubectl. معطّل افتراضيًا. |
storage-backup-destroy | حذف مستودع النسخ الاحتياطي بالكامل أو جميع النسخ الاحتياطية عبر أوامر Borg وRestic وVelero المراجَعة. |
storage-recursive-delete | الحذف البعيد الواسع والمزامنة التي تحذف الوجهة عبر واجهات سطر أوامر السحابة والمزامنة المراجَعة. معطّل افتراضيًا. |
storage-snapshot-delete | حذف اللقطات والأرشيفات والأحجام والاحتفاظ المراجَع. معطّل افتراضيًا. |
registry-publish | أوامر نشر الحزم المراجَعة. معطّل افتراضيًا. |
registry-unpublish | إلغاء نشر الحزم المراجَع، وسحب RubyGems غير القابل للتراجع، وتغييرات مالك الاسم المنشور. |
sys-power | إجراءات إيقاف التشغيل وإعادة التشغيل والتوقف والتعليق المرئية بالكامل للمضيف المحلي. |
sys-service-stop | إيقاف الخدمة المراجَع، وعزل الهدف، وإيقاف Podman للكل، وتدفق docker stop $(docker ps -q) بالضبط. معطّل افتراضيًا. |
شغّل nah docs guards لرؤية الكتالوج المدمج الكامل، مع النطاق الدقيق لكل حارس وثلاثة أمثلة مُختبرة، بالإضافة إلى حالة الحارس المخصص الحالية.
برامج حتمية، لا قضاة LLM.
nah هو مجرد ملف Rust ثنائي ثابت واحد. لا يوجد ذكاء اصطناعي في الحلقة، لذا يصل الحكم في ميكروثوانٍ ولا يتغير بين التشغيلات.
يحلّل nah استدعاءات الأدوات إلى تأثيرات مُنمّطة: البرامج التي تُشغَّل، والملفات المقروءة أو المكتوبة، والبيانات التي تغادر الجهاز، والوصول إلى البيئة، وسلوك العمليات.
كل قرار ينتهي بأحد حكمين:
- block — وجد حارس انتهاكًا مؤكدًا. تُسمّي الرسالة الحارس وتخبر الوكيل بما يجب فعله بدلًا من إعادة المحاولة.
- delegate — لم يحجب أي حارس. تقرر بيئة التشغيل الخاصة بك صندوق الرمل والأذونات وتدفق الموافقة، تمامًا كما لو لم يكن nah موجودًا.