Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
layerleak — layerleak ماسح الأسرار لـ Docker Hub | Kitploit
أدوات/GitHubGitHub/brumbelow/layerleak
ماسحات الثغرات الأمنيةأمن الحاوياتأمن السحابةDevSecOpsكشف الأسرارأمن واجهات برمجة التطبيقات
GitHubbrumbelow/layerleak

layerleak

layerleak ماسح الأسرار لـ Docker Hub

عرض المستودع
42224منذ 19 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

layerleak

CI CodeQL Go

Layerleak هو ماسح أسرار لصور OCI يعمل بوضع القراءة فقط. يقوم بحل مراجع الصور العامة دون الحاجة إلى Docker daemon، ويتحقق من المحتوى الذي تم تنزيله مقابل OCI digests، ويعيد بناء حالة الطبقات، ويفحص العناصر المحذوفة وبيانات الصورة الوصفية، ويعيد نتائج محجوبة غنية بالمصدر.

يدعم Docker Hub وGHCR وQuay وGCR وMCR وAmazon ECR Public وغيرها من السجلات المتوافقة مع OCI. يمكن حفظ النتائج بصيغة JSON وتخزينها في PostgreSQL لواجهة API المرفقة.

  • التوثيق
  • مواصفات OpenAPI
  • سجل التغييرات
  • سياسة الأمان
  • المساهمة

توثّق شجرة التطوير هذه خط الإصدار 3.0.0 على مسار الوحدة github.com/brumbelow/layerleak/v3. لا يصبح أمر الإصدار المرشح الموضح أدناه قابلاً للتثبيت إلا بعد نشر هذا الوسم بالتحديد. تم تجميد تسميات 3.0.0 في سجل التغييرات ومستند OpenAPI بشكل مقصود حتى يمكن ترقية إصدار مرشح مقبول من نفس التزام المصدر.

نموذج الأمان

يقوم Layerleak بفحص محتوى صور غير موثوق، لذا فإن إعداداته الافتراضية محدودة بشكل مقصود وتفشل بشكل مغلق:

  • حدود الصورة، والبيان، والإعدادات، واستجابة الوسم، والملف، والطبقة، والحالة المحتفظ بها، والنتائج تمنع العمل غير المحدود؛
  • يتم التحقق من أجسام البيان والإعدادات والطبقات مقابل OCI digests المعلنة قبل الاستخدام؛
  • يتم تحديد إعادة التوجيهات وإعادة التحقق منها؛
  • يتم حظر السجلات الخاصة، وloopback، وlink-local، والوجهات غير العامة الأخرى للسجلات والمصادقة ما لم يُسمح صراحةً بمضيفها بالتحديد؛
  • يتم حجب النتائج واستجابات API وسجل الفحص والسجلات افتراضيًا؛
  • يتم الإبلاغ عن التغطية غير المكتملة كـ partial أو failed، وليس أبدًا كفحص نظيف.

لا يتحقق Layerleak مما إذا كانت بيانات الاعتماد المكتشفة نشطة. لا يمتلك API نموذج تفويض: فهو مفتوح افتراضيًا، وفحص الرمز المشترك الاختياري LAYERLEAK_API_BEARER_TOKENS هو دفاع في العمق لمسارات /api/، وليس تحكمًا في الوصول. لا تعرضه إلا على شبكة موثوقة أو خلف بوابة مصادقة في كل الأحوال.

تثبيت CLI

يتطلب Layerleak الإصدار 1.27.1 من Go أو أحدث.```bash go install github.com/brumbelow/layerleak/v3@latest layerleak --version layerleak --help

مسار الوحدة `/v3` هو هدف التثبيت الأساسي؛ لا يزال الملف التنفيذي المثبَّت
يحمل اسم `layerleak`. ثبّت إصدارًا مستقرًا أو مرشحًا للإصدار بشكل صريح عندما
تكون قابلية إعادة الإنتاج مهمة:```bash
go install github.com/brumbelow/layerleak/[email protected]
go install github.com/brumbelow/layerleak/[email protected]

يختار @latest على المسار /v3 أعلى إصدار v3 منشور. يستبعد Go الإصدارات الأولية من @latest بمجرد وجود إصدار مستقر، لذا بينما تُنشر الإصدارات المرشحة فقط، يُحلّ @latest إلى أحدث مرشح. يبقى المسار الجذري github.com/brumbelow/layerleak بدون /v3 عند v1.0.0 إلى الأبد؛ أدرج /v3 دائمًا. تُبلّغ عمليات البناء من Checkout عن إصدار تطويري مشتق من VCS، بما في ذلك علامة شجرة عمل غير نظيفة، أو dev بدون معلومات VCS. تُبلّغ الملفات التنفيذية المثبّتة من الإصدار عن إصدار الوحدة المُحلّ عبر layerleak --version.

تنزيل أرشيف الإصدار

يُرفق كل إصدار أيضًا أرشيفات CLI مبنية مسبقًا، فلا حاجة إلى سلسلة أدوات Go: layerleak_<version>_<os>_<arch>.tar.gz لنظامي linux وdarwin على amd64 وarm64 (تحتوي على layerleak وLICENSE و THIRD_PARTY_NOTICES.md) وlayerleak_<version>_windows_amd64.zip (layerleak.exe). يحمل كل إصدار ملف layerleak_<version>_checksums.txt موقّعًا بدون مفاتيح بواسطة سير عمل الإصدار (layerleak_<version>_checksums.txt.sigstore.json) وشهادة إثبات مصدر البناء لكل أرشيف. تحقق قبل التشغيل:```bash version=v3.0.0 archive="layerleak_${version}linux_amd64.tar.gz" checksums="layerleak${version}_checksums.txt" base="https://github.com/brumbelow/layerleak/releases/download/${version}" curl --fail --location --proto '=https' --tlsv1.2 --remote-name-all
"${base}/${archive}" "${base}/${checksums}" "${base}/${checksums}.sigstore.json"

sha256sum --check --ignore-missing "${checksums}" cosign verify-blob
--bundle "${checksums}.sigstore.json"
--certificate-identity 'https://github.com/Brumbelow/layerleak/.github/workflows/container-release.yml@refs/heads/main'
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com'
"${checksums}" gh attestation verify "${archive}" --repo Brumbelow/layerleak
--signer-workflow Brumbelow/layerleak/.github/workflows/container-release.yml
--source-ref refs/heads/main --deny-self-hosted-runners

tar -xzf "${archive}" layerleak ./layerleak version

يُثبت التوقيع أن ملف checksums جاء من سير عمل الإصدار لهذا المستودع على `main`، ويربط checksum الأرشيف بذلك الملف، ويُثبت الإقرار بشكل مستقل أن الأرشيف مرتبط بتشغيل سير العمل الذي بناه. يسرد `release-manifest.json` في الإصدار كل أرشيف وملخص الباينري بداخله. يُعيد الإصدار المستقر بناء commit الإصدار المرشح المقبول بسلسلة الإصدار المستقرة ويرفض النشر ما لم يُعِد البناء إنتاج باينريات المرشح بايتًا ببايت، لذا يُبلّغ `layerleak version` عن الوسم الذي حمّلته بالضبط.

### GitHub Action

جذر المستودع هو إجراء مركّب يقوم بتنزيل الأرشيف الخاص بالـ runner، والتحقق منه كما هو موضح أعلاه (checksum، وحزمة cosign الخاصة بملف checksums مع إصدار cosign المثبّت في `scripts/release-tools.sh`، وإقرار الأرشيف) وتشغيل `layerleak scan`. ثبّته على وسم إصدار؛ يتم تنزيل الأرشيفات المطابقة من ذلك الإصدار:```yaml
name: Image secrets
on: { push: { branches: [main] } }
permissions: { contents: read, security-events: write }
jobs:
  layerleak:
    runs-on: ubuntu-24.04
    steps:
      - id: scan
        uses: brumbelow/[email protected]
        with: { image: "ghcr.io/${{ github.repository }}:${{ github.sha }}", fail-on: none }
      - uses: github/codeql-action/upload-sarif@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
        if: ${{ always() && steps.scan.outputs.sarif-file != '' }}
        with: { sarif_file: "${{ steps.scan.outputs.sarif-file }}" }
الإدخالالافتراضيالمعنى
imageمطلوبمرجع الصورة المراد فحصها؛ تستخدم السجلات الخاصة LAYERLEAK_REGISTRY_USERNAME/LAYERLEAK_REGISTRY_PASSWORD في env الخاص بالخطوة.
versionالوسم في uses:الإصدار الذي يتم تنزيل أرشيفه؛ اضبطه فقط عندما يحدد uses: فرعًا أو commit.
formatsarifsummary أو json أو sarif.
fail-onlowيُمرَّر إلى --fail-on؛ none يُبلِّغ دون إفشال الخطوة.
allow-partialfalseيُمرِّر --allow-partial.
platformكل بيان linuxيُمرَّر إلى --platform.
output-file$RUNNER_TEMP/layerleak/results.<ext>المكان الذي تُكتب فيه النتيجة المنسَّقة.
extra-argsفارغالمزيد من أعلام layerleak scan، تُقسَّم على المسافات البيضاء وتُضاف في النهاية (على سبيل المثال --all-tags --max-repository-tags 50).

المخرجات: exit-code (رمز خروج CLI، انظر الجدول تحت "Scan images")، result-file (الملف المكتوب)، sarif-file (نفس المسار عندما يكون format هو sarif، وإلا فارغ) وversion (الإصدار الذي تم تنزيله والتحقق منه). تفشل الخطوة بالضبط عندما يخرج CLI برمز غير صفري، لذا فإن fail-on: none مع if: always() على خطوة الرفع يعطي فحصًا للإبلاغ فقط. لا يطبع الإجراء النتائج أبدًا؛ فقط صيغة summary المنقَّحة تُطبع في السجل، ويعمل الفحص مع --no-artifacts. يحتاج إلى curl وtar (أو unzip/7z على Windows) وGitHub CLI، وكلها متوفرة على مشغلات GitHub المستضافة لـ Linux وmacOS وWindows.

تنزيل الأداة