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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitLabGitLab/leitwacht/leitwacht-agent
أمن البنية التحتية السحابيةأمن الحاوياتأمن الشبكاتأمن السحابةDevSecOpsسوء التكوينتحليل DNS
GitLableitwacht/leitwacht-agent

LeitWacht Agent

eBPF + nftables + DNS proxy فرض التدفق الصادر لحاويات وظائف GitLab Runner CI/CD — مستوى بيانات الإصدار المجتمعي https://leitwacht.eu/

عرض المستودع
منذ 23 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

وكيل leitwacht

https://leitwacht.eu — مصدر الحقيقة: https://gitlab.com/leitwacht/leitwacht-agent. المشكلات وطلبات الدمج والنقاشات موجودة على GitLab.

قبل 1.0. سلسلة 0.x غير مستقرة؛ قد تحمل الإصدارات الثانوية تغييرات مكسورة لواجهات برمجة التطبيقات، وأسماء متغيرات البيئة، ومفاتيح values.yaml الخاصة بـ Helm، ومخطط ملف القواعد حتى إصدار 1.0. استخدم ملخصات الصور (وليس العلامات العائمة) في الإنتاج. راجع CHANGELOG.md لملاحظات الترقية.

وكيل مستوى البيانات لنظام التحكم في الخروج (egress) الخاص بـ leitwacht GitLab Runner. eBPF + nftables + وكيل DNS داخل مساحة اسم الشبكة يتم إرفاقهم بكل حاوية مشغل CI ويقومون بفرض سياسة الخروج. CE (هذا المستودع) يقرأ قواعده من ملف YAML محلي وهو مستقل تمامًا — لا خلفية، لا اتصال خارجي، لا تسجيل.

إصدار المؤسسة المرخص بشكل منفصل (gitlab.com/leitwacht/leitwacht) يضيف لوحة تحكم مدارة (واجهة تأليف القواعد، تعدد المستأجرين، التدقيق، تكامل GitLab). وكيل EE يستورد agentcore/ من هذا المستودع ويستبدل محمل YAML بدفق قواعد gRPC.

التخطيط

root@kitploit:~
agentcore/                   بدائيات مستوى البيانات (MPL-2.0)
  enforcer/                  eBPF + nftables + وكيل DNS + LSM cred/proc_mem
  watcher/                   مصدر أحداث دورة حياة الحاوية (containerd, docker)
  handler/                   معالج دورة الحياة — محايد للإصدار
  policy/                    ResolvedPolicy + واجهة Source + محمل
  advisory/                  نوع استشارة بلغة Go الخالصة + واجهة Sink
  violation/                 نوع انتهاك بلغة Go الخالصة لواجهة Sink للإبلاغ عن الانتهاكات
  wildcard/                  مساعدات مطابقة أنماط النطاقات
  version/                   طابع إصدار البناء (يُعيّن عبر -ldflags)
  cmd/
    leitwacht-initc/          حاوية init للبودات تمنع نقاط الدخول حتى يتم إرفاق الوكيل

ce/                          إصدار المجتمع (MPL-2.0)
  cmd/agent-ce/              الملف الثنائي
  config/                    إعدادات الوكيل المعتمدة على البيئة
  ruleyaml/                  محمل قواعد YAML + إعادة تحميل سريع عبر fsnotify
  sinks/                     stdout NDJSON / Prometheus / webhook
  helm/agent-ce/             مخطط Helm
  SCHEMA.md                  مخطط قواعد YAML (v1)

examples/
  rules.yaml                 مجموعة قواعد بداية

docs/
  EVENT_FLOW.md              تدفق watcher → handler → enforcer + إعدادات قابلة للتعديل (مع mermaid)

نطاق الحاوية

وكيل leitwacht يقوم فقط بفحص الحاويات التي تحمل الوسم المُدار com.gitlab.gitlab-runner.managed=true الخاص بـ GitLab Runner. الحاويات بدون هذا الوسم — أي شيء تشغله يدويًا، أو الحاويات الجانبية، أو أحمال العمل التطبيقية — يتم تجاهلها تمامًا (لا أحداث، لا فرض، لا انتهاكات). هذا متعمد: leitwacht هو مستوى البيانات لخروج مشغل CI فقط، ولا ينبغي اعتراض أحمال العمل غير المشغلة Runner بصمت. حالات الاستخدام غير Runner خارج نطاق الإصدار v0.1.0.

القيود المعروفة (v0.1.0)

  • IPv4 فقط. برامج eBPF ووكيل DNS يفرضون على حركة IPv4؛ خروج IPv6 يتم إسقاطه عند حدود مساحة اسم الشبكة بغض النظر عن السياسة. وظائف CI التي تتطلب اتصال IPv6 لا يمكنها استخدام فرض leitwacht حتى يتم معالجة هذا.
  • Linux x86_64 فقط. مشغلات arm64 غير مدعومة بعد (CI يشحن صور amd64؛ arm64 ستأتي بعد توفر أثريات eBPF لتلك البنية).
  • أحمال عمل GitLab Runner فقط. راجع "نطاق الحاوية" أعلاه.

بداية سريعة

root@kitploit:~
# بناء (CGO_ENABLED=0 يسمح للمضيفات غير Linux بالترجمة المتقاطعة بشكل نظيف).
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ./...

# صورة الحاوية
docker build -f Dockerfile.agent-ce -t leitwacht/agent-ce:dev .

# تثبيت Helm (Kubernetes). dnsUpstream مطلوب — وجهه إلى محلل DNS الخاص بمجموعتك،
# وليس إلى عام، حتى تستمر الخدمات الداخلية في الحل ولا تتسرب الاستعلامات.
KUBE_DNS_IP=$(kubectl -n kube-system get svc kube-dns -o jsonpath='{.spec.clusterIP}')
helm install leitwacht-ce ./ce/helm/agent-ce \
  -n leitwacht --create-namespace \
  --set-file rules=examples/rules.yaml \
  --set "dnsUpstream=${KUBE_DNS_IP}:53"

مرجع المخطط الكامل لـ rules.yaml موجود في ce/SCHEMA.md.

الترخيص

agentcore/ و ce/ موزعة تحت رخصة Mozilla Public License 2.0 — راجع LICENSE. MPL-2.0 هي رخصة حقوق متراكمة على مستوى الملف: يمكنك استخدام هذه الملفات وتعديلها وإعادة توزيعها في منتجاتك الخاصة (تجارية أو غير ذلك)، ولكن أي تغييرات تجريها على الملفات المرخصة بـ MPL-2.0 يجب أن تكون متاحة تحت نفس الرخصة.

الخلفية الخاصة بإصدار المؤسسة في gitlab.com/leitwacht/leitwacht موزعة تحت رخصة مختلفة. المستودعان يتم تطويرهما معًا من قبل نفس الفريق.

المساهمة

المشكلات وطلبات الدمج على مستودع GitLab الأساسي (https://gitlab.com/leitwacht/leitwacht-agent). يجب اتباع عملية القضايا الأمنية في SECURITY.md. ملاحظات سير العمل والأسلوب موجودة في CONTRIBUTING.md.

البناء

Linux فقط (eBPF + nftables): GOOS=linux GOARCH=amd64 go build ./...

كائنات eBPF (*_bpfel.o) ملتزمة لأن إعادة توليدها تتطلب clang + رؤوس النواة؛ تعتمد بنيات CI على الأثريات الملتزمة. لإعادة التوليد محليًا على Linux:

root@kitploit:~
go generate ./agentcore/enforcer/
تنزيل الأداة